本文整理汇总了PHP中CMS::current_controller方法的典型用法代码示例。如果您正苦于以下问题:PHP CMS::current_controller方法的具体用法?PHP CMS::current_controller怎么用?PHP CMS::current_controller使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMS
的用法示例。
在下文中一共展示了CMS::current_controller方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct($env, $application = null)
{
if (!CMS::$current_component_name) {
$this->application = $application;
CMS::$current_component_name = $this->get_component_name();
CMS::$current_mapper = isset(CMS::$mappers[CMS::$current_component_name]) ? CMS::$mappers[CMS::$current_component_name] : $application;
//Может не быть
CMS::$current_controller = $this;
return parent::__construct($env, $env->response);
}
parent::__construct($env, $application);
}
示例2: process_app
//.........这里部分代码省略.........
if (CMS::$db) {
$head = CMS::vars()->get('head');
if (isset($head['meta.title'])) {
$env->meta->title($head['meta.title']);
}
if (isset($head['meta.description'])) {
$env->meta->description($head['meta.description']);
}
if (isset($head['meta.keywords'])) {
$env->meta->keywords($head['meta.keywords']);
}
}
$curi = $uri;
if ($m = Core_Regexps::match_with_results('/^([^\\?]+)\\?/', $curi)) {
$curi = $m[1];
}
$use_layout = false;
// Просмотр всех мапперов зарегистрированных в системе
foreach (CMS::mappers() as $name => $mapper) {
// Если срабатывает маппер
if ($route = $mapper->route($env->request)) {
CMS::$current_mapper = $mapper;
CMS::$current_component_name = $name;
CMS::$current_route = $route;
try {
Core::load('Component.' . $name);
} catch (Core_ModuleNotFoundException $e) {
// hush
}
if ($route instanceof Net_HTTP_Response) {
return $route;
}
// Имя подключаемого модуля
$controller_module_name = 'Component.' . $name . '.Controller';
// Имя контроллера по умолчанию
$controller_name = Core_Strings::replace($controller_module_name, '.', '_');
// Имя действитя по умолчанию
$action_name = 'index';
$do_load_controllers = true;
if ($route === true) {
$route = array('controller' => $controller_name, 'action' => 'index');
}
if (is_array($route)) {
$_route = WebKit_Controller::Route();
$_route->merge($route);
$route = $_route;
}
if (!isset($route['action'])) {
$route['action'] = 'index';
}
// Если маппер вернул нестандартное имя контроллера
if (isset($route['controller'])) {
$controller_name = $route['controller'];
}
// Если маппер вернул нестандартное имя действия
if (isset($route['action'])) {
$action_name = $route['action'];
}
// Если маппер не велел загружать модуль с конроллером (загрузит сам)
if (isset($route['no_load'])) {
$do_load_controllers = false;
}
// Загружаем модуль с контроллером
if ($do_load_controllers) {
if (strpos($controller_name, '.') === false && strpos($controller_name, '_') === false) {
$controller_name = 'Component.' . $name . '.' . $controller_name;
}
if (strpos($controller_name, '.') !== false) {
$controller_module_name = $controller_name;
}
Core::autoload($controller_module_name);
}
// Получаем экземпляр контроллера
CMS::$current_controller_name = $controller_name;
//$controller = Core_Types::reflection_for($controller_name)->newInstance($env, $response);
$controller = Core::make($controller_name, $env, $response);
if ($use_layout) {
if (!property_exists($controller, 'layout')) {
$controller->use_layout($use_layout);
} else {
if (!$controller->layout) {
$controller->use_layout($use_layout);
}
}
}
if (!CMS::$print_version && is_string(CMS::$force_layout)) {
$controller->use_layout(CMS::$force_layout);
}
CMS::$current_controller = $controller;
CMS::$current_route = $route;
// Запускаем контроллер с переданными аргументами
$rc = $controller->dispatch($route);
return $rc;
}
}
if (md5($uri) == 'b0b94791138ef54aeb161e403329f827') {
die('cms');
}
return Net_HTTP::not_found();
}
示例3: clear_cms_data
protected function clear_cms_data()
{
CMS::$current_mapper = null;
CMS::$current_component_name = null;
CMS::$current_controller = null;
}