前提
- 筆者はPHPすら触ったことがない
- pythonの野良コードしか書いたことがなく、システムを組んだことはない。
本を読んで新しく学んだこと
1. Laravel、というかMVCアーキテクチャ
2. ルーティング:特定のアドレスにアクセスしたとき、どの処理を呼び出して実行するか
-
routes
フォルダのweb.php
にどんどん書いていく - ルートパラメータにて処理に引数を渡す
3. コントローラ:具体的に実行すべき処理を担う
- 名前空間:クラスを階層的に整理するための仕組み
4. ビュー:テンプレートをレンダリングして表示する
- PHPのソースコードをそのままテンプレートする
-
resources
フォルダ内のviews
というフォルダに適当な名前のフォルダを切って、phpファイルを配置 - クエリー文字列(url/tekitou?id=watashi)やルートパラメータで引数を渡す
-
- Bladeと呼ばれるテンプレートエンジンを使用する
- サービスプロバイダ(ビューコンポーザ):ビューのビジネスロジックを入れるためのオブジェクト
-
artisan make:provider 名前
にてServiceProviderを継承してApp\Providers\名前
を作成 -
config\app.php
にパスを記述
-
5. モデル
- DBクラスをそのまま使用
- パラメータ結合等を利用して、SQLっぽく記述
- Eloquent(ORM)を使用し、オブジェクト指向っぽく操作
- スコープ:その条件下のレコードを集めているクラスを作成
- マイグレーション:データベースの履歴管理機能。これを使って違う環境でも同じデータベースを構築する
- シーディング:初期テーブルの作成インサート文を記述
6. リクエスト・レスポンスを補完
- ミドルウェア:Model・Controller・Viewの間でリクエスト・レスポンスの補完を行うもの
-
artisan make:middleware 名前
にてApp\Http\Middleware
に作成 -
App\HTTP\Kernel.php
にパスを記述 - ルーティングの時にmiddleware()で呼び出して、処理を補完する
-
- バリデーション:にて型間違え等を補完
- controllerのvalidateメソッド
-
artisan make:request 名前
にてApp\HTTP\Requests
内に作成。フォームリクエスト。 - validatorクラスのメソッドを使用
- オリジナルのValidatorを
App\Http_Validator
に作成
5. ユニットテスト
- PHPUnitを利用
-
php artisan make:test HelloTest
にて、tests\Feature\HelloTest
を作成- test~関数を作成し内容をassertで記述
- test~という関数名のモノは自動的にテストされる
-
- テスト用データベースを作成したほうがいい。
参考文献
- PHPフレームワーク Laravel入門 掌田 津耶乃 著 URL