Spec-Zone.ru › Yii 1.1

CApplication

Пакет system.base
Наследование абстрактный класс CApplication » CModule » CComponent
Подклассы CConsoleApplication, CWebApplication
С момента 1.0
Исходный код framework/base/CApplication.php
CApplication — базовый класс для всех прикладных классов.

Приложение служит глобальным контекстом, в котором обрабатывается пользовательский запрос. Оно управляет набором прикладных компонентов, предоставляющих специфические функциональные возможности всему приложению.

Основные компоненты приложения, предоставляемые CApplication, следующие:
  • errorHandler: обрабатывает PHP-ошибки и необработанные исключения. Этот компонент приложения динамически загружается при необходимости.
  • securityManager: предоставляет службы, связанные с безопасностью, такие как хеширование, шифрование. Этот компонент приложения динамически загружается при необходимости.
  • statePersister: предоставляет метод глобального сохранения состояния. Этот компонент приложения динамически загружается при необходимости.
  • cache: предоставляет кеширование. Этот компонент приложения по умолчанию отключен.
  • messages: предоставляет источник сообщений для перевода сообщений приложения. Этот компонент приложения динамически загружается при необходимости.
  • coreMessages: предоставляет источник сообщений для перевода сообщений фреймворка Yii. Этот компонент приложения динамически загружается при необходимости.
  • urlManager: предоставляет возможность построения и разбора URL-адресов. Этот компонент приложения динамически загружается при необходимости.
  • request: представляет текущий HTTP-запрос, инкапсулируя переменную $_SERVER и управляя куками, отправляемыми пользователю и получаемыми от него. Этот компонент приложения динамически загружается при необходимости.
  • format: предоставляет набор часто используемых методов форматирования данных. Этот компонент приложения динамически загружается при необходимости.


CApplication проходит следующие этапы жизненного цикла при обработке пользовательского запроса:
  1. загрузка конфигурации приложения;
  2. настройка обработки ошибок;
  3. загрузка статических компонентов приложения;
  4. onBeginRequest: предварительная обработка пользовательского запроса;
  5. processRequest: обработка пользовательского запроса;
  6. onEndRequest: пост-обработка пользовательского запроса;


Начиная с 3-го этапа жизненного цикла, если произойдёт PHP-ошибка или необработанное исключение, приложение перейдёт к своей логике обработки ошибок и затем перейдёт к 6-му этапу.

Свойства Public

Свойство Тип Описание Определено
basePath string Возвращает корневой путь приложения. CApplication
baseUrl string Возвращает относительный URL для приложения. CApplication
behaviors array поведения, которые должны быть присоединены к модулю. CModule
cache CCache Возвращает компонент кеша. CApplication
charset string кодировка, используемая в настоящее время для приложения. CApplication
components array Возвращает компоненты приложения. CModule
controller CController текущий активный контроллер. CApplication
coreMessages CPhpMessageSource Возвращает компонент перевода основных сообщений. CApplication
dateFormatter CDateFormatter Возвращает форматировщик дат, зависящий от локали. CApplication
db CDbConnection Возвращает компонент подключения к базе данных. CApplication
errorHandler CErrorHandler Возвращает компонент обработки ошибок. CApplication
extensionPath string Возвращает корневой каталог, содержащий все сторонние расширения. CApplication
format CFormatter Возвращает компонент форматирования. CApplication
homeUrl string URL домашней страницы CApplication
id string Возвращает уникальный идентификатор приложения. CApplication
language string Возвращает язык, используемый пользователем, и к которому должно быть нацелено приложение. CApplication
locale CLocale Возвращает экземпляр локали. CApplication
localeClass string класс, используемый для получения данных локали. CApplication
localeDataPath string Возвращает каталог, содержащий данные локали. CApplication
messages CMessageSource Возвращает компонент перевода сообщений приложения. CApplication
modulePath string Возвращает каталог, содержащий модули приложения. CModule
modules array Возвращает конфигурацию установленных модулей. CModule
name string название приложения. CApplication
numberFormatter CNumberFormatter форматировщик чисел, зависящий от локали. CApplication
params CAttributeCollection Возвращает пользовательские параметры. CModule
parentModule CModule Возвращает родительский модуль. CModule
preload array идентификаторы компонентов приложения, которые должны быть предварительно загружены. CModule
request CHttpRequest Возвращает компонент запроса. CApplication
runtimePath string Возвращает каталог, хранящий временные файлы. CApplication
securityManager CSecurityManager Возвращает компонент управления безопасностью. CApplication
sourceLanguage string язык, на котором написано приложение. CApplication
statePersister CStatePersister Возвращает компонент сохранения состояния. CApplication
timeZone string Возвращает часовой пояс, используемый этим приложением. CApplication
urlManager CUrlManager Возвращает компонент управления URL. CApplication

Общедоступные методы

