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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
「JP_Stripes in Osaka Vol.2」でハンズオンをやりました
JP_Stripes大阪、早くも2回目の開催です。 自分が使ってみたいという目的 …
-
-
「Serverless Days Tokyo 2023 サーバーレスアーキテクチャを使って、小さく作って大きくする取り組み」を見ました
2023/9/23にServerless Days Tokyo 2023に参加し …
-
-
Innovation EGG 第6回 『IoT 今と未来』に参加してきました
雨を心配していましたが、曇り空ながら雨はやんで、180名強の方が参加されたInn …
-
-
JAWS PANKRATION 2021「AWS Control Towerを使用して企業コストのサンドボックスを作成と継続的アウトプットのメリット」発表しました
同時通訳配信 JAWS PANKRATION 2021 -Up till dow …
-
-
「kintone カスタマイズハンズオン」に行ってきました
ハンズオン中のメモです Rest API ログイン認証だとトークン認証で出来ない …
-
-
Manabees Drone Experience at.OSAKA VOL.5(ドローン飛行イベント)に行ってきました
ドローン飛行イベントなるものがDoorkeeperに出てたので行ってきました。 …
-
-
JP_Stripes Connect 2019で決済サービスの事例を聞いてきた
JP_Stripes Connect 2019が大阪で開催されるということで、行 …
-
-
Developers Summit 2018 「AWSのフルマネージドな環境でCI/CDをやってみよう!AWS Cloud9からAWS Fargateへの継続的デプロイをご紹介」を聞きました
※写真は展示のAmazon Echoです。 以下は、思ったことや気になったことを …
-
-
「大阪Pythonユーザの集まり」に行ってきました
「大阪Pythonユーザの集まり」 に行ってきました。 あんまりメモ取れてません …
-
-
「gusuku Meetup OSAKA Vol.1」に参加させていただきました
前回のkinotne Cafeの懇親会でふと言った「gusuku Meetupっ …
