SlideShare a Scribd company logo
2015/05/30
@PHPカンファレンス関西
株式会社ロックオン 高橋 慎一
もくじ
● 自己紹介
● EC-CUBE3が目指すもの
● 生まれ変わるEC-CUBE3
もくじ
● 自己紹介
● EC-CUBE3が目指すもの
● 生まれ変わるEC-CUBE3
あんただれ?
● 高橋 慎一 / たかぴー / 26歳 / ♂
Twitter: @takapyyy
GitHub:@shinichi-takahashi
● 所属:株式会社ロックオン / EC-CUBE事業部
● PHPカンファレンス関西2015実行委員長
● 関西フロントエンドUG立ち上げの一人
● カノジョがほしい
もくじ
● 自己紹介
● EC-CUBE3が目指すもの
● 生まれ変わるEC-CUBE3
プ ラ グ イ ン 競 合
の
解
決
EC-CUBE2.12系から導入されたプラグイン機構。
集客・物流などのサービス連携や各種機能カスタマ
イズについて、個別に開発することなく、EC-CUBE
にインストールするだけで、簡単に機能を追加でき
る仕組みのことだ。自社サービスとの繋ぎ込みプラ
グインや、EC-CUBE本体のカスタマイズプラグイン
などあらゆる機能をプラグインとして提供することが
可能になるなど、夢が広がった。しかし、そこには開
発当初では気づく(築くとかけてる)ことができないい
くつも課題があった。EC-CUBEは、かつてデザイン
テンプレートというプラガブルな機構を採用し、モー
ルでもASPでもできなかった、もっと言えば、スクラッ
チ以外の道がない「デザインの自由度」を切り拓くこ
とに成功した。プラグインは複数組み合わせていれ
ることが多々あり、プラグイン機構自体が、競合の検
知・解決に対して強くなく、プラグイン依存関係につ
いて話題にあがることも多い。ECにはもちろん決済
というお金に関わる機能があるため、より安心してつ
かえなければならない。
EC-CUBE2.12系から導入されたプラグイン機構。
集客・物流などのサービス連携や各種機能カスタマ
イズについて、個別に開発することなく、EC-CUBE
にインストールするだけで、簡単に機能を追加でき
る仕組みのことだ。自社サービスとの繋ぎ込みプラ
グインや、EC-CUBE本体のカスタマイズプラグイン
などあらゆる機能をプラグインとして提供することが
可能になるなど、夢が広がった。しかし、そこには開
発当初では気づく(築くとかけてる)ことができないい
くつも課題があった。EC-CUBEは、かつてデザイン
テンプレートというプラガブルな機構を採用し、モー
ルでもASPでもできなかった、もっと言えば、スクラッ
チ以外の道がない「デザインの自由度」を切り拓くこ
とに成功した。プラグインは複数組み合わせていれ
ることが多々あり、プラグイン機構自体が、競合の検
知・解決に対して強くなく、プラグイン依存関係につ
いて話題にあがることも多い。ECにはもちろん決済
というお金に関わる機能があるため、より安心してつ
かえなければならない。
割 愛
もくじ
● 自己紹介
● EC-CUBE3が目指すもの
● 生まれ変わるEC-CUBE3
● Silex
● GitHub
● WebDesign
生まれ変わるEC-CUBE
● Silex
● GitHub
● WebDesign
生まれ変わるEC-CUBE
Silex - base
# before
/data
/class
/Customer
/Product
...
/class_extends
/Smarty
/smarty_extends
/module(Pear)
app_initial.php
Silex - directory structure
# after
/src/Eccube
/Controller
/Entity
/Form/Type
/Repository
/Resource
/Service
Application.php
/vendor(SymfonyComponents)
# after
Application.php
ProductRepository.php
ProductController.php
Silex - file name
# before
SC_Init.php
SC_Query.php
LC_Page_Admin_Product.php
# column / Coding Style in Lockon
● GC / gf : Global Class / function
● SC / sf : Site Class / function
● LC / lf : Local Class / function
● PSR-2 / PSR-4
● Composer
● DoctrineORM
● Twig
● Plugin
○ Form¥Events
○ Middleware ( before / after )
Silex - others
● PSR-2 / PSR-4 <- 独自
● Composer <- 内包してた
● DoctrineORM <- Pear::MDB2
● Twig <- Smarty
● Plugin <- 独自
○ Form¥Events
○ Middleware ( before / after )
Silex - others
● Silex
● GitHub
● WebDesign
生まれ変わるEC-CUBE
GitHub
GitHub - revert
GitHub - revert
GitHub - revert
GitHub - revert
GitHub - CI
メーリングリスト
オンプレでJenkinsを構築・運用
コミッターがなれない
SVNの変更を通知
リバートの連続
結果を通知
オンプレでTracを運用
アカウント発行が大変
ML登録を手動で
GitHub - CI
やってみた系
規約・仕様のたたき台
コアメンバーの議論
GitHubの通知受け取り
PHP5.3 - 5.5
PostgreSQL/MySQL
Windows Server
カバレッジ
コード品質
開発の中心
PR運用
● Silex
● GitHub
● WebDesign
生まれ変わるEC-CUBE
WebDesign - Bootstrap
#before
WebDesign - Bootstrap
#after
WebDesign - Bootstrap
# before
● 基本情報管理
● 商品管理
● 会員管理
● 受注管理
● 売上集計
● メルマガ管理
● コンテンツ管理
● デザイン管理
● システム設定
● オーナーズストア
# after
● ホーム
● 商品管理
● 受注管理
● 売上管理
● 会員管理
● コンテンツ管理
● 設定
ショップオーナーにとって使いやすい
ように!
WebDesign - menu
#before
1. カゴの中
2. お届け先
3. 支払方法・ポイント設定
4. 確認
5. 注文完了
WebDesign - cart flow
#after
1. カゴの中
2. 確認 ( お届け先 / 支払方法
/ ポイント設定 )
3. 注文完了
#column
2系では、カード決済導入することで購入完了まで
最大 7STEP かかっていた
Beta2 : 2015/06/02
RC : 2015/06/12
Product : 2015/06/XX
Milestone
SymfonyComponentで
進化するEC-CUBE
みなさんのPull Requestを
お待ちしております!
さいごに