Метод Описание Определено в
__call() Вызывает метод с указанным именем, который не является методом класса. CComponent
__construct() Конструктор. CApplication
__get() Магический метод-геттер. CModule
__isset() Проверяет, является ли значение свойства null. CModule
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
clearGlobalState() Очищает глобальное значение. CApplication
configure() Настраивает модуль с указанной конфигурацией. CModule
createAbsoluteUrl() Создаёт абсолютный URL на основе предоставленной информации о контроллере и действии. CApplication
createUrl() Создаёт относительный URL на основе предоставленной информации о контроллере и действии. CApplication
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает прикрепленное поведение. CComponent
disableBehaviors() Отключает все прикреплённые к этому компоненту поведения. CComponent
displayError() Отображает пойманную ошибку PHP. CApplication
displayException() Отображает необработанное исключение PHP. CApplication
enableBehavior() Включает прикреплённое поведение. CComponent
enableBehaviors() Включает все прикреплённые к этому компоненту поведения. CComponent
end() Завершает работу приложения. CApplication
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
findLocalizedFile() Возвращает локализованную версию указанного файла. CApplication
getBasePath() Возвращает корневой путь приложения. CApplication
getBaseUrl() Возвращает относительный URL для приложения. CApplication
getCache() Возвращает компонент кэша. CApplication
getComponent() Возвращает компонент приложения с указанным именем. CModule
getComponents() Возвращает компоненты приложения. CModule
getController() Возвращает текущий активный контроллер. В этом базовом классе возвращается null. CApplication
getCoreMessages() Возвращает компонент перевода основных сообщений. CApplication
getDateFormatter() Возвращает форматировщик даты, зависящий от локали. CApplication
getDb() Возвращает компонент подключения к базе данных. CApplication
getErrorHandler() Возвращает компонент обработчика ошибок. CApplication
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getExtensionPath() Возвращает корневой каталог, содержащий все сторонние расширения. CApplication
getFormat() Возвращает компонент форматировщика. CApplication
getGlobalState() Возвращает глобальное значение. CApplication
getHomeUrl() Возвращает URL домашней страницы. CApplication
getId() Возвращает уникальный идентификатор приложения. CApplication
getLanguage() Возвращает язык, используемый пользователем, и на который должно быть ориентировано приложение. CApplication
getLocale() Возвращает экземпляр локали. CApplication
getLocaleDataPath() Возвращает каталог, содержащий данные локали. CApplication
getMessages() Возвращает компонент перевода сообщений приложения. CApplication
getModule() Возвращает модуль приложения с указанным именем. CModule
getModulePath() Возвращает каталог, содержащий модули приложения. CModule
getModules() Возвращает конфигурацию установленных модулей. CModule
getNumberFormatter() Возвращает форматировщик чисел, зависящий от локали. Используется текущая локаль приложения. CApplication
getParams() Возвращает пользовательские параметры. CModule
getParentModule() Возвращает родительский модуль. CModule
getRequest() Возвращает компонент запроса. CApplication
getRuntimePath() Возвращает каталог, хранящий временные файлы. CApplication
getSecurityManager() Возвращает компонент менеджера безопасности. CApplication
getStatePersister() Возвращает компонент сохранения состояния. CApplication
getTimeZone() Возвращает часовой пояс, используемый этим приложением. CApplication
getUrlManager() Возвращает компонент менеджера URL. CApplication
handleError() Обрабатывает ошибки выполнения PHP, такие как предупреждения и сообщения. CApplication
handleException() Обрабатывает необработанные исключения PHP. CApplication
hasComponent() Проверяет, существует ли компонент с указанным именем. CModule
hasEvent() Определяет, определен ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединенные обработчики для указанного события. CComponent
hasModule() Возвращает значение, указывающее, установлен ли указанный модуль. CModule
hasProperty() Определяет, определена ли свойство. CComponent
loadGlobalState() Загружает данные глобального состояния из постоянного хранилища. CApplication
onBeginRequest() Вызывается НЕПОСРЕДСТВЕННО ПЕРЕД обработкой запроса приложением. CApplication
onEndRequest() Вызывается НЕПОСРЕДСТВЕННО ПОСЛЕ обработки запроса приложением. CApplication
onError() Вызывается при возникновении ошибки выполнения PHP. CApplication
onException() Вызывается при возникновении необработанного исключения PHP. CApplication
processRequest() Обрабатывает запрос. CApplication
raiseEvent() Вызывает событие. CComponent
run() Запускает приложение. CApplication
saveGlobalState() Сохраняет данные глобального состояния в постоянное хранилище. CApplication
setAliases() Определяет корневые псевдонимы. CModule
setBasePath() Устанавливает корневой каталог приложения. CApplication
setComponent() Добавляет компонент под управление модуля. CModule
setComponents() Устанавливает компоненты приложения. CModule
setExtensionPath() Устанавливает корневой каталог, содержащий все сторонние расширения. CApplication
setGlobalState() Устанавливает глобальное значение. CApplication
setHomeUrl() Устанавливает URL домашней страницы CApplication
setId() Устанавливает уникальный идентификатор для приложения. CApplication
setImport() Устанавливает псевдонимы, используемые в модуле. CModule
setLanguage() Указывает язык, на который ориентировано приложение. CApplication
setLocaleDataPath() Устанавливает каталог, содержащий данные локали. CApplication
setModulePath() Устанавливает каталог, содержащий модули приложения. CModule
setModules() Настраивает подмодули этого модуля. CModule
setParams() Устанавливает пользовательские параметры. CModule
setRuntimePath() Устанавливает каталог для хранения файлов выполнения. CApplication
setTimeZone() Устанавливает часовой пояс, используемый этим приложением. CApplication

Защищенные методы

Метод Описание Определено в
init() Инициализирует модуль. CModule
initSystemHandlers() Инициализирует обработчики ошибок. CApplication
preinit() Предварительная инициализация модуля. CModule
preloadComponents() Загружает статические компоненты приложения. CModule
registerCoreComponents() Регистрирует основные компоненты приложения. CApplication

События

Событие Описание Определено в
onBeginRequest Вызывается НЕПОСРЕДСТВЕННО ПЕРЕД обработкой запроса приложением. CApplication
onEndRequest Вызывается НЕПОСРЕДСТВЕННО ПОСЛЕ обработки запроса приложением. CApplication
onException Вызывается при возникновении необработанного исключения PHP. CApplication
onError Вызывается при возникновении ошибки выполнения PHP. CApplication

Подробное описание свойств

basePath свойство

public string getBasePath()
public void setBasePath(string $path)

Возвращает корневой путь приложения.

baseUrl свойство только для чтения

public string getBaseUrl(boolean $absolute=false)

Возвращает относительный URL для приложения. Это удобный метод для CHttpRequest::getBaseUrl().

См. также

  • CHttpRequest::getBaseUrl()

cache свойство только для чтения

public CCache getCache()

Возвращает компонент кэша.

charset свойство

public string $charset;

Кодировка символов, используемая в приложении. По умолчанию 'UTF-8'.

controller свойство только для чтения (доступно начиная с v1.1.8)

public CController getController()

Текущий активный контроллер. В этом базовом классе возвращается null.

coreMessages свойство только для чтения

public CPhpMessageSource getCoreMessages()

Возвращает компонент перевода сообщений ядра.

dateFormatter свойство только для чтения

public CDateFormatter getDateFormatter()

Возвращает форматировщик дат, зависящий от локали.

db свойство только для чтения

public CDbConnection getDb()

Возвращает компонент подключения к базе данных.

errorHandler свойство только для чтения

public CErrorHandler getErrorHandler()

Возвращает компонент обработчика ошибок.

extensionPath свойство

public string getExtensionPath()
public void setExtensionPath(string $path)

Возвращает корневой каталог, содержащий все сторонние расширения.

format свойство только для чтения

public CFormatter getFormat()

Возвращает компонент форматирования.

homeUrl свойство

public string getHomeUrl()
public void setHomeUrl(string $value)

URL домашней страницы

id свойство

public string getId()
public void setId(string $id)

Возвращает уникальный идентификатор приложения.

language свойство

public string getLanguage()
public void setLanguage(string $language)

Возвращает язык, используемый пользователем, и на который должно быть ориентировано приложение.

locale свойство только для чтения

public CLocale getLocale(string $localeID=NULL)

Возвращает экземпляр локали.

localeClass свойство

public string $localeClass;

Класс, используемый для получения данных локали. По умолчанию 'CLocale'.

localeDataPath свойство (доступно начиная с v1.1.0)

public string getLocaleDataPath()
public void setLocaleDataPath(string $value)

Возвращает каталог, содержащий данные локали.

messages свойство только для чтения

public CMessageSource getMessages()

Возвращает компонент перевода сообщений приложения.

name свойство

public string $name;

Название приложения. По умолчанию 'Моё Приложение'.

numberFormatter свойство только для чтения

public CNumberFormatter getNumberFormatter()

Форматировщик чисел, зависящий от локали. Будет использована текущая локаль приложения.

request свойство только для чтения

public CHttpRequest getRequest()

Возвращает компонент запроса.

runtimePath свойство

public string getRuntimePath()
public void setRuntimePath(string $path)

Возвращает каталог, в котором хранятся файлы выполнения.

securityManager свойство только для чтения

public CSecurityManager getSecurityManager()

Возвращает компонент управления безопасностью.

sourceLanguage свойство

public string $sourceLanguage;

Язык, на котором написано приложение. В основном относится к языку сообщений и файлов представлений. По умолчанию 'en_us' (английский язык США).

statePersister свойство только для чтения

public CStatePersister getStatePersister()

Возвращает компонент сохранения состояния.

timeZone свойство

public string getTimeZone()
public void setTimeZone(string $value)

Возвращает часовой пояс, используемый этим приложением. Это простой обёртку PHP функции date_default_timezone_get().

См. также

  • http://php.net/manual/en/function.date-default-timezone-get.php

urlManager свойство только для чтения

public CUrlManager getUrlManager()

Возвращает компонент менеджера URL.

Подробное описание методов

__construct() метод

public void __construct(mixed $config=NULL)
$config mixed конфигурация приложения. Если строка, она рассматривается как путь к файлу, содержащему конфигурацию; если массив, это фактическая информация о конфигурации. Убедитесь, что вы указали свойство basePath в конфигурации, которое должно указывать на каталог, содержащий всю логику приложения, шаблоны и данные. В противном случае каталог будет по умолчанию 'protected'.
Исходный код: framework/base/CApplication.php#132 (показать)
public function __construct($config=null)
{
    
Yii::setApplication($this);

    
// set basePath as early as possible to avoid trouble
    
if(is_string($config))
        
$config=require($config);
    if(isset(
$config['basePath']))
    {
        
$this->setBasePath($config['basePath']);
        unset(
$config['basePath']);
    }
    else
        
$this->setBasePath('protected');
    
Yii::setPathOfAlias('application',$this->getBasePath());
    
Yii::setPathOfAlias('webroot',dirname($_SERVER['SCRIPT_FILENAME']));
    if(isset(
$config['extensionPath']))
    {
        
$this->setExtensionPath($config['extensionPath']);
        unset(
$config['extensionPath']);
    }
    else
        
Yii::setPathOfAlias('ext',$this->getBasePath().DIRECTORY_SEPARATOR.'extensions');
    if(isset(
$config['aliases']))
    {
        
$this->setAliases($config['aliases']);
        unset(
$config['aliases']);
    }

    
$this->preinit();

    
$this->initSystemHandlers();
    
$this->registerCoreComponents();

    
$this->configure($config);
    
$this->attachBehaviors($this->behaviors);
    
$this->preloadComponents();

    
$this->init();
}

Конструктор.

clearGlobalState() метод

public void clearGlobalState(string $key)
$key string имя значения, которое нужно очистить
Исходный код: framework/base/CApplication.php#676 (показать)
public function clearGlobalState($key)
{
    
$this->setGlobalState($key,true,true);
}

Очищает глобальное значение.

Очищенное значение больше не будет доступно в этом запросе и последующих запросах.

createAbsoluteUrl() метод

public string createAbsoluteUrl(string $route, array $params=array ( ), string $schema='', string $ampersand='&')
$route string маршрут URL. Должен быть в формате 'ControllerID/ActionID'.
$params array дополнительные параметры GET (имя=>значение). И имя, и значение будут закодированы в URL.
$schema string схема для использования (например, http, https). Если пусто, будет использована схема текущего запроса.
$ampersand string разделитель пар имя-значение в URL.
{return} string сформированный URL
Исходный код: framework/base/CApplication.php#572 (показать)
public function createAbsoluteUrl($route,$params=array(),$schema='',$ampersand='&')
{
    
$url=$this->createUrl($route,$params,$ampersand);
    if(
strpos($url,'http')===0 || strpos($url,'//')===0)
        return 
$url;
    else
        return 
$this->getRequest()->getHostInfo($schema).$url;
}

Создаёт абсолютный URL на основе заданной информации о контроллере и действии.

