同じサーバー上の異なる mysql データベースで実行されている 2 つのアプリケーションを想像してください。両方のアプリケーション間でデータを交換する方法が必要です。1 つのアプリケーションには、他のアプリケーションのデータベースにアクセスする権限がありません。交換はバックエンド関連 (自動のもの) のみであり、ユーザーの操作は必要ありません。
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