覆盖梨包

时间:2013-06-12 19:48:43

标签: php pear

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

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

由于

4 个答案:

答案 0 :(得分: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
   }

}

答案 1 :(得分:2)

  

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

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

Math/Finance.php
Math/Finance_FunctionParameters.php

将它们放在应用程序内的文件夹中,假设为lib。然后确保从该位置导入两个文件:

require_once 'lib/Math/Finance.php';
require_once 'lib/Math/Finance_FunctionParameters.php';

答案 2 :(得分: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之前找到你的版本。

答案 3 :(得分:0)

我也遇到梨的问题,不得不改变以取消梨的要求 - 这里是没有梨的原始回购的叉子

https://github.com/hashmode/Math_Finance