我将如何使用Python代码扩展我的PHP代码库?

时间:2011-09-25 08:41:09

标签: php python

我有一个用PHP编写的相当大的API,我已经工作多年了。一些功能需要升级到我应该只重写类的程度。因为无论如何我需要废弃旧代码,我想也许我可以用Python代码替换旧功能。

我在搜索答案时遇到了PiP,它似乎是一个 exellent 解决方案(因为我实际上可以在PHP中创建Python类实例并调用它们的方法等)但是它似乎它因为我不知道的原因而被放弃在Alpha阶段。

我认为最简单的解决方案是CLI,这意味着我可以从PHP运行python实例并收集结果。我不是特别喜欢这个解决方案,考虑到我必须编写的Python代码的数量只是为了处理来自PHP的输入并做出相应的响应。此外,它不是非常可重复使用。

我不知道这是否是一个正常的问题,Google肯定不这么认为,但是用Python代码补充PHP代码库的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

我可以考虑两个选项,这也应该使整体解决方案更加灵活:

  • 将其写为Web服务:将python部分编写为RESTful Web服务。应该相对简单。
  • 使用像ZeroMQ这样的东西来创建一个消息队列:PHP和Python都有zmq库,这也应该使这个选项不是很难实现。

正如您可能已经注意到的那样,所有选项在性质上都有点笨拙。您没有提到“API”究竟是什么意思(例如,它是一个库或Web服务还是什么),所以根据它是什么,在PHP中重写它可能是最简单的 - 这也不错如果使用得当,语言到底是什么。

答案 1 :(得分:1)

经过一段时间的研究,我得出的结论是,使用Python代码构建PHP库没有任何有价值的方法。 PiP项目是我能找到的最接近的项目,但它已被放弃。

我的解决方案是声明2.0。我添加的每个新函数都是用Python编写的。我会在必要时将一些代码从PHP翻译成Python。到目前为止它工作得很好!