本文整理汇总了PHP中TemplateManager::singleton方法的典型用法代码示例。如果您正苦于以下问题:PHP TemplateManager::singleton方法的具体用法?PHP TemplateManager::singleton怎么用?PHP TemplateManager::singleton使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TemplateManager
的用法示例。
在下文中一共展示了TemplateManager::singleton方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: App
function App($rootdir, $args)
{
Profiler::StartTimer("WebApp", 1);
Profiler::StartTimer("WebApp::Init", 1);
Profiler::StartTimer("WebApp::TimeToDisplay", 1);
$GLOBALS["webapp"] = $this;
register_shutdown_function(array('Logger', 'processShutdown'));
ob_start();
$this->rootdir = $rootdir;
$this->debug = !empty($args["debug"]);
$this->getAppVersion();
Logger::Info("WebApp Initializing (" . $this->appversion . ")");
Logger::Info("Path: " . get_include_path());
$this->initAutoLoaders();
Logger::Info("Turning Pandora flag on");
if (class_exists("PandoraLog")) {
$pandora = PandoraLog::singleton();
$pandora->setFlag(true);
}
$this->locations = array("scripts" => "htdocs/scripts", "css" => "htdocs/css", "tmp" => "tmp", "config" => "config");
$this->request = $this->ParseRequest(NULL, $args);
$this->locations["basedir"] = $this->request["basedir"];
$this->locations["scriptswww"] = $this->request["basedir"] . "/scripts";
$this->locations["csswww"] = $this->request["basedir"] . "/css";
$this->locations["imageswww"] = $this->request["basedir"] . "/images";
$this->InitProfiler();
$this->cfg = ConfigManager::singleton($rootdir);
$this->InitProfiler();
// reinitialize after loading the config
$this->locations = array_merge($this->locations, $this->cfg->locations);
$this->data = DataManager::singleton($this->cfg);
set_error_handler(array($this, "HandleError"), error_reporting());
DependencyManager::init($this->locations);
if ($this->initialized()) {
try {
$this->session = SessionManager::singleton();
// Set sticky debug flag
if (isset($this->request["args"]["debug"])) {
$this->debug = $_SESSION["debug"] = $this->request["args"]["debug"] == 1;
} else {
if (!empty($_SESSION["debug"])) {
$this->debug = $_SESSION["debug"];
}
}
$this->cobrand = $this->GetRequestedConfigName($this->request);
$this->cfg->GetConfig($this->cobrand, true, $this->cfg->role);
$this->ApplyConfigOverrides();
$this->locations = DependencyManager::$locations = $this->cfg->locations;
// And the google analytics flag
if (isset($this->request["args"]["GAalerts"])) {
$this->GAalerts = $this->session->temporary["GAalerts"] = $this->request["args"]["GAalerts"] == 1 ? 1 : 0;
} else {
if (!empty($this->session->temporary["GAalerts"])) {
$this->GAalerts = $this->session->temporary["GAalerts"];
} else {
$this->GAalerts = 0;
}
}
$this->apiversion = any($this->request["args"]["apiversion"], ConfigManager::get("api.version.default"), 0);
$this->tplmgr = TemplateManager::singleton($this->rootdir);
$this->tplmgr->assign_by_ref("webapp", $this);
$this->components = ComponentManager::singleton($this);
$this->orm = OrmManager::singleton();
//$this->tplmgr->SetComponents($this->components);
} catch (Exception $e) {
print $this->HandleException($e);
}
} else {
$fname = "./templates/uninitialized.tpl";
if (($path = file_exists_in_path($fname, true)) !== false) {
print file_get_contents($path . "/" . $fname);
}
}
$this->user = User::singleton();
$this->user->InitActiveUser($this->request);
// Merge permanent user settings from the URL
if (!empty($this->request["args"]["settings"])) {
foreach ($this->request["args"]["settings"] as $k => $v) {
$this->user->SetPreference($k, $v, "user");
}
}
// ...and then do the same for session settings
if (!empty($this->request["args"]["sess"])) {
foreach ($this->request["args"]["sess"] as $k => $v) {
$this->user->SetPreference($k, $v, "temporary");
}
}
// And finally, initialize abtests
if (class_exists(ABTestManager)) {
Profiler::StartTimer("WebApp::Init - abtests", 2);
$this->abtests = ABTestmanager::singleton(array("cobrand" => $this->cobrand, "v" => $this->request["args"]["v"]));
Profiler::StopTimer("WebApp::Init - abtests");
}
Profiler::StopTimer("WebApp::Init");
}
示例2: App
function App($rootdir, $args)
{
Profiler::StartTimer("WebApp", 1);
Profiler::StartTimer("WebApp::Init", 1);
Profiler::StartTimer("WebApp::TimeToDisplay", 1);
// disable notices by default. This should probably be a config option...
error_reporting(error_reporting() ^ E_NOTICE);
// FIXME - xdebug recursion limit causes problems in some components...
ini_set('xdebug.max_nesting_level', 250);
$GLOBALS["webapp"] = $this;
register_shutdown_function(array($this, 'shutdown'));
ob_start();
$this->rootdir = $rootdir;
$this->debug = !empty($args["debug"]);
$this->getAppVersion();
Logger::Info("WebApp Initializing (" . $this->appversion . ")");
Logger::Info("Path: " . get_include_path());
$this->initAutoLoaders();
if (class_exists("PandoraLog")) {
Logger::Info("Turning Pandora flag on");
$pandora = PandoraLog::singleton();
$pandora->setFlag(true);
}
$this->InitProfiler();
$this->request = $this->ParseRequest(NULL, $args);
$this->cfg = ConfigManager::singleton(array("rootdir" => $rootdir, "basedir" => $this->request["basedir"]));
$this->locations = ConfigManager::getLocations();
$this->InitProfiler();
// reinitialize after loading the config
Profiler::StartTimer("WebApp::Init - handleredirects", 1);
$this->request = $this->ApplyRedirects($this->request);
Profiler::StopTimer("WebApp::Init - handleredirects");
$this->data = DataManager::singleton($this->cfg);
set_error_handler(array($this, "HandleError"), error_reporting());
DependencyManager::init($this->locations);
if ($this->initialized()) {
try {
$this->session = SessionManager::singleton();
// Set sticky debug flag
if (isset($this->request["args"]["debug"])) {
$this->debug = $_SESSION["debug"] = $this->request["args"]["debug"] == 1;
} else {
if (!empty($_SESSION["debug"])) {
$this->debug = $_SESSION["debug"];
}
}
$this->cobrand = $this->GetRequestedConfigName($this->request);
if (isset($this->request["args"]["_role"])) {
$this->role = $this->request["args"]["_role"];
} else {
if (isset($this->cfg->servers["role"])) {
$this->role = $this->cfg->servers["role"];
} else {
$this->role = "dev";
}
}
$this->cfg->GetConfig($this->cobrand, true, $this->role);
$this->ApplyConfigOverrides();
$this->locations = DependencyManager::$locations = $this->cfg->locations;
// And the google analytics flag
if (isset($this->request["args"]["GAalerts"])) {
$this->GAalerts = $this->session->temporary["GAalerts"] = $this->request["args"]["GAalerts"] == 1 ? 1 : 0;
} else {
if (!empty($this->session->temporary["GAalerts"])) {
$this->GAalerts = $this->session->temporary["GAalerts"];
} else {
$this->GAalerts = 0;
}
}
$this->apiversion = isset($this->request["args"]["apiversion"]) ? $this->request["args"]["apiversion"] : ConfigManager::get("api.version.default", 0);
$this->tplmgr = TemplateManager::singleton($this->locations);
$this->tplmgr->assign_by_ref("webapp", $this);
$this->components = ComponentManager::singleton($this);
if (class_exists("OrmManager")) {
$this->orm = OrmManager::singleton($this->locations);
}
//$this->tplmgr->SetComponents($this->components);
} catch (Exception $e) {
print $this->HandleException($e);
}
} else {
$fname = "components/elation/templates/uninitialized.html";
if (($path = file_exists_in_path($fname, true)) !== false) {
print file_get_contents($path . "/" . $fname);
}
}
$this->user = User::singleton();
$this->user->InitActiveUser($this->request);
// Merge permanent user settings from the URL
if (!empty($this->request["args"]["settings"])) {
foreach ($this->request["args"]["settings"] as $k => $v) {
$this->user->SetPreference($k, $v, "user");
}
}
// ...and then do the same for session settings
if (!empty($this->request["args"]["sess"])) {
foreach ($this->request["args"]["sess"] as $k => $v) {
$this->user->SetPreference($k, $v, "temporary");
}
}
//.........这里部分代码省略.........
示例3: getOutput
function getOutput($type)
{
$ret = array("text/html", NULL);
$tplmgr = TemplateManager::singleton();
switch ($type) {
case 'ajax':
$ret = array("application/xml", $tplmgr->GenerateXML($this->data));
break;
case 'json':
case 'jsonp':
$jsonp = any($_REQUEST["jsonp"], "elation.ajax.processResponse");
//$ret = array("application/javascript", $jsonp . "(" . json_encode($this->data) . ");");
$ret = array("application/javascript", $tplmgr->GenerateJavascript($this->data, $jsonp));
break;
case 'js':
$ret = array("application/javascript", @json_encode($this) . "\n");
break;
case 'jsi':
$ret = array("application/javascript", json_indent(@json_encode($this)) . "\n");
break;
case 'txt':
$ret = array("text/plain", $tplmgr->GenerateHTML($tplmgr->GetTemplate($this->template, NULL, $this->data)));
break;
case 'xml':
$ret = array("application/xml", object_to_xml($this, "response"));
break;
case 'data':
$ret = array("", $this->data);
break;
case 'componentresponse':
$ret = array("", $this);
break;
case 'popup':
// Popup is same as HTML, but we only use the bare-minimum html.page frame
$vars["content"] = $this;
$ret = array("text/html", ComponentManager::fetch("html.page", $vars, "inline"));
break;
case 'snip':
case 'inline':
case 'commandline':
$ret = array("text/html", $tplmgr->GetTemplate($this->template, NULL, $this->data));
break;
case 'html':
case 'fhtml':
default:
$cfg = ConfigManager::singleton();
$framecomponent = any(ConfigManager::get("page.frame"), array_get($cfg->servers, "page.frame"), "html.page");
// If framecomponent is false/0, just return the raw content
$ret = array("text/html", empty($framecomponent) ? $this->data["content"] : ComponentManager::fetch($framecomponent, array("content" => $this), "inline"));
//$ret = array("text/html", $tplmgr->GetTemplate($this->template, NULL, $this->data));
break;
}
if (!empty($this->prefix)) {
$ret[1] = $this->prefix . $ret[1];
}
return $ret;
}
示例4: HasTemplate
function HasTemplate($name, $path = NULL)
{
if (substr($name, 0, 2) == "./") {
if ($path === NULL || $path === false) {
$path = $this->path;
}
// dir should start with './' - prepend a . to go one level up
$tplpath = $path == "." ? ".." : $path;
$dir = $this->GetComponentDirectory($tplpath);
$fname = $dir . "/templates/" . substr($name, 2);
} else {
$fname = $name;
}
$tplmgr = TemplateManager::singleton();
return $tplmgr->template_exists($fname);
}