2008年05月20日

そういえば、Viewについてはあまり語られていない

そういえば、だれもViewクラスについてはあまり多くを語っていませんね。$this->set()でビューにデータを送る以外は、単なるhtmlなんじゃないの?という声も聞こえてきそうです。

しかし、1.1のViewのコンストラクタにはこんなコードが入っていました。


function __construct(&$controller) {
if(is_object($controller)){
$this->controller =& $controller;
$this->_viewVars = $this->controller->_viewVars;
$this->action = $this->controller->action;
$this->autoLayout = $this->controller->autoLayout;
$this->autoRender = $this->controller->autoRender;
$this->base = $this->controller->base;
$this->webroot = $this->controller->webroot;
$this->helpers = $this->controller->helpers;
$this->here = $this->controller->here;
$this->layout = $this->controller->layout;
$this->modelNames = $this->controller->modelNames;
$this->name = $this->controller->name;
$this->pageTitle = $this->controller->pageTitle;
$this->viewPath = $this->controller->viewPath;
$this->params = $this->controller->params;
$this->data = $this->controller->data;
$this->webservices = $this->controller->webservices;
$this->plugin = $this->controller->plugin;
}
parent::__construct();
}


1.2では配列で設定されています。


var $__passedVars = array('viewVars', 'action', 'autoLayout', 'autoRender', 'ext', 'base', 'webroot', 'helpers', 'here', 'layout', 'name', 'pageTitle', 'layoutPath', 'viewPath', 'params', 'data', 'webservices', 'plugin', 'passedArgs', 'cacheAction');

$count = count($this->__passedVars);
for ($j = 0; $j < $count; $j++) {
$var = $this->__passedVars[$j];
$this->{$var} = $controller->{$var};
}



ViewのHTMLの中でも、かなりのデータにアクセスできます。うまく活用できるとなかなか便利ですね。
ラベル:view cakephp
posted by SDozono at 14:03| 東京 ☔| Comment(0) | TrackBack(0) | CakePHP View | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
手(パー)To make a comment: Please type your name and comment. at the validation field box, type 'cakephp'. And there two glay buttons. "Preview"/"Submit". Thank you!
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。