Zend Framework 1.5 PR 不具合?
Zend_Layout いじり中。
たぶん不具合
Zend/View/Helper/Placeholder.php の 23 行目で、Zend_Register を require_once しているけど、
これ多分、require_once 'Zend/View/Helper/Placeholder/Registry.php'; の誤り。
<?php /** * Constructor * * Retrieve container registry from Zend_Registry, or create new one and register it. * * @return void */ public function __construct() { $this->_registry = Zend_View_Helper_Placeholder_Registry::getRegistry(); }
Zend_View_Helper_Placeholder を new した時に呼ばれている __construct() で
クラスが見つからないと怒られる。
不具合か、自分の実装ミスか分からないけど、エラーになるやつ
例 19.6. インフレクタのカスタマイズ
ほとんどの場合は、既存のインフレクタを修正するだけで十分でしょう。 hしかし、さまざまな場所で別の形式のオブジェクトを使い分けたいこともあります。 Zend_Layout はそんな場合にも対応しています。
<?php $inflector = new Zend_Filter_Inflector('layouts/:script.:suffix'); $inflector->addRules(array( ':script' => array('CamelCaseToUnderscore'), 'suffix' => 'html' )); $layout->setInflector($inflector); ?>http://framework.zend.com/manual/ja/zend.layout.advanced.html#zend.layout.advanced.inflector
Zend_Loader_PluginLoader_Exception: Plugin by name CamelCaseToUnderscore was not found in the registry と怒られた・・・。
※ あ、あと細かいけど、上に引用したドキュメントの「しかし」の前に不要な「h」という文字がある。
2007/01/30 追記
id:takagimasahiro さんが早速修正して下さいました <(_ _)>
Zend_Layout で使用する suffix を変更しても、変更されてない?
というか、layout.phtml を読みにいこうとしてる。
<?php $view = new Smarty_View(null, $this->_smartyConfig); require_once 'Zend/Controller/Action/Helper/ViewRenderer.php'; $viewRender = new Zend_Controller_Action_Helper_ViewRenderer(); // テンプレートのデフォルトの拡張子 $viewSuffix = 'tpl'; $viewRender->setView($view) ->setViewSuffix($viewSuffix); Zend_Controller_Action_HelperBroker::addHelper($viewRender); $layoutPath = 'path/to/layout'; $layoutName = 'default'; $contentKey = 'CONTENTS'; require_once 'Zend/Layout.php'; Zend_Layout::startMvc(); $layout = new Zend_Layout(); $layout->setLayout($layoutName) ->setLayoutPath($layoutPath) ->setContentKey($contentKey) ->setView($view) ->setViewSuffix($viewSuffix);
Warning: Smarty error: unable to read resource: "layout.phtml" Smarty/Smarty.class.php on line 1095
むーー(´・ω・`)