見出し画像

ChatGPTとSymfony(2)

前の記事のつづきです。
前の記事では、ChatGPTがSymfonyを知っているらしいことが分かったので、実際にこの記事では実際にコードを作成してみた結果です。
あくまでも個人が試してみた結果ですので、同様に利用できるかは分かりませんが、参考程度でお願いします。


1.最初に要件

通常のHTML、JavaScript、CSSを書いてもらいました。

以下の要件で、プログラムコード(HTML,CSS,JavaScript)を書いてください。

1.1 ChatGPTへの入力

1 ホームページ上に Next Page ボタンがある
2. Next. Page ボタンを押すと、JavaScriptで定義されている以下の配列の内容をPostでNext Pageに送る
3. 送る内容は Category と Idの組み合わせ
配列の内容は以下

const sendProductId =[];
Const category = [1, 2, 3, 4]

sendData[category] = id

1.2 ChatGPTからの出力

これに対して、ChatGPTから、HTMLにStyleとBody内にscriptが書かれたコードが返ってきました。
コードは省略しますが、動きそうなコードです。

2.symfonyへのコードの書き換え

2.1 ChatGPTへの指示

これをSymfonyで利用するにはコードをどのように変更しますか?

2.2 ChatGPTからの返答

Symfonyフレームワークを使用してこの機能を実装するために、以下の手順でコードを変更します。

  1. コントローラーの作成

  2. ルーティングの設定

  3. テンプレートの作成

  4. JavaScriptコードの調整

まず、コントローラーを作成します。ここではMyControllerという名前で作成します。

コードは省略します。(注)
src/Controller/MyController.php:
config/routes.yaml:
templates/index.html.twig
templates/nextpage.html.twig:

などのコードが返ってきました。
ここで、
指示 : yamlを書き換えないでControllerを書いてください
ChatGPT :
yaml ファイルを使わずに、アノテーションを使ってルーティングを設定する場合は、以下のようにコントローラーを書き換えます。

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

class MyController extends AbstractController
{
    /**
     * @Route("/", name="index")
     */
    public function index()
    {
        return $this->render('index.html.twig');
    }

    /**
     * @Route("/nextpage", name="nextpage", methods={"POST"})
     */
    public function nextPage(Request $request)
    {
        $sendProductId = json_decode($request->request->get('sendProductId'), true);

        // 次のページでデータを処理する
        // ...

        return $this->render('nextpage.html.twig', [
            'sendProductId' => $sendProductId
        ]);
    }
}

という形で、Controllerのコードが返ってきました。
中段辺りを見て頂ければ分かるとおり、アノテーションに変更されています。

3. 結果

これらを参考に動作を確認したところ、問題なく動きました。

このほかにも、ChatGPTを使って、Entityの作成等も見てみましたが、問題のなさそうな(確認していないので)コードが作成出来そうです。
実際には、部分的なコードの作成をChatGPTで行ってそれを組み込みテストすることが今の所の利用の仕方ではないかと考えています。


よろしければサポートをお願いします。 今後の活動の励みになります。