zend set / getScriptPath问题:

时间:2009-10-21 08:12:06

标签: zend-framework

我正在通过Apress书籍“Beginning Zend Framework” - 并努力让其中一个例子起作用。

目的是使用setScriptPath规避标准目录结构。本教程不是将操作的关联视图脚本存储在scripts目录中,而是要求您将其保存在项目目录的其他位置。我已将其存储在应用程序的根目录中。这是代码:

public function updateAction()
    {
    //get the artists
    $artist = array("Thievery Corporation","The Eagles","Elton John");

    //set view variables
    $this->view->artists = $artist;

    //locate the view
    $this->view->setScriptPath('/application/');
    $this->render("update");
    }

然而,当我尝试访问www.domain.com/account/update时 - 它说无法找到脚本。我需要知道的是如何定义文件夹相对于框架结构的位置。我在现有脚本文件夹中的脚本上使用了getScriptPath,但它们返回绝对硬盘路径,我不确定是否正确 - 当然我不能使用update.phtml脚本中的getScriptPath,因为我可以加载它。

任何能够帮助我的帅哥?

2 个答案:

答案 0 :(得分:3)

解决此问题的最简单方法是在索引文件中定义一个包含应用程序绝对路径的常量。

define('APPLICATION_PATH', '/path/to/your/application/');

//Bootstrap is called somewhere here.

这使您可以在需要设置/添加脚本路径时使用它。

$this->view->setScriptPath(APPLICATION_PATH);
//$this->view->addScriptPath(APPLICATION_PATH . 'some/other/dir/');

希望这有帮助。

答案 1 :(得分:3)

我更喜欢

define('APPLICATION_PATH', dirname(__FILE__) . '/../application/');

在我的/public/index.php文件中。因为它可以重复使用并且万无一失:)