X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Fclass_BaseFrameworkSystem.php;h=38a45f3de6487ae05416f5e7fbff5ab4508723ec;hb=08a0c865dd2c8ee0b6dbf96f4f07e9ee0ce0f02b;hp=7c0ed665589d4db54f76355f997a079263464286;hpb=2b0e7f20e7d554a5675c3268db6de3dd3ab3421d;p=core.git diff --git a/framework/main/classes/class_BaseFrameworkSystem.php b/framework/main/classes/class_BaseFrameworkSystem.php index 7c0ed665..38a45f3d 100644 --- a/framework/main/classes/class_BaseFrameworkSystem.php +++ b/framework/main/classes/class_BaseFrameworkSystem.php @@ -4,33 +4,25 @@ namespace Org\Mxchange\CoreFramework\Object; // Import framework stuff use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap; -use Org\Mxchange\CoreFramework\Criteria\Criteria; -use Org\Mxchange\CoreFramework\Crypto\Cryptable; -use Org\Mxchange\CoreFramework\Database\Frontend\DatabaseWrapper; use Org\Mxchange\CoreFramework\EntryPoint\ApplicationEntryPoint; -use Org\Mxchange\CoreFramework\Factory\Database\Wrapper\DatabaseWrapperFactory; -use Org\Mxchange\CoreFramework\Factory\ObjectFactory; +use Org\Mxchange\CoreFramework\Factory\Object\ObjectFactory; use Org\Mxchange\CoreFramework\Filesystem\PathWriteProtectedException; use Org\Mxchange\CoreFramework\Generic\FrameworkInterface; use Org\Mxchange\CoreFramework\Generic\NullPointerException; use Org\Mxchange\CoreFramework\Generic\UnsupportedOperationException; +use Org\Mxchange\CoreFramework\Helper\Application\ApplicationHelper; use Org\Mxchange\CoreFramework\Loader\ClassLoader; use Org\Mxchange\CoreFramework\Manager\ManageableApplication; use Org\Mxchange\CoreFramework\Middleware\Debug\DebugMiddleware; use Org\Mxchange\CoreFramework\Registry\GenericRegistry; use Org\Mxchange\CoreFramework\Result\Database\CachedDatabaseResult; -use Org\Mxchange\CoreFramework\Result\Search\SearchableResult; use Org\Mxchange\CoreFramework\State\Stateable; -use Org\Mxchange\CoreFramework\Stream\Input\InputStream; use Org\Mxchange\CoreFramework\Stream\Output\OutputStreamer; -use Org\Mxchange\CoreFramework\Stream\Output\OutputStream; -use Org\Mxchange\CoreFramework\User\ManageableAccount; -use Org\Mxchange\CoreFramework\Utils\String\StringUtils; +use Org\Mxchange\CoreFramework\Utils\Strings\StringUtils; // Import SPL stuff use \stdClass; use \InvalidArgumentException; -use \Iterator; use \ReflectionClass; use \SplFileInfo; @@ -40,7 +32,7 @@ use \SplFileInfo; * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2020 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2021 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -58,61 +50,16 @@ use \SplFileInfo; * along with this program. If not, see . */ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterface { - /** - * Length of output from hash() - */ - private static $hashLength = NULL; - /** * Self-referencing instance */ - private static $instance = NULL; + private static $selfInstance = NULL; /** * The real class name */ private $realClass = __CLASS__; - /** - * Database result instance - */ - private $resultInstance = NULL; - - /** - * Instance for user class - */ - private $userInstance = NULL; - - /** - * Instance of a crypto helper - */ - private $cryptoInstance = NULL; - - /** - * Instance of an Iterator class - */ - private $iteratorInstance = NULL; - - /** - * An instance of a InputStream class - */ - private $inputStreamInstance = NULL; - - /** - * An instance of a OutputStream class - */ - private $outputStreamInstance = NULL; - - /** - * An instance of a database wrapper class - */ - private $wrapperInstance = NULL; - - /** - * State instance - */ - private $stateInstance = NULL; - /** * Call-back instance */ @@ -220,9 +167,6 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @return void */ public function __destruct () { - // Flush any updated entries to the database - $this->flushPendingUpdates(); - // Is this object already destroyed? if ($this->__toString() != 'DestructedObject') { // Destroy all informations about this class but keep some text about it alive @@ -248,13 +192,13 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac */ public final function __call (string $methodName, array $args = NULL) { // Set self-instance - self::$instance = $this; + self::$selfInstance = $this; // Call static method self::__callStatic($methodName, $args); // Clear self-instance - self::$instance = NULL; + self::$selfInstance = NULL; } /** @@ -263,7 +207,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @param $methodName Name of the missing method * @param $args Arguments passed to the method * @return void - * @throws InvalidArgumentException If self::$instance is not a framework's own object + * @throws InvalidArgumentException If self::$selfInstance is not a framework's own object */ public static final function __callStatic (string $methodName, array $args = NULL) { // Init argument string and class name @@ -272,12 +216,12 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac $className = 'unknown'; // Is self-instance set? - if (self::$instance instanceof FrameworkInterface) { + if (self::$selfInstance instanceof FrameworkInterface) { // Framework's own instance - $className = self::$instance->__toString(); - } elseif (!is_null(self::$instance)) { + $className = self::$selfInstance->__toString(); + } elseif (!is_null(self::$selfInstance)) { // Invalid argument! - throw new InvalidArgumentException(sprintf('self::instance[%s] is not expected.', gettype(self::$instance)), self::EXCEPTION_SELF_INSTANCE); + throw new InvalidArgumentException(sprintf('self::instance[%s] is not expected.', gettype(self::$selfInstance)), self::EXCEPTION_SELF_INSTANCE); } // Is it NULL, empty or an array? @@ -434,26 +378,6 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac $this->realClass = $realClass; } - /** - * Setter for database result instance - * - * @param $resultInstance An instance of a database result class - * @return void - * @todo SearchableResult and UpdateableResult shall have a super interface to use here - */ - protected final function setResultInstance (SearchableResult $resultInstance) { - $this->resultInstance = $resultInstance; - } - - /** - * Getter for database result instance - * - * @return $resultInstance An instance of a database result class - */ - public final function getResultInstance () { - return $this->resultInstance; - } - /** * Setter for debug instance * @@ -497,139 +421,6 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac return $webOutputInstance; } - /** - * Protected setter for user instance - * - * @param $userInstance An instance of a user class - * @return void - */ - protected final function setUserInstance (ManageableAccount $userInstance) { - $this->userInstance = $userInstance; - } - - /** - * Getter for user instance - * - * @return $userInstance An instance of a user class - */ - public final function getUserInstance () { - return $this->userInstance; - } - - /** - * Setter for Cryptable instance - * - * @param $cryptoInstance An instance of a Cryptable class - * @return void - */ - protected final function setCryptoInstance (Cryptable $cryptoInstance) { - $this->cryptoInstance = $cryptoInstance; - } - - /** - * Getter for Cryptable instance - * - * @return $cryptoInstance An instance of a Cryptable class - */ - public final function getCryptoInstance () { - return $this->cryptoInstance; - } - - /** - * Setter for DatabaseWrapper instance - * - * @param $wrapperInstance An instance of an DatabaseWrapper - * @return void - */ - public final function setWrapperInstance (DatabaseWrapper $wrapperInstance) { - $this->wrapperInstance = $wrapperInstance; - } - - /** - * Getter for DatabaseWrapper instance - * - * @return $wrapperInstance An instance of an DatabaseWrapper - */ - public final function getWrapperInstance () { - return $this->wrapperInstance; - } - - /** - * Getter for a InputStream instance - * - * @param $inputStreamInstance The InputStream instance - */ - protected final function getInputStreamInstance () { - return $this->inputStreamInstance; - } - - /** - * Setter for a InputStream instance - * - * @param $inputStreamInstance The InputStream instance - * @return void - */ - protected final function setInputStreamInstance (InputStream $inputStreamInstance) { - $this->inputStreamInstance = $inputStreamInstance; - } - - /** - * Getter for a OutputStream instance - * - * @param $outputStreamInstance The OutputStream instance - */ - protected final function getOutputStreamInstance () { - return $this->outputStreamInstance; - } - - /** - * Setter for a OutputStream instance - * - * @param $outputStreamInstance The OutputStream instance - * @return void - */ - protected final function setOutputStreamInstance (OutputStream $outputStreamInstance) { - $this->outputStreamInstance = $outputStreamInstance; - } - - /** - * Setter for Iterator instance - * - * @param $iteratorInstance An instance of an Iterator - * @return void - */ - protected final function setIteratorInstance (Iterator $iteratorInstance) { - $this->iteratorInstance = $iteratorInstance; - } - - /** - * Getter for Iterator instance - * - * @return $iteratorInstance An instance of an Iterator - */ - public final function getIteratorInstance () { - return $this->iteratorInstance; - } - - /** - * Setter for state instance - * - * @param $stateInstance A Stateable instance - * @return void - */ - public final function setStateInstance (Stateable $stateInstance) { - $this->stateInstance = $stateInstance; - } - - /** - * Getter for state instance - * - * @return $stateInstance A Stateable instance - */ - public final function getStateInstance () { - return $this->stateInstance; - } - /** * Setter for call-back instance * @@ -685,7 +476,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @param $str A string (maybe) without trailing slash * @return $str A string with an auto-appended trailing slash */ - public final function addMissingTrailingSlash ($str) { + public final function addMissingTrailingSlash (string $str) { // Is there a trailing slash? if (substr($str, -1, 1) != '/') { $str .= '/'; @@ -701,7 +492,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @param $message Optional message to show in debug output * @return void */ - public final function debugInstance ($message = '') { + public final function debugInstance (string $message = '') { // Restore the error handler to avoid trouble with missing array elements or undeclared variables restore_error_handler(); @@ -748,7 +539,7 @@ Loaded includes: * @param $str String with control characters * @return $str Replaced string */ - protected function replaceControlCharacters ($str) { + protected function replaceControlCharacters (string $str) { // Replace them $str = str_replace( chr(13), '[r]', str_replace( @@ -767,7 +558,7 @@ Loaded includes: * @param $message An optional message to display * @return void */ - protected function partialStub ($message = '') { + protected function partialStub (string $message = '') { // Init variable $stubMessage = 'Partial stub!'; @@ -795,7 +586,7 @@ Loaded includes: * @param $doExit Whether exit the program (true is default) * @return void */ - public function debugBackTrace ($message = '', $doExit = true) { + public function debugBackTrace (string $message = '', bool $doExit = true) { // Sorry, there is no other way getting this nice backtrace if (!empty($message)) { // Output message @@ -820,9 +611,12 @@ Loaded includes: * @return $debugInstance An instance of a debugger class * @deprecated Not fully, as the new Logger facilities are not finished yet. */ - public final static function createDebugInstance ($className, $lineNumber = NULL) { - // Is the instance set? - if (!GenericRegistry::getRegistry()->instanceExists('debug')) { + public final static function createDebugInstance (string $className, int $lineNumber = NULL) { + // Validate parameter + if (empty($className)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "className" is empty'); + } elseif (!GenericRegistry::getRegistry()->instanceExists('debug')) { // Init debug instance $debugInstance = NULL; @@ -832,7 +626,7 @@ Loaded includes: $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('debug_' . FrameworkBootstrap::getRequestTypeFromSystem() . '_class'), $className); } catch (NullPointerException $e) { // Didn't work, no instance there - exit(sprintf('Cannot create debugInstance! Exception=%s,message=%s,className=%s,lineNumber=%d' . PHP_EOL, $e->__toString(), $e->getMessage(), $className, $lineNumber)); + exit(sprintf('[%s:%d]: Cannot create debugInstance! Exception=%s,message=%s,className=%s,lineNumber=%d' . PHP_EOL, __METHOD__, __LINE__, $e->__toString(), $e->getMessage(), $className, $lineNumber)); } // Empty string should be ignored and used for testing the middleware @@ -855,7 +649,7 @@ Loaded includes: * @param $message Message to output * @return void */ - public function outputLine ($message) { + public function outputLine (string $message) { // Simply output it print($message . PHP_EOL); } @@ -870,7 +664,7 @@ Loaded includes: * @paran $stripTags Whether to strip tags (default: false) * @return void */ - public function debugOutput ($message, $doPrint = true, $stripTags = false) { + public function debugOutput (string $message, bool $doPrint = true, bool $stripTags = false) { // Set debug instance to NULL $debugInstance = NULL; @@ -937,7 +731,7 @@ Loaded includes: * @param $phpCode Unmarked PHP code * @return $markedCode Marked PHP code */ - public function markupCode ($phpCode) { + public function markupCode (string $phpCode) { // Init marked code $markedCode = ''; @@ -974,6 +768,7 @@ Loaded includes: * @return $entry An array with database entries * @throws NullPointerException If the database result is not found * @throws InvalidDatabaseResultException If the database result is invalid + * @todo Monolithic method, should be moved to proper classes */ protected final function getDatabaseEntry () { // Is there an instance? @@ -1032,12 +827,12 @@ Loaded includes: if ($this->isFieldSet($fieldName)) { // Get it $fieldValue = $fieldArray[$fieldName2]; - } elseif (defined('DEVELOPER')) { + } elseif (FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('developer_mode_enabled')) { // Missing field entry, may require debugging - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']:fieldArray
=' . print_r($fieldArray, true) . '
,fieldName=' . $fieldName . ' not found!'); + self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-FRAMEWORK-SYSTEM: fieldArray
=' . print_r($fieldArray, true) . '
,fieldName=' . $fieldName . ' not found!'); } else { // Missing field entry, may require debugging - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']:fieldName=' . $fieldName . ' not found!'); + self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-FRAMEWORK-SYSTEM: fieldName=' . $fieldName . ' not found!'); } // Return it @@ -1075,28 +870,6 @@ Loaded includes: return $isSet; } - /** - * Flushs all pending updates to the database layer - * - * @return void - */ - public function flushPendingUpdates () { - // Get result instance - $resultInstance = $this->getResultInstance(); - - // Do we have data to update? - if ((is_object($resultInstance)) && ($resultInstance->ifDataNeedsFlush())) { - // Get wrapper class name config entry - $configEntry = $resultInstance->getUpdateInstance()->getWrapperConfigEntry(); - - // Create object instance - $wrapperInstance = DatabaseWrapperFactory::createWrapperByConfiguredName($configEntry); - - // Yes, then send the whole result to the database layer - $wrapperInstance->doUpdateByResult($this->getResultInstance()); - } - } - /** * Outputs a deprecation warning to the developer. * @@ -1104,9 +877,9 @@ Loaded includes: * @return void * @todo Write a logging mechanism for productive mode */ - public function deprecationWarning ($message) { + public function deprecationWarning (string $message) { // Is developer mode active? - if (defined('DEVELOPER')) { + if (FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('developer_mode_enabled')) { // Debug instance is there? if (!is_null($this->getDebugInstance())) { // Output stub message @@ -1128,7 +901,7 @@ Loaded includes: * @param $phpExtension The PHP extension we shall check * @return $isLoaded Whether the PHP extension is loaded */ - public final function isPhpExtensionLoaded ($phpExtension) { + public final function isPhpExtensionLoaded (string $phpExtension) { // Is it loaded? $isLoaded = in_array($phpExtension, get_loaded_extensions()); @@ -1155,7 +928,7 @@ Loaded includes: * * @return $hasSlept Whether it goes fine */ - public function idle ($milliSeconds) { + public function idle (int $milliSeconds) { // Sleep is fine by default $hasSlept = true; @@ -1184,7 +957,7 @@ Loaded includes: * @param $encodedData Encoded data we shall check * @return $isBase64 Whether the encoded data is Base64 */ - protected function isBase64Encoded ($encodedData) { + protected function isBase64Encoded (string $encodedData) { // Determine it $isBase64 = (@base64_decode($encodedData, true) !== false); @@ -1192,26 +965,6 @@ Loaded includes: return $isBase64; } - /** - * Gets a cache key from Criteria instance - * - * @param $criteriaInstance An instance of a Criteria class - * @param $onlyKeys Only use these keys for a cache key - * @return $cacheKey A cache key suitable for lookup/storage purposes - */ - protected function getCacheKeyByCriteria (Criteria $criteriaInstance, array $onlyKeys = []) { - // Generate it - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-FRAMEWORK-SYSTEM: criteriaInstance=' . $criteriaInstance->__toString() . ',onlyKeys()=' . count($onlyKeys) . ' - CALLED!'); - $cacheKey = sprintf('%s@%s', - $this->__toString(), - $criteriaInstance->getCacheKey($onlyKeys) - ); - - // And return it - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-FRAMEWORK-SYSTEM: cacheKey=' . $cacheKey . ' - EXIT!'); - return $cacheKey; - } - /** * Getter for startup time in miliseconds * @@ -1227,97 +980,13 @@ Loaded includes: * @return $executionTime Current execution time in nice braces */ protected function getPrintableExecutionTime () { - // Caculate the execution time - $executionTime = microtime(true) - $this->getStartupTime(); - - // Pack it in nice braces - $executionTime = sprintf('[ %01.5f ] ', $executionTime); + // Calculate execution time and pack it in nice braces + $executionTime = sprintf('[ %01.5f ] ', (microtime(true) - $this->getStartupTime())); // And return it return $executionTime; } - /** - * Hashes a given string with a simple but stronger hash function (no salt) - * and hex-encode it. - * - * @param $str The string to be hashed - * @return $hash The hash from string $str - */ - public static final function hash ($str) { - // Hash given string with (better secure) hasher - $hash = bin2hex(mhash(MHASH_SHA256, $str)); - - // Return it - return $hash; - } - - /** - * "Getter" for length of hash() output. This will be "cached" to speed up - * things. - * - * @return $length Length of hash() output - */ - public static final function getHashLength () { - // Is it cashed? - if (is_null(self::$hashLength)) { - // No, then hash a string and save its length. - self::$hashLength = strlen(self::hash('abc123')); - } - - // Return it - return self::$hashLength; - } - - /** - * Checks whether the given number is really a number (only chars 0-9). - * - * @param $num A string consisting only chars between 0 and 9 - * @param $castValue Whether to cast the value to double. Do only use this to secure numbers from Requestable classes. - * @param $assertMismatch Whether to assert mismatches - * @return $ret The (hopefully) secured numbered value - */ - public function bigintval ($num, $castValue = true, $assertMismatch = false) { - // Filter all numbers out - $ret = preg_replace('/[^0123456789]/', '', $num); - - // Shall we cast? - if ($castValue === true) { - // Cast to biggest numeric type - $ret = (double) $ret; - } - - // Assert only if requested - if ($assertMismatch === true) { - // Has the whole value changed? - assert(('' . $ret . '' != '' . $num . '') && (!is_null($num))); - } - - // Return result - return $ret; - } - - /** - * Checks whether the given hexadecimal number is really a hex-number (only chars 0-9,a-f). - * - * @param $num A string consisting only chars between 0 and 9 - * @param $assertMismatch Whether to assert mismatches - * @return $ret The (hopefully) secured hext-numbered value - */ - public function hexval ($num, $assertMismatch = false) { - // Filter all numbers out - $ret = preg_replace('/[^0123456789abcdefABCDEF]/', '', $num); - - // Assert only if requested - if ($assertMismatch === true) { - // Has the whole value changed? - assert(('' . $ret . '' != '' . $num . '') && (!is_null($num))); - } - - // Return result - return $ret; - } - /** * Determines if an element is set in the generic array * @@ -1327,11 +996,9 @@ Loaded includes: * @param $element Element to check * @return $isset Whether the given key is set */ - protected final function isGenericArrayElementSet ($keyGroup, $subGroup, $key, $element) { - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element); - + protected final function isGenericArrayElementSet (string $keyGroup, string $subGroup, $key, $element) { // Is it there? + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element); $isset = isset($this->genericArray[$keyGroup][$subGroup][$key][$element]); // Return it @@ -1345,11 +1012,9 @@ Loaded includes: * @param $key Key to check * @return $isset Whether the given key is set */ - protected final function isGenericArrayKeySet ($keyGroup, $subGroup, $key) { - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); - + protected final function isGenericArrayKeySet (string $keyGroup, string $subGroup, $key) { // Is it there? + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); $isset = isset($this->genericArray[$keyGroup][$subGroup][$key]); // Return it @@ -1364,11 +1029,9 @@ Loaded includes: * @param $subGroup Sub group * @return $isset Whether the given group is set */ - protected final function isGenericArrayGroupSet ($keyGroup, $subGroup) { - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup); - + protected final function isGenericArrayGroupSet (string $keyGroup, string $subGroup) { // Is it there? + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup); $isset = isset($this->genericArray[$keyGroup][$subGroup]); // Return it @@ -1382,7 +1045,7 @@ Loaded includes: * @param $subGroup Sub key group * @return $array An array with all array elements */ - protected final function getGenericSubArray ($keyGroup, $subGroup) { + protected final function getGenericSubArray (string $keyGroup, string $subGroup) { // Is it there? if (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) { // No, then abort here @@ -1390,10 +1053,8 @@ Loaded includes: exit; } - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',value=' . print_r($this->genericArray[$keyGroup][$subGroup], true)); - // Return it + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',value=' . print_r($this->genericArray[$keyGroup][$subGroup], true)); return $this->genericArray[$keyGroup][$subGroup]; } @@ -1405,11 +1066,9 @@ Loaded includes: * @param $key Key to unset * @return void */ - protected final function unsetGenericArrayKey ($keyGroup, $subGroup, $key) { - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); - + protected final function unsetGenericArrayKey (string $keyGroup, string $subGroup, $key) { // Remove it + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); unset($this->genericArray[$keyGroup][$subGroup][$key]); } @@ -1422,7 +1081,7 @@ Loaded includes: * @param $element Element to unset * @return void */ - protected final function unsetGenericArrayElement ($keyGroup, $subGroup, $key, $element) { + protected final function unsetGenericArrayElement (string $keyGroup, string $subGroup, $key, $element) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element); @@ -1439,7 +1098,7 @@ Loaded includes: * @param $value Value to add/append * @return void */ - protected final function appendStringToGenericArrayKey ($keyGroup, $subGroup, $key, $value, $appendGlue = '') { + protected final function appendStringToGenericArrayKey (string $keyGroup, string $subGroup, $key, string $value, $appendGlue = '') { // Debug message //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true) . ',appendGlue=' . $appendGlue); @@ -1463,7 +1122,7 @@ Loaded includes: * @param $value Value to add/append * @return void */ - protected final function appendStringToGenericArrayElement ($keyGroup, $subGroup, $key, $element, $value, $appendGlue = '') { + protected final function appendStringToGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value, $appendGlue = '') { // Debug message //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true) . ',appendGlue=' . $appendGlue); @@ -1487,7 +1146,7 @@ Loaded includes: * @param $value Value to add/append * @return void */ - protected final function setStringGenericArrayElement ($keyGroup, $subGroup, $key, $element, $value, $appendGlue = '') { + protected final function setStringGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value, $appendGlue = '') { // Debug message //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true) . ',appendGlue=' . $appendGlue); @@ -1504,7 +1163,7 @@ Loaded includes: * @param $forceInit Optionally force initialization * @return void */ - protected final function initGenericArrayGroup ($keyGroup, $subGroup, $forceInit = false) { + protected final function initGenericArrayGroup (string $keyGroup, string $subGroup, bool $forceInit = false) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',forceInit=' . intval($forceInit)); @@ -1528,7 +1187,7 @@ Loaded includes: * @param $forceInit Optionally force initialization * @return void */ - protected final function initGenericArrayKey ($keyGroup, $subGroup, $key, $forceInit = false) { + protected final function initGenericArrayKey (string $keyGroup, string $subGroup, $key, bool $forceInit = false) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',forceInit=' . intval($forceInit)); @@ -1553,7 +1212,7 @@ Loaded includes: * @param $forceInit Optionally force initialization * @return void */ - protected final function initGenericArrayElement ($keyGroup, $subGroup, $key, $element, $forceInit = false) { + protected final function initGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, bool $forceInit = false) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',forceInit=' . intval($forceInit)); @@ -1577,7 +1236,7 @@ Loaded includes: * @param $value Value to add/append * @return $count Number of array elements */ - protected final function pushValueToGenericArrayKey ($keyGroup, $subGroup, $key, $value) { + protected final function pushValueToGenericArrayKey (string $keyGroup, string $subGroup, $key, $value) { // Debug message //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true)); @@ -1606,7 +1265,7 @@ Loaded includes: * @param $value Value to add/append * @return $count Number of array elements */ - protected final function pushValueToGenericArrayElement ($keyGroup, $subGroup, $key, $element, $value) { + protected final function pushValueToGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value) { // Debug message //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true)); @@ -1633,7 +1292,7 @@ Loaded includes: * @param $key Key to unset * @return $value Last "popped" value */ - protected final function popGenericArrayElement ($keyGroup, $subGroup, $key) { + protected final function popGenericArrayElement (string $keyGroup, string $subGroup, $key) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); @@ -1661,7 +1320,7 @@ Loaded includes: * @param $key Key to unset * @return $value Last "popped" value */ - protected final function shiftGenericArrayElement ($keyGroup, $subGroup, $key) { + protected final function shiftGenericArrayElement (string $keyGroup, string $subGroup, $key) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); @@ -1715,7 +1374,7 @@ Loaded includes: * @param $subGroup Sub group for the key * @return $count Count of given group */ - protected final function countGenericArrayGroup ($keyGroup, $subGroup) { + protected final function countGenericArrayGroup (string $keyGroup, string $subGroup) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup); @@ -1744,7 +1403,7 @@ Loaded includes: * @para $key Key to count * @return $count Count of given key */ - protected final function countGenericArrayElements ($keyGroup, $subGroup, $key) { + protected final function countGenericArrayElements (string $keyGroup, string $subGroup, $key) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); @@ -1799,7 +1458,7 @@ Loaded includes: * @param $value Mixed value from generic array element * @return void */ - protected final function setGenericArrayKey ($keyGroup, $subGroup, $key, $value) { + protected final function setGenericArrayKey (string $keyGroup, string $subGroup, $key, $value) { // Debug message //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true)); @@ -1815,7 +1474,7 @@ Loaded includes: * @param $key Key to unset * @return $value Mixed value from generic array element */ - protected final function getGenericArrayKey ($keyGroup, $subGroup, $key) { + protected final function getGenericArrayKey (string $keyGroup, string $subGroup, $key) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); @@ -1840,7 +1499,7 @@ Loaded includes: * @param $value Value to set * @return void */ - protected final function setGenericArrayElement ($keyGroup, $subGroup, $key, $element, $value) { + protected final function setGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value) { // Debug message //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true)); @@ -1857,7 +1516,7 @@ Loaded includes: * @param $element Element to look for * @return $value Mixed value from generic array element */ - protected final function getGenericArrayElement ($keyGroup, $subGroup, $key, $element) { + protected final function getGenericArrayElement (string $keyGroup, string $subGroup, $key, $element) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element); @@ -1879,7 +1538,7 @@ Loaded includes: * @param $subGroup Sub group for the key * @return $isValid Whether given sub group is valid */ - protected final function isValidGenericArrayGroup ($keyGroup, $subGroup) { + protected final function isValidGenericArrayGroup (string $keyGroup, string $subGroup) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup); @@ -1898,7 +1557,7 @@ Loaded includes: * @param $key Key to check * @return $isValid Whether given sub group is valid */ - protected final function isValidGenericArrayKey ($keyGroup, $subGroup, $key) { + protected final function isValidGenericArrayKey (string $keyGroup, string $subGroup, $key) { // Debug message //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); @@ -1915,11 +1574,8 @@ Loaded includes: * @return void */ protected function initWebOutputInstance () { - // Get application instance - $applicationInstance = GenericRegistry::getRegistry()->getInstance('application'); - // Init web output instance - $outputInstance = ObjectFactory::createObjectByConfiguredName('output_class', array($applicationInstance)); + $outputInstance = ObjectFactory::createObjectByConfiguredName('output_class'); // Set it locally $this->setWebOutputInstance($outputInstance); @@ -1978,6 +1634,7 @@ Loaded includes: * "Getter" for a printable state name * * @return $stateName Name of the node's state in a printable format + * @todo Move this class away from this monolithic place (not whole class is monolithic) */ public final function getPrintableState () { // Default is 'null'