@@ -31,7 +31,7 @@ class ForbiddenException extends \Exception {}
3131 * Handles communication with a FastCGI application 
3232 * 
3333 * @author      Pierrick Charron <pierrick@adoy.net> 
34-  * @version     1.0.0  
34+  * @version     1.0 
3535 */ 
3636class  Client
3737{
@@ -74,25 +74,25 @@ class Client
7474
7575    /** 
7676     * Socket 
77-      * @var Resource  
77+      * @var resource  
7878     */ 
7979    private  $ _socknull ;
8080
8181    /** 
8282     * Host 
83-      * @var String  
83+      * @var string  
8484     */ 
8585    private  $ _hostnull ;
8686
8787    /** 
8888     * Port 
89-      * @var Integer  
89+      * @var int  
9090     */ 
9191    private  $ _portnull ;
9292
9393    /** 
9494     * Keep Alive 
95-      * @var Boolean  
95+      * @var bool  
9696     */ 
9797    private  $ _keepAlivefalse ;
9898
@@ -112,43 +112,53 @@ class Client
112112
113113    /** 
114114     * Use persistent sockets to connect to backend 
115-      * @var Boolean  
115+      * @var bool  
116116     */ 
117117    private  $ _persistentSocketfalse ;
118118
119119    /** 
120120     * Connect timeout in milliseconds 
121-      * @var Integer  
121+      * @var int  
122122     */ 
123123    private  $ _connectTimeout5000 ;
124124
125125    /** 
126126     * Read/Write timeout in milliseconds 
127-      * @var Integer  
127+      * @var int  
128128     */ 
129129    private  $ _readWriteTimeout5000 ;
130130
131131    /** 
132132     * Constructor 
133133     * 
134-      * @param String  $host Host of the FastCGI application 
135-      * @param Integer  $port Port of the FastCGI application 
134+      * @param string  $host Host of the FastCGI application 
135+      * @param int  $port Port of the FastCGI application 
136136     */ 
137137    public  function  __construct ($ host$ port
138138    {
139139        $ this _host  = $ host
140140        $ this _port  = $ port
141141    }
142142
143+     /** 
144+      * Get host. 
145+      * 
146+      * @return string 
147+      */ 
148+     public  function  getHost ()
149+     {
150+         return  $ this _host ;
151+     }
152+ 
143153    /** 
144154     * Define whether or not the FastCGI application should keep the connection 
145155     * alive at the end of a request 
146156     * 
147-      * @param Boolean  $b true if the connection should stay alive, false otherwise 
157+      * @param bool  $b true if the connection should stay alive, false otherwise 
148158     */ 
149159    public  function  setKeepAlive ($ b
150160    {
151-         $ this _keepAlive  = (boolean )$ b
161+         $ this _keepAlive  = (bool )$ b
152162        if  (!$ this _keepAlive  && $ this _sock ) {
153163            fclose ($ this _sock );
154164        }
@@ -157,7 +167,7 @@ public function setKeepAlive($b)
157167    /** 
158168     * Get the keep alive status 
159169     * 
160-      * @return Boolean  true if the connection should stay alive, false otherwise 
170+      * @return bool  true if the connection should stay alive, false otherwise 
161171     */ 
162172    public  function  getKeepAlive ()
163173    {
@@ -168,12 +178,12 @@ public function getKeepAlive()
168178     * Define whether or not PHP should attempt to re-use sockets opened by previous 
169179     * request for efficiency 
170180     * 
171-      * @param Boolean  $b true if persistent socket should be used, false otherwise 
181+      * @param bool  $b true if persistent socket should be used, false otherwise 
172182     */ 
173183    public  function  setPersistentSocket ($ b
174184    {
175185        $ was_persistent$ this _sock  && $ this _persistentSocket );
176-         $ this _persistentSocket  = (boolean )$ b
186+         $ this _persistentSocket  = (bool )$ b
177187        if  (!$ this _persistentSocket  && $ was_persistent
178188            fclose ($ this _sock );
179189        }
@@ -182,7 +192,7 @@ public function setPersistentSocket($b)
182192    /** 
183193     * Get the pesistent socket status 
184194     * 
185-      * @return Boolean  true if the socket should be persistent, false otherwise 
195+      * @return bool  true if the socket should be persistent, false otherwise 
186196     */ 
187197    public  function  getPersistentSocket ()
188198    {
@@ -193,7 +203,7 @@ public function getPersistentSocket()
193203    /** 
194204     * Set the connect timeout 
195205     * 
196-      * @param Integer   number of milliseconds before connect will timeout 
206+      * @param int   number of milliseconds before connect will timeout 
197207     */ 
198208    public  function  setConnectTimeout ($ timeoutMs
199209    {
@@ -203,7 +213,7 @@ public function setConnectTimeout($timeoutMs)
203213    /** 
204214     * Get the connect timeout 
205215     * 
206-      * @return Integer   number of milliseconds before connect will timeout 
216+      * @return int   number of milliseconds before connect will timeout 
207217     */ 
208218    public  function  getConnectTimeout ()
209219    {
@@ -213,7 +223,7 @@ public function getConnectTimeout()
213223    /** 
214224     * Set the read/write timeout 
215225     * 
216-      * @param Integer   number of milliseconds before read or write call will timeout 
226+      * @param int   number of milliseconds before read or write call will timeout 
217227     */ 
218228    public  function  setReadWriteTimeout ($ timeoutMs
219229    {
@@ -224,7 +234,7 @@ public function setReadWriteTimeout($timeoutMs)
224234    /** 
225235     * Get the read timeout 
226236     * 
227-      * @return Integer   number of milliseconds before read will timeout 
237+      * @return int   number of milliseconds before read will timeout 
228238     */ 
229239    public  function  getReadWriteTimeout ()
230240    {
@@ -234,8 +244,8 @@ public function getReadWriteTimeout()
234244    /** 
235245     * Helper to avoid duplicating milliseconds to secs/usecs in a few places 
236246     * 
237-      * @param Integer  millisecond timeout 
238-      * @return Boolean  
247+      * @param int  millisecond timeout 
248+      * @return bool  
239249     */ 
240250    private  function  set_ms_timeout ($ timeoutMs
241251        if  (!$ this _sock ) {
@@ -270,9 +280,10 @@ private function connect()
270280    /** 
271281     * Build a FastCGI packet 
272282     * 
273-      * @param Integer $type Type of the packet 
274-      * @param String $content Content of the packet 
275-      * @param Integer $requestId RequestId 
283+      * @param int $type Type of the packet 
284+      * @param string $content Content of the packet 
285+      * @param int $requestId RequestId 
286+      * @return string 
276287     */ 
277288    private  function  buildPacket ($ type$ content$ requestId1 )
278289    {
@@ -291,9 +302,9 @@ private function buildPacket($type, $content, $requestId = 1)
291302    /** 
292303     * Build an FastCGI Name value pair 
293304     * 
294-      * @param String  $name Name 
295-      * @param String  $value Value 
296-      * @return String  FastCGI Name value pair 
305+      * @param string  $name Name 
306+      * @param string  $value Value 
307+      * @return string  FastCGI Name value pair 
297308     */ 
298309    private  function  buildNvpair ($ name$ value
299310    {
@@ -320,7 +331,7 @@ private function buildNvpair($name, $value)
320331    /** 
321332     * Read a set of FastCGI Name value pairs 
322333     * 
323-      * @param String  $data Data containing the set of FastCGI NVPair 
334+      * @param string  $data Data containing the set of FastCGI NVPair 
324335     * @return array of NVPair 
325336     */ 
326337    private  function  readNvpair ($ data$ lengthnull )
@@ -359,7 +370,7 @@ private function readNvpair($data, $length = null)
359370    /** 
360371     * Decode a FastCGI Packet 
361372     * 
362-      * @param String  $data String  containing all the packet 
373+      * @param string  $data string  containing all the packet 
363374     * @return array 
364375     */ 
365376    private  function  decodePacketHeader ($ data
@@ -401,10 +412,11 @@ private function readPacket()
401412    }
402413
403414    /** 
404-      * Get Informations  on the FastCGI application 
415+      * Get Information  on the FastCGI application 
405416     * 
406417     * @param array $requestedInfo information to retrieve 
407418     * @return array 
419+      * @throws \Exception 
408420     */ 
409421    public  function  getValues (array  $ requestedInfo
410422    {
@@ -428,8 +440,11 @@ public function getValues(array $requestedInfo)
428440     * Execute a request to the FastCGI application 
429441     * 
430442     * @param array $params Array of parameters 
431-      * @param String $stdin Content 
432-      * @return String 
443+      * @param string $stdin Content 
444+      * @return string 
445+      * @throws ForbiddenException 
446+      * @throws TimedOutException 
447+      * @throws \Exception 
433448     */ 
434449    public  function  request (array  $ params$ stdin
435450    {
@@ -439,18 +454,20 @@ public function request(array $params, $stdin)
439454
440455    /** 
441456     * Execute a request to the FastCGI application asyncronously 
442-      *   
457+      * 
443458     * This sends request to application and returns the assigned ID for that request. 
444459     * 
445460     * You should keep this id for later use with wait_for_response(). Ids are chosen randomly 
446-      * rather than seqentially  to guard against false-positives when using persistent sockets. 
447-      * In that case it is possible that a delayed response to a request made by a previous script   
448-      * invocation comes back on this socket and is mistaken for response to request made with same ID  
449-      * during this request. 
461+      * rather than sequentially  to guard against false-positives when using persistent sockets. 
462+      * In that case it is possible that a delayed response to a request made by a previous script 
463+      * invocation comes back on this socket and is mistaken for response to request made with same 
464+      * ID  during this request. 
450465     * 
451466     * @param array $params Array of parameters 
452-      * @param String $stdin Content 
453-      * @return Integer 
467+      * @param string $stdin Content 
468+      * @return int 
469+      * @throws TimedOutException 
470+      * @throws \Exception 
454471     */ 
455472    public  function  async_request (array  $ params$ stdin
456473    {
@@ -508,14 +525,17 @@ public function async_request(array $params, $stdin)
508525    }
509526
510527    /** 
511-      * Blocking call that waits for response to specific request 
512-      *  
513-      * @param Integer $requestId 
514-      * @param Integer $timeoutMs [optional] the number of milliseconds to wait. Defaults to the ReadWriteTimeout value set. 
515-      * @return string  response body 
528+      * Blocking call that waits for response data of the specific request 
529+      * 
530+      * @param int $requestId 
531+      * @param int $timeoutMs [optional] the number of milliseconds to wait. Defaults to the ReadWriteTimeout value set. 
532+      * @return array response data 
533+      * @throws ForbiddenException 
534+      * @throws TimedOutException 
535+      * @throws \Exception 
516536     */ 
517-     public  function  wait_for_response ($ requestId$ timeoutMs0 ) { 
518- 
537+     public  function  wait_for_response_data ($ requestId$ timeoutMs0 )
538+     { 
519539        if  (!isset ($ this _requests [$ requestId
520540            throw  new  \Exception ('Invalid request id given ' );
521541        }
@@ -524,7 +544,7 @@ public function wait_for_response($requestId, $timeoutMs = 0) {
524544        if  ($ this _requests [$ requestId'state ' ] == self ::REQ_STATE_OK 
525545            || $ this _requests [$ requestId'state ' ] == self ::REQ_STATE_ERR 
526546            ) {
527-             return  $ this _requests [$ requestId[ ' response ' ] ;
547+             return  $ this _requests [$ requestId
528548        }
529549
530550        if  ($ timeoutMs0 ) {
@@ -591,7 +611,22 @@ public function wait_for_response($requestId, $timeoutMs = 0) {
591611                throw  new  \Exception ('Role value not known [UNKNOWN_ROLE] ' );
592612                break ;
593613            case  self ::REQUEST_COMPLETE :
594-                 return  $ this _requests [$ requestId[ ' response ' ] ;
614+                 return  $ this _requests [$ requestId
595615        }
596616    }
617+ 
618+     /** 
619+      * Blocking call that waits for response to specific request 
620+      * 
621+      * @param int $requestId 
622+      * @param int $timeoutMs [optional] the number of milliseconds to wait. Defaults to the ReadWriteTimeout value set. 
623+      * @return string The response content. 
624+      * @throws ForbiddenException 
625+      * @throws TimedOutException 
626+      * @throws \Exception 
627+      */ 
628+     public  function  wait_for_response ($ requestId$ timeoutMs0 )
629+     {
630+         return  $ this wait_for_response_data ($ requestId$ timeoutMs'response ' ];
631+     }
597632}
0 commit comments