laravel5.5でスキャフォールディングを行えるパッケージ laralib/l5scaffold をインストールする

● laravel5.5でスキャフォールディングを行えるパッケージ laralib/l5scaffold をインストールする

Laravelでは標準でスキャフォールディングのパッケージが存在しません。
(そのかわり有志の方が作成してくれています。お陰で似たようなパッケージが乱立していますが。)
今回は シンプルな scaffold を提供する l5scaffold をインストールして使用できるようにします。

composerのインストール、 Laravelのインストール、 laravelアプリの初期化 は省略します。
sshで該当のディレクトリへ移動するところからのスタート!です。
それではどうぞ!

1. laralib/l5scaffold のインストール

cd <YOUR-APP-NAME>
composer require 'laralib/l5scaffold' --dev

2. configに記述を追加

config/app.php‘providers’ の一番下に追加

// L5scaffold
Laralib\L5scaffold\GeneratorsServiceProvider::class

3. ソースを書き換えてlaravel5.5に対応させる

(1つ目)vendor/laralib/l5scaffold/src/Commands/ScaffoldMakeCommand.php を書き換える

(5行目)    use Illuminate\Console\AppNamespaceDetectorTrait;
(21行目)    use AppNamespaceDetectorTrait, MakerTrait;

          ↓

(5行目)    use Illuminate\Console\DetectsApplicationNamespace;
(21行目)    use DetectsApplicationNamespace, MakerTrait;

(252行目)    以下のメソッドを追加
    public function handle()
    {
        return $this->fire();
    }

(2つ目)vendor/laralib/l5scaffold/src/Makes/MakeController.php を書き換える

(4行目)    use Illuminate\Console\AppNamespaceDetectorTrait;
(13行目)    use AppNamespaceDetectorTrait, MakerTrait;

          ↓

(4行目)    use Illuminate\Console\DetectsApplicationNamespace;
(13行目)    use DetectsApplicationNamespace, MakerTrait;

4. artisan コマンドに追加されたことを確認する

php artisan

make:scaffold Create a scaffold with bootstrap 3
が追加されていることを確認します。

5. スキャフォールディングの実行

お試しで [tweets] を追加してみます。

php artisan make:scaffold Tweet --schema="title:string:default('Tweet #1'), body:text"

追加されるファイル

# コントローラー
app/Tweet.php
app/Http/Controllers/TweetController.php

# データベース(テーブル定義+テストデータ作成ファイル)
database/migrations/xxxx_xx_xx_xxxxxx_create_tweets_table.php
database/seeds/TweetTableSeeder.php

# ビューファイル( blade.php 形式のHTMLファイル)
resources/views/layout.blade.php
resources/views/tweets/index.blade.php
resources/views/tweets/show.blade.php
resources/views/tweets/edit.blade.php
resources/views/tweets/create.blade.php

6. マイグレーションファイルからDBテーブルを作成

php artisan migrate

7. routes/web.php にルーティングを追加

routes/web.php の一番下に追加します

Route::resource('tweets', 'TweetController');

8. アクセスする

http://YOUR-WEB-SERVER/tweets

CRUD操作が自動で作成されていることを確認してください。

laravel5.5でスキャフォールディングを行えるパッケージ laralib/l5scaffold をインストールする
Tagged on:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA