require_once(Zend / Application.php):无法在其他计算机上打开流工作

时间:2016-12-12 07:52:03

标签: php zend-framework

我刚刚安装了Zend Framework,当我尝试打开使用该框架创建的网站时,我收到以下错误。
 
我知道问题是图书馆没有被包括在内,因为我之前检查过其他一些问题......这是我尝试解决的问题,但它仍然没有用。需要注意的一件重要事情是文件正在另一台计算机上运行。所以它不是来自代码。

  

警告:require_once(Zend / Application.php):无法打开流:第68行的C:\ data \ trunk \ www \ public \ index.php中没有此类文件或目录

     

致命错误:require_once():无法打开所需的'Zend / Application.php'(include_path ='C:\ data \ trunk \ library ;; C:\ data \ trunk \ www \ application; C:\ xampp \第68行的C:\ data \ trunk \ www \ public \ index.php中的php \ PEAR')

我在:

之间做了一个符号链接
C:\data\trunk\library\ZendFramework-1.11.9\library and 
C:\data\site.local

我也为符号链接做了一个符号链接:

C:\data\trunk\library\ZendFramework-1.11.9\extras\library and 
C:\data\site.local

在我的index.php(C:\ data \ trunk \ www \ public)中:

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

 require_once 'Zend/Application.php';

 $application = new Zend_Application(
 APPLICATION_ENV,
 APPLICATION_PATH . '/configs/application.ini'
  );

编辑:

所以我找到了一个确认我应该使用Zend-1.12.3的文件。我还找到了一个txt文件,说“将库文件指向site.local目录。这是zend库所在的位置”。

我在site.local中找到了一个文件 姓名:Zend
内容:链接/Sites/_library/Zend-1.12.3

我在trunk / library中找到了2个文件:
姓名:Zend
内容:链接../../site.local/Zend

名称:ZendX
内容:链接../../site.local/ZendX

如果我遵循所写的内容,这是我的新架构:

  • C:\ xampp3 \ htdocs中\ mywebsite

    • 躯干
      • 图书馆
        • 的Zend-1.12.3
          • 应用
        • ZendX-1.12.3
          • 应用
    • site.local

      • 的Zend-1.12.3

        • 应用
      • ZendX-1.12.3

        • 应用

1 个答案:

答案 0 :(得分:0)

你的问题肯定是路径问题......

我可以从上面的路径中看到该库位于C:\data\trunk\library\ZendFramework-1.11.9\library,不确定您希望在此处使用符号链接实现的目标。 您在代码中查找的类是Zend_ApplicationZend/Application.php),因此php将查找include_path中定义的所有位置是否存在Zend/Application.php文件,它是否包含名为Zend_Application的类。

如果您将库文件夹从ZendFramework-1.11.9重命名为ZendFramework-1.11.9,那应该几乎没问题(虽然它内部不应该有库文件夹...)。也许在ZendFramework-1.11.9/library文件夹内有Zend文件夹,这是您在包含路径中需要的文件夹。额外的lib也是一样(我似乎记得它主要提供资源和ZendX库)。

您肯定需要了解include_path的概念。不要犹豫,使用print_r(explode(';', get_include_path())); exit;来了解include_path包含的内容。 任何问题都会回来询问!

问题显然来自错误的路径,包括路径。

由于我们不知道从哪里获取库,我将使用我们可以在网上找到的版本来解释。 小心:我不知道您所编辑的库是否已被编辑,有时开发人员倾向于这样做...请在交换它们之前对您的库和地雷进行差异...

因此我们知道该项目位于以下文档根目录下:C:\data\trunk\

  • C:\数据\树干\
    • WWW
      • 应用
        • ...
      • 公共
        • 的index.php
      • 的Zend
      • ZendX

根据您的日志include_path='C:\data\trunk\library;;C:\data\trunk\www\application;C:\xampp\php\PEAR',这意味着我们可以从C:\data\trunk\library加载任何类。

现在让我们关注C:\data\trunk\library文件夹。

您可以从Github下载此库以获取ZF 1.12。*,但根据您在1.11上的第一条消息,您可以从官方网站检索包裹:https://framework.zend.com/downloads/archives

获取您使用的版本,完整版:https://packages.zendframework.com/releases/ZendFramework-1.11.9/ZendFramework-1.11.9.zip

然后打开zip文件,只检索所需的文件夹。您需要将library/Zendextras/library/ZendX复制并粘贴到文件夹C:\data\trunk\library中。这应该是你真正需要的全部