Spec-Zone.ru › Yii 1.1

GiiModule

Пакет system.gii
Наследование class GiiModule » CWebModule » CModule » CComponent
С версии 1.1.2
Исходный код framework/gii/GiiModule.php
GiiModule — модуль, предоставляющий возможности генерации кода через веб-интерфейс.

Для использования 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.
Исходный код: framework/gii/GiiModule.php#189 (показать)
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.
Исходный код: framework/gii/GiiModule.php#164 (показать)
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} массив
Исходный код: framework/gii/GiiModule.php#205 (показать)
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.
Исходный код: framework/gii/GiiModule.php#140 (показать)
public function getAssetsUrl()
{
    if(
$this->_assetsUrl===null)
        
$this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('gii.assets'));
    return 
$this->_assetsUrl;
}

init() метод

public void init()
Исходный код: framework/gii/GiiModule.php#114 (показать)
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.
Исходный код: framework/gii/GiiModule.php#150 (показать)
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

Spec-Zone.ru

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