Zend Frameworkは初恋の味

Zend_layoutを少しかじってみた
甘い、初恋の味がした

↑俺、テラ詩人wwwwww


■index.php

require_once 'Zend/Layout.php';
Zend_Layout::startMvc(array(
"layoutPath" => "レイアウトHMTLのパス",
"layout" => "レイアウトHTMLのファイル名"
// (.phtml不要)
"contentKey" => "viewファイルの変数名")
);

Zend_Controller_Front::run("/apps/controllers");

index.phpでレイアウトを決める
layout,contentKeyはデフォルト値がそれぞれlayout,content
以後、layoutPathは"/apps/layouts"と仮定



■/apps/controllers/IndexController.php

<?php
require_once "Zend/Controller/Action.php";
class IndexController extends Zend_Controller_Action {
public function indexAction() {
$this->view->assign("hello","Hello World!");
}
}
?>
特に何もしていない
$this->view->assignで変数を格納


■/apps/layouts/layout.phtml

---- HEADER ----
<?=$this->layout()->content?>

        • FOOTER ----

zend_layoutにより
layoutPath + layout + ".phtml"が読み込まれる
$this->layout()->content(contentKeyで設定した変数名)でViewRenderer部分を表示



■/apps/views/scripts/index.phtml

<?=$this->escape($this->hello)?>
/apps/layouts/layout.phtmlで読み込まれていない場合は表示されない
$this->escape(変数)はサニタイズ



ほかにもレイアウトHTMLを増やしたい場合はこんな感じか


■/apps/controllers/IndexController.php

$this->getResponse()

  • >insert('doctype',$this->view->render('doctype.phtml'));

IndexControllerメソッド内に追加
layout.phtml内に
<?=$this->layout()->doctype?>


こんな感じでレイアウトできるようだ。。。
まだ全体は把握できてない。。

あ〜〜〜キスしたいッスね^^