我正在使用Slim框架在PHP中編寫web服務。我有一個Web應用程序和一個使用Web服務的移動應用程序。我的Web應用程序將一些數據發佈到Web服務,並且Web服務將其寫入數據庫。但我也希望Web服務向我的移動應用程序發送通知。PHP slim web服務中的事件
我認爲這是某種基於事件的行爲。如何爲PHP瘦客戶端服務執行此操作?或者一般來說,對於PHP Web服務?
我正在使用Slim框架在PHP中編寫web服務。我有一個Web應用程序和一個使用Web服務的移動應用程序。我的Web應用程序將一些數據發佈到Web服務,並且Web服務將其寫入數據庫。但我也希望Web服務向我的移動應用程序發送通知。PHP slim web服務中的事件
我認爲這是某種基於事件的行爲。如何爲PHP瘦客戶端服務執行此操作?或者一般來說,對於PHP Web服務?
我個人使用symfony2 EventDispatcher組件來實現你所說的。這是一個乾淨的方式,實施基於事件的架構。中介模式的這種特殊實現可以使您的代碼具有可擴展性,且開銷最小(組織也很少)。
鏈接:http://symfony.com/doc/current/components/event_dispatcher/introduction.html
注:此事件可獨立使用的Symfony2的。以上鍊接包含組件的packagist鏈接。
編輯:如果你是全局變量的粉絲,你可以看看WordPress的do_action函數。
我認爲沒有簡單的方法來實現從Slim到移動設備的直接事件通知。要做到這一點,您需要在設備和服務器之間打開一個套接字,以便您可以直接向設備發送通知。
使用Slim,實現你想要的最簡單的方法是使用列表/隊列模式,並告訴設備定期ping你的web服務(比如每30秒)並且檢查隊列中是否有新東西。
您可以讓移動設備輪詢API以根據時間戳查找更改......或者您必須使用ios推送通知將服務器推送到移動設備。 – timh