EC-CUBE3.0系のカスタマイズを行っているとポイントプラグインやクーポンプラグインが有効かどうか、チェックしたい場面に度々遭遇します。
有効でないのにPimpleでポイントプラグインのレポジトリを利用しようとするとエラーとなってしまう場合などです。

そんな場合はPluginRepositoryを使用することでプラグインがインストールされているかどうかチェックすることが可能です。

プラグインがインストールされているかどうか

インストールされていない場合は$PluginはNULLとなります。

$Plugin = $this->app['eccube.repository.plugin']->findOneBy(
            array(
                'code' => 'Point',
                'del_flg' => Constant::DISABLED,
            )
        );

プラグインが有効化されているかどうか

有効化されていない場合は$PluginはNULLとなります。

$Plugin = $this->app['eccube.repository.plugin']->findOneBy(
            array(
                'code' => 'Point',
                'del_flg' => Constant::DISABLED,
                'enable' => Constant::ENABLED
            )
        );

これでプラグインが有効化されていればポイントプラグインのレポジトリやサービスを呼び出すようすれば、もしポイントプラグインが無効になっていてもエラーにならず安心です。