Laravel(前編)

PHPのフレームワークとして圧倒的な人気を誇る Laravel。モダンで読みやすく、拡張性も高いため、企業システムやスタートアップのWebアプリにも多く採用されています。

本記事では Laravelの全体像からインストール方法、ルーティング・テンプレート・データベース(CRUD)まで、Laravel開発の「はじめの一歩」を踏み出します。


Laravelの概要と特徴

  • Model-View-Controller(MVC) に基づく整理された構造
  • ルーティング、ミドルウェア、セキュリティなど豊富な機能
  • Bladeテンプレートでスマートな画面生成
  • Eloquent ORM による高速なDB操作
  • Composerベースでライブラリ管理も簡単

Laravelは「美しいコード」「開発体験の良さ」に重点を置いたフレームワークです。


Laravelのインストール

要件

  • PHP 8.1 以上
  • Composer
  • MySQL or SQLite

プロジェクト作成

composer create-project laravel/laravel laravel-app

laravel-app ディレクトリが作成され、初期構成が整います。

サーバー起動

cd laravel-app php artisan serve

http://localhost:8000 にアクセスするとLaravelのトップページが表示されます。


ルーティングの基本

Laravelでは、routes/web.php にルート定義を記述します。

例:Helloページ

// routes/web.php use Illuminate\Support\Facades\Route; 
Route::get('/hello', function () { 
 return 'こんにちは、Laravel!'; 
}); 

ブラウザで /hello にアクセスすると、テキストが表示されます。


Bladeテンプレート入門

Laravel独自のテンプレートエンジン Blade を使うと、HTMLとPHPをスッキリ書けます。

テンプレートファイルの作成

// resources/views/hello.blade.php 
<!DOCTYPE html> 
<html> 
<head>
<title>Hello</title>
</head>
<body>
<h1>こんにちは、{{ $name }} さん!</h1> 
</body>
</html>

ルートでBladeを使う

Route::get('/hello', function () { return view('hello', ['name' =&gt; '佐藤']); });


Eloquent ORMとデータベース(CRUD処理)

.envファイルにDB接続設定

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_db DB_USERNAME=root DB_PASSWORD=secret

マイグレーションの作成と実行

php artisan make:migration create_tasks_table
// database/migrations/xxxx_xx_xx_create_tasks_table.php 
public function up() { 
 Schema::create('tasks', function (Blueprint $table) { 
  $table->id(); 
  $table-&gt;string('title'); 
  $table->timestamps(); 
 }); 
} 
php artisan migrate

モデルの作成

php artisan make:model Task


コントローラーの作成

php artisan make:controller TaskController --resource


ルーティング定義(CRUD一括)

// routes/web.php
Route::resource('tasks', TaskController::class);


コントローラー内の例(TaskController.php)

use App\Models\Task; 
public function index() { 
 $tasks = Task::all(); 
 return view('tasks.index', compact('tasks')); 
} 
public function store(Request $request) { 
 Task::create(['title' =&gt; $request-&gt;title]); 
 return redirect()->route('tasks.index'); 
} 

Bladeで表示

// resources/views/tasks/index.blade.php

<h1>タスク一覧</h1>
<form method="POST" action="{{ route('tasks.store') }}">
@csrf 
<input name="title" placeholder="新しいタスク">
<button type="submit">追加</button></form>
<ul>@foreach ($tasks as $task) <li>{{ $task-&gt;title }}</li>
@endforeach </ul>

まとめ

Laravel入門の前編では、次の基本機能を一通り解説しました:

  • Composerを使ったLaravelの導入
  • ルーティングとBladeによるテンプレート表示
  • Eloquent ORMを使ったDBのCRUD操作

次回の「Laravel入門(後編)」では、バリデーション、ミドルウェア、セッション管理、API構築など、Laravelのさらなる機能を深掘りしていきます。

採用情報 長谷川 横バージョン
SHARE
PHP Code Snippets Powered By : XYZScripts.com