致命错误:在zend框架中调用成员函数setView()

时间:2011-04-01 23:18:38

标签: php zend-framework

我刚下载了zend框架(完整版)并将zend库复制到库文件夹中,但仍然出现此错误

致命错误:在第16行的/var/www/html/webkul/zf_1.8b1_app/application/Bootstrap.php中的非对象上调用成员函数setView()

请建议任何有关如何在linux环境中设置zend框架的工作教程

问候

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initView()
    {
        // Initialize view
        $view = new Zend_View();
        $view->doctype('XHTML1_STRICT');
        $view->headTitle('My Project');
        $view->env = APPLICATION_ENV;

        // Add it 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;
    }
}

3 个答案:

答案 0 :(得分:0)

我在安装Zend Framework时发现 this link 非常有用。也许你应该试一试。

另外,您可以在 download 部分找到文档。

然而,没有更好的地方可以看,然后是官方地点:)

答案 1 :(得分:0)

我不喜欢覆盖默认引导链的概念,包括创建视图实例,但我可以建议检索已创建的View对象实例 我会假设你也在使用布局

$this -> bootstrap ('layout');
$layout = $this -> getResource ('layout');
$view = $layout -> getView();
$view->addHelperPath('Dagho/View/Helper', 'Dagho_View_Helper');
$view -> doctype('XHTML1_STRICT');
$view->headMeta()->appendHttpEquiv('Content-Type',
        'text/html; charset=utf-8')
       ->appendHttpEquiv('Content-Language', 'en-US');;
$view->headLink(array('rel' => 'favicon',
        'href' => $view->baseUrl().'/img/favicon.ico'),
        'PREPEND');
$view -> headLink() -> prependStylesheet($view->baseUrl('/css/demo.css'))
        ->prependStylesheet($view->baseUrl('/css/text.css'))
        ->prependStylesheet($view->baseUrl('/css/960.css'))
        ->prependStylesheet($view->baseUrl('/css/reset.css'));

$view->headScript()->appendFile($view->baseUrl('js/jquery-1.5.1.min.js') , "text/javascript")
        ->appendFile($view->baseUrl('js/jquery-ui.min.js') , "text/javascript");
$view -> headTitle('WebSite title');
$view -> headTitle() -> setSeparator( ' : ' );
$trackerId = 'UA-XXXXXX-X';
$googleAnalytics = $view->GoogleAnalytics($trackerId);
Zend_Registry::set("view", $view);
return $view ; 

答案 2 :(得分:0)

你不需要在bootstrap类中做很多事情; Zend现在为你做了很多。在application.ini中,如果您使用以下行,它将为您初始化视图:

resources.view[] = ""

你也可以在那里设置doctype和其他参数,而不是调用$ view-> doctype():

resources.view.params.doctype = "XHTML1_STRICT"

如果您确实需要在引导程序中操作视图对象:

protected function _initViewSetup()
{
    $this->bootstrap('view');
    $view = $this->getResource('view');
    $view->env = APPLICATION_ENV
}