0

嗨,当我尝试包含任何标准库时,我遇到了问题。我已经将 Zend 文件夹导入此路径

/project
    /library
        /

这是我的脚本:

 require_once 'Zend/Db/Table/Abstract.php';

 require_once APPLICATION_PATH.'/models/ContentNode.php';

class Application_Model_Page extends Zend_Db_Table_Abstract
{


    public function createPage ($name, $namespace, $parentId = 0)
    {
        //create the new page
        $row = $this->createRow();
        $row->name = $name;
        $row->namespace = $namespace;
        $row->parent_id = $parentId;
        $row->date_created = time();
        $row->save();
        // now fetch the id of the row you just created and return it 
        $id = $this->_db->lastInsertId();
        return $id;
    }

这是我收到的错误消息

警告:include_once(Zend\Db\Table\Abstarct.php) [function.include-once]:无法打开流:C:\Zend\Apache2\htdocs\zendproject\library\Zend\Loader 中没有这样的文件或目录。第 146 行的 php

4

2 回答 2

2

根据您的错误,您拼写错误“抽象”

Warning: include_once(Zend\Db\Table\Abstarct.php) [function.include-once]:
 failed to open stream: No such file or directory in
 C:\Zend\Apache2\htdocs\zendproject\library\Zend\Loader.php on line 146

如果您将 Zend 框架用作 mvc 应用程序,也不需要在模型中添加包含文件。自动加载器应自动包含所需的文件。
确保您application.ini包含以下行:
includePaths.library = APPLICATION_PATH "/../library"
我不记得当 ZF 在库中时是否需要添加命名空间,所以我假设它是必需的。您可以尝试将该行添加autoloaderNamespaces[] = "Zend_"到您的 application.ini 中,这不会有任何影响,并且可能有助于确保 Zend 库被包含在内。以便正确包含库。然后您的库文件夹应如下所示:

/project_path
    /library
        /Zend

看起来您正在运行“Pro Zend 框架技术”一书中的代码。本书使用 Zend Framework 1.8 版。您可能正在使用 ZF 1.11。如果是这样,则需要注意几件事,因为自 1.8 版以来已经发生了一些变化。如果您是 ZF 的新手,这不应该是您的第一本书,因为它会让您发疯,如果您熟悉 ZF,那么它包含一些很棒的信息。

我有这本书的更新代码,所以如果你需要更多帮助......

于 2012-04-08T07:33:46.570 回答
1
set_include_path(get_include_path() . PATH_SEPARATOR . 'ZEND/FRAMEWORK/PATH');
于 2012-04-08T06:28:31.100 回答