バージョン選択

フォーラム

メニュー

オンライン状況

58 人のユーザが現在オンラインです。 (48 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 58
もっと...

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > 管理機能 > ECCUBEがデフォルトで使用しているメソッドやプロパティについて

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
eri_0620
投稿日時: 2017/5/14 23:33
対応状況: 開発中
半人前
登録日: 2017/5/6
居住地:
投稿: 26
ECCUBEがデフォルトで使用しているメソッドやプロパティについて
[EC-CUBE] 3.0.12
[レンタルサーバ]
[PHP] 5.4.45
[データベース] MySql

symfonyのことをもっとわかっていれば聞く必要のないことかもしれくて、申し訳ないです!

dump()したときのデバッグ情報についてなのですが、たとえば、商品一覧ページにて、
{{ dump(pagination) }}
とすると


SlidingPagination {#1105 ▼
  -range: 5
  +renderer: null
  #currentPageNumber: 1
  #numItemsPerPage: 15
  #items: array:2 [▶]
  #totalCount: 2
  #paginatorOptions: array:6 [▶]
  #customParameters: []
}


このような情報が表示されるのですが、ECCUBEのソースをみると



{% for Product in pagination %}
    {{ Product.name }}
    {% if Product.description_list %}
    {{ Product.getPrice02IncTaxMin|price }}
    {{ Product.id }}
{% endfor %}



などが使用されていました。dump()ででてきたプロパティ以外のプロパティを使用されています。
こういったECCUBEが使用されているプロパティもデバッグできたらいいなと思うのですが、難しいでしょうか?
また、もしそうなら、これらを定義しているPHPファイルがあるような気がするのですが、どのあたりにあるのかわからなくて
よかったらご教授願えないでしょうか?
どうかよろしくお願いいたしますm(_ _)m

468
投稿日時: 2017/5/15 7:07
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 536
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
今回提示されているソースでいうと、
paginationの中にProductというクラスのインスタンスが格納されています。
このクラスのメソッドなどの定義は、以下のファイルに記述されています。
/src/Eccube/Entity/Product.php
(dumpの結果のitems:array:2の中身が[Product, Product]になっていると思います)

商品やカテゴリなどデータ自身を表すのにEntityクラスを利用していますので、
上記、ディレクトリ内をご確認いただくと、
クラスの名称から何となく、どのようなデータがECCUBEで定義されているか見えてくるのではないかと思います。

Order = 受注
OrderDetail = 受注明細
Category = カテゴリ
Customer = 会員


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

umebius
投稿日時: 2017/5/15 8:35
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: Tokyo
投稿: 670
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
なぜitemsというプロパティでProductが辿れるかという話だと思いますが、Paginationのクラス(/vendor/knplabs/knp-components/src/Knp/Component/Pager/Pagination/AbstractPagination.php) が準拠しているIteratorというインターフェースに関連しています。

これによってpaginationがforeachで呼ばれたときにitemsの要素を列挙するようAbstractPagination.phpで記述されています。

http://php.net/manual/ja/class.iterator.php


----------------
//////////////////////////////
(株)U-Mebius EC-CUBE3 カスタマイズ・高速化 ・バグ修正
EC-CUBE関連技術者の採用もお問い合わせください。


eri_0620
投稿日時: 2017/5/17 0:35
対応状況: 解決済
半人前
登録日: 2017/5/6
居住地:
投稿: 26
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
468 様

ありがとうございました!
該当の箇所を確認することができました!
Entityクラスをこのように追っていくんですね。
とても勉強になります。必要なデータを取得しているかどうかが少しだけ見えるようになりました。
ありがとうございました!
eri_0620
投稿日時: 2017/5/17 0:46
対応状況: 解決済
半人前
登録日: 2017/5/6
居住地:
投稿: 26
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
umebius 様

いつもありがとうございます!
Iteratorというメソッドがあるんですね!初めて聞きました!
すごくスマートなソースですね。でも自分で使いたいなって気持ちにはまだなれないです(汗)忘れたころに自分のソースではまりそうです・・・
PHPが簡単だってよく言われますけど、symfonyを知ればそれは誤解じゃないかなって思いそうですね
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 



ログイン


EC-CUBEガイドブック

統計情報

総メンバー数は19,366名です
総投稿数は81,313件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1619
4
yuh
1326
5
red
1049
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
778
10
umebius
670
11
tao_s
646
12 sumida 637
13
homan
633
14 karin 609
15 DELIGHT 571
16
468
536
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.