Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Php非同期の技法

3,802 views

Published on

  • Be the first to comment

Php非同期の技法

  1. 1. PHP非同期の技法 Shogo Kawahara <kawahara@bucyou.net> #phpkansai 2014.06.28
  2. 2. ● 東京から仙台まで歩く (いま宇都宮でセーブし ている) ● PHPで (ほかの言語ではできるような) PHPっ ぽくないことをやる ○ PHPとJavaScriptの噺: http://www.slideshare. net/ooharabucyou/phpjava-script ● PHPは保守でしかやってない :) 最近の趣味
  3. 3. 今回のテーマは “非同期” ● PHPで時間のかかるバックグラウンドな処理を 実装したい ○ 管理画面とかで巨大なファイル作ったり ○ 変な計算したり POST /makeCsv 202 Accepted Start to make CSV file BackgroundWeb ServerUser
  4. 4. 今回紹介する方法 ● Background Process ● React ● Hack Lang (おまけ)
  5. 5. Backgrond Process https://github. com/kohkimakimoto/BackgroundProcess ● Demo: https://github.com/kawahara/async-php-demo-1 ● Background でプロセスを起動させる便利なラ イブラリ ● プロセス用PHP作って nohup で起動 ○ プロセス管理用ファイルやらを作って、正常 終了したら勝手に削除してくれる ○ とてもお気軽
  6. 6. React PHP ● http://reactphp.org/ ● まるで node.js のようなページの佇まい ● コールバック天国へようこそ ● サーバアプリを書いちゃえ ● Demo: https://github.com/kawahara/async-php-demo-2
  7. 7. Hack Lang ● http://hacklang.org/ ● もはや PHP じゃない ● async function という素敵な機能あり ● FastCGI mode のとき、今回の事例のような用 途で使うのは辛いか? ● Demo: https://gist.github.com/kawahara/5aa3a45d575a07384af6
  8. 8. まとめ ● PHPでも非同期な実装はできる ● でも、余裕あるならなんかメッセージキューな サーバとか組んだほうがいいっす。 (RabbitMQ とか) ● Hack Lang の async は本来の処理以外 (logging とか profiling) や、複数のResourceに 並行にアクセスする際に利用できそう。そういう Hack Lang 用のフレームワークができる気がす る。

×