私が達成しようとしているディレクトリ構造は次のようになります。
application/default/views/layouts/layout.phtml
application/default/views/scripts/index/index.phtml
application/admin/views/layouts/layout.phtml
application/admin/views/scripts/index/index.phtml
library/Zend
config/config.ini
public/index.php (bootstrap)
しかし、Zend に私の各モジュールで私の layout.phtml を見つけさせる方法がわかりません。
私のブートストラップには次のものがあります。
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application/'));
define('APPLICATION_ENVIRONMENT', 'testing');
//setup path to our library files
set_include_path( APPLICATION_PATH . '/../library' . PATH_SEPARATOR .
get_include_path() );
//register the autoloader
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
//set config in the registry
$config = new Zend_Config_Ini( APPLICATION_PATH . '/../config/config.ini', APPLICATION_ENVIRONMENT );
Zend_Registry::set('config', $config);
//setup logging
$writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . '/../log/debug.log');
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
//run!
$frontController = Zend_Controller_Front::getInstance();
$frontController->addModuleDirectory(APPLICATION_PATH);
//initialize Zend_Layout's MVC helpers
Zend_Layout::startMvc();
$frontController->throwExceptions(true);
try {
Zend_Controller_Front::getInstance()->dispatch();
} catch (Exception $exception) {
echo '<html><body><center>' . 'An exception occured while dispatching the front controller.';
if (defined('APPLICATION_ENVIRONMENT') && APPLICATION_ENVIRONMENT != 'production' ) {
echo '<br /><br />' . $exception->getMessage() . '<br />' . '<div align="left">Stack Trace:' . '<pre>' . $exception->getTraceAsString() . '</pre></div>';
}
echo '</center></body></html>';
exit(1);
}
どこが間違っていますか?
アップデート:
私はこれを長い間見ていないので、受け入れられた解決策は最新のものではないかもしれません. この質問に対する最新の解決策 (つまり、ZF 1.8+) を投稿したい人がいる場合は、そうしてください。これに対する解決策を探している他の人に役立つでしょう。