【问题标题】:What's the best strategy for managing PEAR and include path?管理 PEAR 和包含路径的最佳策略是什么?
【发布时间】:2017-09-26 18:39:45
【问题描述】:

我需要它在不同的环境中工作,PEAR 可能安装在不同的位置;目前,我依靠include_path 来解决这个问题。然而,一个朴素的 PEAR 库包含是危险的:

include "Mail.php";

因为我可能在当前目录中有一个“Mail.php”(或“mail.php”* ...)库。我猜我可以在每个环境中设置一个常量(例如PEAR_PATH)并使用绝对路径,例如

include PEAR_PATH."/Mail.php";

这还有一个好处是可以指出 Mail.php 的来源!这是其他人使用的策略吗?理想情况下,我不会复制该值,但我想如果我只包含具有完整绝对路径的文件,那应该不是问题。

或者,我可以对 include_path 进行一些预先解析,确定文件在哪里......这基本上只是重新创建 include 的“搜索包含路径”行为,这看起来很傻!

* 我现在意识到这取决于文件系统的大小写敏感性;我的环境之一是 Mac。

【问题讨论】:

  • 这些文档确实非常有用:pear.php.net/manual/en/installation.checking.php
  • @Stuart 我看不到该页面如何回答我的问题...
  • 你没看错!?它将帮助您发现 PEAR 的安装位置,以便您获得正确的路径。
  • 是的。我没有看到从 PHP 确定 PEAR 安装位置的方法。你是在建议我做类似exec("pear config-get php_dir") 的事情吗?

标签: php include pear


【解决方案1】:

PEAR 依赖于 PHP 包含路径的正确设置。作为服务器管理员,您必须注意这一点。文档是这样说的:http://pear.php.net/manual/en/installation.checking.php#installation.checking.cli.modifyingphpini

PEAR 包中的 PHP 文件中有许多 require_once 'Path/File.php'; 调用;你不能也不应该改变它们。这就是您不应在本地项目目录中使用相同文件名的原因。

防止重复文件路径问题的最佳方法是使用PSR-0 兼容的目录结构和项目类的命名空间。

【讨论】:

  • 是的,我正确设置了包含路径。这个问题呢?
猜你喜欢
  • 2012-06-12
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多