CCodeFile
| Пакет | system.gii |
|---|---|
| Наследование | class CCodeFile » CComponent |
| С версии | 1.1.2 |
| Исходный код | framework/gii/CCodeFile.php |
CCodeFile представляет файл кода, который генерируется.
Свойства публичного доступа
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| content | mixed | генерированный код. | CCodeFile |
| error | string | ошибка, возникшая при сохранении кода в файл | CCodeFile |
| operation | string | выполняемая операция | CCodeFile |
| path | string | путь к файлу, в который должен быть сохранён новый код. | CCodeFile |
| relativePath | string | путь к файлу кода относительно базового пути приложения. | CCodeFile |
| type | string | расширение файла кода (например, php, txt) | CCodeFile |
Методы публичного доступа
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CCodeFile |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Прикрепляет поведение к данному компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли считать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединенное поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые поведения к этому компоненту. | CComponent |
| enableBehavior() | Включает прикрепленное поведение. | CComponent |
| enableBehaviors() | Включает все прикрепленные поведения к данному компоненту. | CComponent |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getRelativePath() | Возвращает путь к файлу кода относительно базового пути приложения. | CCodeFile |
| getType() | Возвращает расширение файла кода (например, php, txt) | CCodeFile |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикреплённые обработчики для указанного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| raiseEvent() | Вызывает событие. | CComponent |
| save() | Сохраняет код в файл path. | CCodeFile |
Подробное описание свойств
content свойство
public mixed $content;
генерированный код. Если он равен null, это означает, что path следует рассматривать как каталог.
error свойство
public string $error;
ошибка, возникшая при сохранении кода в файл
operation свойство
public string $operation;
выполняемая операция
path свойство
public string $path;
путь к файлу, в который должен быть сохранён новый код.
relativePath свойство только для чтения
public string getRelativePath()
путь к файлу кода относительно базового пути приложения.
type свойство только для чтения
public string getType()
расширение файла кода (например, php, txt)
Подробное описание методов
__construct() метод
public void __construct(string $path, string $content) | ||
| $path | string | путь к файлу, в который должен быть сохранён новый код. |
| $content | string | генерированный код |
Исходный код: framework/gii/CCodeFile.php#50 (показать)
public function __construct($path,$content)
{
$this->path=strtr($path,array('/'=>DIRECTORY_SEPARATOR,'\\'=>DIRECTORY_SEPARATOR));
$this->content=$content;
if(is_file($path))
$this->operation=file_get_contents($path)===$content ? self::OP_SKIP : self::OP_OVERWRITE;
elseif($content===null) // is dir
$this->operation=is_dir($path) ? self::OP_SKIP : self::OP_NEW;
else
$this->operation=self::OP_NEW;
}
Конструктор.
getRelativePath() метод
public string getRelativePath() | ||
| {return} | string | путь к файлу кода относительно базового пути приложения. |
Исходный код: framework/gii/CCodeFile.php#116 (показать)
public function getRelativePath()
{
if(strpos($this->path,Yii::app()->basePath)===0)
return substr($this->path,strlen(Yii::app()->basePath)+1);
else
return $this->path;
}
getType() метод
public string getType() | ||
| {return} | string | расширение файла кода (например, php, txt) |
Исходный код: framework/gii/CCodeFile.php#127 (показать)
public function getType()
{
if(($pos=strrpos($this->path,'.'))!==false)
return substr($this->path,$pos+1);
else
return 'unknown';
}
save() метод
public void save() |
Исходный код: framework/gii/CCodeFile.php#65 (показать)
public function save()
{
$module=Yii::app()->controller->module;
if($this->content===null) // a directory
{
if(!is_dir($this->path))
{
$oldmask=@umask(0);
$result=@mkdir($this->path,$module->newDirMode,true);
@umask($oldmask);
if(!$result)
{
$this->error="Unable to create the directory '{$this->path}'.";
return false;
}
}
return true;
}
if($this->operation===self::OP_NEW)
{
$dir=dirname($this->path);
if(!is_dir($dir))
{
$oldmask=@umask(0);
$result=@mkdir($dir,$module->newDirMode,true);
@umask($oldmask);
if(!$result)
{
$this->error="Unable to create the directory '$dir'.";
return false;
}
}
}
if(@file_put_contents($this->path,$this->content)===false)
{
$this->error="Unable to write the file '{$this->path}'.";
return false;
}
else
{
$oldmask=@umask(0);
@chmod($this->path,$module->newFileMode);
@umask($oldmask);
}
return true;
}
Сохраняет код в файл path.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CCodeFile