createUrl() метод

public string createUrl(string $route, array $params=array ( ), string $ampersand='&')
$route string маршрут URL. Должен быть в формате 'ControllerID/ActionID'.
$params array дополнительные параметры GET (имя=>значение). И имя, и значение будут закодированы в URL.
$ampersand string разделитель пар имя-значение в URL.
{return} string сформированный URL
Исходный код: framework/base/CApplication.php#559 (показать)
public function createUrl($route,$params=array(),$ampersand='&')
{
    return 
$this->getUrlManager()->createUrl($route,$params,$ampersand);
}

Создаёт относительный URL на основе заданной информации о контроллере и действии.

displayError() метод

public void displayError(integer $code, string $message, string $file, string $line)
$code integer код ошибки
$message string сообщение об ошибке
$file string файл ошибки
$line string строка ошибки
Исходный код: framework/base/CApplication.php#901 (показать)
public function displayError($code,$message,$file,$line)
{
    if(
YII_DEBUG)
    {
        echo 
"<h1>PHP Error [$code]</h1>\n";
        echo 
"<p>$message ($file:$line)</p>\n";
        echo 
'<pre>';

        
$trace=debug_backtrace();
        
// skip the first 3 stacks as they do not tell the error position
        
if(count($trace)>3)
            
$trace=array_slice($trace,3);
        foreach(
$trace as $i=>$t)
        {
            if(!isset(
$t['file']))
                
$t['file']='unknown';
            if(!isset(
$t['line']))
                
$t['line']=0;
            if(!isset(
$t['function']))
                
$t['function']='unknown';
            echo 
"#$i{$t['file']}({$t['line']}): ";
            if(isset(
$t['object']) && is_object($t['object']))
                echo 
get_class($t['object']).'->';
            echo 
"{$t['function']}()\n";
        }

        echo 
'</pre>';
    }
    else
    {
        echo 
"<h1>PHP Error [$code]</h1>\n";
        echo 
"<p>$message</p>\n";
    }
}

Отображает захваченную ошибку PHP. Этот метод отображает ошибку в HTML, когда нет активного обработчика ошибок.

displayException() метод

public void displayException(Exception $exception)
$exception Исключение неперехваченное исключение
Исходный код: framework/base/CApplication.php#942 (показать)
public function displayException($exception)
{
    if(
YII_DEBUG)
    {
        echo 
'<h1>'.get_class($exception)."</h1>\n";
        echo 
'<p>'.$exception->getMessage().' ('.$exception->getFile().':'.$exception->getLine().')</p>';
        echo 
'<pre>'.$exception->getTraceAsString().'</pre>';
    }
    else
    {
        echo 
'<h1>'.get_class($exception)."</h1>\n";
        echo 
'<p>'.$exception->getMessage().'</p>';
    }
}

Отображает неперехваченное исключение PHP. Этот метод отображает исключение в HTML, когда нет активного обработчика ошибок.

end() метод

public void end(integer $status=0, boolean $exit=true)
$status integer код завершения (значение 0 означает нормальное завершение, а другие значения означают аномальное завершение).
$exit boolean вызвать ли функцию exit() PHP. Этот параметр доступен начиная с версии 1.1.5. По умолчанию true, что означает, что функция exit() PHP будет вызвана в конце этого метода.
Исходный код: framework/base/CApplication.php#198 (показать)
public function end($status=0,$exit=true)
{
    if(
$this->hasEventHandler('onEndRequest'))
        
$this->onEndRequest(new CEvent($this));
    if(
$exit)
        exit(
$status);
}

Завершает приложение. Этот метод заменяет PHP функцию exit(), вызывая onEndRequest перед завершением.

findLocalizedFile() метод

public string findLocalizedFile(string $srcFile, string $srcLanguage=NULL, string $language=NULL)
$srcFile string исходный файл
$srcLanguage string язык, на котором написан исходный файл. Если null, используется язык приложения source language.
$language string желаемый язык, на который нужно перевести файл. Если null, будет использоваться язык приложения application language.
{return} string соответствующий локализованный файл. Исходный файл возвращается, если локализованная версия не найдена или если язык исходного файла совпадает с желаемым языком.
Исходный код: framework/base/CApplication.php#388 (показать)
public function findLocalizedFile($srcFile,$srcLanguage=null,$language=null)
{
    if(
$srcLanguage===null)
        
$srcLanguage=$this->sourceLanguage;
    if(
$language===null)
        
$language=$this->getLanguage();
    if(
$language===$srcLanguage)
        return 
$srcFile;
    
$desiredFile=dirname($srcFile).DIRECTORY_SEPARATOR.$language.DIRECTORY_SEPARATOR.basename($srcFile);
    return 
is_file($desiredFile) ? $desiredFile : $srcFile;
}

Возвращает локализованную версию указанного файла.

Поиск выполняется на основе указанного кода языка. В частности, файл с таким же именем будет искаться в подкаталоге с именем идентификатора локали. Например, для файла "path/to/view.php" и идентификатора локали "zh_cn" локализованный файл будет искаться как "path/to/zh_cn/view.php". Если файл не найден, возвращается исходный файл.

Для согласованности рекомендуется, чтобы идентификатор локали был указан строчными буквами и в формате LanguageID_RegionID (например, "en_us").

getBasePath() метод

public string getBasePath()
{return} string корневой каталог приложения. По умолчанию 'protected'.
Исходный код: framework/base/CApplication.php#253 (показать)
public function getBasePath()
{
    return 
$this->_basePath;
}

Возвращает корневой путь приложения.

getBaseUrl() метод

public string getBaseUrl(boolean $absolute=false)
$absolute boolean указывать абсолютный URL. По умолчанию false, что означает возвращение относительного URL.
{return} string относительный URL приложения.
Исходный код: framework/base/CApplication.php#588 (показать)
public function getBaseUrl($absolute=false)
{
    return 
$this->getRequest()->getBaseUrl($absolute);
}

