首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖pear包

覆盖pear包
EN

Stack Overflow用户
提问于 2013-06-13 03:48:43
回答 4查看 238关注 0票数 2

我在本地使用Math_Finance pear包。我对包中包含的一些文件进行了修改,这使得我的计算可以工作。现在,我将我的项目迁移到一个网络共享主机上,并要求安装相同的pear包。然而,我无法执行与本地相同的修改,因为它是共享主机。

我的问题是:有没有一种方法可以覆盖或只包含修改过的文件?我不想将包中的所有文件复制到我的public_html目录中,但恐怕这是唯一的解决方案。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-13 03:56:36

根据他们用来表示所包含文件的路径的方法,这可能会起作用。

假设原始文件在

代码语言:javascript
复制
/usr/local/share/php/PEAR/Statistics/Cool.php

在您的站点中镜像梨,并将您的版本另存为

代码语言:javascript
复制
/mywebroot/library/PEAR/Statistics/Cool.php

然后,将库目录的路径预置到包含路径中

代码语言:javascript
复制
ini_set("include_path", "/mywebroot/library".PATH_SEPARATOR.ini_get("include_path"));

现在,何时包含您的版本将在PEAR之前找到。

票数 2
EN

Stack Overflow用户

发布于 2013-06-13 04:20:04

如果是bug修复,你可以发送一个补丁。如果它只是添加了功能。您可以简单地通过扩展来覆盖Math_Finance类的某些功能。(感谢@hek2mgl ;)

代码语言:javascript
复制
Class Math_Finance {

   public function someMethod() {
      // original logic
   }

}

Class My_Math_Finance extends Math_Finance {

   public function someMethod() {
      // change some of the needed logic
   }

}
票数 3
EN

Stack Overflow用户

发布于 2013-06-13 03:54:25

我不想将包中的所有文件复制到我的public_html目录中,但恐怕这是唯一的解决方案。

是啊!这就是解决方案。但这有什么不好的呢?我们正在讨论另外两个php文件;):

代码语言:javascript
复制
Math/Finance.php
Math/Finance_FunctionParameters.php

将它们放在应用程序内的一个文件夹中,比如lib。然后,确保从以下位置导入这两个文件:

代码语言:javascript
复制
require_once 'lib/Math/Finance.php';
require_once 'lib/Math/Finance_FunctionParameters.php';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17074026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档