Laravel Pipe Dreamを使って素早くプロジェクトを始める
https://gyazo.com/e65da81f3a47061120ed7594dcc784a2
Laravel Pipe Dreamは何が凄いのか?
今までLaravelを使って、用意したtableに対してCRUD処理でデータを取得、更新、削除、追加の処理を入れようとする以下の手順を踏む必要があった
テーブルスキーマを記述する
2019_07_31_100000_create_animals_table.php
migrationを行う
Modelを作成する
Modelに$fillableを定義する
Modelに$castsを定義する
Controllerを作成する
基本的なCRUD処理を書く
ルーティングを作成する
テストデータほしいからSeederで初期テストデータを入れる
という作業が起きていたが、Laravel Pipe Dreamを使うと
code:php
Animal
name
とかで全て必要なファイルが生成出来てしまう。
やばい。Awesome!!
インストール方法
code:sh
composer require --dev pipe-dream/laravel
Laravel Pipe Dreamでできる事を確認する
code:sh
{host-url}/pipe-dream
にアクセスする
画面が表示される
https://gyazo.com/00dccedfcf08ee6ecafb3d9f8a4283c3
Design
PascalCaseはモデル名になっている
snake_caseを使ってテーブルを作成する
少文字がカラム名になってる。
右のschemaで属性をつけることができる。
dataType": "bigIncrements"
"fillable": false
"hidden": false
"index": false
"nullable": false
"unique": false
"foreign": null
code:php
// ModelはPascalCaseで定義する
Garage
location
capacity
// エンティティをチャンクに分けます
Car
color
user_id // 外部キー
// ManyToManyリレーションシップを設定するにはsnake_case model1_model2を使用してください。
car_garage
// snake_caseを使ってテーブルを作成する
password_resets
email
token
// user ボタンを使用してデフォルトの設定を追記します
User
name
email
email_verified_at
password
remember_token
Template
Designで定義した設定で生成されるファイルのコードを修正する事ができる。
生成されるファイルは
code:php
APIController
APIResource
APIResourceCollection
APIRoute
BelongsToManyRelationship
BelongsToRelationship
Controller
DatabaseSeeder
Factory
HasManyRelationship
HasOneRelationship
Migration
Model
Seeder
User
api
myTemplate
web
となっている。
Settings
生成したいパイプを選択します。
スキーマによっては、各パイプが複数のファイルを生成することがあります。
設定できるファイルは以下の通りです
code:php
APIControllerPipe
APIResourceCollectionPipe
APIResourcePipe
APIRoutesPipe
ControllerPipe
FactoryPipe
MigrationPipe
ModelPipe
SeederPipe
UserPipe
まとめ
Laravelで初期のプロジェクトを作成するときはLaravel Pipe Dreamで一気に作って良いかもしれない。
とは言え、バリデーションやら、例外処理などは特に書いてないし、当然テストコードもないので、本当に初期のプロジェクトを始める時にだけで良い気がする