Возвращает относительный URL приложения. Это метод-короткая запись для CHttpRequest::getBaseUrl().

См. также

  • CHttpRequest::getBaseUrl()

getCache() метод

public CCache getCache()
{return} CCache компонент кэширования приложения. Null, если компонент отключён.
Исходный код: framework/base/CApplication.php#493 (показать)
public function getCache()
{
    return 
$this->getComponent('cache');
}

Возвращает компонент кэширования.

getController() метод (доступен с версии v1.1.8)

public CController getController()
{return} CController текущий активный контроллер. В этом базовом классе возвращается Null.
Исходный код: framework/base/CApplication.php#547 (показать)
public function getController()
{
    return 
null;
}

getCoreMessages() метод

public CPhpMessageSource getCoreMessages()
{return} CPhpMessageSource переводы основных сообщений
Исходный код: framework/base/CApplication.php#502 (показать)
public function getCoreMessages()
{
    return 
$this->getComponent('coreMessages');
}

Возвращает компонент переводов основных сообщений.

getDateFormatter() метод

public CDateFormatter getDateFormatter()
{return} CDateFormatter форматер дат, зависящий от локали. Будет использоваться текущая локаль приложения.
Исходный код: framework/base/CApplication.php#448 (показать)
public function getDateFormatter()
{
    return 
$this->getLocale()->getDateFormatter();
}

Возвращает форматировщик дат, зависящий от локали.

getDb() метод

public CDbConnection getDb()
{return} CDbConnection соединение с базой данных
Исходный код: framework/base/CApplication.php#457 (показать)
public function getDb()
{
    return 
$this->getComponent('db');
}

Возвращает компонент соединения с базой данных.

getErrorHandler() метод

public CErrorHandler getErrorHandler()
{return} CErrorHandler компонент обработчика ошибок приложения.
Исходный код: framework/base/CApplication.php#466 (показать)
public function getErrorHandler()
{
    return 
$this->getComponent('errorHandler');
}

Возвращает компонент обработчика ошибок.

getExtensionPath() метод

public string getExtensionPath()
{return} string каталог, содержащий все расширения. По умолчанию каталог 'extensions' в 'protected'.
Исходный код: framework/base/CApplication.php#303 (показать)
public function getExtensionPath()
{
    return 
Yii::getPathOfAlias('ext');
}

Возвращает корневой каталог, содержащий все сторонние расширения.

getFormat() метод

public CFormatter getFormat()
{return} CFormatter компонент форматирования
Исходный код: framework/base/CApplication.php#538 (показать)
public function getFormat()
{
    return 
$this->getComponent('format');
}

Возвращает компонент форматирования.

getGlobalState() метод

public mixed getGlobalState(string $key, mixed $defaultValue=NULL)
$key string имя возвращаемого значения
$defaultValue mixed значение по умолчанию. Если глобальное значение с указанным именем не найдено, возвращается это значение.
{return} mixed глобальное значение с указанным именем
Исходный код: framework/base/CApplication.php#626 (показать)
public function getGlobalState($key,$defaultValue=null)
{
    if(
$this->_globalState===null)
        
$this->loadGlobalState();
    if(isset(
$this->_globalState[$key]))
        return 
$this->_globalState[$key];
    else
        return 
$defaultValue;
}

Возвращает глобальное значение.

Глобальное значение сохраняется между сессиями пользователей и запросами.

См. также

  • setGlobalState

getHomeUrl() метод

public string getHomeUrl()
{return} string URL домашней страницы
Исходный код: framework/base/CApplication.php#596 (показать)
public function getHomeUrl()
{
    if(
$this->_homeUrl===null)
    {
        if(
$this->getUrlManager()->showScriptName)
            return 
$this->getRequest()->getScriptUrl();
        else
            return 
$this->getRequest()->getBaseUrl().'/';
    }
    else
        return 
$this->_homeUrl;
}

getId() метод

public string getId()
{return} string уникальный идентификатор приложения.
Исходный код: framework/base/CApplication.php#232 (показать)
public function getId()
{
    if(
$this->_id!==null)
        return 
$this->_id;
    else
        return 
$this->_id=sprintf('%x',crc32($this->getBasePath().$this->name));
}

Возвращает уникальный идентификатор приложения.

getLanguage() метод

public string getLanguage()
{return} string язык пользователя, для которого должно быть нацелено приложение. По умолчанию исходный язык.
Исходный код: framework/base/CApplication.php#326 (показать)
public function getLanguage()
{
    return 
$this->_language===null ? $this->sourceLanguage : $this->_language;
}

Возвращает язык пользователя, для которого приложение должно быть нацелено.

getLocale() метод

public CLocale getLocale(string $localeID=NULL)
$localeID string идентификатор локали (например, en_US). Если null, будет использован идентификатор языка приложения.
{return} CLocale экземпляр CLocale
Исходный код: framework/base/CApplication.php#405 (показать)
public function getLocale($localeID=null)
{
    return 
call_user_func_array(array($this->localeClass, 'getInstance'),array($localeID===null?$this->getLanguage():$localeID));
}

Возвращает экземпляр локали.

getLocaleDataPath() метод (доступен начиная с v1.1.0)

public string getLocaleDataPath()
{return} string директория, содержащая данные локали. По умолчанию 'framework/i18n/data'.
Исходный код: framework/base/CApplication.php#415 (показать)
public function getLocaleDataPath()
{
    
$vars=get_class_vars($this->localeClass);
    if(empty(
$vars['dataPath']))
        return 
Yii::getPathOfAlias('system.i18n.data');
    return 
$vars['dataPath'];
}

Возвращает директорию с данными локали.

getMessages() метод

public CMessageSource getMessages()
{return} CMessageSource переводы сообщений приложения
Исходный код: framework/base/CApplication.php#511 (показать)
public function getMessages()
{
    return 
$this->getComponent('messages');
}

Возвращает компонент переводов сообщений приложения.

getNumberFormatter() метод

