アドベントカレンダー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のリリースサイクルが変更になりましたという最近の公式発表。TwigVCCWとWockerの比較。wordpress開発の新しい選び方。Wocker」に行った議事録と感想。結論からいって、Dockerについてかなり理解が深まった。きっかけを与えてくれたWockerの作者のKiteさんにはただただ感謝。触発されて、今日ずっとDockerfileの書き方しらべてた。あとは、TDDの必要性だとか、CIの必要性だとかへの理解が深まり、ついでに、OSSの貢献の方法というか考え方だとか、いろいろと参考になった。仮想環境を利用しての開発環境についてのセッション。そのまえに、まずDockerについて触れておく。Comments久々に書くよ。2015のGWを使ってざーっと調べたメモとして。wordpressの開発環境とデプロイに関して調べてて、というかWP-CLI使おうかなーって重い腰を上げただけなんだけど、wordpressでも結構モダンな、いろいろおもしろい発見があるもんだなとおもった。やる人はちゃんとやってんだなーって。gulp)ひとつひとつ、掘り下げてたらきりがないので、エントリのタイトルのとおり、vccwとWordMoveで開発するのがいいかもって話、なにがいいかってところだけ書いて、一つ一つは別エントリで掘り下げていくことにする。今回はコードは書かない。2014ですけど、記憶に残ってるうちに忘れないようにメモポスト。隅々まで理解できるや。いうわけで、見たセッション順にレポート。基調講演WordPressのco-founderのMattの公演。ミュージシャン志望で、出身高校は音楽系の学校、ビヨンセを送り出した学校でもあり、そこではサックスばっかりしていた。1時間あたり$50のレッスン料が高いので、友人のミュージシャンのwebサイトや自作マシンを作る代わりに、レッスンをしてもらったって話。過去から、現在、近い将来のはなしへと。Gigazineが早速記事にしてたので、詳しくはそちらをみたほうがよさそう。http://gigazine.net/news/20140607-wordpress-matt-mullenweg-speech/世界中にスタッフがいて、リモートワークで成り立ってる企業だけど、来年150人雇用するとのこと。日本は大好きだけど、日本のことが一生理解できる気がしない(トイレとか特に)から、現地スタッフはどうしても居るよねって。リモートで成り立ってるところ、どうやって信用できる人間をえらべてるのか、最近個人的にすごい気になってて、人事まわり結構興味があったんだけど、いっぱい並んでて聞けなかった。2とCtagsの組み合わせがすごい。2では、Ctagsプラグインを使うことによって、コードナビゲーション(Class/Functionが定義されてるところへジャンプ)できるようになります。これ、僕のベスト10には入ってくる、お気に入りプラグインです。コーディング中にふとClassやFunctionの動作を知りたくなった時にいちいちFunction名をサイト内検索したり、ドキュメントサイトを開いて探さなくても、キーバインドで瞬時にそのClass/Functionが定義されてるところへジャンプして確認できると。(こういった機能のこと、コードナビゲーションとかコードナビゲートと呼ばれているようだ。NetbeansやEclipseなんかでは標準でついてる機能なのかな。2では標準で付いていない。)WordPressのテーマ、プラグイン開発などの小中規模の開発や、その他CMSやフレームワークを利用する際、ドキュメントを見るより、コードを見たほうが早く解決できることも多いので、効率的に開発できるようになります。文章で記述しても伝わりにくいので、英語ですが動画見てもらった方がイメージをつかみやすいかなと。(4:10~6:00ぐらいまで)次の上2つについては以前紹介しましたが、加えてコードナビゲーション機能があると、軽量で高機能のエディタへと進化します。FTPが使え、保存と同時にアップロードもできる。Sass/SCSSのコンパイルが簡単。コードナビゲーションが使える。2からCtagsをリビルドできるようになりましたので、共有したいとおもいます。開発環境[Drupal7]既に設定済みのFIELDTYPEをintegerからtextへ変更。Typesの一部のフィールドの型を変換する必要がありました。(「Integer」型→「text」型へ)Drupalの管理画面から行えず、Moduleもありませんでしたので、直接データベースの値を修正することになりました。作業時間1時間弱といったところです。検索してもみつからなかったので、せっかくですので、その手順を残しておきます。手順この手順は、Integer→textへの型変換の方法です。他の型の場合は手順2,3,4あたりの値が異なってくると思います。Displayページからフォーマットをリセット。2012に行ってきました。WordCamp東京でもWordCamp大阪でもありませんのであしからず。非力の英語力ながらもレポを残します。2012http://2012.vancouver.wordcamp.org/案の定、英語が難しい。ボイレコ持参し、自宅で聞き直してみても、やっぱり難しい。現地にいるときより難しい。いうわけで、まとめます。ボイレコの内容しっかり把握できたら書き直します。2部屋で行われ、全体の参加者は300人前後ぐらいかなと。wordpress[CMS]多言語化、翻訳ファイル.po、.mo。CommentsCMSなんかをいじっていると、.po、.mo、.potファイルなどで、多言語サイトができると。いいますか、翻訳するためのファイルが、.po、.mo、.potファイルのこと。難しそうだったのですが、すごく簡単でした。(WordPressの場合は、PHP-gettextという仕組みで多言語化をおこなっている。)po、mo、potファイル説明まずどいういったファイルなのかという所から。.pot:poの元になるファイル(テキストファイル)。.po:potファイルに翻訳文を記入したファイル(テキストファイル)。.mo:poファイルからgettextにより作成されたバイナリファイル。作成するにはツールが必要。WordPressが参照するファイル。.potファイルは翻訳元の文章のリストをまとめたテキスト。.poファイルはテキストエディタで編集できるが、.moはツールを使わなければ変換できない。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>を消す。