アドベントカレンダー23日目の記事です。写真はECCUBE開発合宿の深夜の1コマ。当初、作ったプラグインの案内でもしようかと思ったのですが、バグだらけで改善作業中なので、自分がECcubeを理解していく中で(まだまだわかってないですが)、自分なりのベストプラクティスを、これからECCUBEの開発を始めるヒトに向けて共有したいと思います。ちなみに、バグだらけのプラグインはgithubベースでメンテするというか、メンテフリーで行く予定なので、自由にパクって下さい。「ECCUBE3-InfiniteScroll」「MECCUBE3-Masonry」「ECCUBE3-Loveit」(3つありますが、内容似てまして、松竹梅的な。)思ってたのとなんか違う。私個人としては、Laravelは半年弱ほど触った程度。LaravelはSymfonyベース、ECCUBEはSilexベース、そのSilexはSymfonyベース、だからきっとなんとなくわかるはずと思ってたんですが、いざ蓋を開けてみると、「これ、思ってたんと違う。」というのが正直な感想。meetupに寄ってきました。」の出版されたけども、その著者が登壇されるということだったので、行かなきゃとい思いまして、毎度のことながらスケジュールつめこんで。Symfonyを学ぶことは近道。ECCUBEを始め、最近は著名なCMSやフレームワークがこぞってSymfonyを採用しはじめていますが、なぜSymfonyが選ばれるか。Symfonyが王道なのか。いった内容を話されていました。Wayみたいな◯◯Wayというベストプラクティスや強い主張があったりするけど、Symfonyというのは、主張してこないフレームワークであると。自分流にアレンジしやすいとのこと。「リクエストを受け取り⇒レスポンスを返す」というところ。Webアプリケーションの根本的な所を学ぶことができると。Wayの解釈ができるようになりますよ、とそういった内容でした。(※ちなみに、Symfonyの日本語ドキュメントのサイトは遅れているようで、翻訳ついていくのは諦め気味とおっしゃっておられました。」全300Pぐらいで、早速ですが簡単な所は読みました。初期の構想から発売まで二年半ぐらいとおっしゃっておられたような。書籍の構成としては、フレームワークとはなんぞやSymfonyとはなんぞや。(Doctrine)RepositoryFormValidationメール(Swiftmail)機能の拡張フィクスチャConsole拡張API実装サービスプロバイダテストが順に解りやすく落とし込まれてあり、読み進め、実際に手を動かしながら、一つのWEBアプリケーションができます。Symfonyの基礎が中盤ぐらいまででわかります。後半で、サービスプロバイダの解説がされてありますが、ここを理解することがSymfonyおじさんになる手段であり、みながSymfonyを採用する肝のようです。ここまで読みきれてません、まぁ正直難しいです。ECCUBEおじさんになるためには先に述べたとおり、基本的な所を読了するだけで、ECCUBEのディレクトリ構造がざっくり理解できるようになります。するとまぁ、ECCUBEとSymfonyとの違いがなんとなくわかりはじめます。Symfonyは個性を主張してこないと述べましたが、Symfonyのチュートリアル的なものをしていると、アノテーションとか、手軽だけど、なんか魔法ばっかり。思っきり個性を主張してきます。Overflow様がSymfonyの解決するための黒魔法を教えてきます。ECCUBEではこの魔法が全く役に立たずハマります。そこで、Symfony本に目を通しておきますと、ホグワーツ魔法学校に通ったようなものですから、この先生の言ってることは、こう読み替えればよいのかとか、Silexの領域だなとか、ほんの少し見えてくるようになります。最後にSilexやDoctrine、Symfonyのドキュメンテーションへと理解を深めていく旅に始まります。Silexにどっぷりは必要?おそらく、ECCUBEを深く知る上では、Symfonyの基礎を把握する⇒必要に応じてSilexのドキュメントを見るという流れではありますが、Silexのドキュメントもなかなかしんどいです。ECサイト作成程度の話であれば、Silexには触れず、Symfonyの基礎を把握する⇒ECCUBEのコアのコードからパクる。⇒必要に応じてSilexのドキュメントというのがベスト・プラクティスじゃないかなと思っています。いいますのも、Symfony基礎がわかるとディレクトリ構造がわかるので、コードのたどり方がなんとなくわかってきて、ECCUBEコアに、ピンポイントで似た例がでてくるのがほとんど。Silexのドキュメント見るより手っ取り早いと感じるからです。コア開発者になるなら、SilexもSymfonyサービスプロバイダもしっかり理解してください。いうことになるんだと思います。さいごにECcubeの話というより、Symfonyの話がほとんどになってしまいました。最後になりますが、ECCUBEはSilexベースですが、Symfonyかじらず、いきなりSilexから入っちゃうと遠回りになると思うので。王道からと、オススメしつつ、アドベントカレンダーをバトンタッチしたいと思います。meetupで知った部分貼っていきます。参考になれば幸いです。PracticesSymfonyの学びかたSymfonyの歩き方Symfonyのリリースサイクルが変更になりましたという最近の公式発表。ENTRYREADME.mdファイル。マークダウン記法まとめ一石三鳥!?SublimeText2とsass/SCSS(compass)+SFTP(FTP)で作業効率化する方法。3つの簡単便利Javascriptテンプレートエンジン。2とCtagsの組み合わせがすごい。2012へ行ってきた、まとめ[CMS]多言語化、翻訳ファイル.po、.mo。パララックスでのイベントの考察。mousewheelCodaとZen-Codingのショートカットまとめ。[Drupal7]既に設定済みのFIELDTYPEをintegerからtextへ変更。ENTRYLaradockでホストマシンの変更が反映されない場合の対策Interventionで日本語表示対策。imagesに表示される<none>を消す。