php-code-generator
PHPをベースとしたコードジェネレーターです。
テスト環境
PHP 8.0以上
サポート範囲
現在はLaravelのみをサポートしていますが、今後のバージョンではWebMan、ThinkPHPなどもサポート予定です。模板の提出も歓迎します。
Composerでのインストール
composer require zx/php-code-generator
使用方法
- このジェネレーターはテンプレートレンダリング方式に基づいており、独自のテンプレートを設定できます。
- `vendor/zx/php-code-generator/src/laravel/`にある3つのファイルを`public`ディレクトリにコピーします。
- 個人のコーディング習慣に応じてテンプレートを調整し、自分に合ったコードを生成します。
- コード生成前に必ず`public`ディレクトリの内容を削除し、生成されたコードをプロジェクトファイルにコピーします。直接プロジェクトディレクトリに生成するとコードが上書きされる可能性があります。
- 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')) : '';
テンプレートのカスタマイズ
- `ZG\Generator`を継承します。
- 抽象メソッドを実装し、`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