Laravel 10 入門トップページ


目次

  1. プロジェクトを作成する
  2. データベースファイルを作成する
  3. Visual Studio Code を設定する
  4. .env を編集して初期設定する
  5. タイムゾーンと言語を設定する
  6. Webサーバを起動して終了する
  7. マイグレーションファイルを生成する
  8. テスト用データを設定する
  9. モデルを作成する
  10. コントローラを作成する
  11. ルートを定義する
  12. データベースからデータを取り出す
  13. トップページにリンクを設置する
  14. ビューを使ってレコードを表示する
  15. コメントを個別に表示するページを作成する
  16. コメント投稿機能を実装する
  17. 投稿内容を検証する
  18. 投稿内容を編集する
  19. 投稿コメントを削除する
  20. テストの自動化を実現する
  21. テストカバレッジを計測する
  22. 複数のLinuxコマンドを実行し,履歴からも実行する
  23. ビューをレイアウト化する
  24. Bootstrap を導入する
  25. SQLite を操作する
  26. フェイカでシーダを拡張する
  27. ページネーションを作る
  28. シーダに登録日時と更新日時を追加する
  29. 一覧表示を更新日時の降順にする
  30. フラッシュメッセージを表示する
  31. スタイルシートでデザインを整える

Laravel によるコメント掲示板の開発

複数のLinuxコマンドを実行し,履歴からも実行する

前のページで計測したテストカバレッジを確認しながら,カバレッジが 100% になるようにさまざまなテストコードを記載していくことになります.すべてのコードをカバーするテスト記載して実行した結果,コメントの投稿や編集,削除などの機能もテストすることになります.これによりデータベースが更新されることになるので,開発中は頻繁にデータベースを初期化することになるでしょう.つまり,ロールバック,マイグレーション,シードの設定,という一連の作業を頻繁に行うことになります.

vagrant@ubuntu2204 comment_app $ php artisan migrate:rollback ⏎
vagrant@ubuntu2204 comment_app $ php artisan migrate ⏎
vagrant@ubuntu2204 comment_app $ php artisan db:seed ⏎

Ubuntu などの Linux OS (macOS も)では複数のコマンドをセミコロンで区切って一気に実行することができます.

vagrant@ubuntu2204 comment_app $ php artisan migrate:rollback; php artisan migrate; php artisan db:seed ⏎

   INFO  Rolling back migrations.

  2023_10_15_115031_create_comments_table ............................................. 13ms DONE
  2019_12_14_000001_create_personal_access_tokens_table ................................ 5ms DONE
  2019_08_19_000000_create_failed_jobs_table ........................................... 5ms DONE
  2014_10_12_100000_create_password_reset_tokens_table ................................. 4ms DONE
  2014_10_12_000000_create_users_table ................................................. 5ms DONE


   INFO  Running migrations.

  2014_10_12_000000_create_users_table ................................................ 10ms DONE
  2014_10_12_100000_create_password_reset_tokens_table ................................. 4ms DONE
  2019_08_19_000000_create_failed_jobs_table ........................................... 8ms DONE
  2019_12_14_000001_create_personal_access_tokens_table ............................... 11ms DONE
  2023_10_15_115031_create_comments_table .............................................. 4ms DONE


   INFO  Seeding database.

  Database\Seeders\CommentsTableSeeder .................................................. RUNNING
  Database\Seeders\CommentsTableSeeder ............................................ 36.18 ms DONE

vagrant@ubuntu2204 comment_app $

さらに,過去に実行した Linux コマンドは最新のものが 1,000 件程度 history コマンドで確認できます.grep は検索にヒットした行だけを表示するためのコマンドです.history コマンドの履歴番号を指定して同じコマンドを再度実行するには !履歴番号 と入力します.このやり方を理解すると,自動テストやサーバの起動など,複雑なコマンドを覚える必要はほぼなくなります.

history コマンドで履歴を確認すると,一気に表示が流れてしまい,全てを見るには(邪道ですが)スクロールをする必要があります.

vagrant@ubuntu2204 comment_app $ history ⏎
    1  ip a
    2  exit
    3  ls
        (中略)
  201  ls -l /var/www/html/
  202  php artisan test --coverage-html /var/www/html/cv_reports/comment_app
  203  php artisan serve --host=192.168.56.101 --port=8000

例えばキーワードを serve にして過去のコマンド履歴を検索します.

vagrant@ubuntu2204 comment_app $ history | grep serve ⏎
   79  php artisan serve --host=192.168.56.101 --port=8000
  134  php artisan serve --host=192.168.56.101 --port=8000
  139  php artisan serve --host=192.168.56.101 --port=8000
  144  php artisan serve --host=192.168.56.101 --port=8000
  148  php artisan serve --host=192.168.56.101 --port=8000
  153  php artisan serve --host=192.168.56.101 --port=8000
  157  php artisan serve --host=192.168.56.101 --port=8000
  161  php artisan serve --host=192.168.56.101 --port=8000
  166  php artisan serve --host=192.168.56.101 --port=8000
  173  php artisan serve --host=192.168.56.101 --port=8000
  203  php artisan serve --host=192.168.56.101 --port=8000
  217  history | grep serve
vagrant@ubuntu2204 comment_app $

キーワード serve を含むコマンドだけが表示されました.履歴から 173 番と全く同じコマンドを実行します.

vagrant@ubuntu2204 comment_app $ !173 ⏎
php artisan serve --host=192.168.56.101 --port=8000

   INFO  Server running on [http://192.168.56.101:8000].

  Press Ctrl+C to stop the server

^C
vagrant@ubuntu2204 comment_app $

また,Ctrl + R を押してからキーワードを入力してそのまま実行する方法もあります.Ctrl + R と押すと,次のように表示されます.

vagrant@ubuntu2204 comment_app $ Ctrl + R
(reverse-i-search)`':

そこに serve と入力すると,コマンド履歴から一つが選ばれて表示されるので,Enter を押下して実行します.

vagrant@ubuntu2204 comment_app $
(reverse-i-search)`serve': php artisan serve --host=192.168.56.101 --port=8000

目次に戻る