public CNumberFormatter getNumberFormatter()
{return} CNumberFormatter форматер чисел, зависящий от локали. Будет использована текущая локаль приложения.
Исходный код: framework/base/CApplication.php#438 (показать)
public function getNumberFormatter()
{
    return 
$this->getLocale()->getNumberFormatter();
}

getRequest() метод

public CHttpRequest getRequest()
{return} CHttpRequest компонент запроса
Исходный код: framework/base/CApplication.php#520 (показать)
public function getRequest()
{
    return 
$this->getComponent('request');
}

Возвращает компонент запроса.

getRuntimePath() метод

public string getRuntimePath()
{return} string директория для хранения временных файлов. По умолчанию 'protected/runtime'.
Исходный код: framework/base/CApplication.php#275 (показать)
public function getRuntimePath()
{
    if(
$this->_runtimePath!==null)
        return 
$this->_runtimePath;
    else
    {
        
$this->setRuntimePath($this->getBasePath().DIRECTORY_SEPARATOR.'runtime');
        return 
$this->_runtimePath;
    }
}

Возвращает директорию для хранения временных файлов.

getSecurityManager() метод

public CSecurityManager getSecurityManager()
{return} CSecurityManager компонент менеджера безопасности приложения.
Исходный код: framework/base/CApplication.php#475 (показать)
public function getSecurityManager()
{
    return 
$this->getComponent('securityManager');
}

Возвращает компонент менеджера безопасности.

getStatePersister() метод

public CStatePersister getStatePersister()
{return} CStatePersister компонент сохранения состояния приложения.
Исходный код: framework/base/CApplication.php#484 (показать)
public function getStatePersister()
{
    return 
$this->getComponent('statePersister');
}

Возвращает компонент сохранения состояния.

getTimeZone() метод

public string getTimeZone()
{return} string часовой пояс, используемый этим приложением.
Исходный код: framework/base/CApplication.php#353 (показать)
public function getTimeZone()
{
    return 
date_default_timezone_get();
}

Возвращает часовой пояс, используемый приложением. Это простой обёртку функции PHP date_default_timezone_get().

См. также

  • http://php.net/manual/en/function.date-default-timezone-get.php

getUrlManager() метод

public CUrlManager getUrlManager()
{return} CUrlManager компонент менеджера URL
Исходный код: framework/base/CApplication.php#529 (показать)
public function getUrlManager()
{
    return 
$this->getComponent('urlManager');
}

Возвращает компонент менеджера URL.

handleError() метод

public void handleError(integer $code, string $message, string $file, integer $line)
$code integer уровень поднятой ошибки
$message string сообщение об ошибке
$file string имя файла, в котором произошла ошибка
$line integer номер строки, в которой произошла ошибка
Исходный код: framework/base/CApplication.php#795 (показать)
public function handleError($code,$message,$file,$line)
{
    if(
$code & error_reporting())
    {
        
// disable error capturing to avoid recursive errors
        
restore_error_handler();
        
restore_exception_handler();

        
$log="$message ($file:$line)\nStack trace:\n";
        
$trace=debug_backtrace();
        
// skip the first 3 stacks as they do not tell the error position
        
if(count($trace)>3)
            
$trace=array_slice($trace,3);
        foreach(
$trace as $i=>$t)
        {
            if(!isset(
$t['file']))
                
$t['file']='unknown';
            if(!isset(
$t['line']))
                
$t['line']=0;
            if(!isset(
$t['function']))
                
$t['function']='unknown';
            
$log.="#$i{$t['file']}({$t['line']}): ";
            if(isset(
$t['object']) && is_object($t['object']))
                
$log.=get_class($t['object']).'->';
            
$log.="{$t['function']}()\n";
        }
        if(isset(
$_SERVER['REQUEST_URI']))
            
$log.='REQUEST_URI='.$_SERVER['REQUEST_URI'];
        
Yii::log($log,CLogger::LEVEL_ERROR,'php');

        try
        {
            
Yii::import('CErrorEvent',true);
            
$event=new CErrorEvent($this,$code,$message,$file,$line);
            
$this->onError($event);
            if(!
$event->handled)
            {
                
// try an error handler
                
if(($handler=$this->getErrorHandler())!==null)
                    
$handler->handle($event);
                else
                    
$this->displayError($code,$message,$file,$line);
            }
        }
        catch(
Exception $e)
        {
            
$this->displayException($e);
        }

        try
        {
            
$this->end(1);
        }
        catch(
Exception $e)
        {
            
// use the most primitive way to log error
            
$msg = get_class($e).': '.$e->getMessage().' ('.$e->getFile().':'.$e->getLine().")\n";
            
$msg .= $e->getTraceAsString()."\n";
            
$msg .= "Previous error:\n";
            
$msg .= $log."\n";
            
$msg .= '$_SERVER='.var_export($_SERVER,true);
            
error_log($msg);
            exit(
1);
        }
    }
}

Обрабатывает ошибки выполнения PHP, такие как предупреждения, уведомления.

Этот метод реализован как обработчик ошибок PHP. Требуется, чтобы константа YII_ENABLE_ERROR_HANDLER была определена как true.

Этот метод сначала вызывает событие onError. Если ошибка не обрабатывается никаким обработчиком событий, он вызывает errorHandler для обработки ошибки.

Приложение будет завершено этим методом.

handleException() метод

