EC-CUBE4始めました
最近Nintendo-Switchを買い、毎晩3D酔いして老いを感じている、fujiです。
EC-CUBE3向けのソースを、EC-CUBE4で動くように修正しているのですが、なかなか苦戦しています。
構造、コンテナ作成、マイグレーション、ルーティングの仕組みや、EC-CUBE関数の処理がいくつか変わっており、一進一退しながら進めています。
4.0はリリースしたばかりということもあり、公式ドキュメントが整備中で、ネット上にも資料が少ないです。
公式ドキュメントの正式リリースもお待ちしています!w
最近時間をかけた個所
マイグレーション
EC-CUBE3:PluginManagerに対象ファイル名を書いて、インストール時に実行。
EC-CUBE4:Entityにアノテーションで指定して、インストール時に実行。
ファイルの差分を見ていたら、コメントが増えていることを発見。
ドキュメントにも記載があり、盲点でした。。
http://doc4.ec-cube.net/customize_entity
今後はコメントもよく読みたいと思います。
ちなみに、Controllerのルーティングもアノテーションで指定してました。
完全なURLの取得
EC-CUBE3:Applicationクラスのurlメソッド
EC-CUBE4:UrlGeneratorInterfaceクラスのgenerateメソッド
https://www.e2info.co.jp/
画像を表示させる為に、上記の形でURLを取得する必要がありました。
しかし、Applicationクラスが使えなくなっており、使えそうなメソッドはAbstractControllerにはあるものの、Eventクラスでは上手く呼び出せませんでした。
__constructにContainerInterfaceを追加して、get(‘サービスのID’)でサービスが取得でき、メソッドが使えるようになるようです。
下記でフロントのURLが取得できました。
$this->router->generate("homepage",array(),UrlGeneratorInterface::ABSOLUTE_URL);
この仕組みもドキュメントに記載がありました。
https://symfony.com/doc/3.4/service_container.html
ドキュメントを見ることの大切さを再認識。。