バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
eri_0620
投稿日時: 2017/5/17 0:46
対応状況: 解決済
常連
登録日: 2017/5/6
居住地:
投稿: 36
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
umebius 様

いつもありがとうございます!
Iteratorというメソッドがあるんですね!初めて聞きました!
すごくスマートなソースですね。でも自分で使いたいなって気持ちにはまだなれないです(汗)忘れたころに自分のソースではまりそうです・・・
PHPが簡単だってよく言われますけど、symfonyを知ればそれは誤解じゃないかなって思いそうですね
eri_0620
投稿日時: 2017/5/17 0:35
対応状況: 解決済
常連
登録日: 2017/5/6
居住地:
投稿: 36
Re: ECCUBEがデフォルトで使用しているメソッドやプロパティについて
468 様

ありがとうございました!
該当の箇所を確認することができました!
Entityクラスをこのように追っていくんですね。
とても勉強になります。必要なデータを取得しているかどうかが少しだけ見えるようになりました。
ありがとうございました!
umebius
投稿日時: 2017/5/15 8:35
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
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


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

468
投稿日時: 2017/5/15 7:07
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
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

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

スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,630名です
総投稿数は109,880件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1634
8
red
1569
9
mcontact
1262
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.