| [ Index ] |
PHP Cross Reference of JPSpan 0.4 (beta) |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * @package JPSpan 4 * @subpackage Listener 5 * @version $Id: Listener.php,v 1.2 2004/11/15 10:47:19 harryf Exp $ 6 */ 7 //----------------------------------------------------------------------------- 8 9 /** 10 * Include handlers for incoming request data 11 */ 12 require_once JPSPAN . 'RequestData.php'; 13 14 /** 15 * Check always_populate_raw_post_data is switched off 16 */ 17 if ( ini_get('always_populate_raw_post_data') ) { 18 trigger_error ( 19 "Configuration error: PHP ini setting 'always_populate_raw_post_data' must be off", 20 E_USER_ERROR 21 ); 22 } 23 //----------------------------------------------------------------------------- 24 25 /** 26 * Listener for incoming requests 27 * @package JPSpan 28 * @subpackage Listener 29 * @access public 30 */ 31 class JPSpan_Listener { 32 33 /** 34 * Encoding used by request (e.g. 'xml' or 'php') 35 * @var string 36 * @access public 37 */ 38 var $encoding = 'xml'; 39 40 /** 41 * Object which responds to request 42 * @var object implementing Responder interface 43 * @access private 44 */ 45 var $Responder; 46 47 /** 48 * Constructs the listener, setting the default NullResponder 49 * @access public 50 */ 51 function JPSpan_Listener() { 52 $this->Response = & new JPSpan_NullResponder(); 53 } 54 55 /** 56 * Set the Responder 57 * @param object implementing Responder interface 58 * @return void 59 * @access public 60 */ 61 function setResponder(& $Responder) { 62 $this->Responder= & $Responder; 63 } 64 65 /** 66 * Serve incoming requests 67 * @return void 68 * @access public 69 */ 70 function serve() { 71 $this->Responder->execute($this->getRequestData()); 72 } 73 74 /** 75 * Detects the type of incoming request and calls the corresponding 76 * RequestData handler to deal with it. 77 * @return mixed request data as native PHP variables. 78 * @access private 79 */ 80 function getRequestData () { 81 switch ( $_SERVER['REQUEST_METHOD'] ) { 82 case 'POST': 83 global $HTTP_RAW_POST_DATA; 84 if ( $HTTP_RAW_POST_DATA ) { 85 return JPSpan_RequestData_RawPost::fetch($this->encoding); 86 } else { 87 return JPSpan_RequestData_Post::fetch($this->encoding); 88 } 89 break; 90 case 'GET': 91 default: 92 return JPSpan_RequestData_Get::fetch($this->encoding); 93 break; 94 } 95 } 96 97 } 98 //----------------------------------------------------------------------------- 99 100 /** 101 * A NullResponder loaded as the default responder 102 * @package JPSpan 103 * @subpackage Listener 104 * @access public 105 */ 106 class JPSpan_NullResponder { 107 /** 108 * Does nothing 109 * @param mixed incoming request data 110 * @return void 111 * @access public 112 */ 113 function execute(& $payload) {} 114 } 115 116
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Fri Nov 26 11:42:46 2004 | Cross-referenced by PHPXref 0.6 |