让Zend Framework与WAMP一起使用

时间:2011-02-03 08:49:50

标签: php zend-framework wamp

不确定我在这里做错了什么,我认为我不得不将我的PHP ini设置更改为

include_path = ".;c:\Program Files (x86)\WAMP\www\Zend\"

但它不起作用。

在我的剧本中,我只是:

require_once "Date.php";

但是得到错误:

Warning: require_once(Zend/Date/DateObject.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files (x86)\WAMP\www\Zend\Date.php on line 25

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Date/DateObject.php' (include_path='.;c:\Program Files (x86)\WAMP\www\Zend\') in C:\Program Files (x86)\WAMP\www\Zend\Date.php on line 25

非常感谢任何有关我所做错事的见解。

感谢。

5 个答案:

答案 0 :(得分:2)

您不应将Zend Framework目录添加到包含路径。您应该将父文件夹添加到包含路径。

因此,include_path = ".;c:\Program Files (x86)\WAMP\www\Zend\"将成为include_path = ".;c:\Program Files (x86)\WAMP\www\"

在设置这样的包含路径后,您应该使用require_once 'Zend/Date.php'而不是require_once 'Date.php'。这是因为框架内部仍然存在大量的require调用,每个调用都指向Zend/<classname>

答案 1 :(得分:1)

您的包含路径错误 - 您可以手动定义它,或者(更好)更改您的php.ini以添加您需要的包含位置...

http://www.geeksengine.com/article/php-include-path.html

编辑:这些可能对您有所帮助

Trouble setting up php Zend include path

http://devzone.zend.com/article/4683

答案 2 :(得分:1)

此处的每个人都建议您将库添加到包含路径中。我实际上不同意这一点。大多数托管服务提供商在包含路径上没有ZF,并且不允许您将其添加到一个。那么为什么要在开发环境中设置它呢?只是为了改变生产?

我建议你在root中创建一个库文件夹;将ZF放在那里,然后将你的应用程序添加到包含路径中。

E.g。 C:\瓦帕\ WWW \库\ Zend的

然后,对于每个应用程序,在index.php中添加库(您将再添加一个文件夹):

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(dirname(__FILE__) . '/../../library'),
    get_include_path(),
)));

这使您可以轻松更新ZF库。 它还允许您轻松复制/调试您的项目,而不包括ZF框架。 大多数人都有自己的风格。我同意大多数人的意见,你必须包括库目录而不是Zend目录。

答案 3 :(得分:0)

设置包含路径:

include_path = ".;c:\Program Files (x86)\WAMP\www\"

后:

require_once "Zend/Date.php";

答案 4 :(得分:0)

您不应将Zend /目录添加到包含路径,而是将库文件夹的根目录添加:

如果你的Zend库在www /

您的包含路径必须为:c:\Program Files (x86)\WAMP\www\

但是,如果ZF在Zend / library /中,它应该是:

c:\Program Files (x86)\WAMP\www\Zend\library\

这是因为文件是如何需要的。

Zend_Date需要Zend /中的Zend / Date / DateObject,因此您需要包含顶级目录。

请注意,如果您需要其他Zf类并且不想包含/需要它们,您也可以使用自动加载器为您完成工作。

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

允许你执行$date = new Zend_Date();而无需手动任何文件(当然除了Loader!)