【问题标题】:Zend Framework - How to Properly set Include Path?Zend Framework - 如何正确设置包含路径?
【发布时间】:2012-08-10 18:14:58
【问题描述】:

我正在尝试安装显然是使用 Zend 框架编写的 TheStudio 应用程序。我的测试服务器正在运行 Ubuntu 12.04,我的应用程序目录存储在 /home

我的错误日志显示

PHP Fatal error:  require_once(): Failed opening required 'usr/share/php/libzend-frameworkphp/Zend/Loader/Autoloader.php'   
  (include_path='.:../library:../application/db:../application/models:../application/utils:../application/views/helpers:../application') in /home/application/config/config.php on line 22

config.php 的第 22 行状态:

require_once '/usr/share/php/libzend-framework-php/Zend/Loader/Autoloader.php';

包含路径如下:

define('PS',        PATH_SEPARATOR);
define('DS',        DIRECTORY_SEPARATOR);
define('ROOT_DIR',  dirname('home'));

// Modify include path
$paths = '.' . PS . '..' . DS . 'library'
         . PS . '..' . DS . 'application' . DS . 'db'
         . PS . '..' . DS . 'application' . DS . 'models'
         . PS . '..' . DS . 'application' . DS . 'utils'
         . PS . '..' . DS . 'application' . DS . 'views' . DS . 'helpers'
         . PS . '..' . DS . 'application';
ini_set("include_path", $paths);

我应该如何修改路径语句以定位 /home 目录中的文件?为了解决上述错误,是否应该进行其他调整?

【问题讨论】:

标签: php zend-framework apache2


【解决方案1】:

/usr/share/php/libzend-frameworkphp 是 Zend Framework Ubuntu 软件包的默认安装路径,所以这个应用程序似乎假设它会在那里。 sudo apt-get install zend-framework 应该可以解决这个问题。

我会说在 require_once 调用中包含完整路径是一种不好的做法,并且在您的第三个代码示例中定义了太多包含路径(我假设它来自应用程序?)。

【讨论】:

  • 我已经通过 apt-get 安装了 ZF。我确认这是目录位置。如何缩短 require_once 语句以符合更好的实践?
  • config.php 是您的代码还是应用程序的一部分? /usr/share/php/libzend-framework 应该在你的包含路径上,所以你应该做 require_once 'Zend/Loader/Autoloader.php';
  • Config.php 在 application/config 目录中。
猜你喜欢
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
  • 2011-02-06
  • 2016-03-02
  • 2011-10-20
相关资源
最近更新 更多