Процес розробки
===============

Розповівши фундаментальні концепції Yii, ми опишемо загальний процес створення веб-додатків з використанням
фреймворку. Процес має на увазі, що аналіз вимог вже проведений, так само, як і необхідний аналіз влаштування
додатку.

   1. Створення структури директорій. Утиліта `yiic`, описана у розділі
«[створення першого додатку](/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) та розгортання.

Для кожного із представлених етапів може знадобитися створення та застосування тестів.