EC-CUBEめも

プラグインジェネレーター

EC-CUBE3.0.13未満であれば無料のプラグインを導入することでひな形を作成できます。
http://www.ec-cube.net/products/detail.php?product_id=1022

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ファイルを生成します。
テーブル名が 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形式のファイルを解凍して使用してみましょう。

参考

Entityの生成

dcm.ymlを生成した時点でプラグインをインストールしてテーブルを作成した状態にしておくと良さげ。
さもないと No Metadata Classes to process. などと怒られる。

$ 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');
    }

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-19 (日) 19:09:21