Submit Search
Upload
Magento cafe plus #12
•
Download as PPTX, PDF
•
0 likes
•
833 views
Hirokazu Nishi
Follow
Magento Cafe Plus #12で使用した資料です。 デザインテーマカスタマイズの話と、ユニットテストの話を取り上げています。
Read less
Read more
Software
Report
Share
Report
Share
1 of 38
Download now
Recommended
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
Hirokazu Nishi
第4回Magento Cafe Plus〜Rewriteと独自テーブル
第4回Magento Cafe Plus〜Rewriteと独自テーブル
Hirokazu Nishi
第3回 Magento Cafe Plus モジュール開発入門
第3回 Magento Cafe Plus モジュール開発入門
Hirokazu Nishi
第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門
第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門
Hirokazu Nishi
DW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンス
Akira Maruyama
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
Jqm20120210
Jqm20120210
cmtomoda
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報
yoshikawa_t
Recommended
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
Hirokazu Nishi
第4回Magento Cafe Plus〜Rewriteと独自テーブル
第4回Magento Cafe Plus〜Rewriteと独自テーブル
Hirokazu Nishi
第3回 Magento Cafe Plus モジュール開発入門
第3回 Magento Cafe Plus モジュール開発入門
Hirokazu Nishi
第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門
第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門
Hirokazu Nishi
DW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンス
Akira Maruyama
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
Jqm20120210
Jqm20120210
cmtomoda
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報
yoshikawa_t
SaCSS vol. 24
SaCSS vol. 24
jun sugimoto
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
コードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレート
Akira Maruyama
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Yikei Lu
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Mikiya Okuno
Form libraries
Form libraries
Atsushi Odagiri
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
Mami Shiino
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
ericsagnes
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
Mitsuru Katoh
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
ericsagnes
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
Scene BuilderでFXML
Scene BuilderでFXML
Yuichi Sakuraba
WordPressのテストとデバッグ方法
WordPressのテストとデバッグ方法
Tsuyoshi.
G * magazine 1
G * magazine 1
Tsuyoshi Yamamoto
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
Pyramid入門
Pyramid入門
Atsushi Odagiri
How to implement payment gateway integration for non-credit card on Magento2
How to implement payment gateway integration for non-credit card on Magento2
Hirokazu Nishi
Magento2 Overview
Magento2 Overview
Hirokazu Nishi
最新・Magentoを日本語で使うイロハ
最新・Magentoを日本語で使うイロハ
Hirokazu Nishi
More Related Content
What's hot
SaCSS vol. 24
SaCSS vol. 24
jun sugimoto
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
コードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレート
Akira Maruyama
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Yikei Lu
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Mikiya Okuno
Form libraries
Form libraries
Atsushi Odagiri
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
Mami Shiino
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
ericsagnes
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
Mitsuru Katoh
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
ericsagnes
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
Scene BuilderでFXML
Scene BuilderでFXML
Yuichi Sakuraba
WordPressのテストとデバッグ方法
WordPressのテストとデバッグ方法
Tsuyoshi.
G * magazine 1
G * magazine 1
Tsuyoshi Yamamoto
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
Pyramid入門
Pyramid入門
Atsushi Odagiri
What's hot
(19)
SaCSS vol. 24
SaCSS vol. 24
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
コードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレート
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Form libraries
Form libraries
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
Scene BuilderでFXML
Scene BuilderでFXML
WordPressのテストとデバッグ方法
WordPressのテストとデバッグ方法
G * magazine 1
G * magazine 1
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Pyramid入門
Pyramid入門
Viewers also liked
How to implement payment gateway integration for non-credit card on Magento2
How to implement payment gateway integration for non-credit card on Magento2
Hirokazu Nishi
Magento2 Overview
Magento2 Overview
Hirokazu Nishi
最新・Magentoを日本語で使うイロハ
最新・Magentoを日本語で使うイロハ
Hirokazu Nishi
第9回 Magento Cafe Plus
第9回 Magento Cafe Plus
Hirokazu Nishi
第7回 Magento Cafe Plus
第7回 Magento Cafe Plus
Hirokazu Nishi
第8回 Magento cafe plus
第8回 Magento cafe plus
Hirokazu Nishi
【Draft】サービス説明資料2017.03.01
【Draft】サービス説明資料2017.03.01
Kohta Wada
Viewers also liked
(7)
How to implement payment gateway integration for non-credit card on Magento2
How to implement payment gateway integration for non-credit card on Magento2
Magento2 Overview
Magento2 Overview
最新・Magentoを日本語で使うイロハ
最新・Magentoを日本語で使うイロハ
第9回 Magento Cafe Plus
第9回 Magento Cafe Plus
第7回 Magento Cafe Plus
第7回 Magento Cafe Plus
第8回 Magento cafe plus
第8回 Magento cafe plus
【Draft】サービス説明資料2017.03.01
【Draft】サービス説明資料2017.03.01
More from Hirokazu Nishi
Magento Meetup Tokyo 14 〜メンテナンス画面を極める
Magento Meetup Tokyo 14 〜メンテナンス画面を極める
Hirokazu Nishi
JP_Stripes Vol3 発表資料
JP_Stripes Vol3 発表資料
Hirokazu Nishi
20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento
Hirokazu Nishi
Magento Cafe Plus #6
Magento Cafe Plus #6
Hirokazu Nishi
第4回Magento Cafe Plus〜最近のMagento
第4回Magento Cafe Plus〜最近のMagento
Hirokazu Nishi
Akeneo PIM Overview
Akeneo PIM Overview
Hirokazu Nishi
Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Hirokazu Nishi
加速していくMagento 〜MDP2011参加レポート〜
加速していくMagento 〜MDP2011参加レポート〜
Hirokazu Nishi
Magento20100807
Magento20100807
Hirokazu Nishi
Magento20100709
Magento20100709
Hirokazu Nishi
Magento20100313
Magento20100313
Hirokazu Nishi
Magento20100226
Magento20100226
Hirokazu Nishi
More from Hirokazu Nishi
(12)
Magento Meetup Tokyo 14 〜メンテナンス画面を極める
Magento Meetup Tokyo 14 〜メンテナンス画面を極める
JP_Stripes Vol3 発表資料
JP_Stripes Vol3 発表資料
20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento
Magento Cafe Plus #6
Magento Cafe Plus #6
第4回Magento Cafe Plus〜最近のMagento
第4回Magento Cafe Plus〜最近のMagento
Akeneo PIM Overview
Akeneo PIM Overview
Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Magento cafe tokyo2~デザイナー向けMagentoの歩き方
加速していくMagento 〜MDP2011参加レポート〜
加速していくMagento 〜MDP2011参加レポート〜
Magento20100807
Magento20100807
Magento20100709
Magento20100709
Magento20100313
Magento20100313
Magento20100226
Magento20100226
Magento cafe plus #12
1.
Magento Cafe Plus
#12
2.
最近のMagento
3.
Magento 2サンプルデータ
4.
Magento2 Docker
5.
翻訳プロジェクト
6.
デザインカスタマイズのレシピ
7.
レイアウトXML再入門
8.
レイアウトXMLで使えるタグ タグ名 親要素 子要素 layout
なし ハンドルタグ ハンドルタグ layout block reference remove block ハンドルタグ block block action action block パラメータタグ reference ハンドルタグ block block action remove ハンドルタグ update ハンドルタグ パラメータタグ action パラメータタグ パラメータタグ
9.
タグで使える属性 タグ名 属性名 ハンドルタグ translate module block
name type template output as before / after action method ifconfig module translate reference name remove name パラメータタグ helper update handle
10.
nameとasの違い • as属性の値はテンプレート上で呼び出すときにの み使用。レイアウトXMLでas属性の値を指定しても 無駄。 • name属性はas属性がないときはas属性の代わりを する。レイアウトXML上で要素を指定する場合は常 にname属性の値を指定する。
11.
パラメータタグのhelper属性 • helper属性を与えることで、Helperクラスのメソッド に処理を委譲することができる – 翻訳させたり、変数によるテンプレートやURL切り替えな どができる •
パラメータタグの子要素で更にパラメータタグを定 義することで、Helperのメソッドに与えるパラメータ を定義できる
12.
例1 <reference name="customer_account_navigation"> <action method="addLink"
translate="label" module="myext" ifconfig="myext/mygroup/myparam"> <name helper="myext/label/getLinkLabel"/> <path>myext/page</path> <label helper="myext/label/getLinkLabel"/> </action> </reference>
13.
例2 <customer_account_login> <reference name="head"> <action method="setKeywords"> <keywords
helper="core/data/__"> <value>Some keywords</value> </keywords> </action> </reference> </customer_account_login>
14.
CSS/JSの削除 • あるページのCSSやJSが邪魔なんだけど・・・ • あるページに付けたいjQueryのプラグインがバー ジョンあわなくて(ry •
なんてときに便利な技
15.
例 <reference name="head"> <action method="removeItem"><type>skin_css</type><nam e>css/styles.css</name><params/></action> <action method="addItem"><type>skin_css</type><name>c ss/custom.css</name></action> </reference>
16.
テーマの継承関係 • 1.9まで – 現在テーマ
→ 現在テーマのdefault → base/default • 1.9から – 現在テーマ → 親テーマ → base/default – etc/theme.xmlをうまく使うこと
17.
facade • Mage_Core_Block_Template_Facade • appendで既に定義されている別ブロックを自分の 子ブロックとして定義できる •
商品ページで多用 – 他のページではつかってない・・・
18.
テンプレートとブロックのあれこれ
19.
jsをフッターに持ってきたい • page/html_headを使う – 別のnameで定義して、テンプレートも別指定にする •
Mage_Page_Block_Html_HeadにはJS/CSSタグを生 成する機能がある • ただし、全部をフッターに持ってこれないので注意 – Translatorとかは無理だった気が・・・
20.
テンプレートがなくても出力したい • Mage_Core_Block_Text_Listや Mage_Core_Block_Text_Tagを使う • あるいは独自でなにか実装してしまう
21.
特定のページだけテーマを変えたい • CMS/カテゴリ/商品であれば、設定で対処可能 • ではそれ以外のページの場合はどうする?
22.
フォールバックをうまく使う • マークアップをできるだけ共通化する – CSSとJSだけで出来るだけ見た目を調整する •
レイアウトXMLを使って、部分的にテンプレートや CSS/JSを入れ替える • つまりは変更点を局所化し、メンテしやすくする
23.
静的ブロックの埋め込み • 方法は2通り – レイアウトXMLであらかじめ定義しておく –
PHPコードをテンプレート上で直接書く • 静的ブロックを1個処理するのに最低でも2〜3本の SQLが「アクセスごとに走る」点に注意 – 便利だからと闇雲に埋めるのはNG – ブロックキャッシュをうまく使わないとサイトが遅くなる – またはフルページキャッシュの導入
24.
商用テーマの功罪 • 商用テーマは便利な機能がワンパッケージになっ ている – 素早くサイトを立ち上げたい時には大変便利 –
ある程度カスタマイズしてあるので、要件に合うときは すごく楽 • 反面、テーマ乗り換えの時が大変 – テーマ同士に含まれる機能の競合 – 機能の移植・統合・再実装・・・などなど
25.
ユニットテスト〜M1とM2〜
26.
Magentoとユニットテスト • そもそもMagento1の開発段階ではユニットテスト の概念がなかった (phpunitなどは既にあったのだが・・・) • サードパーティ実装のEcomDev_PHPUnitや公式の Test
Automation Framework(TAF)を使ってユニット テストをやるケースが続いていた。 (ただし、TAFは対応が遅かった)
27.
1.9.2.0での追加 • 公式のMTF(Magento Testing
Framework)の同梱 – ただし、1.9.2.0だけの話 • とはいえ公式にユニットテストのフレームワークが 付属することは喜ばしい
28.
Magento2では? • そもそもの前提としてユニットテストだけでなく、パ フォーマンステストやマイグレーションテストまで付 属 • テストコードを付属させるのが「当然」の流れに •
Magento Connectに公開するためには、テストコー ドを付属させることが絶対条件
29.
ユニットテストの実際
30.
EcomDev_PHPUnitの場合 • EcomDev_PHPUnitをまずインストールする – PHPunitももちろん必要 •
エクステンションのconfig.xmlに追記する • ドキュメントを読みながらテストコードをコツコツ書く – Modelだけじゃなく、BlockやControllerのテストもできる ので、色々試すとGood
31.
config.xml <phpunit> <suite> <modules> <My_Extension /> </modules> </suite> </phpunit>
32.
テストケース • app/code/コードプール/My/Extension/Test に配置する • テストする単位でファイルを分ける •
もっと詳しく知りたい場合は、 http://www.ecomdev.org/wp- content/uploads/2011/05/EcomDev_PHPUnit- 0.2.0-Manual.pdf を
33.
テストケースの例 class My_Exension_Test_Model_Customer extends EcomDev_PHPUnit_Test_Case { public
function setUp(){} public function tearDown(){} public function testSomething(){} }
34.
Magento2の場合 • そもそもユニットテスト機能はフレームワークに統 合されている • もちろんベースはPHPUnitなので、PHPUnitの経験 がある人の知識は無駄にならない •
テストケースは、Myextension/Test/Unit に置く • もちろんMTFも利用可能
35.
作り方 • app/code/My/Extension/Test/Unit以下にコードを 置く • namespaceを定義し、 PHPUnit_Framework_TestCaseを継承する •
あとはPHPUnitのお作法通り書いていく
36.
Magento Testing Frameworkの場合 •
1.9.2なら標準でついてくる – https://github.com/magento/mtf • 基本的に、Test Automation Frameworkの改良版 • Seleniumと連携してテストを行う、と言うもの • 正直、フロントエンドのテストは辛い。主にバックエ ンドのテスト向け
37.
フロントエンドのテストが難しい理由 • マークアップに差がありすぎる – デフォルトのマークアップで調整しきれればよいが、通 常何かしらマークアップに変更が入っている •
テストケースの変更が多い – Webサイトなのだからこれは当たりまえ • 決済系のテストをどうするか、はそれなりに課題
38.
そもそも論 • ユニットテストの担当範囲をどこまでにするか? – Model/Block/Helperレベル? –
Controllerまでやるべき? • Magento2的解釈では、 – Model/Block/HelperとControllerの一部 → ユニットテスト – それ以外 →MTF, api-functional, integration, performanceなどの 専用テストツールを用いる
Download now