速習Laravel 6: 「Part 3 Laravelの基本」整理
PHPの仕事としてはフレームワークのLaravelを扱った案件が多い。PHPの実務経験未経験者であっても,Laravelの実務経験が半年あれば,仕事を獲得できそうに感じたため,自社開発扱いにできるニート期間にLaravelの勉強を始めた。
ひとまず,「速習 Laravel 6」をKindle unlimittedで読んでいる。「Part 3 Laravelの基本」を読み終えて,大まかなLaravelの開発の流れがわかったので,メモとして記録しておく。なお,書籍内で扱われているサンプルプログラムは「速習 Laravel 6 – WINGS」から入手できる。
Laravelでの開発の大まかな流れは以下となる。
1. DBを作成
2. .envにDBの接続情報を記入
3. モデルクラスを作成 (app/Book.php)
php artisan make:model Book
モデルクラスはテーブル名 (複数形のbooks) に対して,単数形 (Book) とする。これでモデルとテーブルとが紐づく。
4. コントローラークラスを作成
php artisan make:controller HelloController
5. app/Http/Controllers/HelloController.phpにアクションメソッド (public functions) を追加
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Book;
class HelloController extends Controller
{
public function list()
{
$data = [
'records' => Book::all()
];
return view('hello.list', $data);
}
}
6. テンプレートファイルの作成 (resources/views/hello/list.blade.php)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>速習Laravel</title>
</head>
<body>
<table class =" table">
<tr>
<th>書名</th>
<th>価格</th>
<th>出版社</th>
<th>刊行日</th>
</tr>
@foreach($records as $record)
<tr>
<td>{{$record->title}}</td>
<td>{{$record->price}}円</td>
<td>{{$record->publisher}}</td>
<td>{{$record->published}}</td>
</tr>
@endforeach
</table>
</body>
</html>
7. ルーティング設定 (routes/web.php)
Route::get('hello/list', 'HelloController@list');
以上となる。
LaravelはMVCモデルに沿ったフレームワークであり,これらの考え方に沿って,役割ごとにコードを追加して開発していくようだ。
Part 4からはMVCのそれぞれの部分の作り込みが始まり,より細かい部分に入っていくため,ここで全体の流れを整理できたのはよかった。