Re: パッケージコントローラーから使用するクラスを参照する部分の記述について

2018年4月16日 at 15:47

> 手元の環境ではどちらの記述でも動作するようですが両者はどのように使い分けられているのでしょうか。

すごく簡単に説明すると「使う人の好みと条件」になります。

もうちょっと詳しく説明すると、クラスのオーバーライドを許可するか、コアのクラスを使い続けることにこだわるかです。


use Theme;
use Package;

は、エイリアスクラスと呼ばれるものです。

/concrete/config/app.php
を御覧ください。

の中で「PageTheme」「Package」を検索していただくと、
「\Concrete\Core\Page\Theme\Theme」や「\Concrete\Core\Package\Package」のエイリアスとして指定している箇所をご覧いただけるかと思います。

結局的には、「PageTheme」「Package」も「\Concrete\Core\*」も変わらないのです。

ただ、「/concrete/config/app.php」の記述は「/application/config/app.php」で上書きできます。

なので、サイトによっては「PageTheme」「Package」が、別のクラスに割当てられている場合があります。

別のクラスへの割当てを許さない時は「\Concrete\Core\*」の表記を使います。

ただ、そういうカスタマイズをしている人は、特に Package や PageTheme は特殊ケースだと思いますので、結果的にはあまり変わらないのではないかと考えています。

(今まで Package や PageTheme クラスをオーバーライドをした人を見たことがないので・・・。)

Re: パッケージコントローラーから使用するクラスを参照する部分の記述について

2018年4月16日 at 20:28
Ueno様

/concrete/config/app.phpのエイリアス指定箇所を確認できました。
また少しconcrete5の理解を深められたように思います。
大変わかりやすい解説をいただきましてありがとうございました。