バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
eri_0620
投稿日時: 2017/5/14 23:33
対応状況: 開発中
常連
登録日: 2017/5/6
居住地:
投稿: 36
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
居住地:
投稿: 805
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
今回提示されているソースでいうと、
paginationの中にProductというクラスのインスタンスが格納されています。
このクラスのメソッドなどの定義は、以下のファイルに記述されています。
/src/Eccube/Entity/Product.php
(dumpの結果のitems:array:2の中身が[Product, Product]になっていると思います)

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

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


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

umebius
投稿日時: 2017/5/15 8:35
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: Tokyo
投稿: 726
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
居住地:
投稿: 36
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
468 様

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

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


 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は20,616名です
総投稿数は83,613件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1663
4
yuh
1433
5
red
1077
6
fukap
907
7
shutta
827
8
468
805
9 ramrun 789
10
tsuji
784
11
umebius
726
12
tao_s
651
13 karin 641
14 sumida 638
15
homan
633
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.