GiiModule
| Пакет | system.gii |
|---|---|
| Наследование | class GiiModule » CWebModule » CModule » CComponent |
| С версии | 1.1.2 |
| Исходный код | framework/gii/GiiModule.php |
Для использования GiiModule, необходимо включить его в конфигурацию приложения, как показано ниже:
return array(
......
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>***choose a password***
),
),
)
Поскольку GiiModule генерирует новые файлы кода на сервере, его следует использовать только на вашей собственной машине разработки. Чтобы предотвратить использование этого модуля другими пользователями, необходимо указать секретный пароль в конфигурации. Позже, при доступе к модулю через браузер, вам будет предложено ввести правильный пароль.
По умолчанию, к GiiModule можно получить доступ только с localhost. Вы можете настроить свойство ipFilters, если хотите сделать его доступным и с других машин.
С указанной выше конфигурацией, вы сможете получить доступ к GiiModule в вашем браузере по следующему URL:
http://localhost/path/to/index.php?r=gii
Если ваше приложение использует URL-адреса с форматированием по пути и какими-то настраиваемыми правилами URL, вам может потребоваться добавить следующие URL в конфигурацию вашего приложения, чтобы получить доступ к GiiModule:
'components'=>array(
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'gii'=>'gii',
'gii/<controller:\w+>'=>'gii/<controller>',
'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',
...other rules...
),
)
)
После этого вы сможете получить доступ к GiiModule через:
http://localhost/path/to/index.php/gii
Свойства публичного доступа
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| assetsUrl | string | базовый URL, содержащий все опубликованные файлы ресурсов gii. | GiiModule |
| basePath | string | Возвращает корневую директорию модуля. | CModule |
| behaviors | array | Поведение, которое должно быть прикреплено к модулю. | CModule |
| components | array | Возвращает компоненты приложения. | CModule |
| controllerMap | array | отображение от идентификатора контроллера к конфигурациям контроллеров. | CWebModule |
| controllerNamespace | string | Пространство имён, которое должно быть использовано при загрузке контроллеров. | CWebModule |
| controllerPath | string | директория, содержащая классы контроллеров. | CWebModule |
| defaultController | string | идентификатор контроллера по умолчанию для этого модуля. | CWebModule |
| description | string | Возвращает описание этого модуля. | CWebModule |
| generatorPaths | array | список псевдонимов путей, которые ссылаются на директории, содержащие генераторы кода. | GiiModule |
| id | string | Возвращает идентификатор модуля. | CModule |
| ipFilters | array | фильтры IP-адресов, определяющие, какие IP-адреса разрешены для доступа к GiiModule. | GiiModule |
| layout | mixed | макет, который используется контроллерами внутри этого модуля. | CWebModule |
| layoutPath | string | корневая директория файлов макета. | CWebModule |
| modulePath | string | Возвращает директорию, содержащую модули приложения. | CModule |
| modules | array | Возвращает конфигурацию установленных модулей. | CModule |
| name | string | Возвращает имя этого модуля. | CWebModule |
| newDirMode | integer | разрешения, устанавливаемые для вновь созданных директорий. | GiiModule |
| newFileMode | integer | разрешения, устанавливаемые для новых сгенерированных файлов кода. | GiiModule |
| params | CAttributeCollection | Возвращает пользовательские параметры. | CModule |
| parentModule | CModule | Возвращает родительский модуль. | CModule |
| password | string | пароль, используемый для доступа к GiiModule. | GiiModule |
| preload | array | идентификаторы компонентов приложения, которые должны быть загружены предварительно. | CModule |
| version | string | Возвращает версию этого модуля. | CWebModule |
| viewPath | string | корневая директория файлов представлений. | CWebModule |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с указанным именем, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CModule |
| __get() | Магический метод-геттер. | CModule |
| __isset() | Проверяет, является ли значение свойства null. | CModule |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| afterControllerAction() | Постобработчик для действий контроллера. | CWebModule |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| beforeControllerAction() | Выполняет проверку доступа к gii. | GiiModule |
| canGetProperty() | Определяет, можно ли читать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| configure() | Конфигурирует модуль с указанной конфигурацией. | CModule |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединенное поведение. | CComponent |
| disableBehaviors() | Отключает все присоединенные поведения к этому компоненту. | CComponent |
| enableBehavior() | Включает присоединенное поведение. | CComponent |
| enableBehaviors() | Включает все присоединенные поведения к этому компоненту. | CComponent |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. | CComponent |
| getAssetsUrl() | Возвращает базовый URL, содержащий все опубликованные файлы ресурсов gii. | GiiModule |
| getBasePath() | Возвращает корневой каталог модуля. | CModule |
| getComponent() | Извлекает компонент приложения с указанным именем. | CModule |
| getComponents() | Возвращает компоненты приложения. | CModule |
| getControllerPath() | Возвращает каталог, содержащий классы контроллеров. По умолчанию 'moduleDir/controllers', где moduleDir - каталог, содержащий класс модуля. | CWebModule |
| getDescription() | Возвращает описание этого модуля. | CWebModule |
| getEventHandlers() | Возвращает список присоединенных обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор модуля. | CModule |
| getLayoutPath() | Возвращает корневой каталог файлов шаблонов. По умолчанию 'moduleDir/views/layouts', где moduleDir - каталог, содержащий класс модуля. | CWebModule |
| getModule() | Возвращает указанный модуль приложения. | CModule |
| getModulePath() | Возвращает каталог, содержащий модули приложения. | CModule |
| getModules() | Возвращает конфигурацию установленных модулей. | CModule |
| getName() | Возвращает имя этого модуля. | CWebModule |
| getParams() | Возвращает пользовательские параметры. | CModule |
| getParentModule() | Возвращает родительский модуль. | CModule |
| getVersion() | Возвращает версию этого модуля. | CWebModule |
| getViewPath() | Возвращает корневой каталог файлов представлений. По умолчанию 'moduleDir/views', где moduleDir - каталог, содержащий класс модуля. | CWebModule |
| hasComponent() | Проверяет существование компонента с указанным именем. | CModule |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли обработчики для события с указанным именем. | CComponent |
| hasModule() | Возвращает значение, указывающее, установлен ли указанный модуль. | CModule |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует модуль gii. | GiiModule |
| raiseEvent() | Вызывает событие. | CComponent |
| setAliases() | Определяет корневые псевдонимы. | CModule |
| setAssetsUrl() | Устанавливает базовый URL, содержащий все опубликованные файлы ресурсов gii. | GiiModule |
| setBasePath() | Устанавливает корневой каталог модуля. | CModule |
| setComponent() | Помещает компонент под управление модуля. | CModule |
| setComponents() | Устанавливает компоненты приложения. | CModule |
| setControllerPath() | Устанавливает каталог, содержащий классы контроллеров. | CWebModule |
| setId() | Устанавливает идентификатор модуля. | CModule |
| setImport() | Устанавливает псевдонимы, используемые в модуле. | CModule |
| setLayoutPath() | Устанавливает корневой каталог файлов шаблонов. | CWebModule |
| setModulePath() | Устанавливает каталог, содержащий модули приложения. | CModule |
| setModules() | Настраивает подмодули данного модуля. | CModule |
| setParams() | Устанавливает пользовательские параметры. | CModule |
| setViewPath() | Устанавливает корневой каталог файлов представлений. | CWebModule |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| allowIp() | Проверяет, разрешен ли IP-адрес пользователя фильтрами ipFilters. | GiiModule |
| findGenerators() | Находит все доступные генераторы кода и их шаблоны. | GiiModule |
| preinit() | Предварительная инициализация модуля. | CModule |
| preloadComponents() | Загружает статические компоненты приложения. | CModule |
Подробное описание свойств
assetsUrl свойство
public string getAssetsUrl()
public void setAssetsUrl(string $value)
базовый URL, содержащий все опубликованные файлы ресурсов gii.
generatorPaths свойство
public array $generatorPaths;
список псевдонимов путей, которые ссылаются на каталоги, содержащие генераторы кода. Каталог, на который ссылается один псевдоним пути, может содержать несколько генераторов кода, каждый из которых хранится в подкаталоге с именем генератора. По умолчанию массив ('application.gii').
ipFilters свойство
public array $ipFilters;
фильтры IP-адресов, определяющие, какие IP-адреса разрешены для доступа к GiiModule. Каждый элемент массива представляет собой отдельный фильтр. Фильтр может быть либо IP-адресом, либо адресом с подстановкой (например, 192.168.0.*), представляющим сегмент сети. Если вы хотите разрешить доступ по всем IP-адресам, можно установить это свойство в false (НЕ ДЕЛАЙТЕ ЭТОГО, ЕСЛИ ВЫ НЕ ПОНИМАЕТЕ ПОСЛЕДСТВИЙ!!!). Значение по умолчанию — массив ('127.0.0.1', '::1'), что означает, что GiiModule доступен только по localhost.
newDirMode свойство
public integer $newDirMode;
разрешение, которое должно быть установлено для вновь созданных каталогов. Это значение будет использоваться функцией PHP chmod. По умолчанию 0777, что означает, что каталог может быть прочитан, записан и выполнен всеми пользователями.
newFileMode свойство
public integer $newFileMode;
разрешение, которое должно быть установлено для вновь созданных файлов кода. Это значение будет использоваться функцией PHP chmod. По умолчанию 0666, что означает, что файл может быть прочитан и записан всеми пользователями.
password свойство
public string $password;
пароль, который можно использовать для доступа к GiiModule. Если это свойство установлено в false, то GiiModule можно получить доступ без пароля (НЕ ДЕЛАЙТЕ ЭТОГО, ЕСЛИ ВЫ НЕ ПОНИМАЕТЕ ПОСЛЕДСТВИЙ!!!)
Подробное описание методов
allowIp() метод
protected boolean allowIp(string $ip) | ||
| $ip | строка | IP-адрес пользователя |
| {return} | булево | true, если IP-адрес пользователя разрешён фильтрами ipFilters, иначе false. |
protected function allowIp($ip)
{
if(empty($this->ipFilters))
return true;
foreach($this->ipFilters as $filter)
{
if($filter==='*' || $filter===$ip || (($pos=strpos($filter,'*'))!==false && !strncmp($ip,$filter,$pos)))
return true;
}
return false;
}
Проверяет, разрешен ли IP-адрес пользователя фильтрами ipFilters.
beforeControllerAction() метод
public boolean beforeControllerAction(CController $controller, CAction $action) | ||
| $controller | CController | контроллер, к которому происходит доступ. |
| $action | CAction | действие, к которому происходит доступ. |
| {return} | булево | true, если действие должно быть выполнено, иначе false. |
public function beforeControllerAction($controller, $action)
{
if(parent::beforeControllerAction($controller, $action))
{
$route=$controller->id.'/'.$action->id;
if(!$this->allowIp(Yii::app()->request->userHostAddress) && $route!=='default/error')
throw new CHttpException(403,"You are not allowed to access this page.");
$publicPages=array(
'default/login',
'default/error',
);
if($this->password!==false && Yii::app()->user->isGuest && !in_array($route,$publicPages))
Yii::app()->user->loginRequired();
else
return true;
}
return false;
}
Выполняет проверку доступа к gii. Этот метод проверяет корректность IP-адреса пользователя и пароля, если они пытаются получить доступ к действиям, отличным от "default/login" и "default/error".
findGenerators() метод
protected array findGenerators() | ||
| {return} | массив | |
protected function findGenerators()
{
$generators=array();
$n=count($this->generatorPaths);
for($i=$n-1;$i>=0;--$i)
{
$alias=$this->generatorPaths[$i];
$path=Yii::getPathOfAlias($alias);
if($path===false || !is_dir($path))
continue;
$names=scandir($path);
foreach($names as $name)
{
if($name[0]!=='.' && is_dir($path.'/'.$name))
{
$className=ucfirst($name).'Generator';
if(is_file("$path/$name/$className.php"))
{
$generators[$name]=array(
'class'=>"$alias.$name.$className",
);
}
if(isset($generators[$name]) && is_dir("$path/$name/templates"))
{
$templatePath="$path/$name/templates";
$dirs=scandir($templatePath);
foreach($dirs as $dir)
{
if($dir[0]!=='.' && is_dir($templatePath.'/'.$dir))
$generators[$name]['templates'][$dir]=strtr($templatePath.'/'.$dir,array('/'=>DIRECTORY_SEPARATOR,'\\'=>DIRECTORY_SEPARATOR));
}
}
}
}
}
return $generators;
}
Находит все доступные генераторы кода и их шаблоны.
getAssetsUrl() метод
public string getAssetsUrl() | ||
| {return} | строка | базовый URL, содержащий все опубликованные файлы ресурсов gii. |
public function getAssetsUrl()
{
if($this->_assetsUrl===null)
$this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('gii.assets'));
return $this->_assetsUrl;
}
init() метод
public void init() |
public function init()
{
parent::init();
Yii::setPathOfAlias('gii',dirname(__FILE__));
Yii::app()->setComponents(array(
'errorHandler'=>array(
'class'=>'CErrorHandler',
'errorAction'=>$this->getId().'/default/error',
),
'user'=>array(
'class'=>'CWebUser',
'stateKeyPrefix'=>'gii',
'loginUrl'=>Yii::app()->createUrl($this->getId().'/default/login'),
),
'widgetFactory' => array(
'class'=>'CWidgetFactory',
'widgets' => array()
)
), false);
$this->generatorPaths[]='gii.generators';
$this->controllerMap=$this->findGenerators();
}
Инициализирует модуль gii.
setAssetsUrl() метод
public void setAssetsUrl(string $value) | ||
| $value | строка | базовый URL, содержащий все опубликованные файлы ресурсов gii. |
public function setAssetsUrl($value)
{
$this->_assetsUrl=$value;
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/GiiModule