public void handleException(Exception $exception)
$exception Exception исключение, которое не было перехвачено
Исходный код: framework/base/CApplication.php#724 (показать)
public function handleException($exception)
{
    
// disable error capturing to avoid recursive errors
    
restore_error_handler();
    
restore_exception_handler();

    
$category='exception.'.get_class($exception);
    if(
$exception instanceof CHttpException)
        
$category.='.'.$exception->statusCode;
    
// php <5.2 doesn't support string conversion auto-magically
    
$message=$exception->__toString();
    if(isset(
$_SERVER['REQUEST_URI']))
        
$message.="\nREQUEST_URI=".$_SERVER['REQUEST_URI'];
    if(isset(
$_SERVER['HTTP_REFERER']))
        
$message.="\nHTTP_REFERER=".$_SERVER['HTTP_REFERER'];
    
$message.="\n---";
    
Yii::log($message,CLogger::LEVEL_ERROR,$category);

    try
    {
        
$event=new CExceptionEvent($this,$exception);
        
$this->onException($event);
        if(!
$event->handled)
        {
            
// try an error handler
            
if(($handler=$this->getErrorHandler())!==null)
                
$handler->handle($event);
            else
                
$this->displayException($exception);
        }
    }
    catch(
Exception $e)
    {
        
$this->displayException($e);
    }

    try
    {
        
$this->end(1);
    }
    catch(
Exception $e)
    {
        
// use the most primitive way to log error
        
$msg = get_class($e).': '.$e->getMessage().' ('.$e->getFile().':'.$e->getLine().")\n";
        
$msg .= $e->getTraceAsString()."\n";
        
$msg .= "Previous exception:\n";
        
$msg .= get_class($exception).': '.$exception->getMessage().' ('.$exception->getFile().':'.$exception->getLine().")\n";
        
$msg .= $exception->getTraceAsString()."\n";
        
$msg .= '$_SERVER='.var_export($_SERVER,true);
        
error_log($msg);
        exit(
1);
    }
}

Обрабатывает неперехваченные исключения PHP.

Этот метод реализован как обработчик исключений PHP. Требуется, чтобы константа YII_ENABLE_EXCEPTION_HANDLER была определена как true.

Этот метод сначала вызывает событие onException. Если исключение не обрабатывается никаким обработчиком событий, он вызывает errorHandler для обработки исключения.

Приложение будет завершено этим методом.

initSystemHandlers() метод

protected void initSystemHandlers()
Исходный код: framework/base/CApplication.php#960 (показать)
protected function initSystemHandlers()
{
    if(
YII_ENABLE_EXCEPTION_HANDLER)
        
set_exception_handler(array($this,'handleException'));
    if(
YII_ENABLE_ERROR_HANDLER)
        
set_error_handler(array($this,'handleError'),error_reporting());
}

Инициализирует обработчики ошибок.

loadGlobalState() метод

public void loadGlobalState()
Исходный код: framework/base/CApplication.php#686 (показать)
public function loadGlobalState()
{
    
$persister=$this->getStatePersister();
    if((
$this->_globalState=$persister->load())===null)
        
$this->_globalState=array();
    
$this->_stateChanged=false;
    
$this->detachEventHandler('onEndRequest',array($this,'saveGlobalState'));
}

Загружает данные глобального состояния из постоянного хранилища.

См. также

  • getStatePersister

onBeginRequest() метод

public void onBeginRequest(CEvent $event)
$event CEvent параметр события
Исходный код: framework/base/CApplication.php#210 (показать)
public function onBeginRequest($event)
{
    
$this->raiseEvent('onBeginRequest',$event);
}

Вызывается НЕПОСРЕДСТВЕННО перед обработкой запроса приложением.

onEndRequest() метод

public void onEndRequest(CEvent $event)
$event CEvent параметр события
Исходный код: framework/base/CApplication.php#219 (показать)
public function onEndRequest($event)
{
    if(!
$this->_ended)
    {
        
$this->_ended=true;
        
$this->raiseEvent('onEndRequest',$event);
    }
}

Вызывается СРАЗУ ПОСЛЕ обработки запроса приложением.

onError() метод

public void onError(CErrorEvent $event)
$event CErrorEvent параметр события
Исходный код: framework/base/CApplication.php#887 (показать)
public function onError($event)
{
    
$this->raiseEvent('onError',$event);
}

Вызывается при возникновении ошибки выполнения PHP.

Обработчик события может установить свойство handled параметра события в true, чтобы указать, что дальнейшая обработка ошибки не требуется. В противном случае компонент приложения errorHandler продолжит обработку ошибки.

onException() метод

public void onException(CExceptionEvent $event)
$event CExceptionEvent параметр события
Исходный код: framework/base/CApplication.php#872 (показать)
public function onException($event)
{
    
$this->raiseEvent('onException',$event);
}

Вызывается при возникновении необработанного исключения PHP.

Обработчик события может установить свойство handled параметра события в true, чтобы указать, что дальнейшая обработка ошибки не требуется. В противном случае компонент приложения errorHandler продолжит обработку ошибки.

processRequest() метод

abstract public void processRequest()
Исходный код: framework/base/CApplication.php#121 (показать)
abstract public function processRequest();

Обрабатывает запрос. Именно здесь выполняется фактическая работа по обработке запроса. Производные классы должны переопределить этот метод.

registerCoreComponents() метод

protected void registerCoreComponents()
Исходный код: framework/base/CApplication.php#972 (показать)
protected function registerCoreComponents()
{
    
$components=array(
        
'coreMessages'=>array(
            
'class'=>'CPhpMessageSource',
            
'language'=>'en_us',
            
'basePath'=>YII_PATH.DIRECTORY_SEPARATOR.'messages',
        ),
        
'db'=>array(
            
'class'=>'CDbConnection',
        ),
        
'messages'=>array(
            
'class'=>'CPhpMessageSource',
        ),
        
'errorHandler'=>array(
            
'class'=>'CErrorHandler',
        ),
        
'securityManager'=>array(
            
'class'=>'CSecurityManager',
        ),
        
'statePersister'=>array(
            
'class'=>'CStatePersister',
        ),
        
'urlManager'=>array(
            
'class'=>'CUrlManager',
        ),
        
'request'=>array(
            
'class'=>'CHttpRequest',
        ),
        
'format'=>array(
            
'class'=>'CFormatter',
        ),
    );

    
$this->setComponents($components);
}

Регистрирует основные компоненты приложения.

См. также

  • setComponents

run() метод

