Процесс разработки ================== Рассказав о фундаментальных концепциях Yii, мы опишем общий процесс создания веб-приложений с использованием фреймворка. Процесс подразумевает, что анализ требований уже проведён, как и анализ устройства приложения. 1. Создание структуры директорий. Утилита `yiic`, описанная в разделе «[cоздание первого приложения](/doc/guide/quickstart.first-app)», может быть использована для того, чтобы ускорить этот процесс. 2. Конфигурирование [приложения](/doc/guide/basics.application) путём модификации файла конфигурации приложения. Этот этап также может потребовать написания некоторых компонентов приложения (например, компонента управления пользователями). 3. Создание класса [модели](/doc/guide/basics.model) для каждого используемого типа данных. Для автоматической генерации всех необходимых моделей [Active Record](/doc/guide/database.ar) можно воспользоваться инструментом `Gii`, описанным в разделах «[создание первого приложения](/doc/guide/quickstart.first-app#implementing-crud-operations)» и «[автоматическая генерация кода](/doc/guide/topics.gii)». 4. Создание класса [контроллера](/doc/guide/basics.controller) для каждого типа пользовательского запроса. Классификация пользовательских запросов зависит от текущих требований. В общем случае, если класс модели используется пользователем, должен существовать соответствующий класс контроллера. Утилита `Gii` также может автоматизировать этот процесс. 5. Создание [действий](/doc/guide/basics.controller#action) и [представлений](/doc/guide/basics.view). Именно здесь и происходит основная работа. 6. Конфигурирование необходимых [фильтров](/doc/guide/basics.controller#filter) для действий в классах контроллеров. 7. Создание [тем оформления](/doc/guide/topics.theming) при необходимости. 8. Перевод сообщений в случае, когда требуется [локализация](/doc/guide/topics.i18n) приложения. 9. Выявление данных и представлений, которые могут быть закэшированы, и применение соответствующих техник [кэширования](/doc/guide/caching.overview). 10. [Настройка производительности](/doc/guide/topics.performance) и развёртывание. Для каждого из представленых этапов может потребоваться создание и применение тестов.