スキャフォールドとは
スキャフォールドとは、元々英語で足場という意味があります。
Webアプリケーション開発に関しては、MVCフレームワークで開発する際に必要なモデルやコントローラー、ビューをコマンドなどで自動生成してくれる機能のことです。
スキャフォールドを使用すると、簡単にアプリケーションの足場(雛形)を作ることができるので開発の工数を抑えたりすることができるのです。
crud-d-scaffoldとは
crud-d-scaffoldとは、Laravelで使用できるスキャフォールドです。
今回はこのcrud-d-scaffoldのインストール方法と簡単な使い方について紹介します。
僕は業務や個人ではどちらかというとl5scaffoldの方が好きで、こちらをよく使いますので是非こちらも試して、自分にどちらが合うか試してみてください。
l5scaffoldのインストールから簡単な使い方については、こちらの記事で紹介しています。
crud-d-scaffoldの注意事項
crud-d-scaffoldを使用する際は、Laravelのバージョンに注意してください。
僕はLaravel 5.5で試しにやってみましたが、公式サイトにある通りできませんでした。
Laravel 5.6〜5.8であれば使用できることを確認しましたので、実施する際はバージョンに気をつけてください。
crud-d-scaffoldをインストールしてみよう
公式サイト手順
公式サイトのGithubのREADMEがわかりやすいので、この手順通りにインストールしていきましょう!
Composerからインストールをしよう
Composerを使用すればインストールは簡単です。
以下のコマンドを実行して下さい。
composer require dog-ears/crud-d-scaffold
そもそもComposerやLaravelのインストールから始めたいよって人は、こちらの記事を参考にして試してみてください。
Composerのインストールはこちらです。
Laravelのインストールはこちらです。
crud-d-scaffold:setupのコマンドがインストールされたことを確認しよう
Composerを使用してcrud-d-scaffoldのインストールが完了したら、crud-d-scaffoldのコマンドの存在を確認して、正常にインストールできたか確認してみましょう!
php artisan|grep crud
実行結果
こんな感じで表示されればOKです。
crud-d-scaffold
crud-d-scaffold:setup Setup crud-d-scaffold with bootstrap 4
コマンドヘルプを見てみる
コマンドヘルプも見てみましょう!
以下のコマンドを実行するとヘルプが確認できます。
$ php artisan crud-d-scaffold:setup --help
Usage:
crud-d-scaffold:setup [options] [--] [<filePath>]
Arguments:
filePath file path of setting json file. Default: crud-d-scaffold.json [default: "crud-d-scaffold.json"]
Options:
-f, --force Allow overwrite files
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--env[=ENV] The environment the command should run under
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
Setup crud-d-scaffold with bootstrap 4
crud-d-scaffoldを使ってみよう
make:authを実行する
まずはLaravelのデフォルトから入っている認証システムのスキャフォールドを使用して、認証部分を作成しましょう。
php artisan make:auth
デフォルトから入っている認証システムについては公式サイトがわかりやすいです。
public resourceを公開する
静的ファイルをリリースします。
php artisan vendor:publish --tag=public --force
crud-d-scaffold_case0010.jsonをLaravelプロジェクト直下にコピーする
以下のコマンドを実行して、jsonの設定ファイルをLaravelプロジェクト直下にコピーします。
このjsonファイルにスキャフォールドの設定を色々書いていきます。
今回はデフォルトのまま自動生成していきます。
cp ./vendor/dog-ears/crud-d-scaffold/crud-d-scaffold_case0010.json ./crud-d-scaffold.json
crud-d-scaffold:setupを実行する
以下のコマンドでcrud-d-scaffoldを実行しましょう!
自動で必要なファイルが生成されます。
php artisan crud-d-scaffold:setup -f
マイグレーションをする
自動生成したファイルを元にマイグレーションを実行します。
php artisan migrate
実行結果
こちらがマイグレーションを実行した結果になります。
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrating: 2019_05_23_175817_create_beautiful_tag_nice_post_table
Migrated: 2019_05_23_175817_create_beautiful_tag_nice_post_table
Migrating: 2019_05_23_175817_create_beautiful_tags_table
Migrated: 2019_05_23_175817_create_beautiful_tags_table
Migrating: 2019_05_23_175817_create_brilliant_categories_table
Migrated: 2019_05_23_175817_create_brilliant_categories_table
Migrating: 2019_05_23_175817_create_good_comments_table
Migrated: 2019_05_23_175817_create_good_comments_table
Migrating: 2019_05_23_175817_create_nice_posts_table
Migrated: 2019_05_23_175817_create_nice_posts_table
どうゆう状況だったか覚えていないので詳しく記事にできないのですが、既にある環境でマイグレーションをするとエラーが発生することがありました。
恐らくマイグレーションの実行の順番がおかしくなっていたせいだと思うので、もしエラーでうまく行かない場合は上記の実行結果の順番でマイグレーションが実行されるように修正してみてください。
またこのphp artisan crud-d-scaffold:setup -fのコマンドを、エラーなどで失敗して何回か実行している場合は、マイグレーションファイルが複数作成されてしまいエラーが発生する場合があるので、確認してみてください。
シーディングをする
シーダーも自動生成してくれるので、以下のコマンドで実行しましょう!
php artisan db:seed
実行結果
こちらがシーダー実行時の結果になります。
Seeding: NicePostsTableSeeder
Seeding: BeautifulTagsTableSeeder
Seeding: BrilliantCategoriesTableSeeder
Seeding: GoodCommentsTableSeeder
Seeding: BeautifulTagNicePostTableSeeder
Database seeding completed successfully.
こちらも確かシーダーの実行順番の影響でエラーがでることがありました。
もしうまく行かない場合は上記の実行結果の順番でシーダーが実行されるように修正してみてください。
作成された画面を確認する
ルーティングを確認すると以下のようなルートがweb.phpへ追加されていると思います。
routes/web.php
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get("nicePosts/{nicePost}/duplicate", ['as' => 'nicePosts.duplicate', 'uses' => 'NicePostController@duplicate']);
Route::resource("nicePosts","NicePostController");
Route::get("beautifulTags/{beautifulTag}/duplicate", ['as' => 'beautifulTags.duplicate', 'uses' => 'BeautifulTagController@duplicate']);
Route::resource("beautifulTags","BeautifulTagController");
Route::get("brilliantCategories/{brilliantCategory}/duplicate", ['as' => 'brilliantCategories.duplicate', 'uses' => 'BrilliantCategoryController@duplicate']);
Route::resource("brilliantCategories","BrilliantCategoryController");
Route::get("goodComments/{goodComment}/duplicate", ['as' => 'goodComments.duplicate', 'uses' => 'GoodCommentController@duplicate']);
Route::resource("goodComments","GoodCommentController");
作成されたルーティングへアクセスすると、公式サイトにあったような画面が表示されます!
スキャフォールドでこのような画面を一瞬で生成できるのでとても便利です!

まとめ
いかがでしたでしょうか?
スキャフォールドを使いこなせるとマスタデータの登録画面など爆速で作成できるようになります!
また自動生成したページをそのまま使うのもいいですが、カスタマイズすればオリジナルCRUD処理なのに爆速で実装できます。
便利なスキャフォールドを是非使いこなしていきましょう!
Laravelで使える他のスキャフォールドには、l5scaffoldもあります。
僕はこちらのほうが好きで良く使うので見てみてくださいね!
また以下のようなLaravel入門〜中級者向けの記事もいくつか書いています!
是非覗いていって参考にしてくれたら嬉しいです!
Laravel始めて間もない方は、Laravelの上達方法についても詳しく記事をまとめていますので見てみてくださいね!
Laravelの学習をこれから始めたい!という方は、Laravelの入門記事も書いていますので是非見て下さい!
Laravelでオススメな本を探している!という方は、こちらで僕がLaravelの書籍をまとめて感想を書いていますので購入の際の参考にしてください!
コメント