テンプレートファイルの $view と $this について

2017年6月14日 at 18:22

テーマのテンプレートファイルで利用されております以下について教えていただけますでしょうか。

1. $view->inc('elements/header.php');
concrete5の使い方・ヘルプ
http://concrete5-japan.org/help/5-7/developer/designing-for-concrete5/building-a-concrete5-theme/reusing-common-elements-in-theme-template-files/

2. $this->inc('elements/header.php');
Elemental テーマ default.php

上記はいずれも同じように動作するようですが $view と $this に違いはございますでしょうか。
またこれは以下についても同様でしょうか。

$view->getThemePath();
$view->url('/');

基本的な内容で恐縮ですがよろしくお願いいたします。


# concrete5 バージョン
5.7.5.13

# PHP バージョン
7.0.18

# サーバー
エックスサーバー

# クライアント
macOS 10.12 + Firefox 54

タグ:

Re: テンプレートファイルの $view と $this について

2017年6月28日 at 12:14
テーマ内のテンプレートファイルにおいては、$this も $view も同じ Concrete\Core\Page\View\PageView クラスのインスタンスですので、全く同じ挙動になります。

ただし、$this は擬似変数といい、文脈(どのファイルのどの場所に書かれているか)によってどのクラスを指すかが変わりますので、初心者は $view の方を使っておいた方が無難です。
 

Re: テンプレートファイルの $view と $this について

2017年6月29日 at 12:21
hishikawa様

本件承知いたしました。
elementsディレクトリのファイルを読み込む部分で両者が混在してしまい
どちらに合わせたらよいものかモヤモヤしておりました。
ご説明いただきましてありがとうございました。