オープンPHPプロジェクト:php-code-generator 人気PHPフレームワークのCURD用コードジェネレーター

php-code-generator

PHPをベースとしたコードジェネレーターです。

テスト環境

PHP 8.0以上

サポート範囲

現在はLaravelのみをサポートしていますが、今後のバージョンではWebMan、ThinkPHPなどもサポート予定です。模板の提出も歓迎します。

Composerでのインストール

composer require zx/php-code-generator

使用方法

  1. このジェネレーターはテンプレートレンダリング方式に基づいており、独自のテンプレートを設定できます。
  2. `vendor/zx/php-code-generator/src/laravel/`にある3つのファイルを`public`ディレクトリにコピーします。
  3. 個人のコーディング習慣に応じてテンプレートを調整し、自分に合ったコードを生成します。
  4. コード生成前に必ず`public`ディレクトリの内容を削除し、生成されたコードをプロジェクトファイルにコピーします。直接プロジェクトディレクトリに生成するとコードが上書きされる可能性があります。
  5. Laravelプロジェクトのコントローラー内で以下のコードを実行します。

use ZG\LaravelTableGenerator;
use ZG\DatabaseConnector;

class CodeGenerateController extends BaseController
{
    public function generate(Request $request)
    {
        $config = [
            'db_type' => 'mysql',
            'host' => 'localhost',
            'port' => '3306',
            'database' => 'mydb',
            'charset' => 'utf8mb4',
            'username' => 'admin',
            'password' => 'adminpass'
        ];

        DatabaseConnector::setupConnection($config);
        // データベースの全テーブルに対応したコードテンプレートを生成
        LaravelTableGenerator::generateAllTables();
        // 単一テーブル用のテンプレートを生成(例:adminテーブル)
        // LaravelTableGenerator::generateSingleTable('admin');
    }
}

生成されたファイルは`public`ディレクトリ内に配置されます。必要に応じてファイルをコピーしてください。

テンプレートの使用

デフォルトテンプレートを使用する場合、以下の補助コードをプロジェクトの`utils`ディレクトリに配置します。

`composer.json`に以下を追加します。


"autoload": {
    "files": [
        "app/Helpers/CodeHelper.php"
    ]
}

補助コードを使用しない場合は、Laravelの標準的な応答形式を使用します。


return response()->json(['status' => 200, 'message' => '生成成功']);

リクエストデータの検証は以下のように調整可能です。


$conditions['user_phone'] = !empty($request->user_phone) ? trim(htmlspecialchars($request->user_phone, ENT_QUOTES, 'UTF-8')) : '';

テンプレートのカスタマイズ

  1. `ZG\Generator`を継承します。
  2. 抽象メソッドを実装し、`LaravelTableGenerator`の方法を参考に独自のテンプレートを作成します。

フィードバック

サポートやフィードバックはこちらまで:

  • QQ群:123456789
  • ブログ:https://example.com/japanese-blog/
  • Gitee:https://gitee.com/zg-project/php-code-generator
  • GitHub:https://github.com/zg-open/php-code-generator

タグ: laravel MySQL Composer PHPフレームワーク コードジェネレーション

6月19日 18:30 投稿