プラグインジェネレーター †EC-CUBE3.0.13未満であれば無料のプラグインを導入することでひな形を作成できます。 EC-CUBE3.0.13以降であればプラグインジェネレータが実装されていますので、こちらを利用することでひな形を作成できます。 プラグインジェネレーターの実行開始 †$ php app/console plugin:develop generate migrationファイルの生成 †$ php app/console migrations:generate src\Eccube\Resource\doctrine\migration\Versionxxxxxxxxxxxxxx.php が生成されるので、app\Plugin\プラグインフォルダ\Resource\doctrine\migration\ へ移動します。 データベースからdcm.ymlを生成 †ymlファイルを書くのは面倒なので、先にデータベースにテーブルを作成しておき、それをもとにymlファイルを生成します。 $ vendor/bin/doctrine orm:convert:mapping --namespace="Eccube\Entity\\" --from-database yml --filter=PlgTable app/Plugin/プラグインフォルダ/Resource/doctrine/ Eccube.Entity.PlgTable.dcm.yml ファイルが生成されますが、命名規則が異なるので、リネームします。 ファイルの内容もパスの修正やrepositoryClassを追記します。 FOREIGN KEYを使用して DtbCustomer などとなっている箇所は Customer に修正します。 ファイルがありませんなどのエラーが出る場合はzipをwindowsで解凍したことなどが原因でシンボリックリンクが切れているかもしれません。 参考
Entityの生成 †dcm.ymlを生成した時点でプラグインをインストールしてテーブルを作成した状態にしておくと良さげ。 $ vendor/bin/doctrine orm:generate:entities --filter=Plugin\\プラグインフォルダ\\Entity\\EntityName --extend=Eccube\\Entity\\AbstractEntity app/ Repositoryの生成 †$ vendor/bin/doctrine orm:generate:repositories --filter=Plugin\\プラグインフォルダ\\Entity\\EntityName app/ プラグインのインストール †意外にここでキャッシュが効いているようで、うまくいかないことがあります。 $ php app/console plugin:develop install --code プラグイン プラグイン一覧で設定リンクを表示させる †ServiceProviderに以下の形式で記述してやると表示されるようになります。 config.yml 内 code: PluginSample としている場合 public function register(BaseApplication $app) { // Config $app->match('/' . $app['config']['admin_route'] . '/plugin/PluginSample/config', 'Plugin\PluginSample\Controller\Admin\ConfigController::index') ->bind('plugin_PluginSample_config'); } |