Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

第8回 Magento cafe plus

1,167 views

Published on

第8回Magento Cafe Plusで使用した資料です。
Magento2のディレクトリ構成や、Magento1.xとの違いについて解説しています。
また、Magento1.xのウィジェットについても解説しています。

Published in: Software
  • Be the first to comment

  • Be the first to like this

第8回 Magento cafe plus

  1. 1. Veriteworks Inc. 西 宏和 Magento Cafe Plus #8
  2. 2. Agenda • 最近のMagento & Imagine Conference • Magento2 エクステンションの作り方(その1) • Magento1 ウィジェットの作り方
  3. 3. 最近のMagento
  4. 4. Imagine Conference
  5. 5. Magento2 • やはりリリーススケジュールは変更なし(2015 4Q予定) • 開発者向けBetaがほぼ毎週リリース • ドキュメントやサンプルも鋭意更新中
  6. 6. Meet Magento 2015 Japan • チケット販売開始(6末まではなんと6,000円!) • Magento Inc.とOro Inc.から来日予定 • Meet Magento Associationほかからも来日予定
  7. 7. Magento1.x • CE 1.9.1.1リリース(SUPEE-5344対応) • CE 1.9.2.0近日リリース予定
  8. 8. Magento2 エクステンションの 作り方(その1)
  9. 9. 大前提としての知識
  10. 10. 要求システム構成の違い Magento1.x Magento2 Webサーバー Apache 2.2 / 2.4 Nginx IIS Apache 2.2 / 2.4 Nginx PHP 5.3.11以上 5.5.x / 5.6.x
 HHVM 3.6.x MySQL 5.1以上 5.6.x その他 php intl, PHPUnit 4.1.x, composer
  11. 11. Magento1とMagento2のディレクトリ構成の違い • Magento1(M1)とMagento2(M2)ではディレクトリ構成が異なる • エクステンションを構成するディレクトリ構成も異なる
  12. 12. M1のディレクトリ構成 app code core コアコード community コミュニティコード local ローカルコード design frontend 公開側テンプレート等 adminhtml 管理側テンプレート等 etc 設定ファイル locale ロケールファイル lib 共通ライブラリ js 共通javascriptファイル skin frontend 公開側スキン adminhtml 管理側スキン
  13. 13. M2のディレクトリ構成 app code Magento Magentoコアのコード Foo サードパーティエクステンション design frontend フロントエンドカスタムテーマ adminhtml バックエンドカスタムテーマ etc 設定ファイルなど i18n ロケール定義 bin magentoコマンド dev ユーティリティとテスト lib バンドルライブラリ類 pub 新ドキュメントルート setup インストーラー var 一時ファイル置き場 vendor composerライブラリ
  14. 14. M2のエクステンションディレクトリ 1階層目 2階層目 3階層目 4階層目 5階層目 app code Foo Example Api Block Controller etc Helper i18n Model Observer Service Plugin Pricing Setup Test view composer.json
  15. 15. M2で廃止になったもの • コードプール • Mageオブジェクト • local.xml • mageコマンド • Varienライブラリ一式
  16. 16. M2で新たに増えた要素(一部) • composer • Magentoフレームワーク • PSR • ネームスペース • コード自動生成 • 新しいXML定義 • ユニットテスト
  17. 17. コード自動生成 • 各種クラスの定義とコードを自動生成 • 生成したコードはvar/generation以下に配置 • XML定義と連動
  18. 18. 新しいXML定義(例) • di.xml • crontab.xml • email_templates.xml • events.xml • fieldset.xml • module.xml • validation.xml
  19. 19. 結論:M2はM1とかなり違う
  20. 20. ただし、M1の知識が役に立た ないわけではない
  21. 21. M2でも変わらない概念 • レイアウトXML(の存在) • フォールバック機構 • ロケールCSV
  22. 22. で、本題
  23. 23. 何はともあれ、公式サンプルを見る https://github.com/magento/magento2-samples
  24. 24. M2エクステンションで最低限必要なもの • composer.json • etcディレクトリとmodule.xml
  25. 25. ここからはコードを見ながら
  26. 26. Magento1 ウィジェットの作り 方
  27. 27. そもそもウィジェットって・・・ CMSページと静的ブロック上に埋め込むパーツとしてのウィジェット デザインテーマ上に埋め込むパーツとしてのウィジェット
  28. 28. CMSと静的ブロック上のウィジェット
  29. 29. CMSと静的ブロック上のウィジェット • あらかじめ定義されたパーツをCMSや静的ブロック上に埋め込む機能 • パーツは独自エクステンションを書くことで新しく追加することが可能
  30. 30. ウィジェットを構成する要素 • app/code/<code pool>/ベンダー名/エクステンション名/etc/widget.xml • widget.xmlが指定するテンプレート・ブロック等
  31. 31. widget.xml • ウィジェット選択のウインドウを定義するXML • widgetをルート要素とするツリーを書く • Mage/CmsやMage/Catalogにサンプルがあるので参考にすると楽
  32. 32. ウィジェットに使うブロック • ウィジェットに使うブロックは必ず、Mage_Widget_Block_Interfaceを実 装する • といっても、必要なメソッドは大抵既に実装されているので、宣言するだけ でOK
  33. 33. デザインテーマ上のウィジェット • ある特定のテーマ上に、CMSと同様にパーツを配置する機能 • テーマ依存なので、同じテーマを使うストアビューに等しく適用される • ウィジェットによって配置できる場所が決まっている
  34. 34. ウィジェットを構成する要素 • エクステンションごとのwidget.xml(CMS用と基本同じ) • テーマのwidget.xml
  35. 35. テーマのwidget.xml • 各テーマに1個だけ存在するファイル。 • なければ親テーマ・base/defaultに戻って適用
  36. 36. widget.xmlの役割 • テーマ固有の表示位置(ヘッダ・フッタ・左・右 など) • テーマ別に利用できるテンプレートの候補 • 要はエクステンション側の定義のオーバーライド
  37. 37. おわり

×