Php/Cakephp与Python脚本接口
我有一个用CakePhp创建的网页应用程序。我需要和一个Python脚本进行交互。有什么好的方法可以做到这一点呢?
(我可以使用管道等方法,但我想了解一下最佳实践是什么)
谢谢。
3 个回答
首先,看看CakePHP提供了哪些类型的数据共享方式。它可能通过xmlrpc、json、RSS等方式来提供部分API。
如果这些方式都不行,可以直接连接到CakePHP应用使用的同一个数据库。或者,你也可以在CakePHP框架内写一些PHP代码,把相关数据以JSON格式输出,然后进行交互。
你想要什么样的接口?双向的?单向的?
我还没做过这个,因为我还不是Python程序员,但有很多方法可以让你访问或使用cake,比如通过URL、参数、POST、GET、RSS等等。
可以看看这个请求处理器的介绍:http://book.cakephp.org/view/1292/Obtaining-Request-Information
我不知道你是Python程序员还是CakePHP程序员,但如果你是前者的话,这本书:http://book.cakephp.org基本上涵盖了大部分内容,而且结构也比较清晰(不管CodeIgniter、Symphony或Kohana的粉丝怎么说)。
这其实要看你想要什么。如果你打算频繁地和Python打交道,我建议你可以考虑使用XML-RPC的方案。关于如何用Twisted(一个Python库)来配置XML-RPC服务器的详细信息,可以在这里找到:
http://twistedmatrix.com/documents/10.1.0/web/howto/xmlrpc.html
如果你想在PHP中创建一个XML-RPC客户端,这里有相关的文档:
http://devzone.zend.com/article/1307
这个方案可能不是最简单的,但作为一个供应商,它的效果很好。如果你只是想做一次性的事情,使用exec()会简单得多,虽然这不是最干净的做法。