- 追加された行はこの色です。
- 削除された行はこの色です。
[[EC-CUBEめも]]
*プラグインジェネレーター [#ac79295c]
EC-CUBE3.0.13未満であれば無料のプラグインを導入することでひな形を作成できます。~
http://www.ec-cube.net/products/detail.php?product_id=1022
EC-CUBE3.0.13以降であればプラグインジェネレータが実装されていますので、こちらを利用することでひな形を作成できます。~
[[プラグインジェネレータの利用方法:http://ec-cube.github.io/plugin_tutorial-generate]]
**プラグインジェネレーターの実行開始 [#ld741247]
$ php app/console plugin:develop generate
**migrationファイルの生成 [#kab3890f]
$ ./app/console migrations:generate
$ php app/console migrations:generate
src\Eccube\Resource\doctrine\migration\Versionxxxxxxxxxxxxxx.php が生成されるので、app\Plugin\プラグインフォルダ\Resource\doctrine\migration\ へ移動します。~
中身は自分で書きます。
**データベースからdcm.ymlを生成 [#m4dbc97d]
ymlファイルを書くのは面倒なので、先にデータベースにテーブルを作成しておき、それをもとにymlファイルを生成します。~
テーブル名が plg_table であれば、指定は PlgTable になります。
$ vendor/bin/doctrine orm:convert:mapping --namespace="Eccube\Entity\\" --from-database yml --filter=PlgTable app/Plugin/プラグインフォルダ/Resource/doctrine/
Eccube.Entity.PlgTable.dcm.yml ファイルが生成されますが、命名規則が異なるので、リネームします。~
Plugin.プラグインフォルダ.Entity.PlgTable.dcm.yml
ファイルの内容もパスの修正やrepositoryClassを追記します。
FOREIGN KEYを使用して DtbCustomer などとなっている箇所は Customer に修正します。
ファイルがありませんなどのエラーが出る場合はzipをwindowsで解凍したことなどが原因でシンボリックリンクが切れているかもしれません。~
特に vagrant rsync-auto としている場合はハマるかもしれません。~
config.vm.synced_folder に vendor/ を追加しておいた方がいいかも。~
tar.gz形式のファイルを解凍して使用してみましょう。
参考
-http://qiita.com/chihiro-adachi/items/0c781e68d1bcbab3c620
-http://docs.symfony.gr.jp/symfony2/cookbook/doctrine/reverse_engineering.html
**Entityの生成 [#hf3bb172]
dcm.ymlを生成した時点でプラグインをインストールしてテーブルを作成した状態にしておくと良さげ。~
さもないと No Metadata Classes to process. などと怒られる。
$ vendor/bin/doctrine orm:generate:entities --filter=Plugin\\プラグインフォルダ\\Entity\\EntityName --extend=Eccube\\Entity\\AbstractEntity app/
**Repositoryの生成 [#dc7fd18e]
$ vendor/bin/doctrine orm:generate:repositories --filter=Plugin\\プラグインフォルダ\\Entity\\EntityName app/
**プラグインのインストール [#fcbe4208]
$ php app/console plugin:develop install --code プラグイン