More Related Content

PPT
EC-CUBE on Bootstrap3 - Gunma.web#16
PPTX
難しいよね、コードレビュー
PPTX
Web開発の 今までとこれから
PDF
120225 bootstrap
PPTX
♡PHPが恋しい話♡
PDF
Gitライフをはじめましょう〜GUIツールで簡単運用 Mac編〜
PPT
プラグインの紹介など
PPTX
PHPから離れて感じるPHPの良さ
EC-CUBE on Bootstrap3 - Gunma.web#16
難しいよね、コードレビュー
Web開発の 今までとこれから
120225 bootstrap
♡PHPが恋しい話♡
Gitライフをはじめましょう〜GUIツールで簡単運用 Mac編〜
プラグインの紹介など
PHPから離れて感じるPHPの良さ

What's hot (20)

PDF
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
KEY
続・Twitter bootstrap入門 #html5j
PPTX
Visual Studio Code で C# でのアプリ開発
PPTX
Chrome-eject がこの先生きのこるには
PPTX
Cakephp3 ドキュメント翻訳会 成果発表会
PPTX
初めてでもOK : )『concrete5』でサイトを作ろう!
PPTX
react-jsonschema-formについて
PDF
最近知ったBootstrapの注意点
PDF
BACKBONE.JSによるWebアプリケーション開発について
PDF
Browser oh browser browser
PDF
プロトタイピングでしあわせになろうよ
PDF
Kddi mugen lab
PPTX
Start PWA from vuejs+github pages
PDF
Rails templateで開発の初速を上げよう
PDF
Webサービスを作るときの9の間違い
PDF
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
PPTX
プログラミング初心者向け情報サイト「プロスタ」
PDF
ディレクタ兼エンジニアの仕事@Creators MeetUp #36
PDF
iPhoneアプリを Javaで書くよ?
PDF
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪
GUIツールで送る快適な Gitライフ@Creators MeetUp #29
続・Twitter bootstrap入門 #html5j
Visual Studio Code で C# でのアプリ開発
Chrome-eject がこの先生きのこるには
Cakephp3 ドキュメント翻訳会 成果発表会
初めてでもOK : )『concrete5』でサイトを作ろう!
react-jsonschema-formについて
最近知ったBootstrapの注意点
BACKBONE.JSによるWebアプリケーション開発について
Browser oh browser browser
プロトタイピングでしあわせになろうよ
Kddi mugen lab
Start PWA from vuejs+github pages
Rails templateで開発の初速を上げよう
Webサービスを作るときの9の間違い
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
プログラミング初心者向け情報サイト「プロスタ」
ディレクタ兼エンジニアの仕事@Creators MeetUp #36
iPhoneアプリを Javaで書くよ?
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪
Ad

Viewers also liked (9)

PPTX
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
PPTX
EC-CUBE 2.4系から3.0系へ移植してみました
PPTX
EC-CUBE3プラグイン仕様
PPTX
AWS新サービス活用事例
PDF
フロントエンドフレームワークの選び方 - 20170320
PPTX
PSR-1 と PSR-2 を 5分でざっくり理解する
PDF
新標準PSRに学ぶきれいなPHP
PDF
MySQLerの7つ道具
PPTX
ぼくがAthenaで死ぬまで
EC-CUBE Ver2とVer3 どう違う? 構築と運用の実際
EC-CUBE 2.4系から3.0系へ移植してみました
EC-CUBE3プラグイン仕様
AWS新サービス活用事例
フロントエンドフレームワークの選び方 - 20170320
PSR-1 と PSR-2 を 5分でざっくり理解する
新標準PSRに学ぶきれいなPHP
MySQLerの7つ道具
ぼくがAthenaで死ぬまで
Ad

