mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-03 05:48:11 +08:00
@ -76,7 +76,7 @@ All Rights Reserved.
|
||||
|
||||
* [Объекты доступа к данным (DAO)](db-dao.md) - Соединение с базой данных, простые запросы, транзакции и работа со схемой.
|
||||
* [Построитель запросов](db-query-builder.md) - Запросы к базе данных через простой слой абстракции.
|
||||
* [Active Record](db-active-record.md) - Получение объектов AR, работа с ними и опредение связей.
|
||||
* [Active Record](db-active-record.md) - Получение объектов AR, работа с ними и определение связей.
|
||||
* [Миграции](db-migrations.md) - Контроль версий схемы данных при работе в команде.
|
||||
* **TBD** [Sphinx](db-sphinx.md)
|
||||
* **TBD** [Redis](db-redis.md)
|
||||
|
||||
@ -29,7 +29,7 @@ echo DatePicker::widget([
|
||||
|
||||
- Если вы переопределяете конструктор, то добавьте *последним* аргументом параметр `$config` и затем передайте его в конструктор предка.
|
||||
- Всегда вызывайте конструктор предка *в конце* вашего переопределенного конструктора.
|
||||
- Если вы переопределяете метод [[yii\base\Object::init()]], убедитель, что вы вызываете родительскую реализацию этого метода *в начале* вашего метода `init()`.
|
||||
- Если вы переопределяете метод [[yii\base\Object::init()]], убедитесь, что вы вызываете родительскую реализацию этого метода *в начале* вашего метода `init()`.
|
||||
|
||||
Пример:
|
||||
|
||||
@ -76,7 +76,7 @@ $component = \Yii::createObject([
|
||||
Жизненyый цикл объектов класса [[yii\base\Object]] содержит следующие этапы:
|
||||
|
||||
1. Предварительная инициализация в конструкторе. Здесь вы можете установить значения свойств по умолчанию.
|
||||
2. Конфигурация объекта с помощью `$config`. Во время конфигурации могут быть перезаписаны значения свойст по умолчанию, установленные в кострукторе.
|
||||
2. Конфигурация объекта с помощью `$config`. Во время конфигурации могут быть перезаписаны значения свойств по умолчанию, установленные в конструкторе.
|
||||
3. Конфигурация после инициализации в методе [[yii\base\Object::init()|init()]]. Вы можете переопределить этот метод, для проверки готовности объекта и нормализации свойств.
|
||||
4. Вызов методов объекта.
|
||||
|
||||
|
||||
@ -164,7 +164,7 @@ echo Menu::widget([
|
||||
Данный код создает виджет `Menu` и устанавливает параметр виджета `activeItems` в значение false.
|
||||
Также устанавливается параметр `items`, состоящий из элементов меню.
|
||||
|
||||
Обратите внимание что парамт `class` НЕ передается, т.к. полное имя уже указано.
|
||||
Обратите внимание что параметр `class` НЕ передается, т.к. полное имя уже указано.
|
||||
|
||||
|
||||
## Файлы Настроек <a name="configuration-files"></a>
|
||||
|
||||
@ -141,7 +141,7 @@ Yii 2.0 расширяет способ использования псевдо
|
||||
каждого базового пространства имен, таким образом загрузчик классов Yii может использоваться без какой-либо дополнительной
|
||||
конфигурации. Например, потому, что `@yii` соответствует установочной папке Yii, класс `yii\webRequest` может быть загружен.
|
||||
Если вы используете сторонние библиотеки, такие как Zend Framework, вы можете также определить псевдоним пути `@Zend`,
|
||||
который соответствует установочной папке фреймворка. Единожды сделав это, Yii будет способен автоматичеки загружать любой класс
|
||||
который соответствует установочной папке фреймворка. Единожды сделав это, Yii будет способен автоматически загружать любой класс
|
||||
Zend Framework.
|
||||
|
||||
Более детальная информация о конфигурациях представлена в разделе [Псевдонимы пути](concept-aliases.md).
|
||||
@ -155,7 +155,7 @@ Zend Framework.
|
||||
введенной в версии 2.0. Объект представления имеет тип [[yii\web\View]], который представляет собой часть *представление* в
|
||||
шаблоне проектирования MVC. Если вы хотите получить доступ к контроллеру или виджету, то используйте выражение `$this->context`.
|
||||
|
||||
Для рендеринга частичных представлений, теперь исользуется метод `$this->render()`, а не `$this->renderPartial()`.
|
||||
Для рендеринга частичных представлений, теперь используется метод `$this->render()`, а не `$this->renderPartial()`.
|
||||
Результат вызова метода `render` теперь должен быть выведен напрямую, т. к `render` возвращает результат рендеринга, а не
|
||||
отображает его сразу. Например,
|
||||
|
||||
@ -258,11 +258,11 @@ ActiveForm::end();
|
||||
Темы
|
||||
----
|
||||
|
||||
В Yii 2.0 темы работают совершенно по-другому. Теперь они основанны на механизме сопоставления путей исходного файла
|
||||
В Yii 2.0 темы работают совершенно по-другому. Теперь они основаны на механизме сопоставления путей исходного файла
|
||||
представления с темизированным файлом. Например, если используется сопоставление путей `['/web/views' => '/web/themes/basic']`,
|
||||
то темизированная версия файла представления `/web/views/site/index.php` будет находится в `/web/themes/basic/site/index.php`.
|
||||
По этой причине, темы могут быть применены к любому файлу представления, даже к представлению, отрендеренному внутри контекста
|
||||
контроллера или виджета. Тажке, больше не существует компонента `CThemeManager`. Вместо этого, `theme` является конфигурируемым
|
||||
контроллера или виджета. Также, больше не существует компонента `CThemeManager`. Вместо этого, `theme` является конфигурируемым
|
||||
свойством компонента приложения `view`.
|
||||
|
||||
Более детальная информация представлена в разделе [Темизация](output-theming.md).
|
||||
@ -298,7 +298,7 @@ I18N
|
||||
Фильтры действий
|
||||
----------------
|
||||
|
||||
Фильтры действий теперь сделаны с помошью поведений. Для определения нового фильтра, унаследуйтесь от [[yii\base\ActionFilter]].
|
||||
Фильтры действий теперь сделаны с помощью поведений. Для определения нового фильтра, унаследуйтесь от [[yii\base\ActionFilter]].
|
||||
Для использования фильтра, прикрепите его к контроллеру в качестве поведения. Например, для использования фильтра [[yii\filters\AccessControl]],
|
||||
следует сделать следующее:
|
||||
|
||||
@ -443,7 +443,7 @@ $customers = Customer::find()->asArray()->all();
|
||||
```
|
||||
|
||||
Еще одно изменение связано с тем, что вы больше не можете определять значения по-умолчанию в качестве свойств.
|
||||
Вы должны устанавить их в методе `init` вашего класса, если это требуется.
|
||||
Вы должны установить их в методе `init` вашего класса, если это требуется.
|
||||
|
||||
```php
|
||||
public function init()
|
||||
@ -453,7 +453,7 @@ public function init()
|
||||
}
|
||||
```
|
||||
|
||||
Тажке в версии 1.1 были некоторые проблемы с переопределением конструктора ActiveRecord. Данные проблемы не присутствуют
|
||||
Также в версии 1.1 были некоторые проблемы с переопределением конструктора ActiveRecord. Данные проблемы не присутствуют
|
||||
в версии 2.0. Обратите внимание, что при добавлении параметров в конструктор, вам возможно понадобится переопределить метод
|
||||
[[yii\db\ActiveRecord::instantiate()]]. Переопределение может не потребоваться, если параметры, передаваемые в конструктор будут
|
||||
иметь значения по-умолчанию, например `null`.
|
||||
|
||||
@ -33,7 +33,7 @@ public function behaviors()
|
||||
}
|
||||
```
|
||||
|
||||
Когда ограничение частоты запросов включено, по умолчанию каждый ответ будет возващаться со следующими HTTP-заголовками, содержащими
|
||||
Когда ограничение частоты запросов включено, по умолчанию каждый ответ будет возвращаться со следующими HTTP-заголовками, содержащими
|
||||
информацию о текущих ограничениях количества запросов:
|
||||
|
||||
* `X-Rate-Limit-Limit`: максимальное количество запросов, разрешенное в течение периода времени;
|
||||
|
||||
@ -51,7 +51,7 @@ http://localhost/users?fields=id,email&expand=profile
|
||||
[[yii\db\ActiveRecord::fields()]] возвращает только те атрибуты которые были объявлены в схеме БД.
|
||||
|
||||
Вы можете переопределить `fields()` при этом добавить, удалить, переименовать или переобъявить поля. Возвращаемое значение `fields()`
|
||||
должно быть массивом. Ключи массива это имена полей, и значения массива могут быть именами свойств/атрибутов или анонимных функций, возвращающих соответсвующее значение полей.
|
||||
должно быть массивом. Ключи массива это имена полей, и значения массива могут быть именами свойств/атрибутов или анонимных функций, возвращающих соответствующее значение полей.
|
||||
Если имя атрибута такое же, как ключ массива вы можете не заполнять значение. Например:
|
||||
```php
|
||||
// явное перечисление всех атрибутов, лучше всего использовать когда вы хотите убедиться что изменение
|
||||
@ -61,7 +61,7 @@ public function fields()
|
||||
return [
|
||||
// название поля совпадает с названием атрибута
|
||||
'id',
|
||||
// ключ массива "email", соответсвует значению атрибута "email_address"
|
||||
// ключ массива "email", соответствует значению атрибута "email_address"
|
||||
'email' => 'email_address',
|
||||
// ключ массива "name", это PHP callback функция возвращающая значение
|
||||
'name' => function () {
|
||||
@ -168,7 +168,7 @@ class User extends ActiveRecord implements Linkable
|
||||
|
||||
## Коллекции <a name="collections"></a>
|
||||
|
||||
Объекты ресурсов могут групироваться в *коллекции*. Каждая коллекция включает список объектов ресурсов одного типа.
|
||||
Объекты ресурсов могут группироваться в *коллекции*. Каждая коллекция включает список объектов ресурсов одного типа.
|
||||
|
||||
Так как коллекции представляются в виде массива, их удобнее использовать как [проводник данных](output-data-providers.md).
|
||||
Так как проводник данных поддерживает операции сортировки, разбиения на страницы это удобно использовать для RESTful API.
|
||||
@ -192,7 +192,7 @@ class PostController extends Controller
|
||||
}
|
||||
```
|
||||
|
||||
При отправке ответа RESTful API, [[yii\rest\Serializer]] добавит текущую страницу ресурсов и сеарилизует все объекты ресурсов.
|
||||
При отправке ответа RESTful API, [[yii\rest\Serializer]] добавит текущую страницу ресурсов и сериализует все объекты ресурсов.
|
||||
Кроме того, [[yii\rest\Serializer]] добавит HTTP заголовки содержащие информацию о нумерации страниц:
|
||||
|
||||
* `X-Pagination-Total-Count`: Количество ресурсов;
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
* Как включить Gii в приложении;
|
||||
* Как использовать Gii для создания Active Record класса;
|
||||
* Как использовать Gii для генерироции кода реализующего CRUD для таблицы БД.
|
||||
* Как использовать Gii для генерации кода, реализующего CRUD для таблицы БД.
|
||||
* Как настроить код генерируемый Gii.
|
||||
|
||||
|
||||
@ -62,7 +62,7 @@ http://hostname/index.php?r=gii
|
||||
|
||||

|
||||
|
||||
Если необхадимо перезаписать существующего файла, установите флажок рядом с "переписать", а затем нажмите кнопку "Создать". При создании нового файла, вы можете просто нажать "Создать".
|
||||
Если необходимо перезаписать существующего файла, установите флажок рядом с "переписать", а затем нажмите кнопку "Создать". При создании нового файла, вы можете просто нажать "Создать".
|
||||
|
||||
Далее, вы увидите страницу подтверждения, указывающую что код был успешно создана. Если ваш файл уже существующествует, вы также увидите сообщение о том, что он был переписан с вновь сгенерированным кодом.
|
||||
|
||||
@ -94,7 +94,7 @@ CRUD расшифровывается как Создать, Читать, Об
|
||||
http://hostname/index.php?r=country/index
|
||||
```
|
||||
|
||||
Вы увидите таблицу данных показывающией страны из таблицы базы данных. Вы можете сортировать, или фильтр необходимо ввести условия фильтрации в заголовки столбцов.
|
||||
Вы увидите таблицу данных, показывающую страны из таблицы базы данных. Вы можете сортировать, или фильтр необходимо ввести условия фильтрации в заголовки столбцов.
|
||||
|
||||
Для каждой страны отображающейся в таблице, вы можете просмотреть подробную информацию, обновить ее или удалить.
|
||||
Вы также можете нажать на кнопку "Создать страну" в верхней части таблицы и будет предоставлена форма для создания новой страны.
|
||||
|
||||
@ -122,7 +122,7 @@ DocumentRoot "path/to/basic/web"
|
||||
<Directory "path/to/basic/web">
|
||||
RewriteEngine on
|
||||
|
||||
# Если запрашиваемая в URL директория или файл сущесвуют обращаемся к ним напрямую
|
||||
# Если запрашиваемая в URL директория или файл существуют обращаемся к ним напрямую
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
# Если нет - перенаправляем запрос на index.php
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Запуск приложения
|
||||
====================
|
||||
|
||||
После установки Yii, базовое приложение будет доступно либо по URL `http://hostname/basic/web/index.php`, либо по `http://hostname/index.php`, в зависимости от настроек Web сервера. Данный раздел - общее введение в орагнизацию кода, встроенный функционал и обработку обращений приложением Yii.
|
||||
После установки Yii, базовое приложение будет доступно либо по URL `http://hostname/basic/web/index.php`, либо по `http://hostname/index.php`, в зависимости от настроек Web сервера. Данный раздел - общее введение в организацию кода, встроенный функционал и обработку обращений приложением Yii.
|
||||
|
||||
> Информация: Далее, в данном руководстве предполагается что Yii установлен в директорию `basic/web`, которая, в свою очередь, установлена как корневой каталог в настройках Web сервера. В результате, обратившись по URL `http://hostname/index.php` Вы получите доступ к приложению, расположенному в `basic/web`. Детальнее с процессом начальной настройки можно познакомиться в разделе [Установка Yii](start-installation.md).
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
* на странице "Contact" находится форма обратной связи, на которой пользователь может обратиться к разработчику по e-mail
|
||||
* на странице "Login" отображается форма авторизации. Попытайтесь авторизоваться с логином/паролем "admin/admin". Обратите внимание на изменение раздела "Login" в главном меню на "Logout".
|
||||
|
||||
Эти страницы используют смежный хидер (шапка сайта) и футер (подвал). В "шапке" находится главное меню, при помощи которого пользователь перемещается по сайту. В "подвале" - копирайт и общая информация.
|
||||
Эти страницы используют смежный хедер (шапка сайта) и футер (подвал). В "шапке" находится главное меню, при помощи которого пользователь перемещается по сайту. В "подвале" - копирайт и общая информация.
|
||||
|
||||
В самой верхней части окна Вы будете видеть системные сообщения Yii - журнал, отладочную информацию, сообщения об ошибках, запросы к базе данных и т.п. Выводом данной информации руководит [встроенный отладчик](tool-debugger.md), он записывает и отображает информацию о ходе выполнения приложения.
|
||||
|
||||
|
||||
@ -199,7 +199,7 @@ if (YII_ENV_DEV) {
|
||||
|
||||
#### [[yii\base\Application::controllerMap|controllerMap]] <a name="controllerMap"></a>
|
||||
|
||||
Данное свойство позволяет вам устанавливать соответствия между ID контроллера и его классом. По-умолчанию, Yii устаналивает
|
||||
Данное свойство позволяет вам устанавливать соответствия между ID контроллера и его классом. По-умолчанию, Yii устанавливает
|
||||
соответствие между ID контроллера и его классом согласно данному [соглашению](#controllerNamespace) (таким образом,
|
||||
ID `post` будет соответствовать `app\controllers\PostController` ). С помощью настройки этого свойства вы можете изменить
|
||||
соглашение для нужных контроллеров. В приведенном ниже примере, `account` будет соответствовать `app\controllers\UserController`,
|
||||
@ -232,7 +232,7 @@ ID `post` будет соответствовать `app\controllers\PostControl
|
||||
Класс контроллера может также находиться в подпапке папки, которая соответствует этому пространству имен.
|
||||
Например, дан ID контроллера `admin/post`, соответствующие полное имя класса контроллера будет `app\controllers\admin\PostController`.
|
||||
|
||||
Очень важно, чтобы полное имя класса контроллера могло быть использовано [автозагрузкой](concept-autoloading.md) и соответсвующее
|
||||
Очень важно, чтобы полное имя класса контроллера могло быть использовано [автозагрузкой](concept-autoloading.md) и соответствующее
|
||||
пространство имен вашего контроллера соответствовало данному свойству. Иначе, вы получите ошибку "Страница не найдена", когда
|
||||
попытаетесь получить доступ к приложению.
|
||||
|
||||
@ -241,7 +241,7 @@ ID `post` будет соответствовать `app\controllers\PostControl
|
||||
|
||||
#### [[yii\base\Application::language|language]] <a name="language"></a>
|
||||
|
||||
Данное свойство указывает язык приложения, на котором содержимое страницы должно быть отображно конечному пользователю.
|
||||
Данное свойство указывает язык приложения, на котором содержимое страницы должно быть отображено конечному пользователю.
|
||||
По-умолчанию значение данного свойства равно `en`, что означает "Английский". Если ваше приложение должно поддерживать несколько
|
||||
языков, вы должны настроить данное свойство.
|
||||
|
||||
@ -348,7 +348,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
|
||||
### Полезные свойства <a name="useful-properties"></a>
|
||||
|
||||
Свойства, указанные в данном подразделе, не являются часто конфигруируемыми, т. к. их значения по-умолчанию
|
||||
Свойства, указанные в данном подразделе, не являются часто конфигурируемыми, т. к. их значения по-умолчанию
|
||||
соответствуют общепринятым соглашениям. Однако, вы можете их настроить, если вам нужно использовать другие
|
||||
соглашения.
|
||||
|
||||
@ -367,13 +367,13 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
`post/create`, `admin/post/create`. Если действие не указано, то будет использовано значение по-умолчанию
|
||||
указанное в [[yii\base\Controller::defaultAction]].
|
||||
|
||||
Для [yii\web\Application|веб приложений], значение по-умолчанию для данного свойства равно `'site'`, что означет
|
||||
Для [yii\web\Application|веб приложений], значение по-умолчанию для данного свойства равно `'site'`, что означает
|
||||
контроллер `SiteController` и его действие по-умолчанию должно быть использовано. Таким образом, если вы попытаетесь
|
||||
получить доступ к приложению не указав маршрут, оно покажет вам результат действия `app\controllers\SiteController::actionIndex()`.
|
||||
|
||||
Для [yii\console\Application|консольных приложений], значение по-умолчанию равно `'help'`, означающее, что встроенная
|
||||
команда [[yii\console\controllers\HelpController::actionIndex()]] должна быть использована. Таким образом, если вы
|
||||
выполнитек команду `yii` без аргументов, вам будет отображена справочная информация.
|
||||
выполните команду `yii` без аргументов, вам будет отображена справочная информация.
|
||||
|
||||
|
||||
#### [[yii\base\Application::extensions|extensions]] <a name="extensions"></a>
|
||||
@ -412,9 +412,9 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
|
||||
#### [[yii\base\Application::layout|layout]] <a name="layout"></a>
|
||||
|
||||
Данное свойство указываеть имя шаблона по-умолчанию, который должен быть использовать при формировании [представлений](structure-views.md).
|
||||
Данное свойство указывает имя шаблона по-умолчанию, который должен быть использовать при формировании [представлений](structure-views.md).
|
||||
Значение по-умолчанию равно `'main'`, означающее, что должен быть использован шаблон `main.php` в [папке шаблонов](#layoutPath).
|
||||
Если оба свойства [папка шаблонов](#layoutPath) и [папка представлений](#viewPath) имееют значение по-умолчаниею,
|
||||
Если оба свойства [папка шаблонов](#layoutPath) и [папка представлений](#viewPath) имеют значение по-умолчаниею,
|
||||
то файл шаблона по-умолчанию может быть представлен псевдонимом пути как `@app/views/layouts/main.php`.
|
||||
|
||||
Для отключения использования шаблона, вы можете указать данное свойство как `false`, хотя это используется очень редко.
|
||||
@ -432,7 +432,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
#### [[yii\base\Application::runtimePath|runtimePath]] <a name="runtimePath"></a>
|
||||
|
||||
Свойство указывает путь, по которому хранятся временные файлы, такие как: лог файлы, кэш файлы.
|
||||
По-умолчанию значене равно папке, которая представлена псевдонимом пути `@app/runtime`.
|
||||
По-умолчанию значение равно папке, которая представлена псевдонимом пути `@app/runtime`.
|
||||
|
||||
Вы можете настроить данное свойство как папку или как [псевдоним](concept-aliases.md) пути. Обратите внимание,
|
||||
что данная папка должна быть доступна для записи, процессом, который запускает приложение. Также папка должна быть
|
||||
@ -467,7 +467,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
|
||||
## События приложения <a name="application-events"></a>
|
||||
|
||||
В течение жизненного цикла приложения, возникает несолько событий. Вы можете назначать обработчики событий в
|
||||
В течение жизненного цикла приложения, возникает несколько событий. Вы можете назначать обработчики событий в
|
||||
конфигурации приложения следующим образом:
|
||||
|
||||
```php
|
||||
@ -514,7 +514,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
|
||||
### [[yii\base\Application::EVENT_BEFORE_REQUEST|EVENT_BEFORE_ACTION]] <a name="beforeAction"></a>
|
||||
|
||||
Событие возникае *до* того как будет выполнено [действие контроллера](structure-controllers.md).
|
||||
Событие возникает *до* того как будет выполнено [действие контроллера](structure-controllers.md).
|
||||
Настоящее имя события - `beforeAction`.
|
||||
|
||||
Событие является объектом [[yii\base\ActionEvent]]. Обработчик события может устанавливать
|
||||
@ -560,8 +560,8 @@ $width = \Yii::$app->params['thumbnail.size'][0];
|
||||
]
|
||||
```
|
||||
|
||||
Обратите внимание что то же самое событие `afterAction` возникает в [модулях](structure-modules.md) и
|
||||
[контроллерах](structure-controllers.md). Эти объекты возбмуждают событие в обратном порядке, если сравнивать с `beforeAction`.
|
||||
Обратите внимание, что то же самое событие `afterAction` возникает в [модулях](structure-modules.md) и
|
||||
[контроллерах](structure-controllers.md). Эти объекты возбуждают событие в обратном порядке, если сравнивать с `beforeAction`.
|
||||
Таким образом, контроллеры являются первыми, где возникает данное событие, затем в модулях (если таковые имеются),
|
||||
и наконец в приложениях.
|
||||
|
||||
|
||||
@ -56,13 +56,13 @@ class PostController extends Controller
|
||||
под названием `view`. В противном случае будет брошено исключение.
|
||||
|
||||
В действии `create` (определенном методом `actionCreate()`), код аналогичен. Он сначала пытается загрузить [модель](structure-models.md)
|
||||
с помощью данных из запроса и сохранить модель. Если все прошло успешно, то код перенаправляет барузер на действие `view` с ID только
|
||||
с помощью данных из запроса и сохранить модель. Если все прошло успешно, то код перенаправляет браузер на действие `view` с ID только
|
||||
что созданной модели. В противном случае он отобразит представление `create`, через которое пользователь может заполнить нужные данные.
|
||||
|
||||
|
||||
## Маршруты <a name="routes"></a>
|
||||
|
||||
Конечные пользователи обращаются к действиям через так называемые *маршурты*. Маршрут это строка, состоящая из следующих частей:
|
||||
Конечные пользователи обращаются к действиям через так называемые *маршруты*. Маршрут это строка, состоящая из следующих частей:
|
||||
|
||||
* ID модуля: он существует, только если контроллер принадлежит не приложению, а [модулю](structure-modules.md);
|
||||
* ID контроллера: строка, которая уникально идентифицирует контроллер среди всех других контроллеров одного и того же приложения
|
||||
@ -105,7 +105,7 @@ class SiteController extends Controller
|
||||
### ID контроллеров <a name="controller-ids"></a>
|
||||
|
||||
Обычно контроллер сделан таким образом, что он должен обрабатывать запросы, связанные с определенным ресурсом.
|
||||
Именно по этим причинам, ID контроллеров обычно являются существительные, ссылающиеся на ресурс, который они обрабывают.
|
||||
Именно по этим причинам, ID контроллеров обычно являются существительные, ссылающиеся на ресурс, который они обрабатывают.
|
||||
Например, вы можете использовать `article` в качестве ID контроллера, которые отвечает за обработку данных статей.
|
||||
|
||||
По-умолчанию, ID контроллеров должны содержать только следующие символы: Английские буквы в нижнем регистре, цифры, подчеркивания,
|
||||
@ -114,7 +114,7 @@ class SiteController extends Controller
|
||||
|
||||
ID контроллеров также могут содержать префикс подпапки. Например, в `admin/article` часть `article` является контроллером в
|
||||
подпапке `admin` в [[yii\base\Application::controllerNamespace|пространстве имен контроллеров]].
|
||||
Допустимыми символами для префиксов подпаков являются: Английские буквы в нижнем и верхнем регистре, символы, подчеркивания и
|
||||
Допустимыми символами для префиксов подпапок являются: Английские буквы в нижнем и верхнем регистре, символы, подчеркивания и
|
||||
слэш, где слэш используется в качестве разграничителя для многовложенных подпапок (например `panels/admin`).
|
||||
|
||||
|
||||
@ -150,7 +150,7 @@ ID контроллеров также могут содержать префи
|
||||
|
||||
Вы можете сконфигурировать [[yii\base\Application::controllerMap|карту контроллеров]] для того, чтобы преодолеть
|
||||
описанные выше ограничения именования ID контроллеров и названий классов. В основном это очень удобно, когда вы используете
|
||||
сторонние контроллеры, именование которых вы не можете контроллировать.
|
||||
сторонние контроллеры, именование которых вы не можете контролировать.
|
||||
|
||||
Вы можете сконфигурировать [[yii\base\Application::controllerMap|карту контроллеров]] в [настройках приложения](structure-applications.md#application-configurations)
|
||||
следующим образом:
|
||||
@ -279,7 +279,7 @@ public function actions()
|
||||
названия класса действия или [конфигурация](concept-configurations.md). В отличие от встроенных действий, ID отдельных действий могут
|
||||
содержать произвольные символы, до тех пор пока они определены в методе `actions()`.
|
||||
|
||||
Для создания отдельного действия, вы должны унаследоваться от класса [[yii\base\Action]] или его потомков, и реализовать
|
||||
Для создания отдельного действия, вы должны наследоваться от класса [[yii\base\Action]] или его потомков, и реализовать
|
||||
метод `run()` с областью видимости public. Роль метода `run()` аналогична другим методам действий. Например,
|
||||
|
||||
```php
|
||||
@ -327,7 +327,7 @@ public function actionForward()
|
||||
### Параметры действий <a name="action-parameters"></a>
|
||||
|
||||
Методы действий для встроенных действий и методы `run()` для отдельных действий могут принимать параметры,
|
||||
называемые *параметры действий*. Их значения беруться из запросов. Для [[yii\web\Application|Веб приложений]],
|
||||
называемые *параметры действий*. Их значения берутся из запросов. Для [[yii\web\Application|Веб приложений]],
|
||||
значение каждого из параметров действия берется из `$_GET`, используя название параметра в качестве ключа;
|
||||
для [[yii\console\Application|консольных приложений]], они соответствуют аргументам командной строки.
|
||||
|
||||
@ -354,7 +354,7 @@ class PostController extends Controller
|
||||
* `http://hostname/index.php?r=post/view&id=123&version=2`: параметрам `$id` и `$version` будут присвоены
|
||||
значения `'123'` и `'2'` соответственно;
|
||||
* `http://hostname/index.php?r=post/view`: будет брошено исключение [[yii\web\BadRequestHttpException]], т. к.
|
||||
обязательный праметр `$id` не был указан в запросе;
|
||||
обязательный параметр `$id` не был указан в запросе;
|
||||
* `http://hostname/index.php?r=post/view&id[]=123`: будет брошено исключение [[yii\web\BadRequestHttpException]], т. к.
|
||||
параметр `$id` получил неверное значение `['123']`.
|
||||
|
||||
@ -419,7 +419,7 @@ class SiteController extends Controller
|
||||
действия будет отменено;
|
||||
* По-умолчанию, каждый вызов метода `beforeAction()` вызовет событие `beforeAction`, на которое вы можете назначить обработчики.
|
||||
4. Контроллер запускает действие:
|
||||
* Параметры действия будут проанализированы и заполенены из данных запроса.
|
||||
* Параметры действия будут проанализированы и заполнены из данных запроса.
|
||||
5. Контроллер последовательно вызывает методы `afterAction` контроллера, модуля (если контроллер принадлежит модулю) и приложения.
|
||||
* По-умолчанию, каждый вызов метода `afterAction()` вызовет событие `afterAction`, на которое вы можете назначить обработчики.
|
||||
6. Приложение, получив результат выполнения действия, присвоит его объекту [response](runtime-responses.md).
|
||||
|
||||
@ -10,7 +10,7 @@ Yii приложения организованы согласно шаблон
|
||||
Кроме MVC, Yii приложения также имеют следующие сущности:
|
||||
|
||||
* [входные скрипты](structure-entry-scripts.md): это PHP скрипты, которые доступны напрямую конечному пользователю приложения.
|
||||
Они отвественны за запуск и обработку входящего запроса;
|
||||
Они ответственны за запуск и обработку входящего запроса;
|
||||
* [приложения](structure-applications.md): это глобально доступные объекты, которые осуществляют корректную работу различных
|
||||
компонентов приложения и их координацию для обработки запроса;
|
||||
* [компоненты приложения](structure-application-components.md): это объекты, зарегистрированные в приложении и предоставляющие
|
||||
|
||||
@ -198,4 +198,4 @@ public function run()
|
||||
В случае, когда виджет не содержит логики, а содержит только код, отвечающий за вывод разметки, он мало
|
||||
отличается от [представления](structure-views.md). В действительности, единственное его отличие состоит в том, что
|
||||
виджет представляет собой отдельный и удобный для распространения класс, в то время как представление - это
|
||||
обычный PHP скрипт, подходящий для использования только лишь в конретном приложении.
|
||||
обычный PHP скрипт, подходящий для использования только лишь в конкретном приложении.
|
||||
@ -106,7 +106,7 @@ public function rules()
|
||||
- `format`: формат даты/времени, согласно которому должна быть сделана проверка. Чтобы узнать больше о формате
|
||||
строки, пожалуйста, посмотрите [руководство PHP по date_create_from_format()](http://www.php.net/manual/ru/datetime.createfromformat.php)
|
||||
Значением по умолчанию является `'Y-m-d'`.
|
||||
- `timestampAttribute`: имя атрибута, которому этот валидатор может передать UNIX timestamp, конвентированный
|
||||
- `timestampAttribute`: имя атрибута, которому этот валидатор может передать UNIX timestamp, конвертированный
|
||||
из строки даты/времени.
|
||||
|
||||
|
||||
@ -173,7 +173,7 @@ function foo($model, $attribute) {
|
||||
- `allowName`: можно ли передавать в атрибут имя (пример: `John Smith <john.smith@example.com>`). По умолчанию - false.
|
||||
- `checkDNS`, проверяет, существует ли доменное имя для введенного адреса (и A, и MX запись).
|
||||
Учтите, что проверка может закончится неудачей, что может быть вызвано временными проблемами с DNS, даже если
|
||||
email-адрес корректен. По умоланию - false.
|
||||
email-адрес корректен. По умолчанию - false.
|
||||
- `enableIDN`, нужно ли учитывать IDN (многоязычные доменные имена). По умолчанию - false. Учтите, что для использования
|
||||
IDN-валидации вам нужно установить и включить PHP расширение `intl`, иначе будет выброшено исключение.
|
||||
|
||||
@ -240,7 +240,7 @@ function foo($model, $attribute) {
|
||||
допустимы.
|
||||
- `mimeTypes`: список MIME-типов которые допустимы для загрузки. Это может быть или массив, или строка,
|
||||
содержащая MIME-типы файлов, разделенные пробелом или запятой (пример: "image/jpeg, image/png").
|
||||
Имена mime-типов не чувствительны к регистру. По умолачанию - null, что значит, что допустимы все MIME-типы.
|
||||
Имена mime-типов не чувствительны к регистру. По умолчанию - null, что значит, что допустимы все MIME-типы.
|
||||
- `minSize`: минимальный размер файла в байтах, разрешенный для загрузки. По умолчанию - null, что значит, что нет
|
||||
минимального лимита.
|
||||
- `maxSize`: максимальный размер файла в байтах, разрешенный для загрузки. По умолчанию - null, что значит, что нет
|
||||
@ -298,9 +298,9 @@ function foo($model, $attribute) {
|
||||
валидатор и наследует все его свойства. Кроме того, он поддерживает следующие дополнительные свойства, специфичные
|
||||
для валидации изображений:
|
||||
|
||||
- `minWidth`: минимальныя ширина изображения. По умолчанию null, что значит, что нет нижнего лимита.
|
||||
- `minWidth`: минимальная ширина изображения. По умолчанию null, что значит, что нет нижнего лимита.
|
||||
- `maxWidth`: максимальная ширина изображения. По умолчанию null, что значит, что нет верхнего лимита.
|
||||
- `minHeight`: минимальныя высота изображения. По умолчанию null, что значит, что нет нижнего лимита.
|
||||
- `minHeight`: минимальная высота изображения. По умолчанию null, что значит, что нет нижнего лимита.
|
||||
- `maxHeight`: максимальная высота изображения. По умолчанию null, что значит, что нет верхнего лимита.
|
||||
|
||||
|
||||
@ -319,7 +319,7 @@ function foo($model, $attribute) {
|
||||
- `strict`: должно ли сравнение входящего значения со списком значений быть строгим (учитывать тип данных).
|
||||
По умолчанию false.
|
||||
- `not`: должен ли результат проверки быть инвертирован. По умолчанию - false. Если свойство установлено в true,
|
||||
валидатор проверяет, что входящее значение НЕ соответсвует ни одному из значений, указанных в `range`.
|
||||
валидатор проверяет, что входящее значение НЕ соответствует ни одному из значений, указанных в `range`.
|
||||
- `allowArray`: устанавливает, допустимо ли использовать массив в качестве входных данных. Если установлено в true
|
||||
и входящие данные являются массивом, для каждого элемента входящего массива должно быть найдено соответствие в
|
||||
`range`.
|
||||
@ -385,7 +385,7 @@ function foo($model, $attribute) {
|
||||
|
||||
Этот валидатор проверяет, являются ли входящие значения не пустыми.
|
||||
|
||||
- `requiredValue`: желаемое значение, которому должны соответствовать проверямые данные. Если не установлено,
|
||||
- `requiredValue`: желаемое значение, которому должны соответствовать проверяемые данные. Если не установлено,
|
||||
это значит, что данные должны быть не пусты.
|
||||
- `strict`: учитывать или нет соответствие типу данных при валидации (строгое сравнение).
|
||||
Если `requiredValue` не установлено, а это свойство установлено в true, валидатор проверит, что входящее значение
|
||||
|
||||
Reference in New Issue
Block a user