mirror of
https://github.com/atlanticbiomedical/portal-legacy.git
synced 2025-07-02 01:47:28 -04:00
initial commit
This commit is contained in:
331
lib/symfony/util/sfContext.class.php
Executable file
331
lib/symfony/util/sfContext.class.php
Executable file
@ -0,0 +1,331 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the symfony package.
|
||||
* (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||
* (c) 2004-2006 Sean Kerr.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* sfContext provides information about the current application context, such as
|
||||
* the module and action names and the module directory. References to the
|
||||
* current controller, request, and user implementation instances are also
|
||||
* provided.
|
||||
*
|
||||
* @package symfony
|
||||
* @subpackage util
|
||||
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||
* @author Sean Kerr <skerr@mojavi.org>
|
||||
* @version SVN: $Id: sfContext.class.php 3493 2007-02-18 09:23:10Z fabien $
|
||||
*/
|
||||
class sfContext
|
||||
{
|
||||
protected
|
||||
$actionStack = null,
|
||||
$controller = null,
|
||||
$databaseManager = null,
|
||||
$request = null,
|
||||
$response = null,
|
||||
$storage = null,
|
||||
$viewCacheManager = null,
|
||||
$i18n = null,
|
||||
$logger = null,
|
||||
$user = null;
|
||||
|
||||
protected static
|
||||
$instance = null;
|
||||
|
||||
/**
|
||||
* Removes current sfContext instance
|
||||
*
|
||||
* This method only exists for testing purpose. Don't use it in your application code.
|
||||
*/
|
||||
public static function removeInstance()
|
||||
{
|
||||
self::$instance = null;
|
||||
}
|
||||
|
||||
protected function initialize()
|
||||
{
|
||||
$this->logger = sfLogger::getInstance();
|
||||
if (sfConfig::get('sf_logging_enabled'))
|
||||
{
|
||||
$this->logger->info('{sfContext} initialization');
|
||||
}
|
||||
|
||||
if (sfConfig::get('sf_use_database'))
|
||||
{
|
||||
// setup our database connections
|
||||
$this->databaseManager = new sfDatabaseManager();
|
||||
$this->databaseManager->initialize();
|
||||
}
|
||||
|
||||
// create a new action stack
|
||||
$this->actionStack = new sfActionStack();
|
||||
|
||||
// include the factories configuration
|
||||
require(sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_config_dir_name').'/factories.yml'));
|
||||
|
||||
// register our shutdown function
|
||||
register_shutdown_function(array($this, 'shutdown'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the singleton instance of this class.
|
||||
*
|
||||
* @return sfContext A sfContext implementation instance.
|
||||
*/
|
||||
public static function getInstance()
|
||||
{
|
||||
if (!isset(self::$instance))
|
||||
{
|
||||
$class = __CLASS__;
|
||||
self::$instance = new $class();
|
||||
self::$instance->initialize();
|
||||
}
|
||||
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
public static function hasInstance()
|
||||
{
|
||||
return isset(self::$instance);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the action name for this context.
|
||||
*
|
||||
* @return string The currently executing action name, if one is set,
|
||||
* otherwise null.
|
||||
*/
|
||||
public function getActionName()
|
||||
{
|
||||
// get the last action stack entry
|
||||
if ($this->actionStack && $lastEntry = $this->actionStack->getLastEntry())
|
||||
{
|
||||
return $lastEntry->getActionName();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve the ActionStack.
|
||||
*
|
||||
* @return sfActionStack the sfActionStack instance
|
||||
*/
|
||||
public function getActionStack()
|
||||
{
|
||||
return $this->actionStack;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the controller.
|
||||
*
|
||||
* @return sfController The current sfController implementation instance.
|
||||
*/
|
||||
public function getController()
|
||||
{
|
||||
return $this->controller;
|
||||
}
|
||||
|
||||
public function getLogger()
|
||||
{
|
||||
return $this->logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a database connection from the database manager.
|
||||
*
|
||||
* This is a shortcut to manually getting a connection from an existing
|
||||
* database implementation instance.
|
||||
*
|
||||
* If the [sf_use_database] setting is off, this will return null.
|
||||
*
|
||||
* @param name A database name.
|
||||
*
|
||||
* @return mixed A Database instance.
|
||||
*
|
||||
* @throws <b>sfDatabaseException</b> If the requested database name does not exist.
|
||||
*/
|
||||
public function getDatabaseConnection($name = 'default')
|
||||
{
|
||||
if ($this->databaseManager != null)
|
||||
{
|
||||
return $this->databaseManager->getDatabase($name)->getConnection();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function retrieveObjects($class, $peerMethod)
|
||||
{
|
||||
$retrievingClass = 'sf'.ucfirst(sfConfig::get('sf_orm', 'propel')).'DataRetriever';
|
||||
|
||||
return call_user_func(array($retrievingClass, 'retrieveObjects'), $class, $peerMethod);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the database manager.
|
||||
*
|
||||
* @return sfDatabaseManager The current sfDatabaseManager instance.
|
||||
*/
|
||||
public function getDatabaseManager()
|
||||
{
|
||||
return $this->databaseManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the module directory for this context.
|
||||
*
|
||||
* @return string An absolute filesystem path to the directory of the
|
||||
* currently executing module, if one is set, otherwise null.
|
||||
*/
|
||||
public function getModuleDirectory()
|
||||
{
|
||||
// get the last action stack entry
|
||||
if ($this->actionStack && $lastEntry = $this->actionStack->getLastEntry())
|
||||
{
|
||||
return sfConfig::get('sf_app_module_dir').'/'.$lastEntry->getModuleName();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the module name for this context.
|
||||
*
|
||||
* @return string The currently executing module name, if one is set,
|
||||
* otherwise null.
|
||||
*/
|
||||
public function getModuleName()
|
||||
{
|
||||
// get the last action stack entry
|
||||
if ($this->actionStack && $lastEntry = $this->actionStack->getLastEntry())
|
||||
{
|
||||
return $lastEntry->getModuleName();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the curretn view instance for this context.
|
||||
*
|
||||
* @return sfView The currently view instance, if one is set,
|
||||
* otherwise null.
|
||||
*/
|
||||
public function getCurrentViewInstance()
|
||||
{
|
||||
// get the last action stack entry
|
||||
if ($this->actionStack && $lastEntry = $this->actionStack->getLastEntry())
|
||||
{
|
||||
return $lastEntry->getViewInstance();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the request.
|
||||
*
|
||||
* @return sfRequest The current sfRequest implementation instance.
|
||||
*/
|
||||
public function getRequest()
|
||||
{
|
||||
return $this->request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the response.
|
||||
*
|
||||
* @return sfResponse The current sfResponse implementation instance.
|
||||
*/
|
||||
public function getResponse()
|
||||
{
|
||||
return $this->response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the response object.
|
||||
*
|
||||
* @param sfResponse A sfResponse instance.
|
||||
*
|
||||
* @return void.
|
||||
*/
|
||||
public function setResponse($response)
|
||||
{
|
||||
$this->response = $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the storage.
|
||||
*
|
||||
* @return sfStorage The current sfStorage implementation instance.
|
||||
*/
|
||||
public function getStorage()
|
||||
{
|
||||
return $this->storage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the view cache manager
|
||||
*
|
||||
* @return sfViewCacheManager The current sfViewCacheManager implementation instance.
|
||||
*/
|
||||
public function getViewCacheManager()
|
||||
{
|
||||
return $this->viewCacheManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the i18n instance
|
||||
*
|
||||
* @return sfI18N The current sfI18N implementation instance.
|
||||
*/
|
||||
public function getI18N()
|
||||
{
|
||||
if (!$this->i18n && sfConfig::get('sf_i18n'))
|
||||
{
|
||||
$this->i18n = sfI18N::getInstance();
|
||||
$this->i18n->initialize($this);
|
||||
}
|
||||
|
||||
return $this->i18n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the user.
|
||||
*
|
||||
* @return sfUser The current sfUser implementation instance.
|
||||
*/
|
||||
public function getUser()
|
||||
{
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the shutdown procedure.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function shutdown()
|
||||
{
|
||||
// shutdown all factories
|
||||
$this->getUser()->shutdown();
|
||||
$this->getStorage()->shutdown();
|
||||
$this->getRequest()->shutdown();
|
||||
$this->getResponse()->shutdown();
|
||||
|
||||
if (sfConfig::get('sf_logging_enabled'))
|
||||
{
|
||||
$this->getLogger()->shutdown();
|
||||
}
|
||||
|
||||
if (sfConfig::get('sf_use_database'))
|
||||
{
|
||||
$this->getDatabaseManager()->shutdown();
|
||||
}
|
||||
|
||||
if (sfConfig::get('sf_cache'))
|
||||
{
|
||||
$this->getViewCacheManager()->shutdown();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user