Similar to Symfonyコンポーネントで生まれ変わるEC-CUBE (20)

PPTX
201703 EC-CUBE 3.1開発方針説明会:機能カスタマイズ編 01_全体方針
PDF
2016 07-16 PHPカンファレンス関西2016(EC-CUBE)
PPT
EC-CUBEの設計思想について
PPTX
EC-CUBE3系より新しい EC-CUBE2系の開発事例紹介
PPTX
201706 EC-CUBE 3.1開発進捗説明会:デザインカスタマイズ&新機能編 01_全体方針
PPTX
201710_EC-CUBE 開発進捗説明会:開発背景・今後のスケジュール
PDF
EC-CUBEユーザカンファレンス2016
PDF
201803_EC-CUBE開発進捗説明会_1_3.n概要説明
PPTX
EC-CUBE と PayPal は仲良しか?
KEY
【初心者向け】EC-CUBE プラグイン作成 ハンズオンセミナー @ 名古屋
PDF
12 総合演習Word Pressの利用
PPTX
独自Ecサイト立ち上げワンストップセミナー 0907
PPTX
EC-CUBEプラグイン制作のポイント
PPTX
EC-CUBE関西UG勉強会(EC-CUBE2系から3系へ移行にまつわるエトセトラ)
PDF
EC-CUBEをEngineYardで動かそう!
PPTX
Ec cubeで仕事をするということ
PPTX
201703 EC-CUBE 3.1開発方針説明会:機能カスタマイズ編 02_機能カスタマイズのためのアーキテクチャ
PDF
Ec cube開発合宿 プラグインセミナー
PPTX
EC-CUBE と PayPal の縁結び
PDF
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
201703 EC-CUBE 3.1開発方針説明会:機能カスタマイズ編 01_全体方針
2016 07-16 PHPカンファレンス関西2016(EC-CUBE)
EC-CUBEの設計思想について
EC-CUBE3系より新しい EC-CUBE2系の開発事例紹介
201706 EC-CUBE 3.1開発進捗説明会:デザインカスタマイズ&新機能編 01_全体方針
201710_EC-CUBE 開発進捗説明会:開発背景・今後のスケジュール
EC-CUBEユーザカンファレンス2016
201803_EC-CUBE開発進捗説明会_1_3.n概要説明
EC-CUBE と PayPal は仲良しか?
【初心者向け】EC-CUBE プラグイン作成 ハンズオンセミナー @ 名古屋
12 総合演習Word Pressの利用
独自Ecサイト立ち上げワンストップセミナー 0907
EC-CUBEプラグイン制作のポイント
EC-CUBE関西UG勉強会(EC-CUBE2系から3系へ移行にまつわるエトセトラ)
EC-CUBEをEngineYardで動かそう!
Ec cubeで仕事をするということ
201703 EC-CUBE 3.1開発方針説明会:機能カスタマイズ編 02_機能カスタマイズのためのアーキテクチャ
Ec cube開発合宿 プラグインセミナー
EC-CUBE と PayPal の縁結び
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア

More from Shinichi Takahashi (10)

PPTX
BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略
PDF
(Un)ManagedBlockchain
PPTX
ここがつらいよ サーバーレス
PPTX
20171005 告白に学ぶ http status code
PPTX
「関心事」と「責務」 の お話
PPTX
PHPerだってMicroservicesしたい!
PPTX
Let’s make elastic cms together!
PPTX
事例から見るTwilio活用法
PPTX
IoTの原点
PPTX
日常に見るUI/UX
BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略
(Un)ManagedBlockchain
ここがつらいよ サーバーレス
20171005 告白に学ぶ http status code
「関心事」と「責務」 の お話
PHPerだってMicroservicesしたい!
Let’s make elastic cms together!
事例から見るTwilio活用法
IoTの原点
日常に見るUI/UX

Symfonyコンポーネントで生まれ変わるEC-CUBE

Editor's Notes

  • #2: symfony componentで生まれ変わるEC-CUBEと題して、EC-CUBE3がどう変わったのか、お話させていただきます。
  • #5: メガネが白い、とおぼえていただければと思いますが、もちろんメガネは買い換えるし、なんやったらメガネが白い以外いわれることないです。かなしいです。
  • #6: ここから、なぜSymfonyComponentベースで作りなおすことにしたのか、いくつか理由はありますが、その中でも大きな課題があります。 それはなにか、
  • #7: EC-CUBEにはプラグイン機構があります。プラグイン機構と、「競合の解決」とはなんなのか。
  • #8: わーわー書いてますが、割愛します。
  • #9: とにかく、プラグインの競合問題を検知・解決することを目的のひとつとしています。 今回EC-CUBE3をつくった意図は、ここに大きく意味をもっています。 もちろん、プラグインの競合を解決する意味合いだけでなく、密結合なコードをひもといていき、テストしやすい形をつくる目的もあります。
  • #16: いままでこの辺どうしてたかというと