Commit 87c30fb9 by prozacUa

Update start-workflow.md

parent be2b6e17
...@@ -17,69 +17,62 @@ ...@@ -17,69 +17,62 @@
Эти страницы используют смежный хидер (шапка сайта) и футер (подвал). В "шапке" находится главное меню, при помощи которого пользователь перемещается по сайту. В "подвале" - копирайт и общая информация. Эти страницы используют смежный хидер (шапка сайта) и футер (подвал). В "шапке" находится главное меню, при помощи которого пользователь перемещается по сайту. В "подвале" - копирайт и общая информация.
В самой верхней части окна Вы будете видеть системные сообщения Yii - журнал, отладочная информация, сообщения об ошибках, запросы к базе данных и т.п. Выводом данной информации руководит [встроенный отладчик](tool-debugger.md), он записывает и отображает информацию о ходе выполнения приложения. В самой верхней части окна Вы будете видеть системные сообщения Yii - журнал, отладочную информацию, сообщения об ошибках, запросы к базе данных и т.п. Выводом данной информации руководит [встроенный отладчик](tool-debugger.md), он записывает и отображает информацию о ходе выполнения приложения.
Структура приложения Yii <a name="application-structure"></a> Структура приложения Yii <a name="application-structure"></a>
--------------------- ---------------------
Ниже приведен список основных директорий и файлов вашего приложения The most important directories and files in your application are (assuming the application's root directory is `basic`): Ниже приведен список основных директорий и файлов вашего приложения (считаем, что приложение установлено в директорию `basic`):
``` ```
basic/ application base path basic/ корневой каталог приложения
composer.json used by Composer, describes package information composer.json используется Composer'ом, содержит описание приложения
config/ contains application and other configurations config/ конфигурационные файлы
console.php the console application configuration console.php конфигурация консольного приложения
web.php the Web application configuration web.php конфигурация Web приложения
commands/ contains console command classes commands/ содержит классы консольных команд
controllers/ contains controller classes controllers/ контроллеры
models/ contains model classes models/ модели
runtime/ contains files generated by Yii during runtime, such as logs and cache files runtime/ файлы, которые генерирует Yii во время выполнения приложения (логи, кеш и т.п.)
vendor/ contains the installed Composer packages, including the Yii framework itself vendor/ содержит пакеты Composer'а и, собственно, сам фреймворк Yii
views/ contains view files views/ виды приложения
web/ application Web root, contains Web accessible files web/ корневая директория Web приложения. Содержит файлы, доступные через Web
assets/ contains published asset files (js, css) by Yii assets/ скрипты, используемые приложением (js, css)
index.php the entry (or bootstrap) script for the application index.php точка входа в приложение Yii. С него начинается выполнение приложения
yii the Yii console command execution script yii скрипт выполнения консольного приложения Yii
``` ```
In general, the files in the application can be divided into two types: those under `basic/web` and those В целом, приложение Yii можно разделить на две категории файлов: расположенные в `basic/web` и расположенные в других директориях. Первая категория доступна через Web (например, браузером), вторая не доступна из вне и не должна быть доступной т.к. содержит служебную информацию.
under other directories. The former can be directly accessed from via HTTP (i.e., in a browser), while the latter can not and should not be.
Yii implements the [model-view-controller (MVC)](http://wikipedia.org/wiki/Model-view-controller) design pattern, В Yii реализована схема проектирования [модель-вид-контроллер (MVC)](http://http://ru.wikipedia.org/wiki/Model-View-Controller),
which is reflected in the above directory organization. The `models` directory contains all [model classes](structure-models.md), которая соответствует структуре директорий приложения. В директории `models` находятся [Модели](structure-models.md),
the `views` directory contains all [view scripts](structure-views.md), and the `controllers` directory contains в `views` расположены [Виды](structure-views.md), а в каталоге `controllers` все [Контроллеры](structure-controllers.md) приложения.
all [controller classes](structure-controllers.md).
The following diagram shows the static structure of an application. Диаграмма ниже демонстрирует внутреннее устройство приложения.
![Static Structure of Application](images/application-structure.png) ![внутреннее устройство приложения](images/application-structure.png)
Each application has an entry script `web/index.php` which is the only Web accessible PHP script in the application. В каждом приложении Yii есть точка входа в приложение, `web/index.php` это единственный PHP-скрипт доступный для выполнения из Web. Он принимает входящий запрос и создает экземпляр [приложения](structure-applications.md).
The entry script takes an incoming request and creates an [application](structure-applications.md) instance to handle it. [Приложение](structure-applications.md) обрабатывает входящие запросы при помощи [компонентов](concept-components.md) и отправляет запрос контроллеру. [Виджеты](structure-widgets.md) используются в [Видах](structure-views.md) для построения динамических интерфейсов сайта.
The [application](structure-applications.md) resolves the request with the help of its [components](concept-components.md),
and dispatches the request to the MVC elements. [Widgets](structure-widgets.md) are used in the [views](structure-views.md)
to help build complex and dynamic user interface elements.
Request Lifecycle <a name="request-lifecycle"></a> Жизненный цикл пользовательского запроса <a name="request-lifecycle"></a>
----------------- -----------------
The following diagram shows how an application handles a request. На диаграмме показано как приложение обрабатывает запрос.
![Request Lifecycle](images/application-lifecycle.png) ![Жизненный цикл запроса](images/application-lifecycle.png)
1. A user makes a request to the [entry script](structure-entry-scripts.md) `web/index.php`. 1. Пользователь обращается к [точке входа](structure-entry-scripts.md) `web/index.php`.
2. The entry script loads the application [configuration](concept-configurations.md) and creates 2. Скрипт загружает конфигурацию [configuration](concept-configurations.md) и создает экземпляр [приложения](structure-applications.md) для дальнейшей обработки запроса.
an [application](structure-applications.md) instance to handle the request. 3. Приложение определяет [маршрут](runtime-routing.md) запроса при помощи компонента приложения [запрос](runtime-requests.md).
3. The application resolves the requested [route](runtime-routing.md) with the help of 4. Приложение создает экземпляр [контроллера](structure-controllers.md) для выполнения запроса.
the [request](runtime-requests.md) application component. 5. Контроллер, в свою очередь, создает [действие](structure-controllers.md) и накладывает на него фильтры.
4. The application creates a [controller](structure-controllers.md) instance to handle the request. 6. Если хотя бы один фильтр дает сбой выполнение приложения останавливается.
5. The controller creates an [action](structure-controllers.md) instance and performs the filters for the action. 7. Если все фильтры пройдены - приложение выполняется.
6. If any filter fails, the action is cancelled. 8. Действие загружает модель данных. Вероятнее всего из базы данных.
7. If all filters pass, the action is executed. 9. Действие генерирует вид, отображая в нем данные (в т.ч. и полученные из модели).
8. The action loads a data model, possibly from a database. 10. Сгенерированный вид приложения передается как компонент [ответ](runtime-responses.md).
9. The action renders a view, providing it with the data model. 11. Компонент "ответ" отправляет готовый результат работы приложения браузеру пользователя.
10. The rendered result is returned to the [response](runtime-responses.md) application component.
11. The response component sends the rendered result to the user's browser.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment