diff --git a/docs/guide-uk/README.md b/docs/guide-uk/README.md index a09125f..ee6f189 100644 --- a/docs/guide-uk/README.md +++ b/docs/guide-uk/README.md @@ -1,5 +1,5 @@ -Повний посібник до 2.0 -====================== +Повний посібник з Yii 2.0 +========================= Даний посібник випущено відповідно до [положень про документацію Yii](http://www.yiiframework.com/doc/terms/). @@ -35,49 +35,49 @@ All Rights Reserved. * [Додатки](structure-applications.md) * [Компоненти додатка](structure-application-components.md) * [Контролери](structure-controllers.md) -* [Моделі](structure-models.md) -* [Представлення](structure-views.md) -* [Модулі](structure-modules.md) -* [Фільтри](structure-filters.md) -* [Віджети](structure-widgets.md) -* [Ресурси](structure-assets.md) -* [Розширення](structure-extensions.md) +* **TBD** [Моделі](structure-models.md) +* **TBD** [Представлення](structure-views.md) +* **TBD** [Модулі](structure-modules.md) +* **TBD** [Фільтри](structure-filters.md) +* **TBD** [Віджети](structure-widgets.md) +* **TBD** [Ресурси](structure-assets.md) +* **TBD** [Розширення](structure-extensions.md) Обробка запитів --------------- -* [Огляд](runtime-overview.md) -* [Bootstrapping](runtime-bootstrapping.md) -* [Маршрутизація та створення URL](runtime-routing.md) -* [Запити](runtime-requests.md) -* [Відповіді](runtime-responses.md) -* [Сесії та кукі](runtime-sessions-cookies.md) -* [Обробка помилок](runtime-handling-errors.md) -* [Логування](runtime-logging.md) +* **TBD** [Огляд](runtime-overview.md) +* **TBD** [Bootstrapping](runtime-bootstrapping.md) +* **TBD** [Маршрутизація та створення URL](runtime-routing.md) +* **TBD** [Запити](runtime-requests.md) +* **TBD** [Відповіді](runtime-responses.md) +* **TBD** [Сесії та кукі](runtime-sessions-cookies.md) +* **TBD** [Обробка помилок](runtime-handling-errors.md) +* **TBD** [Логування](runtime-logging.md) Основні поняття --------------- -* [Компоненти](concept-components.md) -* [Властивості](concept-properties.md) -* [Події](concept-events.md) -* [Поведінки](concept-behaviors.md) -* [Конфігурації](concept-configurations.md) +* **TBD** [Компоненти](concept-components.md) +* **TBD** [Властивості](concept-properties.md) +* **TBD** [Події](concept-events.md) +* **TBD** [Поведінки](concept-behaviors.md) +* **TBD** [Конфігурації](concept-configurations.md) * [Псевдоніми](concept-aliases.md) * [Автозавантаження класів](concept-autoloading.md) -* [Service Locator](concept-service-locator.md) -* [Dependency Injection Container](concept-di-container.md) +* **TBD** [Service Locator](concept-service-locator.md) +* **TBD** [Dependency Injection Container](concept-di-container.md) Робота з базами даних --------------------- -* [Обʼєкти доступу до даних (DAO)](db-dao.md) - Зʼєднання з базою даних, прості запити, транзакції і робота зі схемою -* [Конструктор запитів](db-query-builder.md) - Запити до бази даних через простий шар абстракції -* [Active Record](db-active-record.md) - Отримання обʼєктів AR, робота з ними та визначення звʼязків -* [Міграції](db-migrations.md) - Контроль версій схеми даних при роботі в команді +* **TBD** [Обʼєкти доступу до даних (DAO)](db-dao.md) - Зʼєднання з базою даних, прості запити, транзакції і робота зі схемою +* **TBD** [Конструктор запитів](db-query-builder.md) - Запити до бази даних через простий шар абстракції +* **TBD** [Active Record](db-active-record.md) - Отримання обʼєктів AR, робота з ними та визначення звʼязків +* **TBD** [Міграції](db-migrations.md) - Контроль версій схеми даних при роботі в команді * [Sphinx](https://github.com/yiisoft/yii2-sphinx/blob/master/docs/guide/README.md) * [Redis](https://github.com/yiisoft/yii2-redis/blob/master/docs/guide/README.md) * [MongoDB](https://github.com/yiisoft/yii2-mongodb/blob/master/docs/guide/README.md) @@ -87,91 +87,91 @@ All Rights Reserved. Отримання даних від користувача ------------------------------- -* [Створення форм](input-forms.md) -* [Валідація вводу](input-validation.md) -* [Завантаження файлів](input-file-uploading.md) -* [Збір табличного вводу](input-tabular-input.md) -* [Робота з декількома моделями](input-multiple-models.md) +* **TBD** [Створення форм](input-forms.md) +* **TBD** [Валідація вводу](input-validation.md) +* **TBD** [Завантаження файлів](input-file-uploading.md) +* **TBD** [Збір табличного вводу](input-tabular-input.md) +* **TBD** [Робота з декількома моделями](input-multiple-models.md) Відображення даних ------------------ -* [Форматування даних](output-formatting.md) -* [Посторінкове розбиття](output-pagination.md) -* [Сортування](output-sorting.md) -* [Провайдери даних](output-data-providers.md) -* [Віджети даних](output-data-widgets.md) -* [Робота з клієнтськими скриптами](output-client-scripts.md) -* [Темізація](output-theming.md) +* **TBD** [Форматування даних](output-formatting.md) +* **TBD** [Посторінкове розбиття](output-pagination.md) +* **TBD** [Сортування](output-sorting.md) +* **TBD** [Провайдери даних](output-data-providers.md) +* **TBD** [Віджети даних](output-data-widgets.md) +* **TBD** [Робота з клієнтськими скриптами](output-client-scripts.md) +* **TBD** [Темізація](output-theming.md) Безпека ------- -* [Аутентифікація](security-authentication.md) -* [Авторизація](security-authorization.md) -* [Робота з паролями](security-passwords.md) +* **TBD** [Аутентифікація](security-authentication.md) +* **TBD** [Авторизація](security-authorization.md) +* **TBD** [Робота з паролями](security-passwords.md) * [Клієнти авторизації](https://github.com/yiisoft/yii2-authclient/blob/master/docs/guide/README.md) -* [Кращі практики](security-best-practices.md) +* **TBD** [Кращі практики](security-best-practices.md) Кешування --------- -* [Огляд](caching-overview.md) -* [Кешування даних](caching-data.md) +* **TBD** [Огляд](caching-overview.md) +* **TBD** [Кешування даних](caching-data.md) * [Кешування фрагментів](caching-fragment.md) -* [Кешування сторінок](caching-page.md) -* [HTTP кешування](caching-http.md) +* **TBD** [Кешування сторінок](caching-page.md) +* **TBD** [HTTP кешування](caching-http.md) RESTful веб-сервіси ------------------- -* [Швидкий старт](rest-quick-start.md) -* [Ресурси](rest-resources.md) -* [Контролери](rest-controllers.md) -* [Маршрутизація](rest-routing.md) -* [Форматування відповіді](rest-response-formatting.md) -* [Аутентифікація](rest-authentication.md) -* [Обмеження частоти запитів](rest-rate-limiting.md) -* [Версіонування](rest-versioning.md) -* [Обробка помилок](rest-error-handling.md) +* **TBD** [Швидкий старт](rest-quick-start.md) +* **TBD** [Ресурси](rest-resources.md) +* **TBD** [Контролери](rest-controllers.md) +* **TBD** [Маршрутизація](rest-routing.md) +* **TBD** [Форматування відповіді](rest-response-formatting.md) +* **TBD** [Аутентифікація](rest-authentication.md) +* **TBD** [Обмеження частоти запитів](rest-rate-limiting.md) +* **TBD** [Версіонування](rest-versioning.md) +* **TBD** [Обробка помилок](rest-error-handling.md) Інструменти розробника ---------------------- -* [Відладочна панель та відладчик](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide/README.md) -* [Генерація коду з Gii](https://github.com/yiisoft/yii2-gii/blob/master/docs/guide/README.md) -* **TBD** [Генератор документації API](tool-api-doc.md) +* **TBD** [Відладочна панель та відладчик](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide-uk/README.md) +* **TBD** [Генерація коду з Gii](https://github.com/yiisoft/yii2-gii/blob/master/docs/guide-uk/README.md) +* [Генератор документації API (en)](https://github.com/yiisoft/yii2-apidoc) Тестування ---------- -* [Огляд](test-overview.md) -* [Налаштування середовища тестування](test-environment-setup.md) -* [Модульні тести](test-unit.md) -* [Функціональні тести](test-functional.md) -* [Приймальні тести](test-acceptance.md) -* [Фікстури](test-fixtures.md) +* **TBD** [Огляд](test-overview.md) +* **TBD** [Налаштування середовища тестування](test-environment-setup.md) +* **TBD** [Модульні тести](test-unit.md) +* **TBD** [Функціональні тести](test-functional.md) +* **TBD** [Приймальні тести](test-acceptance.md) +* **TBD** [Фікстури](test-fixtures.md) Спеціальні теми --------------- -* [Розширений шаблон додатка](tutorial-advanced-app.md) -* [Створення додатка з нуля](tutorial-start-from-scratch.md) -* [Консольні команди](tutorial-console.md) -* [Основні валідатори](tutorial-core-validators.md) -* [Інтернаціонализація](tutorial-i18n.md) -* [Робота з поштою](tutorial-mailing.md) -* [Вдосконалення продуктивності](tutorial-performance-tuning.md) -* [Робота на shared хостингу](tutorial-shared-hosting.md) -* [Шаблонізатори](tutorial-template-engines.md) -* [Робота із стороннім кодом](tutorial-yii-integration.md) +* **TBD** [Розширений шаблон додатка](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide-uk/README.md) +* **TBD** [Створення додатка з нуля](tutorial-start-from-scratch.md) +* **TBD** [Консольні команди](tutorial-console.md) +* **TBD** [Основні валідатори](tutorial-core-validators.md) +* **TBD** [Інтернаціонализація](tutorial-i18n.md) +* **TBD** [Робота з поштою](tutorial-mailing.md) +* **TBD** [Вдосконалення продуктивності](tutorial-performance-tuning.md) +* **TBD** [Робота на shared хостингу](tutorial-shared-hosting.md) +* **TBD** [Шаблонізатори](tutorial-template-engines.md) +* **TBD** [Робота із стороннім кодом](tutorial-yii-integration.md) Віджети @@ -185,8 +185,8 @@ RESTful веб-сервіси * Menu: **TBD** link to demo page * LinkPager: **TBD** link to demo page * LinkSorter: **TBD** link to demo page -* [Віджети Bootstrap](https://github.com/yiisoft/yii2-bootstrap/blob/master/docs/guide/README.md) -* [Віджети jQuery UI](https://github.com/yiisoft/yii2-jui/blob/master/docs/guide/README.md) +* [Віджети Bootstrap](https://github.com/yiisoft/yii2-bootstrap/blob/master/docs/guide-uk/README.md) +* [Віджети jQuery UI](https://github.com/yiisoft/yii2-jui/blob/master/docs/guide-uk/README.md) Хелпери diff --git a/docs/guide-uk/intro-yii.md b/docs/guide-uk/intro-yii.md index 471582e..ffe736a 100644 --- a/docs/guide-uk/intro-yii.md +++ b/docs/guide-uk/intro-yii.md @@ -1,17 +1,17 @@ Що таке Yii? ============ -Yii – це високопродуктивний компонентний PHP фреймворк, призначений для швидкої розробки сучасних веб додатків. +Yii – це високопродуктивний компонентний PHP фреймворк, призначений для швидкої розробки сучасних веб-додатків. Слово Yii (вимовляється як `Йі` `[ji:]`) в китайській мові означає "простий та еволюційний". -Також Yii може розшифровуватись акронім **Yes It Is**! +Також Yii може розшифровуватись як акронім для **Yes It Is**! Для яких завдань найбільше підходить Yii? ----------------------------------------- -Yii – це універсальний фреймворк і може бути задіяний у всіх типах веб додатків, що використовують PHP. +Yii – це універсальний фреймворк і може бути задіяний у всіх типах веб-додатків, що використовують PHP. Завдяки його компонентній структурі і відмінній підтримці кешування, фреймворк особливо підходить для розробки -таких великих проектів як портали, форуми, CMS, магазини або RESTful-додатки. +таких великих проектів як портали, форуми, системи керування контентом (CMS), інтернет-магазини або RESTful-додатки. Порівняння Yii з іншими фреймворками @@ -19,27 +19,27 @@ Yii – це універсальний фреймворк і може бути Якщо ви вже знайомі з іншими фреймворками, вам напевно буде цікаво порівняти їх із Yii: -- Як і багато інших PHP фреймворків, для організації коду Yii використовує модель MVC (Model-View-Controller) та - сприяє у організації коду на цій моделі. -- Yii дотримується філософії простого й елегантного коду. Yii ніколи не буде намагатись переускладнювати дизайн - тільки заради слідування будь-яким шаблонами проектування. +- Як і багато інших PHP фреймворків, Yii втілює шаблон проектування MVC (Model-View-Controller) та + сприяє організації коду відповідно до вимог шаблону. +- Yii дотримується філософії простого й елегантного коду. Yii ніколи не буде намагатись пере-ускладнювати дизайн + тільки заради слідування будь-яким шаблонам проектування. - Yii є full-stack фреймворком і включає в себе перевірені можливості, які добре себе зарекомендували: конструктори запитів та ActiveRecord для реляційних та NoSQL баз даних, підтримка REST API, багаторівневе кешування та інші. - Yii надзвичайно розширюваний. Ви можете налаштувати або замінити практично будь-яку частину основного коду. - Використовуючи архітектуру розширень - досить легко використовувати або створювати публічні розширення. + Завдяки надійній архітектурі розширень Yii, досить легко використовувати або розробляти поширюванні розширення. - Висока продуктивність завжди є головною ціллю Yii. -Yii — не проект однієї людини. Він підтримується і розвивається [сильною командою][] і великою спільнотою розробників, -які їй допомагають. Команда розробників Yii фреймворка стежать за тенденціями веб розробки і розвитком інших проектів. -Найбільш значимі можливості і кращі практики регулярно впроваджуються у фреймворк у вигляді простих і елегантних інтерфейсів. +Yii — не проект однієї людини. Він підтримується і розвивається [сильною командою][about_yii] і великою спільнотою розробників, +які їй допомагають. Команда розробників Yii фреймворка стежать за тенденціями веб-розробки і розвитком інших проектів. +Найбільш значимі можливості та кращі практики регулярно впроваджуються у фреймворк у вигляді простих й елегантних інтерфейсів. -[сильна команда розробників]: http://www.yiiframework.com/about/ +[about_yii]: http://www.yiiframework.com/about/ Версії Yii ---------- -На даний момент існує дві основні гілки Yii: 1.1 та 2.0. Гілка 1.1 є попереднім поколінням і знаходиться у стані підтримки. +На даний момент існує дві основні версії Yii: 1.1 та 2.0. Версія 1.1 є попереднім поколінням і знаходиться у стані підтримки. Версія 2.0 - це повністю переписаний Yii, що використовує останні технології і протоколи, такі як Composer, PSR, простори імен, типажі (traits) і багато іншого. 2.0 - поточне покоління фреймворка. На цій версії будуть зосереджені основні зусилля кілька наступних років. Даний посібник призначений в основному для версії 2.0. diff --git a/docs/internals-uk/automation.md b/docs/internals-uk/automation.md new file mode 100644 index 0000000..73bcbb0 --- /dev/null +++ b/docs/internals-uk/automation.md @@ -0,0 +1,15 @@ +Автоматизація +============= + +Є кілька задач, які можна автоматизувати працюючи з Yii: + +- Створення мапи класів `classes.php` у кореневій директорії фреймворку. + Виконати `./build/build classmap` для її створення. + +- Створення анотацій `@property` у файлах класів, що описують властивості представлені функціями для отримання (getters) та призначення (setters) властивостей. + Виконати `./build/build php-doc/property` для їх оновлення. + +- Виправлення стилю кодування та інших невеличких проблем у коментарях phpdoc. + Виконати `./build/build php-doc/fix` для виправлення. + Перед тим як створювати коміт, необхідно перевіряти зміни, оскільки команда не є досконалою й можливі не бажані зміни. + Можна використовувати `git add -p` для перегляду змін. diff --git a/docs/internals-uk/versions.md b/docs/internals-uk/versions.md index 9e2df42..d482d71 100644 --- a/docs/internals-uk/versions.md +++ b/docs/internals-uk/versions.md @@ -1,36 +1,49 @@ -Yii version numbering -===================== +Версіонування Yii +================= -Релізи ------- +Цей документ описує політику призначення версій Yii. Поточна стратегія призначення версій +базується на [ferver](https://github.com/jonathanong/ferver), це за думкою розробників є більш практичним +та розумним рішенням, ніж використання [semver](http://semver.org/) (див. [#7408](https://github.com/yiisoft/yii2/issues/7408) для довідки). -A.B.C +У колі головних розробників неодноразово підкреслювалась важливість зберігати зворотну сумісність релізів 2.0.x на 100%. +Але це ідеалістичний план. Стаття про ferver доводить, що досягнути цього на практиці дуже важко, +не зважаючи на те, використовується semver чи ні. -A = Для Yii2 це завжди 2. -B = Основна версія. Не-BC (`BC`, від англ. Backward compatibility - зворотна сумісність) зміни із інструкціями щодо оновлення. -C = BC зміни та доповнення. +Загалом, політика призначення версій наступна: -Реліз-кандидати ---------------- +## Патч-релізи `2.x.Y` -A.B.C-rc -A.B.C-rc2 +Патч-релізи, які мають бути на 100% зворотно сумісними. В ідеалі, вони містять лише виправлення помилок, що зменшує +можливість порушення зворотної сумісності. На практиці, релізи починаючи з 2.0.x стали частішими та зазвичай містять невеликі доповнення, +що дає можливість користувачам почати використовувати ці зміни раніше. -Це коли ми хочемо зробити реліз-кандидат. Номер RC збільшується доки ми не отримаємо стабільний реліз без будь-яких -критичних помилок і звітів про звортню несумісність. +* Підтримуються у гілці `2.x` +* Переважно містять виправлення помилок та невеликі покращення +* Відсутні великі зміни та доповнення +* 100%-ва зворотна сумісність, що гарантує оновлення без проблем. Виключенням можуть бути лише проблеми безпеки, які потребують порушення зворотної сумісності +* Цикл релізу близько 1-2 місяців +* Не має необхідності у пре-релізах (альфа, бета, реліз-кандидат) +* Регулярно об'єднуються з головною (майстер) гілкою (щонайменш раз у тиждень вручну) -Альфи та бети -------------- -A.B.C-alpha -A.B.C-alpha2 +## Молодші (майнор) релізи `2.X.0` -Альфи це є нестабільні версії, де значні помилки можуть і, ймовірно, дійсно будуть. -API ще фіксується і може бути суттєво змінений. -`alpha2` і т.д. можуть або не можуть бути випущені на основі загальної стабільності коду та API. +Зворотно несумісні релізи, що містять великі доповнення та зміни, які можуть порушувати зворотну сумісність. Оновлення з ранніх версій +може бути не простим, але у наявності повна інструкція по оновленню або навіть скрипт. -A.B.C-beta -A.B.C-beta2 +* Розроблюються у головній (майстер) гілці +* Переважно містять нові доповнення та виправлення помилок +* Містять невеликі доповнення та виправлення помилок з патч-релізів +* Можуть мати зворотно несумісні зміни, які записуються у файл `UPGRADE-2.X.md` +* Цикл релізу близько 6-8 місяців +* Необхідні пре-релізи: `2.X.0-alpha`, `2.X.0-beta`, `2.X.0-rc` +* Потребують маркетингових зусиль та публікування у головних новинах -Бета більш-менш стабільна із меншою кількістю помилок та меншою нестабільністю API, ніж альфа. -Там все ще можуть бути зміни в API, але на це повинна бути вагома причина. + +## Головні (мажор) релізи `X.0.0` + +Це наче 2.0 після 1.0. Такий перехід, вірогідніше, буде не частіше ніж кожні 3-5 років, у зв'язку з просуванням сторонніх технологій +(наприклад, оновлення PHP з 5.0 до 5.4). + +> Примітка: Офіційні розширення використовують таку ж саму політику призначення версій але можуть публікуватись незалежно від +фреймворку, тобто номера версій фреймворку та розширення не повинні обов'язково збігатсь.