From: Roland Häder Date: Fri, 11 Apr 2008 18:46:19 +0000 (+0000) Subject: More patterns added, part description changed to object description X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=commitdiff_plain;h=f090ddd80669edddadcf4d682384532d93ce1fff More patterns added, part description changed to object description --- diff --git a/.gitattributes b/.gitattributes index bf1e6d7..f06da2f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -214,12 +214,18 @@ inc/classes/interfaces/io/output/.htaccess -text inc/classes/interfaces/io/output/class_OutputStreamer.php -text inc/classes/interfaces/language/.htaccess -text inc/classes/interfaces/language/class_ManageableLanguage.php -text +inc/classes/interfaces/request/.htaccess -text +inc/classes/interfaces/request/class_Requestable.php -text +inc/classes/interfaces/response/.htaccess -text +inc/classes/interfaces/response/class_Responseable.php -text inc/classes/interfaces/template/.htaccess -text inc/classes/interfaces/template/class_CompileableTemplate.php -text inc/classes/interfaces/template/view/class_ViewHelper.php -text inc/classes/main/.htaccess -text inc/classes/main/class_BaseFrameworkSystem.php -text inc/classes/main/class_FrameworkArrayObject.php -text +inc/classes/main/commands/extended/.htaccess -text +inc/classes/main/commands/extended/class_ -text inc/classes/main/compressor/.htaccess -text inc/classes/main/compressor/class_Bzip2Compressor.php -text inc/classes/main/compressor/class_GzipCompressor.php -text @@ -247,6 +253,10 @@ inc/classes/main/language/class_LanguageSystem.php -text inc/classes/main/output/.htaccess -text inc/classes/main/output/class_ConsoleOutput.php -text inc/classes/main/output/class_WebOutput.php -text +inc/classes/main/request/.htaccess -text +inc/classes/main/request/class_HttpRequest.php -text +inc/classes/main/response/.htaccess -text +inc/classes/main/response/class_HttpResponse.php -text inc/classes/main/template/.htaccess -text inc/classes/main/template/class_TemplateEngine.php -text inc/classes/middleware/.htaccess -text diff --git a/application/selector/class_ApplicationHelper.php b/application/selector/class_ApplicationHelper.php index 7655415..9e62fc0 100644 --- a/application/selector/class_ApplicationHelper.php +++ b/application/selector/class_ApplicationHelper.php @@ -106,7 +106,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica /** * Setter for the version number * - * @param $appVersion The application's version number + * @param $appVersion The application's version number * @return void */ public final function setAppVersion ($appVersion) { @@ -127,7 +127,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica /** * Setter for human-readable name * - * @param $appName The application's human-readable name + * @param $appName The application's human-readable name * @return void */ public final function setAppName ($appName) { @@ -148,7 +148,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica /** * Setter for short uni*-like name * - * @param $shortName The application's short uni*-like name + * @param $shortName The application's short uni*-like name * @return void */ public final function setAppShortName ($shortName) { diff --git a/docs/THANKS b/docs/THANKS index bd56a2c..91bd29d 100644 --- a/docs/THANKS +++ b/docs/THANKS @@ -1,6 +1,7 @@ Special Thanks goes to: - Daff - toms + - Arne Brodowski (http://www.arnebrodowski.de/blog/) - And all the others I have not listed here. If you think your name is missing here please ICQ me: 8809296 diff --git a/inc/classes/exceptions/main/class_InvalidObjectException.php b/inc/classes/exceptions/main/class_InvalidObjectException.php index 9dca343..76a4a4c 100644 --- a/inc/classes/exceptions/main/class_InvalidObjectException.php +++ b/inc/classes/exceptions/main/class_InvalidObjectException.php @@ -34,7 +34,7 @@ class InvalidObjectException extends FrameworkException { $message = sprintf("[%s:%d] Objekte sind nicht erlaubt. (Objekt: %s)", $class->__toString(), $this->getLine(), - $class->getPartDescr() + $class->getObjectDescription() ); // Call parent constructor diff --git a/inc/classes/interfaces/request/.htaccess b/inc/classes/interfaces/request/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/inc/classes/interfaces/request/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/interfaces/request/class_Requestable.php b/inc/classes/interfaces/request/class_Requestable.php new file mode 100644 index 0000000..7ef0f9a --- /dev/null +++ b/inc/classes/interfaces/request/class_Requestable.php @@ -0,0 +1,68 @@ + + * @version 0.3.0 + * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.mxchange.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 . + */ +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. + * + * @return void + */ + function prepareRequestData (); + + /** + * Checks wether a request element is set + * @param $element Name of the request element we want to check + * @return $isSet Wether the request element is set + * @throws MissingArrayElementsException Thrown if a request element is not set + */ + function isRequestElementSet ($element); + + /** + * Getter for request element or 'null' if the element was not found + * + * @param $element Name of the request element we want to check + * @return $value Value of the found request element or 'null' if the + * element was not found + */ + function getRequestElement ($element); + + /** + * Wrapper method for array_key() function for the request data array + * + * @return $array An array containing all array keys to return + */ + function getParameterNames (); + + /** + * Getter for a header element or 'null' if the header was not found + * + * @param $headerName Name of the header + * @return $headerValue Value of the header or 'null' if not found + */ + function getHeader ($headerName); +} + +// +?> diff --git a/inc/classes/interfaces/response/.htaccess b/inc/classes/interfaces/response/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/inc/classes/interfaces/response/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/interfaces/response/class_Responseable.php b/inc/classes/interfaces/response/class_Responseable.php new file mode 100644 index 0000000..22ee2cb --- /dev/null +++ b/inc/classes/interfaces/response/class_Responseable.php @@ -0,0 +1,63 @@ + + * @version 0.3.0 + * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.mxchange.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 . + */ +interface Responseable extends FrameworkInterface { + /** + * Setter for status + * + * @param $status New response status + * @return void + */ + function setResponseStatus ($status); + + /** + * Add header element + * + * @param $name Name of header element + * @param $value Value of header element + * @return void + */ + function addHeader ($name, $value); + + /** + * "Writes" data to the response body + * + * @param $output Output we shall sent in the HTTP response + * @return void + */ + function writeToBody ($output); + + /** + * Flushs the cached HTTP response to the outer world + * + * @param $foce Wether we shall force the output or abort if headers are + * already sent with an exception + * @return void + * @throws ResponseHeadersAlreadySentException Thrown if headers are + * already sent + */ + function flushResponse($force=false); +} + +// +?> diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index 8ac8d31..dbf69b1 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -61,7 +61,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * A human-readable description for this simulator part */ - private $partDescr = "Namenlose Framework-Einheit"; + private $objectDescription = "Namenlose Framework-Einheit"; /** * The unique ID string for identifying all type of classes @@ -139,6 +139,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { const EXCEPTION_TEMPLATE_ENGINE_UNSUPPORTED = 0x02d; const EXCEPTION_MISSING_LANGUAGE_HANDLER = 0x02e; const EXCEPTION_MISSING_FILE_IO_HANDLER = 0x02f; + const EXCEPTION_MISSING_ELEMENT = 0x030; /** * In the super constructor these system classes shall be ignored or else @@ -187,7 +188,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } // Destroy all informations about this class but keep some text about it alive - $this->setPartDescr(sprintf("Entferntes Objekt %s", $this->__toString())); + $this->setObjectDescription(sprintf("Entferntes Objekt %s", $this->__toString())); $this->setRealClass("DestructedObject"); $this->resetUniqueID(); } elseif ((defined('DEBUG_DESTRUCTOR')) && (is_object($this->getDebugInstance()))) { @@ -489,7 +490,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { $this->__toString(), md5(sprintf("%s:%s:%s:%s:%s:%s", $this->__toString(), - $this->getPartDescr(), + $this->getObjectDescription(), time(), getenv('REMOTE_ADDR'), getenv('SERVER_ADDR'), @@ -548,14 +549,14 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Getter for simulator description * - * @return $partDescr The description of this simulation part + * @return $objectDescription The description of this simulation part */ - public final function getPartDescr () { - if ((defined('DEBUG_SYSTEM')) && (is_object($this->getDebugInstance()))) $this->getDebugInstance()->output(sprintf("[%s:] getPartDescr erreicht.
\n", + public final function getObjectDescription () { + if ((defined('DEBUG_SYSTEM')) && (is_object($this->getDebugInstance()))) $this->getDebugInstance()->output(sprintf("[%s:] getObjectDescription erreicht.
\n", $this->__toString() )); - if (isset($this->partDescr)) { - return $this->partDescr; + if (isset($this->objectDescription)) { + return $this->objectDescription; } else { return null; } @@ -564,14 +565,14 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Setter for simulation part description * - * @param $partDescr The description as string for this simulation part + * @param $objectDescription The description as string for this simulation part * @return void */ - public final function setPartDescr ($partDescr) { - $this->partDescr = (String) $partDescr; + public final function setObjectDescription ($objectDescription) { + $this->objectDescription = (String) $objectDescription; if ((defined('DEBUG_SYSTEM')) && (is_object($this->getDebugInstance()))) $this->getDebugInstance()->output(sprintf("[%s:] Teilbeschreibung wird auf %s gesetzt.
\n", $this->__toString(), - $this->partDescr + $this->objectDescription )); } @@ -597,7 +598,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { ( $this->__toString() == $itemInstance->__toString() ) && ( - $this->getPartDescr() == $itemInstance->getPartDescr() + $this->getObjectDescription() == $itemInstance->getObjectDescription() ) ); } diff --git a/inc/classes/main/commands/extended/.htaccess b/inc/classes/main/commands/extended/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/inc/classes/main/commands/extended/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/commands/extended/class_ b/inc/classes/main/commands/extended/class_ new file mode 100644 index 0000000..919a549 --- /dev/null +++ b/inc/classes/main/commands/extended/class_ @@ -0,0 +1,57 @@ + + * @version 0.3.0 + * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.mxchange.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 Command extends BaseCommand implements Commandable { + /** + * Private constructor + * + * @return void + */ + private function __construct () { + // Call parent constructor + parent::constructor(__CLASS__); + + // Set special description + $this->setObjectDescription("Spezieller Command"); + + // Create unique ID number + $this->createUniqueID(); + + // Clean up a little + $this->removeNumberFormaters(); + $this->removeSystemArray(); + } + + /** + * Executes the given command with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + } +} + +// [EOF] +?> diff --git a/inc/classes/main/compressor/class_Bzip2Compressor.php b/inc/classes/main/compressor/class_Bzip2Compressor.php index c0c475f..48eb84c 100644 --- a/inc/classes/main/compressor/class_Bzip2Compressor.php +++ b/inc/classes/main/compressor/class_Bzip2Compressor.php @@ -37,7 +37,7 @@ class Bzip2Compressor extends BaseFrameworkSystem implements Compressor { )); // Set description - $this->setPartDescr("BZIP2-Kompressor"); + $this->setObjectDescription("BZIP2-Kompressor"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/main/compressor/class_GzipCompressor.php b/inc/classes/main/compressor/class_GzipCompressor.php index 0caae9f..9d9fa03 100644 --- a/inc/classes/main/compressor/class_GzipCompressor.php +++ b/inc/classes/main/compressor/class_GzipCompressor.php @@ -37,7 +37,7 @@ class GzipCompressor extends BaseFrameworkSystem implements Compressor { )); // Set description - $this->setPartDescr("GZIP-Kompressor"); + $this->setObjectDescription("GZIP-Kompressor"); // Create an unique ID $this->createUniqueID(); @@ -75,8 +75,8 @@ class GzipCompressor extends BaseFrameworkSystem implements Compressor { /** * GZIP compression stream * - * @param $streamData Mixed non-object stream data - * @return $streamData The compressed stream data + * @param $streamData Mixed non-object stream data + * @return $streamData The compressed stream data * @throws InvalidObjectException If the stream is an object */ public function compressStream ($streamData) { @@ -92,8 +92,8 @@ class GzipCompressor extends BaseFrameworkSystem implements Compressor { /** * GZIP decompression stream * - * @param $streamData Mixed non-object stream data - * @return $streamData The decompressed stream data + * @param $streamData Mixed non-object stream data + * @return $streamData The decompressed stream data * @throws InvalidObjectException If the stream is an object */ public function decompressStream ($streamData) { diff --git a/inc/classes/main/compressor/class_NullCompressor.php b/inc/classes/main/compressor/class_NullCompressor.php index 56b2d5f..c432efe 100644 --- a/inc/classes/main/compressor/class_NullCompressor.php +++ b/inc/classes/main/compressor/class_NullCompressor.php @@ -37,7 +37,7 @@ class NullCompressor extends BaseFrameworkSystem implements Compressor { )); // Set description - $this->setPartDescr("Null-Kompressor"); + $this->setObjectDescription("Null-Kompressor"); // Create an unique ID $this->createUniqueID(); @@ -59,8 +59,8 @@ class NullCompressor extends BaseFrameworkSystem implements Compressor { /** * Null compression stream * - * @param $streamData Mixed non-object stream data - * @return $streamData The compressed stream data + * @param $streamData Mixed non-object stream data + * @return $streamData The compressed stream data * @throws InvalidObjectException If the stream is an object */ public function compressStream ($streamData) { @@ -76,8 +76,8 @@ class NullCompressor extends BaseFrameworkSystem implements Compressor { /** * Null decompression stream * - * @param $streamData Mixed non-object stream data - * @return $streamData The decompressed stream data + * @param $streamData Mixed non-object stream data + * @return $streamData The decompressed stream data * @throws InvalidObjectException If the stream is an object */ public function decompressStream ($streamData) { @@ -93,7 +93,7 @@ class NullCompressor extends BaseFrameworkSystem implements Compressor { /** * Getter for the file extension of this compressor * - * @return $string Returns always "bz2" + * @return $string Returns always "null" */ public final function getCompressorExtension () { if ((defined('DEBUG_COMPRESSOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Dateierweiterung angefordert.
\n", diff --git a/inc/classes/main/console/class_ConsoleTools.php b/inc/classes/main/console/class_ConsoleTools.php index 5ba9ae6..175102a 100644 --- a/inc/classes/main/console/class_ConsoleTools.php +++ b/inc/classes/main/console/class_ConsoleTools.php @@ -32,7 +32,7 @@ class ConsoleTools extends BaseFrameworkSystem { parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Console-Tools"); + $this->setObjectDescription("Console-Tools"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/main/database/classes/class_LocalFileDatabase.php b/inc/classes/main/database/classes/class_LocalFileDatabase.php index 1734064..3f207c8 100644 --- a/inc/classes/main/database/classes/class_LocalFileDatabase.php +++ b/inc/classes/main/database/classes/class_LocalFileDatabase.php @@ -55,7 +55,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Dateidatenbankschicht"); + $this->setObjectDescription("Dateidatenbankschicht"); // Create unique ID $this->createUniqueID(); diff --git a/inc/classes/main/debug/class_DebugConsoleOutput.php b/inc/classes/main/debug/class_DebugConsoleOutput.php index 82bcd7f..8efe0b5 100644 --- a/inc/classes/main/debug/class_DebugConsoleOutput.php +++ b/inc/classes/main/debug/class_DebugConsoleOutput.php @@ -32,7 +32,7 @@ class DebugConsoleOutput extends BaseFrameworkSystem implements Debugger, Output parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Debug-Ausgabe auf Konsole"); + $this->setObjectDescription("Debug-Ausgabe auf Konsole"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/main/debug/class_DebugErrorLogOutput.php b/inc/classes/main/debug/class_DebugErrorLogOutput.php index c8e6293..a11a9f7 100644 --- a/inc/classes/main/debug/class_DebugErrorLogOutput.php +++ b/inc/classes/main/debug/class_DebugErrorLogOutput.php @@ -32,7 +32,7 @@ class DebugErrorLogOutput extends BaseFrameworkSystem implements Debugger, Outpu parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Debug-Ausgabe in error_log()"); + $this->setObjectDescription("Debug-Ausgabe in error_log()"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/main/debug/class_DebugWebOutput.php b/inc/classes/main/debug/class_DebugWebOutput.php index ee3ae81..844605f 100644 --- a/inc/classes/main/debug/class_DebugWebOutput.php +++ b/inc/classes/main/debug/class_DebugWebOutput.php @@ -32,7 +32,7 @@ class DebugWebOutput extends BaseFrameworkSystem implements Debugger, OutputStre parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Debug-Ausgabe auf Konsole"); + $this->setObjectDescription("Debug-Ausgabe auf Konsole"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/main/extended/class_ObjectLimits.php b/inc/classes/main/extended/class_ObjectLimits.php index 91dc519..13a658a 100644 --- a/inc/classes/main/extended/class_ObjectLimits.php +++ b/inc/classes/main/extended/class_ObjectLimits.php @@ -39,7 +39,7 @@ class ObjectLimits extends BaseFrameworkSystem { parent::constructor(__CLASS__); // Set part description - $this->setPartDescr("Limitierungsobjekt"); + $this->setObjectDescription("Limitierungsobjekt"); // Create unique ID number $this->createUniqueID(); diff --git a/inc/classes/main/io/class_FileIOStream.php b/inc/classes/main/io/class_FileIOStream.php index 2eedf3c..155774a 100644 --- a/inc/classes/main/io/class_FileIOStream.php +++ b/inc/classes/main/io/class_FileIOStream.php @@ -30,7 +30,7 @@ class FileIOStream extends BaseFrameworkSystem implements FileInputStreamer, Fil parent::constructor(__CLASS__); // Set part description - $this->setPartDescr("Universal Datei-Ein-/Ausgabesystem"); + $this->setObjectDescription("Universal Datei-Ein-/Ausgabesystem"); // Create unique ID $this->createUniqueID(); diff --git a/inc/classes/main/io/class_FrameworkDirectoryPointer.php b/inc/classes/main/io/class_FrameworkDirectoryPointer.php index e8af817..f02faf9 100644 --- a/inc/classes/main/io/class_FrameworkDirectoryPointer.php +++ b/inc/classes/main/io/class_FrameworkDirectoryPointer.php @@ -40,7 +40,7 @@ class FrameworkDirectoryPointer extends BaseFrameworkSystem { parent::constructor(__CLASS__); // Set part description - $this->setPartDescr("Verzeichnis-Handler"); + $this->setObjectDescription("Verzeichnis-Handler"); // Create unique ID $this->createUniqueID(); diff --git a/inc/classes/main/io/class_FrameworkFileInputPointer.php b/inc/classes/main/io/class_FrameworkFileInputPointer.php index 534650a..c66d76d 100644 --- a/inc/classes/main/io/class_FrameworkFileInputPointer.php +++ b/inc/classes/main/io/class_FrameworkFileInputPointer.php @@ -40,7 +40,7 @@ class FrameworkFileInputPointer extends BaseFrameworkSystem { parent::constructor(__CLASS__); // Set part description - $this->setPartDescr("Dateiausgabe-Handler"); + $this->setObjectDescription("Dateiausgabe-Handler"); // Create unique ID $this->createUniqueID(); diff --git a/inc/classes/main/io/class_FrameworkFileOutputPointer.php b/inc/classes/main/io/class_FrameworkFileOutputPointer.php index 59de4f6..9705137 100644 --- a/inc/classes/main/io/class_FrameworkFileOutputPointer.php +++ b/inc/classes/main/io/class_FrameworkFileOutputPointer.php @@ -40,7 +40,7 @@ class FrameworkFileOutputPointer extends BaseFrameworkSystem { parent::constructor(__CLASS__); // Set part description - $this->setPartDescr("Dateiausgabe-Handler"); + $this->setObjectDescription("Dateiausgabe-Handler"); // Create unique ID $this->createUniqueID(); diff --git a/inc/classes/main/language/class_LanguageSystem.php b/inc/classes/main/language/class_LanguageSystem.php index 419a856..baac159 100644 --- a/inc/classes/main/language/class_LanguageSystem.php +++ b/inc/classes/main/language/class_LanguageSystem.php @@ -53,7 +53,7 @@ class LanguageSystem extends BaseFrameworkSystem implements ManageableLanguage { parent::constructor(__CLASS__); // Set part description - $this->setPartDescr("Sprachsystem"); + $this->setObjectDescription("Sprachsystem"); // Create unique ID number $this->createUniqueID(); diff --git a/inc/classes/main/output/class_ConsoleOutput.php b/inc/classes/main/output/class_ConsoleOutput.php index 374c2af..3bf27fc 100644 --- a/inc/classes/main/output/class_ConsoleOutput.php +++ b/inc/classes/main/output/class_ConsoleOutput.php @@ -43,7 +43,7 @@ class ConsoleOutput extends BaseFrameworkSystem implements OutputStreamer { parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Console-Ausgabe-Handler"); + $this->setObjectDescription("Console-Ausgabe-Handler"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/main/output/class_WebOutput.php b/inc/classes/main/output/class_WebOutput.php index 40d425c..27e5c83 100644 --- a/inc/classes/main/output/class_WebOutput.php +++ b/inc/classes/main/output/class_WebOutput.php @@ -38,7 +38,7 @@ class WebOutput extends BaseFrameworkSystem implements OutputStreamer { parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Web-Ausgabe-Handler"); + $this->setObjectDescription("Web-Ausgabe-Handler"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/main/request/.htaccess b/inc/classes/main/request/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/inc/classes/main/request/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/request/class_HttpRequest.php b/inc/classes/main/request/class_HttpRequest.php new file mode 100644 index 0000000..2a12d30 --- /dev/null +++ b/inc/classes/main/request/class_HttpRequest.php @@ -0,0 +1,151 @@ + + * @version 0.3.0 + * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.mxchange.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 BaseFrameworkSystem implements Requestable { + /** + * Array for the request data + */ + private $requestData = array(); + + /** + * Private constructor + * + * @return void + */ + private final function __construct () { + // Call parent constructor + parent::constructor(__CLASS__); + + // Set part description + $this->setObjectDescription("HTTP-Anfrage"); + + // Create unique ID number + $this->createUniqueID(); + + // 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 the $_REQUEST array + $this->requestData = $_REQUEST; + } + + /** + * Checks wether a request element is set + * @param $element Name of the request element we want to check + * @return $isSet Wether the request element is set + * @throws MissingArrayElementsException Thrown if a request element is not set + */ + public function isRequestElementSet ($element) { + // Is this element found? + if (!isset($this->requestData[$element])) { + // Then throw an exception + throw new MissingArrayElementsException(array($this, 'requestData', $element), self::EXCEPTION_MISSING_ELEMENT); + } + + // All clear + return true; + } + + /** + * Getter for request element or 'null' if the element was not found + * + * @param $element Name of the request element we want to check + * @return $value Value of the found request element or 'null' if the + * element was not found + */ + public function getRequestElement ($element) { + // Initialize value + $value = null; + + try { + if ($this->isRequestElementSet($element)) { + $value = $this->requestData[$element]; + } + } catch (MissingArrayElementsException $e) { + // Do nothing here + } + + // Return the element's value + return $value; + } + + /** + * Wrapper method for array_key() function for the 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 the 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(str_replace('-', '_', $headerName)); + + // Does this header exist? + if (isset($_SERVER[$name])) { + $headerValue = $_SERVER[$name]; + } + + // Return the value + return $headerValue; + } +} + +// [EOF] +?> diff --git a/inc/classes/main/response/.htaccess b/inc/classes/main/response/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/inc/classes/main/response/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/response/class_HttpResponse.php b/inc/classes/main/response/class_HttpResponse.php new file mode 100644 index 0000000..1ee74ca --- /dev/null +++ b/inc/classes/main/response/class_HttpResponse.php @@ -0,0 +1,133 @@ + + * @version 0.3.0 + * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.mxchange.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 HttpResponse extends BaseFrameworkSystem implements Responseable { + /** + * Response status + */ + private $responseStatus = "200 OK"; + + /** + * Array with all headers + */ + private $responseHeaders = array(); + + /** + * Body of the response + */ + private $responseBody = ""; + + /** + * Private constructor + * + * @return void + */ + private function __construct () { + // Call parent constructor + parent::constructor(__CLASS__); + + // Set part description + $this->setObjectDescription("HTTP-Antwort"); + + // Create unique ID number + $this->createUniqueID(); + + // Clean up a little + $this->removeNumberFormaters(); + $this->removeSystemArray(); + } + + /** + * Creates an object of this class + * + * @return $responseInstance A prepared instance of this class + */ + public final static function createHttpResponse () { + // Get a new instance + $responseInstance = new HttpResponse(); + + // Return the prepared instance + return $responseInstance; + } + + /** + * Setter for status + * + * @param $status New response status + * @return void + */ + public final function setResponseStatus ($status) { + $this->responseStatus = (string) $status; + } + + /** + * Add header element + * + * @param $name Name of header element + * @param $value Value of header element + * @return void + */ + public final function addHeader ($name, $value) { + $this->responseHeaders[$name] = $value; + } + + /** + * "Writes" data to the response body + * + * @param $output Output we shall sent in the HTTP response + * @return void + */ + public function writeToBody ($output) { + $this->responseBody .= $output; + } + + /** + * Flushs the cached HTTP response to the outer world + * + * @param $foce Wether we shall force the output or abort if headers are + * already sent with an exception + * @return void + * @throws ResponseHeadersAlreadySentException Thrown if headers are + * already sent + */ + public function flushResponse($force=false) { + if ((headers_sent()) && (!$force)) { + // Headers are already sent! + throw new ResponseHeadersAlreadySentException($this, self::EXCEPTION_HEADERS_ALREADY_SENT); + } elseif (!headers_sent()) { + // Send headers out + header("HTTP/1.0 {$this->responseStatus}"); + foreach ($this->responseHeaders as $name=>$value) { + header("{$name}: {$value}"); + } + } + + // Flush the output to the world + $this->getWebOutputInstance()->output($this->responseBody); + $this->reponseBody = ""; + $this->responseHeaders = array(); + } +} + +// [EOF] +?> diff --git a/inc/classes/main/template/class_TemplateEngine.php b/inc/classes/main/template/class_TemplateEngine.php index 1dfb7ad..44f374f 100644 --- a/inc/classes/main/template/class_TemplateEngine.php +++ b/inc/classes/main/template/class_TemplateEngine.php @@ -123,7 +123,7 @@ class TemplateEngine extends BaseFrameworkSystem implements CompileableTemplate parent::constructor(__CLASS__); // Set part description - $this->setPartDescr("Template-Engine"); + $this->setObjectDescription("Template-Engine"); // Create unique ID number $this->createUniqueID(); diff --git a/inc/classes/middleware/compressor/class_CompressorChannel.php b/inc/classes/middleware/compressor/class_CompressorChannel.php index 5d5017c..8dae607 100644 --- a/inc/classes/middleware/compressor/class_CompressorChannel.php +++ b/inc/classes/middleware/compressor/class_CompressorChannel.php @@ -31,7 +31,7 @@ class CompressorChannel extends BaseMiddleware { parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Komprimierungshandler"); + $this->setObjectDescription("Komprimierungshandler"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/middleware/database/class_DatabaseConnection.php b/inc/classes/middleware/database/class_DatabaseConnection.php index e6adbbe..d7db9d8 100644 --- a/inc/classes/middleware/database/class_DatabaseConnection.php +++ b/inc/classes/middleware/database/class_DatabaseConnection.php @@ -37,7 +37,7 @@ class DatabaseConnection extends BaseMiddleware implements DatabaseConnector, Li parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Datenbank-Mittelschicht"); + $this->setObjectDescription("Datenbank-Mittelschicht"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/middleware/debug/class_DebugMiddleware.php b/inc/classes/middleware/debug/class_DebugMiddleware.php index 5193532..2cc4882 100644 --- a/inc/classes/middleware/debug/class_DebugMiddleware.php +++ b/inc/classes/middleware/debug/class_DebugMiddleware.php @@ -44,7 +44,7 @@ class DebugMiddleware extends BaseMiddleware { parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Debug-Ausgabe-Handler"); + $this->setObjectDescription("Debug-Ausgabe-Handler"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/classes/middleware/io/class_FileIOHandler.php b/inc/classes/middleware/io/class_FileIOHandler.php index 7e624cc..7e0d35a 100644 --- a/inc/classes/middleware/io/class_FileIOHandler.php +++ b/inc/classes/middleware/io/class_FileIOHandler.php @@ -48,7 +48,7 @@ class FileIOHandler extends BaseMiddleware { parent::constructor(__CLASS__); // Set description - $this->setPartDescr("Datei-Ein-/Ausgabe-Handler"); + $this->setObjectDescription("Datei-Ein-/Ausgabe-Handler"); // Create an unique ID $this->createUniqueID(); diff --git a/inc/selector.php b/inc/selector.php index 23acabe..7af8aa0 100644 --- a/inc/selector.php +++ b/inc/selector.php @@ -52,11 +52,11 @@ $application = preg_replace('/([^a-z_-])+/i', "", $application); $configAppIncludes = array( sprintf("class_%s", FrameworkConfiguration::getInstance()->readConfig("app_helper_class")), // The ApplicationHelper class "config", // The application's own configuration - "init", // The application initializer - "loader", // The application's class loader + "init", // The application initializer + "loader", // The application's class loader "debug", // Some debugging stuff "exceptions", // The application's own exception handler - "starter", // The application starter (calls entryPoint(), etc.) + "starter", // The application starter (calls entryPoint(), etc.) ); // Load them all (try only)