EC-CUBE4.3以降では、services.yamlなどで指定したパラメータを取得しようとしても、ContainerInterfaceからgetParameterすることができません。

4.2以前のコードは次のようなエラーになります。

Attempted to call an undefined method named "getParameter" of class "Symfony\Component\DependencyInjection\Argument\ServiceLocator".

代わりにEccubeConfigというクラスから取得する方法をご紹介します。。

修正前(EC-CUBE4.2以前)

$templateDir = $this->container->getParameter('eccube_theme_front_dir');

修正後(EC-CUBE4.3以降)

/* @var $eccubeConfig EccubeConfig */
$eccubeConfig = $container->get(EccubeConfig::class);
$templateDir = $eccubeConfig->get('eccube_theme_front_dir');
日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