0

我是 ZEnd 的新手,非常感谢任何帮助

我有各种承包商在我的网站上工作,事情变得一团糟,同一文件夹的多个副本位于不同的位置。现在我要进去尝试收拾东西。乐趣!!!我遇到的问题之一是 Zend 中的 require_once 语句没有找到他们正在寻找的文件。我必须进去改变路径,如下所示。假设这是在 Zend/Gdata/App/FeedEntryParent.php 中找到的代码

不工作(找不到文件):

require_once 'Zend/Gdata/App/Extension/Updated.php';

似乎工作正常:

require_once '/home/paul13/paul13.com/includes/library/Zend/Gdata/App/Extension/Updated.php';

问题是大多数 require_once 语句的写法都像第一个。没有进入并手动编辑所有这些,有没有办法告诉要求语句在指示的目录中查找?'/home/paul13/paul13.com/includes/library/' 使用 php.ini?我试着输入

include_path=".:/home/paulthetutor/paulthetutors.com/includes/library"

在 php.ini 中,但这似乎并不能解决问题。

4

2 回答 2

1

您问题的标题似乎与您发布的内容无关。

我有各种承包商在我的网站上工作......没有找到文件

你付钱给承包商来交付不起作用的代码?

问题显然是第一个路径

否 - 问题是您的包含路径设置不正确。如果您使用包含路径作为避免输入大量内容的机制,那么您做错了。您的包含路径不应包含指向由其他人维护的目录树内的条目。如果没有一个非常具体和有效的目标,你也不应该改变这个结构。

作为一种临时解决方法,直到您首先将 include/require 语句修复为它们应该是的,然后更改您的包含路径 - 在 php.ini、httpd.conf、.htaccess 中,通过自动前置或在每个脚本的顶部。

(顺便说一句,您将文件夹与目录混淆了)

于 2012-10-10T08:57:04.543 回答
0

您在问题中提到的文件夹是 Zend 库的一部分。您可以检查 Zend Framework 项目中是否有库文件夹以及它是否包含该文件

'Zend/Gdata/App/Extension/Updated.php'

要包含整个 ZF 库,请在 public/index.php 或 Bootstrap.php 文件中使用以下代码。

 // Define path to application directory
 defined('APPLICATION_PATH')
      || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

 // Define application environment
   defined('APPLICATION_ENV')
      || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

  // Ensure library/ is on include_path
 set_include_path(implode(PATH_SEPARATOR, array(
     realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
   )));

是的,选择性地逐一删除 require 语句和本地复制的库文件版本(当然,在确保它们没有更新的代码之后)。

您可能希望在此处检查默认 Zend Framework 应用程序结构以比较文件夹结构。

于 2012-10-10T07:33:41.177 回答