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
関連記事
-
「JP_Stipes Osaka meetup vol.1」を運営させていただきました
Stripeのユーザーグループ、JP_Stripesの大阪ミートアップの運営をさ …
-
Java SE 7 Silver模擬テストの結果間違えたとこをメモ 2015/2/12
模擬テスト1回目。 90問中79問正解。 正解率87%。 まだ不安。 いつものご …
-
「第1回 ぶろぐの勉強会」を開催します!
このブログは2021/3/2開催の「第1回 ぶろぐの勉強会」冒頭挨拶の共有資料代 …
-
No-Code JP 第0回で様々な熱い言葉を聞いて思ったこと
以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …
-
「JAWS-UG 名古屋 DR対策特集+LT」で発表しました
2021/3/29の「JAWS-UG 名古屋 DR対策特集+LT」で「ブログを大 …
-
Alexa Day 2018で「Alexa はどこにでも。AVSが開くAlexa Enabled なライフスタイル」を聞きました
photo by 金春さん スピーカーはオランダから一時帰国中の伊東のともさん …
-
「JAWS-UG佐賀 3年ぶり!re:Bootするよ!」に参加しました
全員自己紹介からスタートしました。 さくさくっとマイクをまわしてなんと10分まき …
-
「Serverless Days Tokyo 2023 サーバーレスで負荷試験を行う必要性と実践的プラクティスの紹介」を見ました
2023/9/23にServerless Days Tokyo 2023に参加し …
-
トラックボールユーザー集合!確実に何かが始まった日。
Logcool社のトラックボールマウス M570や他のトラックボールマウスを愛用 …
-
第5回 八子クラウド座談会in関西 「関西まるっとIoTでやったらんかい♬」に行ってきました
SIMの契約変更のはざまで通信がほぼ使えず。 そんな状態なので、Twitterで …