EC-CUBE3.0 コードリーディング勉強会第1回目に行ってきました
2016/09/18
EC-CUBE3.0 コードリーディング勉強会第1回目に行ってきました。
ECサイト向けオープンソースソフトウェアのEC-CUBEのバージョン3が出て半年が経過してそろそろ本番環境での使用も始まりつつあることから、内部から機能を知るためとどれぐらいカスタマイズが出来そうかも知るために聞いてきました。
行ってみての感想は、「知っている人に教えてもらわなければ分からなかった。」です。
これはドキュメントだけ見てもすぐには分からないな、というものでした。
EC-CUBEを使う使わないは別として新しいPHPフレームワークの使い方を知るという事が重要と思いました。
目次
EC-CUBE3で使用しているフレームワーク
- Symfony2
-
Twig
Smartyとほぼ同じ -
Doctrine
Symfony2で使うORM(データベースのデータとPHPのクラスをマッピングして変換する技法) -
Silex
コマンド
1 2 |
php app/console router:debug |
パスとメソッドを確認出来る
コードリーディング
- src/Eccube/ControllerProvider/FrontControllerProvider.php
1 2 |
$c->match('/', '\Eccube\Controller\TopController::index')->bind('homepage'); |
第一引数のトップページが呼ばれた時に、
第二引数のTopControllerクラスのindexメソッドが呼ばれる。
bindではプログラム内での別名をhomepageにしている。
レンダリングされるtwigはResourceの下に格納されている
- default_frame.twig
1 2 3 4 |
<div id="main_middle"> {% block main %}{% endblock %} </div> |
- index.twig
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{% extends 'default_frame.twig' %} {% block main %} <div class="row"> <div class="col-sm-12"> <div class="main_visual"> <div class="item"> <img src="{{ app.config.front_urlpath }}/img/top/mv01.jpg"> </div> <div class="item"> <img src="{{ app.config.front_urlpath }}/img/top/mv02.jpg"> </div> <div class="item"> <img src="{{ app.config.front_urlpath }}/img/top/mv03.jpg"> </div> </div> </div> </div> {% endblock %} |
1 2 3 4 5 |
// 受注マスター検索用フォーム $searchOrderForm = $app['form.factory'] ->createBuilder('admin_search_order') ->getForm(); |
Form/Type/Admin/SearchOrderType.phpが呼ばれる
画面上にFormを作るときはまずFormTypeを作成する
Controller側でFotmTypeを呼び出す
Twigへ渡す
Twigはレンダリング処理をする
1 2 3 4 5 6 7 8 9 |
$builder // 受注ID・購入者名・購入者(フリガナ)・購入者会社名 ->add('multi', 'text', array( 'label' => '受注ID・購入者名・購入者(フリガナ)・購入者会社名', 'required' => false, 'constraints' => array( new Assert\Length(array('max' => $config['stext_len'])), ), |
$builderにaddしていく。
第二引数がinput type
1 2 3 4 5 6 7 8 9 10 11 12 13 |
return $app->render('index.twig', array( 'searchOrderForm' => $searchOrderForm->createView(), 'searchProductForm' => $searchProductForm->createView(), 'searchCustomerForm' => $searchCustomerForm->createView(), 'Orders' => $Orders, 'OrderStatuses' => $OrderStatuses, 'salesThisMonth' => $salesThisMonth, 'salesToday' => $salesToday, 'salesYesterday' => $salesYesterday, 'countNonStockProducts' => $countNonStockProducts, 'countCustomers' => $countCustomers, )); |
twigへ渡している
1 2 |
{{ form_widget(searchOrderForm._token) }} |
twigはオブジェクトに対してはドットシンタクスで記述する
- {% twigの関数を呼び出す
- {{ echoのように変数をそのまま表示
注意
install.phpはインストール、バージョンアップ後削除する
※ログインしなくても使えるため
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
Media-JAWS【第8回】「AWS人材教育について語る!」に参加しました。
Media-JAWS【第8回】「AWS人材教育について語る!」に参加しました。 …
-
「DevLOVE関西 ShareWisサービス開発の現場」に行ってきました
DevLOVE関西とは 「DevLOVE関西は素振りの場、現場は実践の場」 いつ …
-
「コミュニティリーダーズサミット in 高知 2023初鰹編」に参加しました
始まりました! 今回のテーマは「旗を立てる ~Raise Your Flag~」 …
-
Developers Summit 2024「Kubernetesは怖くない!開発者のためのインフラトラブルシューティング入門」を見ました
高橋 あおいさん つくって、壊して、直して学ぶ Kubernetes入門という本 …
-
DevLOVE関西「SIerから飛び出して、それからどうするの?」に行ってきました
DevLOVE関西「SIerから飛び出して、それからどうするの?」に行ってきまし …
-
Developers Summit 2024「パスワードレス認証とは?Passkeysを導入することで得られるユーザー体験と考慮点」を見ました
Okta Japan株式会社 プリンシパルデベロッパーアドボケイト 池原 大然さ …
-
「GitLab Meetup Tokyo #7: 新年度応援&GitLab 11.0」にSNS & ブログ枠で参加しました
GitLabのミートアップがあるのか!さすが大東京! GitLabのもとユーザと …
-
No-Code JP 第0回で様々な熱い言葉を聞いて思ったこと
以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …
-
Developers Summit 2018 「Spinnakerで実現するデプロイの自動化」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
TwilioJP-UG大阪 第二回 勉強会「Report SIGNAL2016」に行ってきました
TwilioJP-UG大阪 第二回 勉強会「Report SIGNAL2016」 …