/**
* An instance of this class
*/
- private static $thisInstance = null;
+ private static $selfInstance = null;
/**
* Protected constructor
/**
* Getter for an instance of this class
*
- * @return $thisInstance An instance of this class
+ * @return $selfInstance An instance of this class
*/
- public final static function getInstance () {
+ public final static function getSelfInstance () {
// Is the instance there?
- if (is_null(self::$thisInstance)) {
- self::$thisInstance = new ApplicationHelper();
- }
+ if (is_null(self::$selfInstance)) {
+ self::$selfInstance = new ApplicationHelper();
+ } // END - if
// Return the instance
- return self::$thisInstance;
+ return self::$selfInstance;
}
/**
* @return void
*/
public final function entryPoint () {
+ // Set this application in registry
+ Registry::getRegistry()->addInstance('app', $this);
+
+ // Analyze the environment for type of response/request
+ $type = ConsoleTools::analyzeEnvironmentForType();
+ $classType = ConsoleTools::analyzeEnvironmentForClassType();
+
// Create a new request object
- $requestInstance = ObjectFactory::createObjectByName('HttpRequest');
+ $requestInstance = ObjectFactory::createObjectByName(ucfirst($type) . 'Request');
+
+ // Remember request instance here
+ $this->setRequestInstance($requestInstance);
// Default response is HTTP (HTML page) and type is 'Web'
- $response = 'http';
- $responseType = 'web';
+ $response = $type;
+ $responseType = $classType;
// Do we have another response?
if ($requestInstance->isRequestElementSet('request')) {
$responseClass = sprintf("%sResponse", $this->convertToClassName($response));
$responseInstance = ObjectFactory::createObjectByName($responseClass, array($this));
- // Remember both in this application
- $this->setRequestInstance($requestInstance);
+ // Remember response instance here
$this->setResponseInstance($responseInstance);
// Get the parameter from the request
// If it is null then get default command
if (is_null($commandName)) {
- // Get default command
+ // Get the default command
$commandName = $responseInstance->getDefaultCommand();
// Set it in request
// Get a controller instance as well
$this->controllerInstance = $resolverInstance->resolveController();
+ // Get a web output class
+ $outputInstance = ObjectFactory::createObjectByConfiguredName('output_class', array($this));
+
+ // Set it in this application
+ $this->setWebOutputInstance($outputInstance);
+
// Handle the request
$this->controllerInstance->handleRequest($requestInstance, $responseInstance);
}