2

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

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

谢谢

4

4 回答 4

3

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

Class Math_Finance {

   public function someMethod() {
      // original logic
   }

}

Class My_Math_Finance extends Math_Finance {

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

}
于 2013-06-12T20:20:04.073 回答
2

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

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

Math/Finance.php
Math/Finance_FunctionParameters.php

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

require_once 'lib/Math/Finance.php';
require_once 'lib/Math/Finance_FunctionParameters.php';
于 2013-06-12T19:54:25.343 回答
2

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

假设原始文件在

/usr/local/share/php/PEAR/Statistics/Cool.php

在您的站点中镜像 PEAR 并将您的版本保存为

/mywebroot/library/PEAR/Statistics/Cool.php

然后将库目录的路径添加到包含路径中

ini_set("include_path", "/mywebroot/library".PATH_SEPARATOR.ini_get("include_path"));

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

于 2013-06-12T19:56:36.450 回答
0

我也遇到了梨的问题,不得不改变以删除梨的要求 - 这是原始回购中没有梨的叉子

https://github.com/hashmode/Math_Finance

于 2016-08-12T06:55:48.753 回答