はじめに
表題通り、かの有名なチュートリアルを用いて、Homesteadの環境構築~アプリ制作の導入まで試してみたいと思います。
✅ゴール
Homesteadの理解を深める
✅環境
Windows/Homestead
✅参考教材
💻Laravel開発のはじめかた Windows編
💻入門Laravelチュートリアル (1) イントロダクションと環境構築
※当記事では上記の記事を教材と呼ばせていただきます(土下座)。
アプリ制作
※ビュー関連は省いてます。
①Homestead.yamlの編集
DBを追記
databases: - homestead - todo
再起動して変更を反映
vagrant reload --provision
②コントローラー作成
php artisan make:controller TaskController
③PostgreSQLの設定
DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=todo DB_USERNAME=homestead DB_PASSWORD=secret
④マイグレーションファイルの作成
php artisan make:migration create_folders_table --create=folders php artisan make:migration create_tasks_table --create=tasks ~~~~編集後 php artisan migrate >> Migrating: 2014_10_12_000000_create_users_tabl Migrated: 2014_10_12_000000_create_users_table (0.02 seconds) Migrating: 2019_08_19_000000_create_failed_jobs_table Migrated: 2019_08_19_000000_create_failed_jobs_table (0 seconds) Migrating: 2020_05_17_041100_create_folders_table Migrated: 2020_05_17_041100_create_folders_table (0 seconds)</pre> <strong>⑤モデル作成</strong> <pre>php artisan make:model Folder php artisan make:model Task</pre> <strong>⑥シーダーでテストデータ挿入から確認まで</strong> <pre>php artisan make:seeder FoldersTableSeeder php artisan make:seeder TasksTableSeeder composer dump-autoload // 作成したシーダークラスを認識させる。 >> Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: fruitcake/laravel-cors Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. Generated optimized autoload files containing 4312 classes php artisan db:seed --class=FoldersTableSeeder // 挿入 php artisan db:seed --class=TasksTableSeeder // 挿入 psql -U homestead -h localhost -d todo // ログイン。パスワードはsecret todo=# \d List of relations Schema | Name | Type | Owner --------+--------------------+----------+----------- public | failed_jobs | table | homestead public | failed_jobs_id_seq | sequence | homestead public | folders | table | homestead public | folders_id_seq | sequence | homestead public | migrations | table | homestead public | migrations_id_seq | sequence | homestead public | tasks | table | homestead public | tasks_id_seq | sequence | homestead public | users | table | homestead public | users_id_seq | sequence | homestead (10 rows) todo=# select title from folders; title -------------- プライベート 仕事 旅行 (3 rows) todo=# select title from tasks; title ------------------ サンプルタスク 1 サンプルタスク 2 サンプルタスク 3 (3 rows)</pre> <strong>⑦FormRequestクラスの作成 参考:<a href="https://www.hypertextcandy.com/laravel-tutorial-create-folder/">教材5</a></strong> <pre>php artisan make:request CreateFolder</pre> ※教材5を終えてここまで(ちょっとダレてきたので終了) <img class="alignnone size-full wp-image-2535" src="https://chobimusic.com/wp-content/uploads/2020/05/4-4.jpg" alt="" width="1581" height="892" /> </div> <strong>✅Tinkerの利用</strong> <pre>php artisan tinker >> Psy Shell v0.10.4 (PHP 7.4.1 — cli) by Justin Hileman >>> $folder = \App\Folder::find(1); => App\Folder {#3806 id: 1, title: "プライベート", created_at: "2020-05-17 04:21:19", updated_at: "2020-05-17 04:21:19", } >>>\App\Task::all(); => Illuminate\Database\Eloquent\Collection {#3703 all: [ App\Task {#3015 id: 1, folder_id: 1, title: "サンプルタスク 1", due_date: "2020-05-18", status: 1, created_at: "2020-05-17 04:56:02", updated_at: "2020-05-17 04:56:02", }, ~~~ ], } >>> \App\Task::where('folder_id', 1)->toSql(); => "select * from "tasks" where "folder_id" = ?"
toSQLメソッドを利用するとクエリビルダでどんなSQLが作られているか確認できる。
✅Laravelのバージョン確認
php artisan --version >> Laravel Framework 7.11.0
おわりに
Homesteadの良さは少し理解できたのでチュートリアルは全て実施していないがおわり。
PostgreSQLとMySQLの両方を気軽に切り替えて利用できるのはメリットかな。
が、個人開発レベルならXamppで充分かなと感じた。
次はDockerの理解を深めるために同著者の有名なLaravel+Vue.jsのチュートリアルをやってみようと思います。
コメントを残す