PHP创建API,连接同一服务器上的2个应用程序


PHP create API connecting 2 Applications on same server

想象两个应用程序在同一台服务器上使用不同的mysql数据库运行。我需要一种在两个应用程序之间交换数据的方法。一个应用程序无权访问另一应用程序的数据库。交换只是后端相关的(自动的东西),不需要用户交互。

使用php做这件事最好、最安全的方法是什么?

您可以使用命名管道-它们非常适合进程间通信。

http://my.opera.com/zomg/blog/2007/08/29/php-and-named-pipes

您可以在交互式php:中试用

Davids-MacBook-Air:~ dearlbry$ php -a
Interactive shell
php > posix_mkfifo("test-pipe", 0644);
php > $pipe = fopen('test-pipe','r+');
php > print fgets($pipe);

让它坐在那里等待,然后打开另一个终端:

Davids-MacBook-Air:~ dearlbry$ php -a
Interactive shell
php > $pipe = fopen('test-pipe','r+');
php > fwrite($pipe, "Hello World'n");
php > fclose($pipe);

观看第一个过程中出现的"Hello World"。确保您放入"''n",因为管道被缓冲,换行符会发出信号来刷新它。

您可以使用RESTful API,其中一个应用程序可以将数据POST和GET发送到另一个。

// From application2.com
$id = $curl->post('http://application1.com/users/save/', array(
    'name' => 'Matt',
    'bio' => 'I am a person.'
));
// $id is generated from a DB insert
$user = $curl->post('http://application1.com/users/bio/', array(
    'id' => $id
));
// $user contains an array or object of information about Matt