From bbebbec0a156ebc2e6255fb80adadb50d79c1b6f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Tue, 24 Mar 2009 06:39:34 +0000 Subject: [PATCH] Request class rewritten to extend BaseRequest class, ConsoleRequest added --- .gitattributes | 7 +- .../interfaces/request/class_Requestable.php | 4 +- .../main/debug/class_DebugConsoleOutput.php | 10 +- inc/classes/main/request/class_ | 93 ++++++++++++++ ..._HttpRequest.php => class_BaseRequest.php} | 98 +++------------ inc/classes/main/request/console/.htaccess | 1 + .../request/console/class_ConsoleRequest.php | 93 ++++++++++++++ inc/classes/main/request/web/.htaccess | 1 + .../main/request/web/class_HttpRequest.php | 116 ++++++++++++++++++ 9 files changed, 331 insertions(+), 92 deletions(-) create mode 100644 inc/classes/main/request/class_ rename inc/classes/main/request/{class_HttpRequest.php => class_BaseRequest.php} (58%) create mode 100644 inc/classes/main/request/console/.htaccess create mode 100644 inc/classes/main/request/console/class_ConsoleRequest.php create mode 100644 inc/classes/main/request/web/.htaccess create mode 100644 inc/classes/main/request/web/class_HttpRequest.php diff --git a/.gitattributes b/.gitattributes index 34429048..c8d53297 100644 --- a/.gitattributes +++ b/.gitattributes @@ -400,7 +400,12 @@ inc/classes/main/registration/class_BaseRegistration.php -text inc/classes/main/registry/.htaccess -text inc/classes/main/registry/class_Registry.php -text inc/classes/main/request/.htaccess -text -inc/classes/main/request/class_HttpRequest.php -text +inc/classes/main/request/class_ -text +inc/classes/main/request/class_BaseRequest.php -text +inc/classes/main/request/console/.htaccess -text +inc/classes/main/request/console/class_ConsoleRequest.php -text +inc/classes/main/request/web/.htaccess -text +inc/classes/main/request/web/class_HttpRequest.php -text inc/classes/main/resolver/.htaccess -text inc/classes/main/resolver/action/.htaccess -text inc/classes/main/resolver/action/class_BaseActionResolver.php -text diff --git a/inc/classes/interfaces/request/class_Requestable.php b/inc/classes/interfaces/request/class_Requestable.php index c3497986..fef4e349 100644 --- a/inc/classes/interfaces/request/class_Requestable.php +++ b/inc/classes/interfaces/request/class_Requestable.php @@ -23,9 +23,7 @@ */ interface Requestable extends FrameworkInterface { /** - * Prepares the HTTP request data for usage by currently copying - * $_REQUEST into a private attribute. Later on we can add more - * things for initialization here. + * Prepares the request data for usage * * @return void */ diff --git a/inc/classes/main/debug/class_DebugConsoleOutput.php b/inc/classes/main/debug/class_DebugConsoleOutput.php index 4dd9c826..c397022d 100644 --- a/inc/classes/main/debug/class_DebugConsoleOutput.php +++ b/inc/classes/main/debug/class_DebugConsoleOutput.php @@ -35,7 +35,7 @@ class DebugConsoleOutput extends BaseFrameworkSystem implements Debugger, Output /** * Creates an instance of this class * - * @return $debugInstance The prepared debug instance + * @return $debugInstance The prepared debug instance */ public final static function createDebugConsoleOutput () { // Get a new instance @@ -48,7 +48,7 @@ class DebugConsoleOutput extends BaseFrameworkSystem implements Debugger, Output /** * Outputs the given data without HTML tags * - * @param $output The HTML'ed output + * @param $output The HTML'ed output * @return void */ public final function outputStream ($output) { @@ -58,8 +58,8 @@ class DebugConsoleOutput extends BaseFrameworkSystem implements Debugger, Output /** * Assigns a variable for output * - * @param $var The variable we shall assign - * @param $value The value to store in the variable + * @param $var The variable we shall assign + * @param $value The value to store in the variable * @return void */ public final function assignVariable ($var, $value) { @@ -76,7 +76,7 @@ class DebugConsoleOutput extends BaseFrameworkSystem implements Debugger, Output // Empty output will be silently ignored if ($outStream !== false) { $this->outputStream($outStream); - } + } // END - if } } diff --git a/inc/classes/main/request/class_ b/inc/classes/main/request/class_ new file mode 100644 index 00000000..fcfeb477 --- /dev/null +++ b/inc/classes/main/request/class_ @@ -0,0 +1,93 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class ???Request extends BaseRequest implements Requestable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this class and prepares it a little + * + * @return $httpInstance An instance of this class + */ + public final static function create???Request () { + // Create an instance + $httpInstance = new ???Request(); + + // Prepare the HTTP request data for usage + $httpInstance->prepareRequestData(); + + // Return the prepared instance + return $httpInstance; + } + + /** + * Prepares the request data for usage + * + * @return void + * @todo Needs to be implemented + */ + public function prepareRequestData () { + $this->partialStub("Please implement this method."); + } + + /** + * Getter for a header element or 'null' if header was not found + * + * @param $headerName Name of the header + * @return $headerValue Value of the header or 'null' if not found + */ + public function getHeader ($headerName) { + $this->partialStub("Please implement this method."); + } + + /** + * Getter for request method. This getter might be useful for security filters + * + * @return $requestMethod Used request method + */ + public final function getRequestMethod () { + $this->partialStub("Please implement this method."); + return $_SERVER['REQUEST_METHOD']; + } + + /** + * Reads a cookie and returns it's value or null if not found + * + * @param $cookieName Name of cookie we shall read + * @return $cookieValue Value of cookie or null if not found + */ + public final function readCookie ($cookieName) { + $this->partialStub("Please implement this method."); + } +} + +// [EOF] +?> diff --git a/inc/classes/main/request/class_HttpRequest.php b/inc/classes/main/request/class_BaseRequest.php similarity index 58% rename from inc/classes/main/request/class_HttpRequest.php rename to inc/classes/main/request/class_BaseRequest.php index b7fda8ca..9364112c 100644 --- a/inc/classes/main/request/class_HttpRequest.php +++ b/inc/classes/main/request/class_BaseRequest.php @@ -1,6 +1,6 @@ * @version 0.0.0 @@ -19,9 +19,9 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ -class HttpRequest extends BaseFrameworkSystem implements Requestable { +class BaseRequest extends BaseFrameworkSystem { /** * Array for the request data */ @@ -37,45 +37,18 @@ class HttpRequest extends BaseFrameworkSystem implements Requestable { /** * Protected constructor * + * @param $className Name of the class * @return void */ - protected function __construct () { + protected function __construct ($className) { // Call parent constructor - parent::__construct(__CLASS__); + parent::__construct($className); // Clean up a little $this->removeNumberFormaters(); $this->removeSystemArray(); } - /** - * Creates an instance of this class and prepares it a little - * - * @return $httpInstance An instance of this class - */ - public final static function createHttpRequest () { - // Create an instance - $httpInstance = new HttpRequest(); - - // Prepare the HTTP request data for usage - $httpInstance->prepareRequestData(); - - // Return the prepared instance - return $httpInstance; - } - - /** - * Prepares the HTTP request data for usage by currently copying - * $_REQUEST into a private attribute. Later on we can add more - * things for initialization here. - * - * @return void - */ - public function prepareRequestData () { - // Copy GET then POST data - $this->requestData = array_merge($_GET, $_POST); - } - /** * Checks wether a request element is set * @param $element Name of the request element we want to check @@ -125,43 +98,22 @@ class HttpRequest extends BaseFrameworkSystem implements Requestable { } /** - * Wrapper method for array_key() function for the request data array + * Setter for request data array * - * @return $array An array containing all array keys to return - */ - public function getParameterNames () { - return array_keys($this->requestData); - } - - /** - * Getter for a header element or 'null' if header was not found - * - * @param $headerName Name of the header - * @return $headerValue Value of the header or 'null' if not found + * @param $requestData Request element to se + * @return void */ - public function getHeader ($headerName) { - // Default return value on error - $headerValue = null; - - // Construct the name - $name = 'HTTP_' . strtolower($this->convertDashesToUnderscores($headerName)); - - // Does this header exist? - if (isset($_SERVER[$name])) { - $headerValue = $_SERVER[$name]; - } // END - if - - // Return the value - return $headerValue; + public function setRequestData (array $requestData) { + $this->requestData = $requestData; } /** - * Getter for request method. This getter might be useful for security filters + * Wrapper method for array_key() function for the request data array * - * @return $requestMethod Used request method + * @return $array An array containing all array keys to return */ - public final function getRequestMethod () { - return $_SERVER['REQUEST_METHOD']; + public function getParameterNames () { + return array_keys($this->requestData); } /** @@ -182,26 +134,6 @@ class HttpRequest extends BaseFrameworkSystem implements Requestable { public final function isRequestValid () { return $this->requestIsValid; } - - /** - * Reads a cookie and returns it's value or null if not found - * - * @param $cookieName Name of cookie we shall read - * @return $cookieValue Value of cookie or null if not found - */ - public final function readCookie ($cookieName) { - // Default is no cookie with that name found - $cookieValue = null; - - // Is the cookie set? - if (isset($_COOKIE[$cookieName])) { - // Then get it - $cookieValue = $_COOKIE[$cookieName]; - } // END - if - - // Return the value - return $cookieValue; - } } // [EOF] diff --git a/inc/classes/main/request/console/.htaccess b/inc/classes/main/request/console/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/inc/classes/main/request/console/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/request/console/class_ConsoleRequest.php b/inc/classes/main/request/console/class_ConsoleRequest.php new file mode 100644 index 00000000..3ac92eb8 --- /dev/null +++ b/inc/classes/main/request/console/class_ConsoleRequest.php @@ -0,0 +1,93 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class ConsoleRequest extends BaseRequest implements Requestable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this class and prepares it a little + * + * @return $httpInstance An instance of this class + */ + public final static function createConsoleRequest () { + // Create an instance + $httpInstance = new ConsoleRequest(); + + // Prepare the console request data for usage + $httpInstance->prepareRequestData(); + + // Return the prepared instance + return $httpInstance; + } + + /** + * Prepares the request data for usage + * + * @return void + * @todo Needs to be implemented + */ + public function prepareRequestData () { + $this->partialStub("Please implement this method."); + } + + /** + * Getter for a header element or 'null' if header was not found + * + * @param $headerName Name of the header + * @return $headerValue Value of the header or 'null' if not found + */ + public function getHeader ($headerName) { + $this->partialStub("Please implement this method."); + } + + /** + * Getter for request method. This getter might be useful for security filters + * + * @return $requestMethod Used request method + */ + public final function getRequestMethod () { + $this->partialStub("Please implement this method."); + return $_SERVER['REQUEST_METHOD']; + } + + /** + * Reads a cookie and returns it's value or null if not found + * + * @param $cookieName Name of cookie we shall read + * @return $cookieValue Value of cookie or null if not found + */ + public final function readCookie ($cookieName) { + $this->partialStub("Please implement this method."); + } +} + +// [EOF] +?> diff --git a/inc/classes/main/request/web/.htaccess b/inc/classes/main/request/web/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/inc/classes/main/request/web/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/request/web/class_HttpRequest.php b/inc/classes/main/request/web/class_HttpRequest.php new file mode 100644 index 00000000..39791150 --- /dev/null +++ b/inc/classes/main/request/web/class_HttpRequest.php @@ -0,0 +1,116 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class HttpRequest extends BaseRequest implements Requestable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this class and prepares it a little + * + * @return $httpInstance An instance of this class + */ + public final static function createHttpRequest () { + // Create an instance + $httpInstance = new HttpRequest(); + + // Prepare the HTTP request data for usage + $httpInstance->prepareRequestData(); + + // Return the prepared instance + return $httpInstance; + } + + /** + * Prepares the HTTP request data for usage by currently copying + * $_REQUEST into a private attribute. Later on we can add more + * things for initialization here. + * + * @return void + */ + public function prepareRequestData () { + // Copy GET then POST data + $this->setRequestData(array_merge($_GET, $_POST)); + } + + /** + * Getter for a header element or 'null' if header was not found + * + * @param $headerName Name of the header + * @return $headerValue Value of the header or 'null' if not found + */ + public function getHeader ($headerName) { + // Default return value on error + $headerValue = null; + + // Construct the name + $name = 'HTTP_' . strtolower($this->convertDashesToUnderscores($headerName)); + + // Does this header exist? + if (isset($_SERVER[$name])) { + $headerValue = $_SERVER[$name]; + } // END - if + + // Return the value + return $headerValue; + } + + /** + * Getter for request method. This getter might be useful for security filters + * + * @return $requestMethod Used request method + */ + public final function getRequestMethod () { + return $_SERVER['REQUEST_METHOD']; + } + + /** + * Reads a cookie and returns it's value or null if not found + * + * @param $cookieName Name of cookie we shall read + * @return $cookieValue Value of cookie or null if not found + */ + public final function readCookie ($cookieName) { + // Default is no cookie with that name found + $cookieValue = null; + + // Is the cookie set? + if (isset($_COOKIE[$cookieName])) { + // Then get it + $cookieValue = $_COOKIE[$cookieName]; + } // END - if + + // Return the value + return $cookieValue; + } +} + +// [EOF] +?> -- 2.30.2