namespace CoreFramework\Object;
// Import framework stuff
+use CoreFramework\Bootstrap\FrameworkBootstrap;
use CoreFramework\Compressor\Compressor;
use CoreFramework\Configuration\FrameworkConfiguration;
use CoreFramework\Connection\Database\DatabaseConnection;
use CoreFramework\Criteria\Criteria;
use CoreFramework\Criteria\Local\LocalSearchCriteria;
use CoreFramework\Criteria\Local\LocalUpdateCriteria;
+use CoreFramework\Crypto\Cryptable;
use CoreFramework\Crypto\RandomNumber\RandomNumberGenerator;
+use CoreFramework\Database\Frontend\DatabaseWrapper;
+use CoreFramework\EntryPoint\ApplicationEntryPoint;
use CoreFramework\Factory\Database\Wrapper\DatabaseWrapperFactory;
use CoreFramework\Factory\ObjectFactory;
use CoreFramework\Filesystem\Block;
use CoreFramework\Filesystem\FilePointer;
use CoreFramework\Filesystem\FrameworkDirectory;
+use CoreFramework\Filesystem\PathWriteProtectedException;
use CoreFramework\Generic\FrameworkInterface;
use CoreFramework\Generic\NullPointerException;
+use CoreFramework\Generic\UnsupportedOperationException;
+use CoreFramework\Handler\Handleable;
use CoreFramework\Handler\Stream\IoHandler;
use CoreFramework\Index\Indexable;
-use CoreFramework\Listener\Listenable;
use CoreFramework\Lists\Listable;
use CoreFramework\Loader\ClassLoader;
use CoreFramework\Manager\ManageableApplication;
use CoreFramework\Parser\Parseable;
use CoreFramework\Registry\Register;
use CoreFramework\Registry\Registry;
-use CoreFramework\Request\Requestable;
use CoreFramework\Resolver\Resolver;
use CoreFramework\Result\Database\CachedDatabaseResult;
use CoreFramework\Result\Search\SearchableResult;
-use CoreFramework\Response\Responseable;
use CoreFramework\Stacker\Stackable;
+use CoreFramework\State\Stateable;
+use CoreFramework\Stream\Input\InputStream;
use CoreFramework\Stream\Output\OutputStreamer;
+use CoreFramework\Stream\Output\OutputStream;
use CoreFramework\Template\CompileableTemplate;
use CoreFramework\User\ManageableAccount;
use CoreFramework\Visitor\Visitor;
-use CoreFramework\Wrapper\Database\DatabaseWrapper;
// Import SPL stuff
use \stdClass;
*/
private $realClass = 'BaseFrameworkSystem';
- /**
- * Instance of a Requestable class
- */
- private $requestInstance = NULL;
-
- /**
- * Instance of a Responseable class
- */
- private $responseInstance = NULL;
-
/**
* Search criteria instance
*/
*/
private $parserInstance = NULL;
- /**
- * A HandleableProtocol instance
- */
- private $protocolInstance = NULL;
-
/**
* A database wrapper instance
*/
private $outputStreamInstance = NULL;
/**
- * Networkable handler instance
+ * Handler instance
*/
private $handlerInstance = NULL;
*/
private $visitorInstance = NULL;
- /**
- * DHT instance
- */
- private $dhtInstance = NULL;
-
/**
* An instance of a database wrapper class
*/
*/
private $directoryInstance = NULL;
- /**
- * Listener instance
- */
- private $listenerInstance = NULL;
-
/**
* An instance of a communicator
*/
/**
* Socket resource
*/
- private $socketResource = FALSE;
+ private $socketResource = false;
/**
* Regular expression to use for validation
*/
private $controllerName = '';
- /**
- * Name of used protocol
- */
- private $protocolName = 'invalid';
-
/**
* Array with bitmasks and such for pack/unpack methods to support both
* 32-bit and 64-bit systems
*
* The integer size is 4 bytes on 32-bit and 8 bytes on a 64-bit system.
*/
- private $archArrayElement = FALSE;
+ private $archArrayElement = false;
/***********************
* Exception codes.... *
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;
/**
* Hexadecimal->Decimal translation array
$this->setConfigInstance(FrameworkConfiguration::getSelfInstance());
} // END - if
- // Is the startup time set? (0 cannot be TRUE anymore)
+ // Is the startup time set? (0 cannot be true anymore)
if (self::$startupTime == 0) {
// Then set it
- self::$startupTime = microtime(TRUE);
+ self::$startupTime = microtime(true);
} // END - if
// Set array element
$this->setRealClass('DestructedObject');
} elseif ((defined('DEBUG_DESTRUCTOR')) && (is_object($this->getDebugInstance()))) {
// Already destructed object
- self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[%s:] The object <span class="object_name">%s</span> is already destroyed.',
- __CLASS__,
+ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('The object <span class="object_name">%s</span> is already destroyed.',
$this->__toString()
));
} else {
// Is an other object, maybe no __toString() available
$argsString .= $reflection->getName();
- } elseif ($arg === TRUE) {
- // ... is boolean 'TRUE'
- $argsString .= 'TRUE';
- } elseif ($arg === FALSE) {
- // ... is boolean 'FALSE'
- $argsString .= 'FALSE';
+ } elseif ($arg === true) {
+ // ... is boolean 'true'
+ $argsString .= 'true';
+ } elseif ($arg === false) {
+ // ... is boolean 'false'
+ $argsString .= 'false';
}
// Comma for next one
// Output stub message
// @TODO __CLASS__ does always return BaseFrameworkSystem but not the extending (=child) class
- self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[unknown::%s:] Stub! Args: %s',
+ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('[unknown::%s]: Stub! Args: %s',
$methodName,
$argsString
));
$this->debugBackTrace(sprintf('Tried to set a missing field. name=%s, value[%s]=%s',
$name,
gettype($value),
- print_r($value, TRUE)
+ print_r($value, true)
));
}
* @return $applicationInstance An instance of a manageable application helper class
*/
protected final function getApplicationInstance () {
- $applicationInstance = Registry::getRegistry()->getInstance('application');
+ $applicationInstance = Registry::getRegistry()->getInstance('app');
return $applicationInstance;
}
Registry::getRegistry()->addInstance('application', $applicationInstance);
}
- /**
- * Setter for request instance
- *
- * @param $requestInstance An instance of a Requestable class
- * @return void
- */
- public final function setRequestInstance (Requestable $requestInstance) {
- $this->requestInstance = $requestInstance;
- }
-
- /**
- * Getter for request instance
- *
- * @return $requestInstance An instance of a Requestable class
- */
- public final function getRequestInstance () {
- return $this->requestInstance;
- }
-
- /**
- * Setter for response instance
- *
- * @param $responseInstance An instance of a Responseable class
- * @return void
- */
- public final function setResponseInstance (Responseable $responseInstance) {
- $this->responseInstance = $responseInstance;
- }
-
- /**
- * Getter for response instance
- *
- * @return $responseInstance An instance of a Responseable class
- */
- public final function getResponseInstance () {
- return $this->responseInstance;
- }
-
/**
* Private getter for language instance
*
return $this->parserInstance;
}
- /**
- * Setter for HandleableProtocol instance
- *
- * @param $protocolInstance An instance of an HandleableProtocol
- * @return void
- */
- public final function setProtocolInstance (HandleableProtocol $protocolInstance) {
- $this->protocolInstance = $protocolInstance;
- }
-
- /**
- * Getter for HandleableProtocol instance
- *
- * @return $protocolInstance An instance of an HandleableProtocol
- */
- public final function getProtocolInstance () {
- return $this->protocolInstance;
- }
-
/**
* Setter for DatabaseWrapper instance
*
/**
* Getter for handler instance
*
- * @return $handlerInstance A Networkable instance
+ * @return $handlerInstance A Handleable instance
*/
protected final function getHandlerInstance () {
return $this->handlerInstance;
return $this->visitorInstance;
}
- /**
- * Setter for DHT instance
- *
- * @param $dhtInstance A Distributable instance
- * @return void
- */
- protected final function setDhtInstance (Distributable $dhtInstance) {
- $this->dhtInstance = $dhtInstance;
- }
-
- /**
- * Getter for DHT instance
- *
- * @return $dhtInstance A Distributable instance
- */
- protected final function getDhtInstance () {
- return $this->dhtInstance;
- }
-
/**
* Setter for raw package Data
*
return $this->directoryInstance;
}
- /**
- * Setter for listener instance
- *
- * @param $listenerInstance A Listenable instance
- * @return void
- */
- protected final function setListenerInstance (Listenable $listenerInstance) {
- $this->listenerInstance = $listenerInstance;
- }
-
- /**
- * Getter for listener instance
- *
- * @return $listenerInstance A Listenable instance
- */
- protected final function getListenerInstance () {
- return $this->listenerInstance;
- }
-
/**
* Getter for communicator instance
*
return $this->controllerName;
}
- /**
- * Getter for protocol name
- *
- * @return $protocolName Name of used protocol
- */
- public final function getProtocolName () {
- return $this->protocolName;
- }
-
- /**
- * Setter for protocol name
- *
- * @param $protocolName Name of used protocol
- * @return void
- */
- protected final function setProtocolName ($protocolName) {
- $this->protocolName = $protocolName;
- }
-
/**
* Checks whether an object equals this object. You should overwrite this
* method to implement own equality checks
// Is the application instance set?
if (is_null($applicationInstance)) {
// Get the current instance
- $applicationInstance = $this->getApplicationInstance();
+ $applicationInstance = Registry::getRegistry()->getInstance('app');
// Still null?
if (is_null($applicationInstance)) {
// Is a message set?
if (!empty($message)) {
// Construct message
- $content = sprintf('<div class="debug_message">Message: %s</div>' . PHP_EOL, $message);
+ $content = sprintf('<div class="debug_message">
+ Message: %s
+</div>' . PHP_EOL, $message);
} // END - if
// Generate the output
$content .= sprintf('<pre>%s</pre>',
trim(
htmlentities(
- print_r($this, TRUE)
+ print_r($this, true)
)
)
);
// Output it
- ApplicationEntryPoint::app_exit(sprintf('<div class="debug_header">%s debug output:</div><div class="debug_content">%s</div>Loaded includes: <div class="debug_include_list">%s</div>',
+ ApplicationEntryPoint::app_exit(sprintf('<div class="debug_header">
+ %s debug output:
+</div>
+<div class="debug_content">
+ %s
+</div>
+Loaded includes:
+<div class="debug_include_list">
+ %s
+</div>',
$this->__toString(),
$content,
ClassLoader::getSelfInstance()->getPrintableIncludeList()
} // END - if
// Construct the full message
- $stubMessage = sprintf('[%s:] Partial stub!',
+ $stubMessage = sprintf('[%s]: Partial stub!',
$methodName
);
* Outputs a debug backtrace and stops further script execution
*
* @param $message An optional message to output
- * @param $doExit Whether exit the program (TRUE is default)
+ * @param $doExit Whether exit the program (true is default)
* @return void
*/
- public function debugBackTrace ($message = '', $doExit = TRUE) {
+ public function debugBackTrace ($message = '', $doExit = true) {
// Sorry, there is no other way getting this nice backtrace
if (!empty($message)) {
// Output message
print('</pre>');
// Exit program?
- if ($doExit === TRUE) {
+ if ($doExit === true) {
exit();
} // END - if
}
// Try it
try {
// Get a debugger instance
- $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->getConfigEntry('debug_' . self::getResponseTypeFromSystem() . '_class'), $className);
+ $debugInstance = DebugMiddleware::createDebugMiddleware(FrameworkConfiguration::getSelfInstance()->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));
*
* @param $message Message we shall send out...
* @param $doPrint Whether print or die here (default: print)
- * @paran $stripTags Whether to strip tags (default: FALSE)
+ * @paran $stripTags Whether to strip tags (default: false)
* @return void
*/
- public function debugOutput ($message, $doPrint = TRUE, $stripTags = FALSE) {
+ public function debugOutput ($message, $doPrint = true, $stripTags = false) {
// Set debug instance to NULL
$debugInstance = NULL;
// Use debug output handler
$debugInstance->output($message, $stripTags);
- if ($doPrint === FALSE) {
+ if ($doPrint === false) {
// Die here if not printed
exit();
} // END - if
} else {
// Are debug times enabled?
- if ($this->getConfigInstance()->getConfigEntry('debug_' . self::getResponseTypeFromSystem() . '_output_timings') == 'Y') {
+ if ($this->getConfigInstance()->getConfigEntry('debug_' . FrameworkBootstrap::getRequestTypeFromSystem() . '_output_timings') == 'Y') {
// Prepent it
$message = $this->getPrintableExecutionTime() . $message;
} // END - if
// Put directly out
- if ($doPrint === TRUE) {
+ if ($doPrint === true) {
// Print message
$this->outputLine($message);
} else {
$this->getResultInstance()->rewind();
// Do we have an entry?
- if ($this->getResultInstance()->valid() === FALSE) {
+ 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);
} // END - if
// Get current array
$fieldArray = $resultInstance->current();
- //* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput($fieldName.':<pre>'.print_r($fieldArray, TRUE).'</pre>');
+ //* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput($fieldName.':<pre>'.print_r($fieldArray, true).'</pre>');
// Convert dashes to underscore
$fieldName2 = self::convertDashesToUnderscores($fieldName);
$fieldValue = $fieldArray[$fieldName2];
} elseif (defined('DEVELOPER')) {
// Missing field entry, may require debugging
- self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']:fieldArray<pre>=' . print_r($fieldArray, TRUE) . '</pre>,fieldName=' . $fieldName . ' not found!');
+ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']:fieldArray<pre>=' . print_r($fieldArray, true) . '</pre>,fieldName=' . $fieldName . ' not found!');
} else {
// Missing field entry, may require debugging
self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']:fieldName=' . $fieldName . ' not found!');
// Get current array
$fieldArray = $resultInstance->current();
- //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . $this->__toString() . ':' . __LINE__ . '] fieldName=' . $fieldName . ',fieldArray=<pre>'.print_r($fieldArray, TRUE).'</pre>');
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('[' . $this->__toString() . ':' . __LINE__ . '] fieldName=' . $fieldName . ',fieldArray=<pre>'.print_r($fieldArray, true).'</pre>');
// Convert dashes to underscore
$fieldName = self::convertDashesToUnderscores($fieldName);
*/
public function getMilliTime () {
// Get the time of day as float
- $milliTime = gettimeofday(TRUE);
+ $milliTime = gettimeofday(true);
// Return it
return $milliTime;
*/
public function idle ($milliSeconds) {
// Sleep is fine by default
- $hasSlept = TRUE;
+ $hasSlept = true;
// Idle so long with found function
if (function_exists('time_sleep_until')) {
*/
protected function isBase64Encoded ($encodedData) {
// Determine it
- $isBase64 = (@base64_decode($encodedData, TRUE) !== FALSE);
+ $isBase64 = (@base64_decode($encodedData, true) !== false);
// Return it
return $isBase64;
}
- /**
- * "Getter" to get response/request type from analysis of the system.
- *
- * @return $responseType Analyzed response type
- */
- protected static function getResponseTypeFromSystem () {
- // Default is console
- $responseType = 'console';
-
- // Is 'HTTP_HOST' set?
- if (isset($_SERVER['HTTP_HOST'])) {
- /*
- * Then it is a HTML response/request as RSS and so on may be
- * transfered over HTTP as well.
- */
- $responseType = 'html';
- } // END - if
-
- // Return it
- return $responseType;
- }
-
/**
* Gets a cache key from Criteria instance
*
*/
protected function getPrintableExecutionTime () {
// Caculate the execution time
- $executionTime = microtime(TRUE) - $this->getStartupTime();
+ $executionTime = microtime(true) - $this->getStartupTime();
// Pack it in nice braces
$executionTime = sprintf('[ %01.5f ] ', $executionTime);
* @param $assertMismatch Whether to assert mismatches
* @return $ret The (hopefully) secured numbered value
*/
- public function bigintval ($num, $castValue = TRUE, $assertMismatch = FALSE) {
+ public function bigintval ($num, $castValue = true, $assertMismatch = false) {
// Filter all numbers out
$ret = preg_replace('/[^0123456789]/', '', $num);
// Shall we cast?
- if ($castValue === TRUE) {
+ if ($castValue === true) {
// Cast to biggest numeric type
$ret = (double) $ret;
} // END - if
// Assert only if requested
- if ($assertMismatch === TRUE) {
+ if ($assertMismatch === true) {
// Has the whole value changed?
assert(('' . $ret . '' != '' . $num . '') && (!is_null($num)));
} // END - if
* @param $assertMismatch Whether to assert mismatches
* @return $ret The (hopefully) secured hext-numbered value
*/
- public function hexval ($num, $assertMismatch = FALSE) {
+ public function hexval ($num, $assertMismatch = false) {
// Filter all numbers out
$ret = preg_replace('/[^0123456789abcdefABCDEF]/', '', $num);
// Assert only if requested
- if ($assertMismatch === TRUE) {
+ if ($assertMismatch === true) {
// Has the whole value changed?
assert(('' . $ret . '' != '' . $num . '') && (!is_null($num)));
} // END - if
return $ret;
}
- /**
- * Checks whether start/end marker are set
- *
- * @param $data Data to be checked
- * @return $isset Whether start/end marker are set
- */
- public final function ifStartEndMarkersSet ($data) {
- // Determine it
- $isset = ((substr($data, 0, strlen(BaseRawDataHandler::STREAM_START_MARKER)) == BaseRawDataHandler::STREAM_START_MARKER) && (substr($data, -1 * strlen(BaseRawDataHandler::STREAM_END_MARKER), strlen(BaseRawDataHandler::STREAM_END_MARKER)) == BaseRawDataHandler::STREAM_END_MARKER));
-
- // ... and return it
- return $isset;
- }
-
/**
* Determines if an element is set in the generic array
*
} // END - if
// Debug message
- //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',value=' . print_r($this->genericArray[$keyGroup][$subGroup], TRUE));
+ //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',value=' . print_r($this->genericArray[$keyGroup][$subGroup], true));
// Return it
return $this->genericArray[$keyGroup][$subGroup];
*/
protected final function appendStringToGenericArrayKey ($keyGroup, $subGroup, $key, $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);
+ //* 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);
// Is it already there?
if ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) {
*/
protected final function appendStringToGenericArrayElement ($keyGroup, $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);
+ //* 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);
// Is it already there?
if ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) {
*/
protected final function setStringGenericArrayElement ($keyGroup, $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);
+ //* 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);
// Set it
$this->genericArray[$keyGroup][$subGroup][$key][$element] = (string) $value;
* @param $forceInit Optionally force initialization
* @return void
*/
- protected final function initGenericArrayGroup ($keyGroup, $subGroup, $forceInit = FALSE) {
+ protected final function initGenericArrayGroup ($keyGroup, $subGroup, $forceInit = false) {
// Debug message
//* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',forceInit=' . intval($forceInit));
// Is it already set?
- if (($forceInit === FALSE) && ($this->isGenericArrayGroupSet($keyGroup, $subGroup))) {
+ if (($forceInit === false) && ($this->isGenericArrayGroupSet($keyGroup, $subGroup))) {
// Already initialized
trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' already initialized.');
exit;
* @param $forceInit Optionally force initialization
* @return void
*/
- protected final function initGenericArrayKey ($keyGroup, $subGroup, $key, $forceInit = FALSE) {
+ protected final function initGenericArrayKey ($keyGroup, $subGroup, $key, $forceInit = false) {
// Debug message
//* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',forceInit=' . intval($forceInit));
// Is it already set?
- if (($forceInit === FALSE) && ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key))) {
+ if (($forceInit === false) && ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key))) {
// Already initialized
trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' already initialized.');
exit;
* @param $forceInit Optionally force initialization
* @return void
*/
- protected final function initGenericArrayElement ($keyGroup, $subGroup, $key, $element, $forceInit = FALSE) {
+ protected final function initGenericArrayElement ($keyGroup, $subGroup, $key, $element, $forceInit = false) {
// Debug message
//* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',forceInit=' . intval($forceInit));
// Is it already set?
- if (($forceInit === FALSE) && ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element))) {
+ if (($forceInit === false) && ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element))) {
// Already initialized
trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ' already initialized.');
exit;
*/
protected final function pushValueToGenericArrayKey ($keyGroup, $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));
+ //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true));
// Is it set?
if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) {
$count = array_push($this->genericArray[$keyGroup][$subGroup][$key], $value);
// Return count
- //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], TRUE));
+ //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
//* DEBUG: */ print(__METHOD__ . ': count=' . $count . PHP_EOL);
return $count;
}
*/
protected final function pushValueToGenericArrayElement ($keyGroup, $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));
+ //* 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));
// Is it set?
if (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) {
$count = array_push($this->genericArray[$keyGroup][$subGroup][$key][$element], $value);
// Return count
- //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], TRUE));
+ //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
//* DEBUG: */ print(__METHOD__ . ': count=' . $count . PHP_EOL);
return $count;
}
$value = array_pop($this->genericArray[$keyGroup][$subGroup][$key]);
// Return value
- //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], TRUE));
- //* DEBUG: */ print(__METHOD__ . ': value[' . gettype($value) . ']=' . print_r($value, TRUE) . PHP_EOL);
+ //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
+ //* DEBUG: */ print(__METHOD__ . ': value[' . gettype($value) . ']=' . print_r($value, true) . PHP_EOL);
return $value;
}
$value = array_shift($this->genericArray[$keyGroup][$subGroup][$key]);
// Return value
- //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], TRUE));
- //* DEBUG: */ print(__METHOD__ . ': value[' . gettype($value) . ']=' . print_r($value, TRUE) . PHP_EOL);
+ //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
+ //* DEBUG: */ print(__METHOD__ . ': value[' . gettype($value) . ']=' . print_r($value, true) . PHP_EOL);
return $value;
}
*/
protected final function setGenericArrayKey ($keyGroup, $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));
+ //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true));
// Set value here
$this->genericArray[$keyGroup][$subGroup][$key] = $value;
*/
protected final function setGenericArrayElement ($keyGroup, $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));
+ //* 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));
// Then set it
$this->genericArray[$keyGroup][$subGroup][$key][$element] = $value;
// Get application instance
$applicationInstance = Registry::getRegistry()->getInstance('app');
- // Is this a response instance?
- if ($this instanceof Responseable) {
- // Then set it in application instance
- $applicationInstance->setResponseInstance($this);
- } // END - if
-
// Init web output instance
$outputInstance = ObjectFactory::createObjectByConfiguredName('output_class', array($applicationInstance));
}
/**
- * Translates boolean TRUE to 'Y' and FALSE to 'N'
+ * Translates boolean true to 'Y' and false to 'N'
*
* @param $boolean Boolean value
* @return $translated Translated boolean value
assert(is_bool($boolean));
// "Translate" it
- $translated = ($boolean === TRUE) ? 'Y' : 'N';
+ $translated = ($boolean === true) ? 'Y' : 'N';
// ... and return it
return $translated;
return $packed;
}
- /**
- * Checks whether the given file/path is in open_basedir(). This does not
- * gurantee that the file is actually readable and/or writeable. If you need
- * such gurantee then please use isReadableFile() instead.
- *
- * @param $filePathName Name of the file/path to be checked
- * @return $isReachable Whether it is within open_basedir()
- */
- protected static function isReachableFilePath ($filePathName) {
- // Is not reachable by default
- $isReachable = FALSE;
-
- // Get open_basedir parameter
- $openBaseDir = ini_get('open_basedir');
-
- // Is it set?
- if (!empty($openBaseDir)) {
- // Check all entries
- foreach (explode(PATH_SEPARATOR, $openBaseDir) as $dir) {
- // Check on existence
- if (substr($filePathName, 0, strlen($dir)) == $dir) {
- // Is reachable
- $isReachable = TRUE;
- } // END - if
- } // END - foreach
- } else {
- // If open_basedir is not set, all is allowed
- $isReachable = TRUE;
- }
-
- // Return status
- return $isReachable;
- }
-
- /**
- * Checks whether the give file is within open_basedir() (done by
- * isReachableFilePath()), is actually a file and is readable.
- *
- * @param $fileName Name of the file to be checked
- * @return $isReadable Whether the file is readable (and therefor exists)
- */
- public static function isReadableFile ($fileName) {
- // Default is not readable
- $isReadable = FALSE;
-
- // Is within parameters, so check if it is a file and readable
- $isReadable = ((self::isReachableFilePath($fileName)) && (file_exists($fileName)) && (is_file($fileName)) && (is_readable($fileName)));
-
- // Return status
- return $isReadable;
- }
-
/**
* Creates a full-qualified file name (FQFN) for given file name by adding
* a configured temporary file path to it.
} // END - if
// Add it
- $fqfn = $basePath . '/' . $fileName;
+ $fqfn = $basePath . DIRECTORY_SEPARATOR . $fileName;
// Is it reachable?
- if (!self::isReachableFilePath($fqfn)) {
+ if (!FrameworkBootstrap::isReachableFilePath($fqfn)) {
// Not reachable
throw new FileIoException($fqfn, self::EXCEPTION_FILE_NOT_REACHABLE);
} // END - if
return $stateName;
}
- /**
- * Handles socket error for given socket resource and peer data. This method
- * validates $socketResource if it is a valid resource (see is_resource())
- * but assumes valid data in array $recipientData, except that
- * count($recipientData) is always 2.
- *
- * @param $method Value of __METHOD__ from calling method
- * @param $line Value of __LINE__ from calling method
- * @param $socketResource A valid socket resource
- * @param $socketData A valid socket data array (0 = IP/file name, 1 = port)
- * @return void
- * @throws InvalidSocketException If $socketResource is no socket resource
- * @throws NoSocketErrorDetectedException If socket_last_error() gives zero back
- * @todo Move all this socket-related stuff into own class, most of it resides in BaseListener
- */
- protected final function handleSocketError ($method, $line, $socketResource, array $socketData) {
- // This method handles only socket resources
- if (!is_resource($socketResource)) {
- // No resource, abort here
- throw new InvalidSocketException(array($this, $socketResource), BaseListener::EXCEPTION_INVALID_SOCKET);
- } // END - if
-
- // Check socket array, 1st element is mostly IP address (or file name), 2nd is port number
- //* DEBUG-DIE: */ die(__METHOD__ . ':socketData=' . print_r($socketData, TRUE));
- assert(isset($socketData[0]));
- assert(isset($socketData[1]));
-
- // Get error code for first validation (0 is not an error)
- $errorCode = socket_last_error($socketResource);
-
- // If the error code is zero, someone called this method without an error
- if ($errorCode == 0) {
- // No error detected (or previously cleared outside this method)
- throw new NoSocketErrorDetectedException(array($this, $socketResource), BaseListener::EXCEPTION_NO_SOCKET_ERROR);
- } // END - if
-
- // Get handler (method) name
- $handlerName = $this->getSocketErrorHandlerFromCode($errorCode);
-
- // Call-back the error handler method
- call_user_func_array(array($this, $handlerName), array($socketResource, $socketData));
-
- // Finally clear the error because it has been handled
- socket_clear_error($socketResource);
- }
-
}