// Import framework stuff
use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
-use Org\Mxchange\CoreFramework\Compressor\Compressor;
-use Org\Mxchange\CoreFramework\Connection\Database\DatabaseConnection;
use Org\Mxchange\CoreFramework\Criteria\Criteria;
use Org\Mxchange\CoreFramework\Criteria\Local\LocalSearchCriteria;
use Org\Mxchange\CoreFramework\Criteria\Local\LocalUpdateCriteria;
use Org\Mxchange\CoreFramework\EntryPoint\ApplicationEntryPoint;
use Org\Mxchange\CoreFramework\Factory\Database\Wrapper\DatabaseWrapperFactory;
use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
-use Org\Mxchange\CoreFramework\Filesystem\Block;
-use Org\Mxchange\CoreFramework\Filesystem\FilePointer;
-use Org\Mxchange\CoreFramework\Filesystem\FrameworkDirectory;
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\Handler\Handleable;
use Org\Mxchange\CoreFramework\Helper\Helper;
-use Org\Mxchange\CoreFramework\Index\Indexable;
use Org\Mxchange\CoreFramework\Lists\Listable;
use Org\Mxchange\CoreFramework\Loader\ClassLoader;
use Org\Mxchange\CoreFramework\Localization\ManageableLanguage;
use Org\Mxchange\CoreFramework\Manager\ManageableApplication;
use Org\Mxchange\CoreFramework\Menu\RenderableMenu;
-use Org\Mxchange\CoreFramework\Middleware\Compressor\CompressorChannel;
use Org\Mxchange\CoreFramework\Middleware\Debug\DebugMiddleware;
-use Org\Mxchange\CoreFramework\Parser\Parseable;
use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
use Org\Mxchange\CoreFramework\Result\Database\CachedDatabaseResult;
use Org\Mxchange\CoreFramework\Result\Search\SearchableResult;
-use Org\Mxchange\CoreFramework\Stacker\Stackable;
use Org\Mxchange\CoreFramework\State\Stateable;
use Org\Mxchange\CoreFramework\Stream\Input\InputStream;
use Org\Mxchange\CoreFramework\Stream\Output\OutputStreamer;
use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
use Org\Mxchange\CoreFramework\User\ManageableAccount;
use Org\Mxchange\CoreFramework\Utils\String\StringUtils;
-use Org\Mxchange\CoreFramework\Visitor\Visitor;
// Import SPL stuff
use \stdClass;
*/
private $imageInstance = NULL;
- /**
- * Instance of the stacker
- */
- private $stackInstance = NULL;
-
- /**
- * A Compressor instance
- */
- private $compressorInstance = NULL;
-
- /**
- * A Parseable instance
- */
- private $parserInstance = NULL;
-
- /**
- * A database wrapper instance
- */
- private $databaseInstance = NULL;
-
/**
* A helper instance for the form
*/
*/
private $handlerInstance = NULL;
- /**
- * Visitor handler instance
- */
- private $visitorInstance = NULL;
-
/**
* An instance of a database wrapper class
*/
private $wrapperInstance = NULL;
- /**
- * An instance of a file I/O pointer class (not handler)
- */
- private $pointerInstance = NULL;
-
- /**
- * An instance of an Indexable class
- */
- private $indexInstance = NULL;
-
- /**
- * An instance of a Block class
- */
- private $blockInstance = NULL;
-
- /**
- * A FrameworkDirectory instance
- */
- private $directoryInstance = NULL;
-
- /**
- * The concrete output instance
- */
- private $outputInstance = NULL;
-
/**
* State instance
*/
const EXCEPTION_INVALID_SOCKET = 0x03e;
const EXCEPTION_SELF_INSTANCE = 0x03f;
- /**
- * Hexadecimal->Decimal translation array
- */
- private static $hexdec = array(
- '0' => 0,
- '1' => 1,
- '2' => 2,
- '3' => 3,
- '4' => 4,
- '5' => 5,
- '6' => 6,
- '7' => 7,
- '8' => 8,
- '9' => 9,
- 'a' => 10,
- 'b' => 11,
- 'c' => 12,
- 'd' => 13,
- 'e' => 14,
- 'f' => 15
- );
-
- /**
- * Decimal->hexadecimal translation array
- */
- private static $dechex = array(
- 0 => '0',
- 1 => '1',
- 2 => '2',
- 3 => '3',
- 4 => '4',
- 5 => '5',
- 6 => '6',
- 7 => '7',
- 8 => '8',
- 9 => '9',
- 10 => 'a',
- 11 => 'b',
- 12 => 'c',
- 13 => 'd',
- 14 => 'e',
- 15 => 'f'
- );
-
/**
* Startup time in miliseconds
*/
return $webOutputInstance;
}
- /**
- * Setter for database instance
- *
- * @param $databaseInstance The instance for the database connection (forced DatabaseConnection)
- * @return void
- */
- public final function setDatabaseInstance (DatabaseConnection $databaseInstance) {
- GenericRegistry::getRegistry()->addInstance('db_instance', $databaseInstance);
- }
-
- /**
- * Getter for database layer
- *
- * @return $databaseInstance The database layer instance
- */
- public final function getDatabaseInstance () {
- // Get instance
- $databaseInstance = GenericRegistry::getRegistry()->getInstance('db_instance');
-
- // Return instance
- return $databaseInstance;
- }
-
- /**
- * Setter for compressor channel
- *
- * @param $compressorInstance An instance of CompressorChannel
- * @return void
- */
- public final function setCompressorChannel (CompressorChannel $compressorInstance) {
- GenericRegistry::getRegistry()->addInstance('compressor', $compressorInstance);
- }
-
- /**
- * Getter for compressor channel
- *
- * @return $compressorInstance The compressor channel
- */
- public final function getCompressorChannel () {
- $compressorInstance = GenericRegistry::getRegistry()->getInstance('compressor');
- return $compressorInstance;
- }
-
/**
* Private getter for language instance
*
return $this->imageInstance;
}
- /**
- * Setter for stacker instance
- *
- * @param $stackInstance An instance of an stacker
- * @return void
- */
- public final function setStackInstance (Stackable $stackInstance) {
- $this->stackInstance = $stackInstance;
- }
-
- /**
- * Getter for stacker instance
- *
- * @return $stackInstance An instance of an stacker
- */
- public final function getStackInstance () {
- return $this->stackInstance;
- }
-
- /**
- * Setter for compressor instance
- *
- * @param $compressorInstance An instance of an compressor
- * @return void
- */
- public final function setCompressorInstance (Compressor $compressorInstance) {
- $this->compressorInstance = $compressorInstance;
- }
-
- /**
- * Getter for compressor instance
- *
- * @return $compressorInstance An instance of an compressor
- */
- public final function getCompressorInstance () {
- return $this->compressorInstance;
- }
-
- /**
- * Setter for Parseable instance
- *
- * @param $parserInstance An instance of an Parseable
- * @return void
- */
- public final function setParserInstance (Parseable $parserInstance) {
- $this->parserInstance = $parserInstance;
- }
-
- /**
- * Getter for Parseable instance
- *
- * @return $parserInstance An instance of an Parseable
- */
- public final function getParserInstance () {
- return $this->parserInstance;
- }
-
/**
* Setter for DatabaseWrapper instance
*
return $this->handlerInstance;
}
- /**
- * Setter for visitor instance
- *
- * @param $visitorInstance A Visitor instance
- * @return void
- */
- protected final function setVisitorInstance (Visitor $visitorInstance) {
- $this->visitorInstance = $visitorInstance;
- }
-
- /**
- * Getter for visitor instance
- *
- * @return $visitorInstance A Visitor instance
- */
- protected final function getVisitorInstance () {
- return $this->visitorInstance;
- }
-
/**
* Setter for Iterator instance
*
return $this->iteratorInstance;
}
- /**
- * Setter for FilePointer instance
- *
- * @param $pointerInstance An instance of an FilePointer class
- * @return void
- */
- protected final function setPointerInstance (FilePointer $pointerInstance) {
- $this->pointerInstance = $pointerInstance;
- }
-
- /**
- * Getter for FilePointer instance
- *
- * @return $pointerInstance An instance of an FilePointer class
- */
- public final function getPointerInstance () {
- return $this->pointerInstance;
- }
-
- /**
- * Unsets pointer instance which triggers a call of __destruct() if the
- * instance is still there. This is surely not fatal on already "closed"
- * file pointer instances.
- *
- * I don't want to mess around with above setter by giving it a default
- * value NULL as setter should always explicitly only set (existing) object
- * instances and NULL is NULL.
- *
- * @return void
- */
- protected final function unsetPointerInstance () {
- // Simply it to NULL
- $this->pointerInstance = NULL;
- }
-
- /**
- * Setter for Indexable instance
- *
- * @param $indexInstance An instance of an Indexable class
- * @return void
- */
- protected final function setIndexInstance (Indexable $indexInstance) {
- $this->indexInstance = $indexInstance;
- }
-
- /**
- * Getter for Indexable instance
- *
- * @return $indexInstance An instance of an Indexable class
- */
- public final function getIndexInstance () {
- return $this->indexInstance;
- }
-
- /**
- * Setter for Block instance
- *
- * @param $blockInstance An instance of an Block class
- * @return void
- */
- protected final function setBlockInstance (Block $blockInstance) {
- $this->blockInstance = $blockInstance;
- }
-
- /**
- * Getter for Block instance
- *
- * @return $blockInstance An instance of an Block class
- */
- public final function getBlockInstance () {
- return $this->blockInstance;
- }
-
- /**
- * Setter for FrameworkDirectory instance
- *
- * @param $directoryInstance A FrameworkDirectory instance
- * @return void
- */
- protected final function setDirectoryInstance (FrameworkDirectory $directoryInstance) {
- $this->directoryInstance = $directoryInstance;
- }
-
- /**
- * Getter for FrameworkDirectory instance
- *
- * @return $directoryInstance A FrameworkDirectory instance
- */
- protected final function getDirectoryInstance () {
- return $this->directoryInstance;
- }
-
/**
* Setter for state instance
*
return $this->stateInstance;
}
- /**
- * Setter for output instance
- *
- * @param $outputInstance The debug output instance
- * @return void
- */
- public final function setOutputInstance (OutputStreamer $outputInstance) {
- $this->outputInstance = $outputInstance;
- }
-
- /**
- * Getter for output instance
- *
- * @return $outputInstance The debug output instance
- */
- public final function getOutputInstance () {
- return $this->outputInstance;
- }
-
/**
* Setter for call-back instance
*
// Return result
return $hasSlept;
}
- /**
- * Converts a hexadecimal string, even with negative sign as first string to
- * a decimal number using BC functions.
- *
- * This work is based on comment #86673 on php.net documentation page at:
- * <http://de.php.net/manual/en/function.dechex.php#86673>
- *
- * @param $hex Hexadecimal string
- * @return $dec Decimal number
- */
- protected function hex2dec ($hex) {
- // Convert to all lower-case
- $hex = strtolower($hex);
-
- // Detect sign (negative/positive numbers)
- $sign = '';
- if (substr($hex, 0, 1) == '-') {
- $sign = '-';
- $hex = substr($hex, 1);
- } // END - if
-
- // Decode the hexadecimal string into a decimal number
- $dec = 0;
- for ($i = strlen($hex) - 1, $e = 1; $i >= 0; $i--, $e = bcmul($e, 16)) {
- $factor = self::$hexdec[substr($hex, $i, 1)];
- $dec = bcadd($dec, bcmul($factor, $e));
- } // END - for
-
- // Return the decimal number
- return $sign . $dec;
- }
-
- /**
- * Converts even very large decimal numbers, also signed, to a hexadecimal
- * string.
- *
- * This work is based on comment #97756 on php.net documentation page at:
- * <http://de.php.net/manual/en/function.hexdec.php#97756>
- *
- * @param $dec Decimal number, even with negative sign
- * @param $maxLength Optional maximum length of the string
- * @return $hex Hexadecimal string
- */
- protected function dec2hex ($dec, $maxLength = 0) {
- // maxLength can be zero or devideable by 2
- assert(($maxLength == 0) || (($maxLength % 2) == 0));
-
- // Detect sign (negative/positive numbers)
- $sign = '';
- if ($dec < 0) {
- $sign = '-';
- $dec = abs($dec);
- } // END - if
-
- // Encode the decimal number into a hexadecimal string
- $hex = '';
- do {
- $hex = self::$dechex[($dec % (2 ^ 4))] . $hex;
- $dec /= (2 ^ 4);
- } while ($dec >= 1);
-
- /*
- * Leading zeros are required for hex-decimal "numbers". In some
- * situations more leading zeros are wanted, so check for both
- * conditions.
- */
- if ($maxLength > 0) {
- // Prepend more zeros
- $hex = str_pad($hex, $maxLength, '0', STR_PAD_LEFT);
- } elseif ((strlen($hex) % 2) != 0) {
- // Only make string's length dividable by 2
- $hex = '0' . $hex;
- }
-
- // Return the hexadecimal string
- return $sign . $hex;
- }
-
- /**
- * Converts a ASCII string (0 to 255) into a decimal number.
- *
- * @param $asc The ASCII string to be converted
- * @return $dec Decimal number
- */
- protected function asc2dec ($asc) {
- // Convert it into a hexadecimal number
- $hex = bin2hex($asc);
-
- // And back into a decimal number
- $dec = $this->hex2dec($hex);
-
- // Return it
- return $dec;
- }
-
- /**
- * Converts a decimal number into an ASCII string.
- *
- * @param $dec Decimal number
- * @return $asc An ASCII string
- */
- protected function dec2asc ($dec) {
- // First convert the number into a hexadecimal string
- $hex = $this->dec2hex($dec);
-
- // Then convert it into the ASCII string
- $asc = $this->hex2asc($hex);
-
- // Return it
- return $asc;
- }
-
- /**
- * Converts a hexadecimal number into an ASCII string. Negative numbers
- * are not allowed.
- *
- * @param $hex Hexadecimal string
- * @return $asc An ASCII string
- */
- protected function hex2asc ($hex) {
- // Check for length, it must be devideable by 2
- //* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('hex='.$hex);
- assert((strlen($hex) % 2) == 0);
-
- // Walk the string
- $asc = '';
- for ($idx = 0; $idx < strlen($hex); $idx+=2) {
- // Get the decimal number of the chunk
- $part = hexdec(substr($hex, $idx, 2));
-
- // Add it to the final string
- $asc .= chr($part);
- } // END - for
-
- // Return the final string
- return $asc;
- }
/**
* Checks whether the given encoded data was encoded with Base64