質問: 現在、EC-CUBE3のカスタマイズをしているのですが、 EC-CUBE・Symfony・Silexどれもが初めてのため、悪戦苦闘しております。 日本語の情報や、まとまったドキュメントなども少ないようで、 ひとまず、調べたなかで評価の高かった「基本からしっかり学ぶSymfony2入門」で学習を進めているのですが、 書籍のコードとEC-CUBE3のコードで記述方法が異なっている箇所が多々見受けられ、 Symfonyの学習を進めても、EC-CUBEの理解が深まらないといった状況に陥っております。 (例)ルーティングの方法 EC-CUBEではControllerProviderで管理 書籍では各コントローラー内でアノテーションで指定 EC-CUBEではSilexというフレームワークも使用されているらしく、 「もしかしたら、EC-CUBEと書籍で記述方法が異なるはSilexが関係しているのか?」 と疑問に思い、今回質問させて頂きました。 Silexに関しては、全く理解できておらず、 そもそもフレームワーク(Symfony)の上にさらにフレームワーク(Silex)があるというところから、 よくわかっていません。 前置きが長くなりましたが、質問としては、 1EC-CUBE3における、SymfonyとSilexの関係 2それぞれの役割 3EC-CUBE3を理解するための、情報やアドバイス等 などを、教えていただけますと幸いです。 何卒、よろしくお願いいたします。
回答: ### 前提知識 まず`Symfony Component`と`Symfony Framework`は別物です。 前者の`Symfony Component`は、**再利用可能なPHPライブラリのセット**です。 後者の`Symfony Framework`は、多数の`Symfony Component`で構成された**フレームワーク**です。 今お持ちの書籍(基本からしっかり学ぶSymfony2入門)は、後者の`Symfony Framework`にフォーカスした本です。 ### 回答 > > 1EC-CUBE3における、SymfonyとSilexの関係 > > > `Silex`というフレームワークは`Symfony Component`を一部利用しています。 **EC-CUBE3**はその`Silex`というフレームワークを利用しています。 ※ちなみに**EC-CUBE4**から`Symfony Framework`が使われるようになりました。おそらくThe end of Silexの発表を受けてだと思っています。 > > 2それぞれの役割 > > > 上記の通り、`Silex`はフレームワークで、**その中の一部**で`Symfony Component`が利用されています。こちらでも回答しましたが`Laravel`も同様です。 なので今お持ちの書籍で`Symfony Framework`を学習しても、**EC-CUBE3**で利用している`Silex`や、`Laravel`が全て理解できるわけではないのです。 > > 3EC-CUBE3を理解するための、情報やアドバイス等 > > > 上記の通り **EC-CUBE3**の場合は`Silex`が利用されているため、EC-CUBE3のドキュメントやSilexのドキュメントを参考にされると良いでしょう。 **EC-CUBE4**の場合は、`Symfony Framework`が利用されているため、今お持ちの書籍に加え、EC-CUBE4のドキュメントやSymfony Frameworkのドキュメントを参考にされると良いでしょう。