2011-05-11 42 views
1

在Zend框架中,如何在我的bootstrap.php文件中使用setHelperPath方法使框架可以访问“My_View_Helper_Test”(假设Helper绝对路径是常量'MY_PATH')?Zend setHelperPath in Bootstrap

我的index.php

//identify the location of th application dir in respect to 
//the botstrap file's location, and configure PHP's include_path to 
//include the library directory's location 

define('APPLICATION_PATH',realpath(dirname(__FILE__).'/../application')); 
set_include_path(APPLICATION_PATH.'/../library'.PATH_SEPARATOR.get_include_path()); 


//give the zend framework the ability to load classes on demand, 
//as you request them,rather than having to deal with require() statements. 

require_once 'Zend/Loader/Autoloader.php'; 
Zend_Loader_Autoloader::getInstance(); 

//retrieve the BOOTSTRAP file 
try 
{ 
require'../application/bootstrap.php'; 
} 
catch(Exception $exception) 
{ 
printf('Could not locate bootstrap.php'); 
exit(1);  
} 

//start using the front controller in order to route all requests 
Zend_Controller_Front::getInstance()->dispatch(); 

我的bootstrap.php

//configure the site environment status 

defined('APPLICATION_ENVIRONMENT')or define('APPLICATION_ENVIRONMENT','development'); 

//invoke the front controller 
$frontController=Zend_Controller_Front::getInstance(); 

//identify the location of the controller directory 
$frontController->setControllerDirectory(APPLICATION_PATH.'/controllers'); 

//create the env parameter so you can later access the environment 
//status within the application 

$frontController->setParam('env',APPLICATION_ENVIRONMENT); 

//clean up all allocated script resources 
unset($frontController); 

感谢

卢卡

回答

2

首先,你应该有一个自举类是这样的: http://framework.zend.com/manual/en/zend.application.examples.html

那么你的自举类中,你会添加一个方法来初始化视图,并添加视图助手路径:

/** 
* Initializes the view 
* 
* @return Zend_View A view object 
*/ 
protected function _initView() 
{ 
    // Initialize view 
    $view = new Zend_View(); 

    // Add view helper path 
    $view->addHelperPath(
     MY_PATH, 
     'My_View_Helper' 
    ); 

    // Add the view to the ViewRenderer 
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
     'ViewRenderer' 
    ); 
    $viewRenderer->setView($view); 

    // Return it, so that it can be stored by the bootstrap 
    return $view; 
} 
+0

感谢,如果我想使用旧的程序办法(不想使用自举类是什么?既不zend_application) – luca 2011-05-12 07:29:32

+0

我还没有测试过它,但我想你可以在上面的'_initView()'方法中使用相同的代码,当然除了'return $ view'这行。 – 2011-05-12 13:18:38