public void run()
Исходный код: framework/base/CApplication.php#180 (показать)
public function run()
{
    if(
$this->hasEventHandler('onBeginRequest'))
        
$this->onBeginRequest(new CEvent($this));
    
register_shutdown_function(array($this,'end'),0,false);
    
$this->processRequest();
    if(
$this->hasEventHandler('onEndRequest'))
        
$this->onEndRequest(new CEvent($this));
}

Запускает приложение. Этот метод загружает статические компоненты приложения. Производные классы обычно переопределяют этот метод, чтобы выполнить задачи, специфичные для приложения. Не забудьте вызвать родительскую реализацию, чтобы статические компоненты приложения загрузились.

saveGlobalState() метод

public void saveGlobalState()
Исходный код: framework/base/CApplication.php#700 (показать)
public function saveGlobalState()
{
    if(
$this->_stateChanged)
    {
        
$this->_stateChanged=false;
        
$this->detachEventHandler('onEndRequest',array($this,'saveGlobalState'));
        
$this->getStatePersister()->save($this->_globalState);
    }
}

Сохраняет данные глобального состояния в постоянное хранилище.

См. также

  • getStatePersister

setBasePath() метод

public void setBasePath(string $path)
$path строка корневой каталог приложения.
Исходный код: framework/base/CApplication.php#264 (показать)
public function setBasePath($path)
{
    if((
$this->_basePath=realpath($path))===false || !is_dir($this->_basePath))
        throw new 
CException(Yii::t('yii','Application base path "{path}" is not a valid directory.',
            array(
'{path}'=>$path)));
}

Устанавливает корневой каталог приложения. Этот метод можно вызывать только в начале конструктора.

setExtensionPath() метод

public void setExtensionPath(string $path)
$path строка каталог, содержащий все сторонние расширения.
Исходный код: framework/base/CApplication.php#313 (показать)
public function setExtensionPath($path)
{
    if((
$extensionPath=realpath($path))===false || !is_dir($extensionPath))
        throw new 
CException(Yii::t('yii','Extension path "{path}" does not exist.',
            array(
'{path}'=>$path)));
    
Yii::setPathOfAlias('ext',$extensionPath);
}

Устанавливает корневой каталог, содержащий все сторонние расширения.

setGlobalState() метод

public void setGlobalState(string $key, mixed $value, mixed $defaultValue=NULL)
$key строка имя сохраняемого значения
$value смешанный тип сохраняемое глобальное значение. Должно быть сериализуемым.
$defaultValue смешанный тип значение по умолчанию. Если именованное глобальное значение совпадает с этим значением, оно будет очищено из текущего хранилища.
Исходный код: framework/base/CApplication.php#646 (показать)
public function setGlobalState($key,$value,$defaultValue=null)
{
    if(
$this->_globalState===null)
        
$this->loadGlobalState();

    
$changed=$this->_stateChanged;
    if(
$value===$defaultValue)
    {
        if(isset(
$this->_globalState[$key]))
        {
            unset(
$this->_globalState[$key]);
            
$this->_stateChanged=true;
        }
    }
    elseif(!isset(
$this->_globalState[$key]) || $this->_globalState[$key]!==$value)
    {
        
$this->_globalState[$key]=$value;
        
$this->_stateChanged=true;
    }

    if(
$this->_stateChanged!==$changed)
        
$this->attachEventHandler('onEndRequest',array($this,'saveGlobalState'));
}

Устанавливает глобальное значение.

Глобальное значение — это значение, сохраняющееся между сессиями пользователей и запросами. Убедитесь, что значение сериализуемо и десериализуемо.

См. также

  • getGlobalState

setHomeUrl() метод

public void setHomeUrl(string $value)
$value строка URL домашней страницы
Исходный код: framework/base/CApplication.php#612 (показать)
public function setHomeUrl($value)
{
    
$this->_homeUrl=$value;
}

setId() метод

public void setId(string $id)
$id строка уникальный идентификатор приложения.
Исходный код: framework/base/CApplication.php#244 (показать)
public function setId($id)
{
    
$this->_id=$id;
}

Устанавливает уникальный идентификатор приложения.

setLanguage() метод

public void setLanguage(string $language)
$language строка язык пользователя (например, 'en_US', 'zh_CN'). Если null, будет использован sourceLanguage.
Исходный код: framework/base/CApplication.php#342 (показать)
public function setLanguage($language)
{
    
$this->_language=$language;
}

Устанавливает язык, на котором будет отображаться приложение.

Это язык, который отображается пользователям. Если установлено null, используется исходный язык.

Если ваше приложение не нуждается в поддержке нескольких языков, вы всегда должны устанавливать этот язык в null, чтобы максимизировать производительность приложения.

setLocaleDataPath() метод (доступен начиная с v1.1.0)

public void setLocaleDataPath(string $value)
$value строка каталог, содержащий данные локали.
Исходный код: framework/base/CApplication.php#428 (показать)
public function setLocaleDataPath($value)
{
    
$property=new ReflectionProperty($this->localeClass,'dataPath');
    
$property->setValue($value);
}

Устанавливает каталог, содержащий данные локали.

setRuntimePath() метод

public void setRuntimePath(string $path)
$path string директория, в которой хранятся временные файлы.
Исходный код: framework/base/CApplication.php#291 (показать)
public function setRuntimePath($path)
{
    if((
$runtimePath=realpath($path))===false || !is_dir($runtimePath) || !is_writable($runtimePath))
        throw new 
CException(Yii::t('yii','Application runtime path "{path}" is not valid. Please make sure it is a directory writable by the Web server process.',
            array(
'{path}'=>$path)));
    
$this->_runtimePath=$runtimePath;
}

Устанавливает директорию для хранения временных файлов.

setTimeZone() метод

public void setTimeZone(string $value)
$value string часовой пояс, используемый этим приложением.
Исходный код: framework/base/CApplication.php#364 (показать)
public function setTimeZone($value)
{
    
date_default_timezone_set($value);
}

Устанавливает часовой пояс, используемый этим приложением. Это простой обертка над функцией PHP date_default_timezone_set().

См. также

  • http://php.net/manual/en/function.date-default-timezone-set.php

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CApplication

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API