X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Fclass_BaseFrameworkSystem.php;h=dc2410c324d9991d2e8a4b91f5a4c7c791cd87e7;hb=f861d6bc00f8a3ecf6b057f2aa93129572643896;hp=e7cd1955d441173505cf0e96116c0b9952f3b4de;hpb=d1bb2a5d51075426c8dde220f319da50f23445d3;p=core.git diff --git a/framework/main/classes/class_BaseFrameworkSystem.php b/framework/main/classes/class_BaseFrameworkSystem.php index e7cd1955..dc2410c3 100644 --- a/framework/main/classes/class_BaseFrameworkSystem.php +++ b/framework/main/classes/class_BaseFrameworkSystem.php @@ -34,7 +34,7 @@ use \stdClass; * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2022 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2023 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -57,6 +57,11 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac */ private static $selfInstance = NULL; + /** + * Debug instance + */ + private static $debugInstance = NULL; + /** * Stub methods */ @@ -131,24 +136,23 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac const EXCEPTION_ATTRIBUTES_ARE_MISSING = 0x02b; const EXCEPTION_ARRAY_ELEMENTS_MISSING = 0x02c; const EXCEPTION_TEMPLATE_ENGINE_UNSUPPORTED = 0x02d; - const EXCEPTION_UNSPPORTED_OPERATION = 0x02e; - const EXCEPTION_FACTORY_REQUIRE_PARAMETER = 0x02f; - const EXCEPTION_MISSING_ELEMENT = 0x030; - const EXCEPTION_HEADERS_ALREADY_SENT = 0x031; - const EXCEPTION_DEFAULT_CONTROLLER_GONE = 0x032; - const EXCEPTION_CLASS_NOT_FOUND = 0x033; - const EXCEPTION_REQUIRED_INTERFACE_MISSING = 0x034; - const EXCEPTION_FATAL_ERROR = 0x035; - const EXCEPTION_FILE_NOT_FOUND = 0x036; - const EXCEPTION_ASSERTION_FAILED = 0x037; - const EXCEPTION_FILE_NOT_REACHABLE = 0x038; - const EXCEPTION_FILE_CANNOT_BE_READ = 0x039; - const EXCEPTION_FILE_CANNOT_BE_WRITTEN = 0x03a; - const EXCEPTION_PATH_CANNOT_BE_WRITTEN = 0x03b; - const EXCEPTION_DATABASE_UPDATED_NOT_ALLOWED = 0x03c; - const EXCEPTION_FILTER_CHAIN_INTERCEPTED = 0x03d; - const EXCEPTION_INVALID_SOCKET = 0x03e; - const EXCEPTION_SELF_INSTANCE = 0x03f; + const EXCEPTION_FACTORY_REQUIRE_PARAMETER = 0x02e; + const EXCEPTION_MISSING_ELEMENT = 0x02f; + const EXCEPTION_HEADERS_ALREADY_SENT = 0x030; + const EXCEPTION_DEFAULT_CONTROLLER_GONE = 0x031; + const EXCEPTION_CLASS_NOT_FOUND = 0x032; + const EXCEPTION_REQUIRED_INTERFACE_MISSING = 0x033; + const EXCEPTION_FATAL_ERROR = 0x034; + const EXCEPTION_FILE_NOT_FOUND = 0x035; + const EXCEPTION_ASSERTION_FAILED = 0x036; + const EXCEPTION_FILE_NOT_REACHABLE = 0x037; + const EXCEPTION_FILE_CANNOT_BE_READ = 0x038; + const EXCEPTION_FILE_CANNOT_BE_WRITTEN = 0x039; + const EXCEPTION_PATH_CANNOT_BE_WRITTEN = 0x03a; + const EXCEPTION_DATABASE_UPDATED_NOT_ALLOWED = 0x03b; + const EXCEPTION_FILTER_CHAIN_INTERCEPTED = 0x03c; + const EXCEPTION_INVALID_SOCKET = 0x03d; + const EXCEPTION_SELF_INSTANCE = 0x03e; /** * Startup time in miliseconds @@ -184,13 +188,13 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac $this->setRealClass('DestructedObject'); } elseif ((defined('DEBUG_DESTRUCTOR')) && (is_object($this->getDebugInstance()))) { // Already destructed object - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('The object %s is already destroyed.', + self::createDebugInstance(__CLASS__, __LINE__)->warningMessage(sprintf('The object %s is already destroyed.', $this->__toString() )); } else { // Do not call this twice trigger_error(__METHOD__ . ': Called twice.'); - exit; + exit(255); } } @@ -290,7 +294,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac // Output stub message // @TODO __CLASS__ does always return BaseFrameworkSystem but not the extending (=child) class - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[%s::%s]: Stub! Args: %s', + self::createDebugInstance(__CLASS__, __LINE__)->warningMessage(sprintf('[%s::%s]: Stub! Args: %s', $className, $methodName, $argsString @@ -355,7 +359,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @throws UnsupportedOperationException Objects of this framework cannot be serialized */ public final function __sleep () { - throw new UnsupportedOperationException([$this, __FUNCTION__], self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -365,7 +369,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @throws UnsupportedOperationException Objects of this framework cannot be serialized */ public final function __wakeup () { - throw new UnsupportedOperationException([$this, __FUNCTION__], self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -375,7 +379,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @throws UnsupportedOperationException Objects of this framework cannot be serialized */ public final function __invoke () { - throw new UnsupportedOperationException([$this, __FUNCTION__], self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], FrameworkInterface::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -396,7 +400,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @return void */ public final function setDebugInstance (DebugMiddleware $debugInstance) { - GenericRegistry::getRegistry()->addInstance('debug', $debugInstance); + self::$debugInstance = $debugInstance; } /** @@ -405,7 +409,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @return $debugInstance Instance to class DebugConsoleOutput or DebugWebOutput */ public final function getDebugInstance () { - return GenericRegistry::getRegistry()->getInstance('debug'); + return self::$debugInstance; } /** @@ -539,33 +543,6 @@ Loaded includes: )); } - /** - * Output a partial stub message for the caller method - * - * @param $message An optional message to display - * @return void - */ - protected function partialStub (string $message = '') { - // Init variable - $stubMessage = 'Partial stub!'; - - // Is an extra message given? - if (!empty($message)) { - // Then add it as well - $stubMessage .= ' Message: ' . $message; - } - - // Debug instance is there? - if (!is_null($this->getDebugInstance())) { - // Output stub message - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput($stubMessage); - } else { - // Trigger an error - trigger_error($stubMessage); - exit; - } - } - /** * Outputs a debug backtrace and stops further script execution * @@ -596,38 +573,37 @@ Loaded includes: * @param $className Name of the class (currently unsupported) * @param $lineNumber Line number where the call was made * @return $debugInstance An instance of a debugger class + * @throws InvalidArgumentException If a parameter has an invalid value * @deprecated Not fully, as the new Logger facilities are not finished yet. */ public final static function createDebugInstance (string $className, int $lineNumber = NULL) { // Validate parameter + //* NOISY-DEBUG: */ printf('[%s:%d]: className=%s,lineNumber[%s]=%d - CALLED!' . PHP_EOL, __METHOD__, __LINE__, $className, gettype($lineNumber), $lineNumber); if (empty($className)) { // Throw IAE throw new InvalidArgumentException('Parameter "className" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); - } elseif (!GenericRegistry::getRegistry()->instanceExists('debug')) { + } + + // Is the debug instance set? + //* NOISY-DEBUG: */ printf('[%s:%d]: self::debugInstance[]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype(self::$debugInstance)); + if (is_null(self::$debugInstance)) { // Init debug instance - $debugInstance = NULL; + self::$debugInstance = NULL; // Try it try { // Get a debugger instance - $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('debug_' . FrameworkBootstrap::getRequestTypeFromSystem() . '_class'), $className); + //* NOISY-DEBUG: */ printf('[%s:%d]: className=%s' . PHP_EOL, __METHOD__, __LINE__, $className); + self::$debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('debug_' . FrameworkBootstrap::getRequestTypeFromSystem() . '_class'), $className); } catch (NullPointerException $e) { // Didn't work, no instance there 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 - DebugMiddleware::getSelfInstance()->output(''); - - // Set it in registry - GenericRegistry::getRegistry()->addInstance('debug', $debugInstance); - } else { - // Get instance from registry - $debugInstance = GenericRegistry::getRegistry()->getDebugInstance(); } // Return it - return $debugInstance; + //* NOISY-DEBUG: */ printf('[%s:%d]: self::debugInstance=%s - EXIT!' . PHP_EOL, __METHOD__, __LINE__, self::$debugInstance->__toString()); + return self::$debugInstance; } /** @@ -641,77 +617,6 @@ Loaded includes: print($message . PHP_EOL); } - /** - * Outputs a debug message whether to debug instance (should be set!) or - * dies with or ptints the message. Do NEVER EVER rewrite the exit() call to - * ApplicationEntryPoint::app_exit(), this would cause an endless loop. - * - * @param $message Message we shall send out... - * @param $doPrint Whether print or die here (default: print) - * @paran $stripTags Whether to strip tags (default: false) - * @return void - */ - public function debugOutput (string $message, bool $doPrint = true, bool $stripTags = false) { - // Set debug instance to NULL - $debugInstance = NULL; - - // Get backtrace - $backtrace = debug_backtrace(!DEBUG_BACKTRACE_PROVIDE_OBJECT); - - // Is function partialStub/__callStatic ? - if (isset(self::$stubMethods[$backtrace[1]['function']])) { - // Prepend class::function:line from 3rd element - $message = sprintf('[%s::%s:%d]: %s', - $backtrace[2]['class'], - $backtrace[2]['function'], - (isset($backtrace[2]['line']) ? $backtrace[2]['line'] : '0'), - $message - ); - } else { - // Prepend class::function:line from 2nd element - $message = sprintf('[%s::%s:%d]: %s', - $backtrace[1]['class'], - $backtrace[1]['function'], - (isset($backtrace[1]['line']) ? $backtrace[1]['line'] : '0'), - $message - ); - } - - // Try it: - try { - // Get debug instance - $debugInstance = $this->getDebugInstance(); - } catch (NullPointerException $e) { - // The debug instance is not set (yet) - } - - // Is the debug instance there? - if (is_object($debugInstance)) { - // Use debug output handler - $debugInstance->output($message, $stripTags); - - if ($doPrint === false) { - // Die here if not printed - exit(); - } - } else { - // Are debug times enabled? - if (FrameworkBootstrap::getConfigurationInstance()->isEnabled('debug_' . FrameworkBootstrap::getRequestTypeFromSystem() . '_output_timings')) { - // Prepent it - $message = $this->getPrintableExecutionTime() . $message; - } - - // Put directly out - if ($doPrint === true) { - // Print message - $this->outputLine($message); - } else { - // Die here - exit($message); - } - } - } - /** * Marks up the code by adding e.g. line numbers * @@ -759,30 +664,36 @@ Loaded includes: */ protected final function getDatabaseEntry () { // This method is deprecated + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: CALLED!'); $this->deprecationWarning('Monolithic method, should be moved to proper classes'); // Is there an instance? + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: this->resultInstance[]=%s', gettype($this->getResultInstance()))); if (!$this->getResultInstance() instanceof SearchableResult) { // Throw an exception here throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); } // Rewind it + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: Invoking this->resultInstance->rewind() ...'); $this->getResultInstance()->rewind(); // Do we have an entry? + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: this->resultInstance->isValid()=%d', intval($this->getResultInstance()->isValid()))); if ($this->getResultInstance()->valid() === false) { // @TODO Move the constant to e.g. BaseDatabaseResult when there is a non-cached database result available throw new InvalidDatabaseResultException(array($this, $this->getResultInstance()), CachedDatabaseResult::EXCEPTION_INVALID_DATABASE_RESULT); } // Get next entry + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: Invoking this->resultInstance->next() ...'); $this->getResultInstance()->next(); // Fetch it $entry = $this->getResultInstance()->current(); // And return it + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: entry[]=%s - EXIT!', gettype($entry))); return $entry; } @@ -797,6 +708,7 @@ Loaded includes: */ public final function getField (string $fieldName) { // Check parameter + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fieldName=%s - CALLED!', $fieldName)); if (empty($fieldName)) { // Throw IAE throw new InvalidArgumentException('Parameter "fieldName" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); @@ -812,6 +724,7 @@ Loaded includes: $resultInstance = $this->getResultInstance(); // Is this instance null? + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: resultInstance[]=%s', gettype($resultInstance))); if (is_null($resultInstance)) { // Then the user instance is no longer valid (expired cookies?) throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); @@ -819,24 +732,26 @@ Loaded includes: // Get current array $fieldArray = $resultInstance->current(); - //* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput($fieldName.':
'.print_r($fieldArray, true).'
'); // Convert dashes to underscore + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fieldArray()=%d', count($fieldArray))); $fieldName2 = StringUtils::convertDashesToUnderscores($fieldName); // Does the field exist? + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fieldName2=%s', $fieldName2)); if ($this->isFieldSet($fieldName)) { // Get it $fieldValue = $fieldArray[$fieldName2]; } elseif (FrameworkBootstrap::getConfigurationInstance()->isEnabled('developer_mode')) { // Missing field entry, may require debugging - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-FRAMEWORK-SYSTEM: fieldArray
=' . print_r($fieldArray, true) . '
,fieldName=' . $fieldName . ' not found!'); + self::createDebugInstance(__CLASS__, __LINE__)->warningMessage('BASE-FRAMEWORK-SYSTEM: fieldArray
=' . print_r($fieldArray, true) . '
,fieldName=' . $fieldName . ' not found!'); } else { // Missing field entry, may require debugging - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-FRAMEWORK-SYSTEM: fieldName=' . $fieldName . ' not found!'); + self::createDebugInstance(__CLASS__, __LINE__)->warningMessage('BASE-FRAMEWORK-SYSTEM: fieldName=' . $fieldName . ' not found!'); } // Return it + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fieldValue[]=%s - EXIT!', gettype($fieldValue))); return $fieldValue; } @@ -850,6 +765,7 @@ Loaded includes: */ public function isFieldSet (string $fieldName) { // Check parameter + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fieldName=%s - CALLED!', $fieldName)); if (empty($fieldName)) { // Throw IAE throw new InvalidArgumentException('Parameter "fieldName" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); @@ -859,6 +775,7 @@ Loaded includes: $resultInstance = $this->getResultInstance(); // Is this instance null? + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: resultInstance[]=%s', gettype($resultInstance))); if (is_null($resultInstance)) { // Then the user instance is no longer valid (expired cookies?) throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); @@ -866,16 +783,18 @@ Loaded includes: // Get current array $fieldArray = $resultInstance->current(); - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . $this->__toString() . ':' . __LINE__ . '] fieldName=' . $fieldName . ',fieldArray=
'.print_r($fieldArray, true).'
'); // Convert dashes to underscore + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fieldArray()=%d,fieldName=%s - BEFORE!', count($fieldArray), $fieldName)); $fieldName = StringUtils::convertDashesToUnderscores($fieldName); // Determine it - $isSet = isset($fieldArray[$fieldName]); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fieldName=%s - AFTER!', $fieldName)); + $isset = isset($fieldArray[$fieldName]); // Return result - return $isSet; + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isset=%d - EXIT!', intval($isset))); + return $isset; } /** @@ -891,15 +810,15 @@ Loaded includes: // Debug instance is there? if (!is_null($this->getDebugInstance())) { // Output stub message - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput($message); + self::createDebugInstance(__CLASS__, __LINE__)->warningMessage($message); } else { // Trigger an error trigger_error($message . "
\n"); - exit; + exit(255); } } else { // @TODO Finish this part! - $this->partialStub('Developer mode inactive. Message:' . $message); + DebugMiddleware::getSelfInstance()->partialStub('Developer mode inactive. Message:' . $message); } } @@ -1125,7 +1044,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) { // No, then abort here - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found.', $keyGroup, $subGroup)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found.', $keyGroup, $subGroup), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Return it @@ -1284,7 +1203,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (($forceInit === false) && ($this->isGenericArrayGroupSet($keyGroup, $subGroup))) { // Already initialized - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s already initialized.', $keyGroup, $subGroup)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s already initialized.', $keyGroup, $subGroup), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Initialize it @@ -1316,7 +1235,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (($forceInit === false) && ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key))) { // Already initialized - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s already initialized.', $keyGroup, $subGroup, gettype($key), $key)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s already initialized.', $keyGroup, $subGroup, gettype($key), $key), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Initialize it @@ -1352,7 +1271,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (($forceInit === false) && ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element))) { // Already initialized - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s,element[%s]=%s already initialized.', $keyGroup, $subGroup, gettype($key), $key, gettype($element), $element)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s,element[%s]=%s already initialized.', $keyGroup, $subGroup, gettype($key), $key, gettype($element), $element), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Initialize it @@ -1459,7 +1378,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Not found - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Then "pop" it @@ -1495,7 +1414,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Not found - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Then "shift" it @@ -1523,7 +1442,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!isset($this->genericArray[$keyGroup])) { // Not found - throw new BadMethodCallException(sprintf('keyGroup=%s not found.', $keyGroup)); + throw new BadMethodCallException(sprintf('keyGroup=%s not found.', $keyGroup), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Then count it @@ -1554,7 +1473,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) { // Abort here - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found.', $keyGroup, $subGroup)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found.', $keyGroup, $subGroup), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Then count it @@ -1589,10 +1508,10 @@ Loaded includes: throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Abort here - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } elseif (!$this->isValidGenericArrayGroup($keyGroup, $subGroup)) { // Not valid - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s is not a valid key/sub group.', $keyGroup, $subGroup)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s is not a valid key/sub group.', $keyGroup, $subGroup), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Then count it @@ -1619,7 +1538,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!isset($this->genericArray[$keyGroup])) { // Then abort here - throw new BadMethodCallException(sprintf('keyGroup=%s not found', $keyGroup)); + throw new BadMethodCallException(sprintf('keyGroup=%s not found', $keyGroup), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Return it @@ -1651,7 +1570,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isValidGenericArrayGroup($keyGroup, $subGroup)) { // Then abort here - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found', $keyGroup)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found', $keyGroup), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Set value here @@ -1682,7 +1601,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Then abort here - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Return it @@ -1752,7 +1671,7 @@ Loaded includes: throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) { // Then abort here - throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s,element[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key, gettype($element), $element)); + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s,element[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key, gettype($element), $element), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); } // Return it