AIを利用してLaravelプロジェクトを素早く作る方法を解説

Laravel Laravel

最近ChatGPTなどのAIを利用して、開発をしてもらうなど、そんな噂話がちらほら聞こえてきます。
ですが、実際どうやったら良いのか分からないという方のために、プロンプトも交えて紹介します。

前提

まずは基本的に利用する想定である前提で、以下を想定しています。

  • 利用するAI:ChatGPT 4o
  • 言語:PHP8
  • フレームワーク:Laravel 11.x
  • DB:MySQL

本ブログは主にバックエンドの記事を扱っているので、今回の記事ではAIにDB定義を作成してもらうまでをゴールとします。
ルーターやコントローラの中身、Viewなどの見た目はそのうち記事にしようかと思います。

作りたいものの概要

まず最初に、どのようなものを作りたいかをザックリと決めなければいけません。
こればかりは自分でアイデアを決める必要があります。
どうしてもアイデアが出ない場合はAIに聞いてみるのも良いかと思います。
以下のように普通に聞いてしまえばアイデアをいくつか出してくれると思いますので、適当に選びましょう。

Laravelの練習用に簡単なWebサービスを作成しようとしています。
どのようなサービスを作成したら良いかアイデアを出して下さい。

今回は例として、個人のタスク管理サービスを作ろうと思います。

大まかな手順

作りたいものが決まったところで、本題のAIを使って作成する手順を紹介します。
以下のように順を追ってAIに作成してもらいます。

  1. 作りたいものの機能の洗い出し
  2. 最初に作るべき機能の選定
  3. ER図作成
  4. migrationファイル作成

作りたいものの機能を洗い出す

とりあえずLaravelでAPIの作成をして、後でBladeかReactなどでViewを作成しようかと思います。
そして、タスクなので開始日と終了日、重要度もあればいいな。みたいな感じで細かい機能はよく分からないので、AIに聞いてみます。
ついでに競合も調べて、便利そうな機能があれば取り込もうかとも思います。

#命令書: あなたは、[Webサービスの企画担当]です。
以下の[テーマ]に関する内容を[制約条件]をもとに、[結果]を出力してください。

#テーマ
個人のタスク管理サービス

#制約条件
タスクには以下の項目がある
- 開始日
- 終了日
- 重要度

#結果
[1]サービスに必要な{機能}を列挙
[2]このサービスの競合を調査するためのGoogle検索の{キーワード}を列挙
[3]このサービスの競合サービスの情報を列挙(URLがある場合はそれも)
[4]このサービスについて、競合と差別化するための参入障壁や機能の提案

色々返答が返ってきたかと思います。

最初に作るべき機能の選定

色々とAIから返答が返ってきたかと思います。
その中から、今回作成したい機能を選択して、何か思いついた場合は追加したりして機能一覧をまとめます。
今回は、以下の機能を作ろうかと思います。

  • タスク作成・編集・削除
  • 開始日・終了日の設定
  • 重要度の設定(例:高・中・低)
  • タスクリスト表示(日付順、重要度順)
  • カレンダー表示

ER図作成

上記機能を元にER図を作成してもらいます。
今回は小さいシステムですが、大きくなった場合、意図しないような結果が返ることもあるので、大項目毎に設計してもらったりすると良いかもしれません。

#命令書
あなたは、[Webサービスのエンジニア]です。 以下の[テーマ]に関する内容を[制約条件]をもとに、[結果]を出力してください。

# テーマ
個人のタスク管理サービスの以下機能のデータベース設計
- タスク作成・編集・削除
- 開始日・終了日の設定
- 重要度の設定(例:高・中・低)
- タスクリスト表示(日付順、重要度順)
- カレンダー表示

# 制約条件
- Mermaid形式で出力
- Primary keyはidとする
- カラム名はsnake_caseとする
- テーブル名は複数形の単語とする
- pivotテーブルは両方のテーブル名を繋げたものとする

# 結果
1.ER図を作成

上記をClaudeで作成してもらった結果は以下のようになりました。
ChatGPTでも良いのですが、Mermaid形式がおかしかったりしたのと、ClaudeはArtifacts(アーティファクト)でビジュアル的に結果が確認できる点で採用しました。

erDiagram users ||--o{ tasks : creates tasks ||--o{ task_tags : has tags ||--o{ task_tags : belongs_to users { int id PK string username string email string password_hash datetime created_at datetime updated_at } tasks { int id PK int user_id FK string title text description date start_date date end_date enum priority boolean is_completed datetime created_at datetime updated_at } tags { int id PK string name datetime created_at datetime updated_at } task_tags { int id PK int task_id FK int tag_id FK }

ER図からmigrationファイルへ

ER図ができた所で、これをmigrationファイルを作成するコマンドを作ってもらいます。
ついでにModelやControllerも作成してもらいましょう。

#命令書
あなたは、{PHPエンジニア}です。
以下の制約条件と{入力文}をもとに、 {出力文}を出力してください。

#制約条件
- 利用フレームワーク:Laravel11
- APIを作成

#入力文
<Mermaidコード>

#出力文
- `php artisan make:model`コマンド
- オプションでseed,factory,migration,controller(API)も出力する
- 不足しているテーブルは`php artisan make:migraiton`コマンドを作成
- migrationのコード

コマンドが色々出てきたかと思うので実行して、migrationのコードもコピペして、php artisan migrateを実行してください。

最後に

ここまでで、かなりできたのではないでしょうか?
この後はModelやControllerの中身も基礎的な部分を作ってもらうようにしたら、後は細かいカスタマイズやテストなどでAPIが完成ですね。
何か作りたいものを思いついたら、AIに頼ってモチベーションが切れる前に作りあげてしまうと良いかと思います。

コメント

タイトルとURLをコピーしました