Browse Source

docs/*uk Update Ukrainian translation

[ci skip]

close #8287
tags/2.0.6
Vadym Chenin 10 years ago committed by Carsten Brandt
parent
commit
790bb942f0
  1. 16
      docs/guide-uk/README.md
  2. 143
      docs/guide-uk/intro-upgrade-from-v1.md
  3. 6
      docs/guide-uk/intro-yii.md
  4. 4
      docs/internals-uk/automation.md
  5. 4
      docs/internals-uk/getting-started.md
  6. 233
      docs/internals-uk/git-workflow.md
  7. 22
      docs/internals-uk/report-an-issue.md
  8. 146
      docs/internals-uk/translation-workflow.md
  9. 12
      docs/internals-uk/versions.md
  10. 52
      docs/internals-uk/view-code-style.md
  11. 1
      docs/internals/translation-teams.md

16
docs/guide-uk/README.md

@ -54,7 +54,7 @@ All Rights Reserved.
* **TBD** [Відповіді](runtime-responses.md)
* **TBD** [Сесії та кукі](runtime-sessions-cookies.md)
* **TBD** [Обробка помилок](runtime-handling-errors.md)
* **TBD** [Логування](runtime-logging.md)
* **TBD** [Журналювання](runtime-logging.md)
Основні поняття
@ -88,7 +88,7 @@ All Rights Reserved.
-------------------------------
* **TBD** [Створення форм](input-forms.md)
* **TBD** [Валідація вводу](input-validation.md)
* **TBD** [Перевірка вводу](input-validation.md)
* **TBD** [Завантаження файлів](input-file-uploading.md)
* **TBD** [Збір табличного вводу](input-tabular-input.md)
* **TBD** [Робота з декількома моделями](input-multiple-models.md)
@ -143,7 +143,7 @@ RESTful веб-сервіси
Інструменти розробника
----------------------
* **TBD** [Відладочна панель та відладчик](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide-uk/README.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)
@ -166,7 +166,7 @@ RESTful веб-сервіси
* **TBD** [Створення додатка з нуля](tutorial-start-from-scratch.md)
* **TBD** [Консольні команди](tutorial-console.md)
* **TBD** [Основні валідатори](tutorial-core-validators.md)
* **TBD** [Інтернаціонализація](tutorial-i18n.md)
* **TBD** [Інтернаціоналізація](tutorial-i18n.md)
* **TBD** [Робота з поштою](tutorial-mailing.md)
* **TBD** [Вдосконалення продуктивності](tutorial-performance-tuning.md)
* **TBD** [Робота на shared хостингу](tutorial-shared-hosting.md)
@ -192,7 +192,7 @@ RESTful веб-сервіси
Хелпери
-------
* [Огляд](helper-overview.md)
* [ArrayHelper](helper-array.md)
* [Html](helper-html.md)
* [Url](helper-url.md)
* **TBD** [Огляд хелперів](helper-overview.md)
* **TBD** [ArrayHelper](helper-array.md)
* **TBD** [Html](helper-html.md)
* **TBD** [Url](helper-url.md)

143
docs/guide-uk/intro-upgrade-from-v1.md

@ -8,16 +8,16 @@
Якщо раніше ви не використовували Yii 1.1, ви можете пропустити цей розділ і перейти до розділу
"[Встановлення Yii](start-installation.md)".
Також врахуйте, що Yii 2.0 включає більше нового функціоналу, ніж той, що буде описано тут. Наполегливо рекомендується,
що ви прочитаєте весь посібник, щоб дізнатися який функціонал було додано. Можливо, що необхідний функціонал,
який ви до цього розробляли самі, тепер є частиною фреймворка.
Також врахуйте, що Yii 2.0 надає більше нового функціоналу, ніж той, що буде описано тут. Наполегливо рекомендується
прочитати посібник повністю, щоб дізнатися весь доступний функціонал. Можливо, що необхідний функціонал,
який ви до цього розробляли самі, тепер є частиною фреймворку.
Встановлення
------------
Yii 2.0 повністю заснований на [Composer](https://getcomposer.org/), який де факто є менеджером залежностей для PHP.
Установка фреймворка, також як і розширень, здійснюється через Composer. Більш детальні відомості по встановленню Yii 2.0
Yii 2.0 використовує [Composer](https://getcomposer.org/), який де-факто є менеджером пакунків для PHP.
Встановлення фреймворка, також як і розширень, здійснюється через Composer. Більш детальні відомості по встановленню Yii 2.0
приведені в розділі [Встановлення Yii](start-installation.md). Відомості про те, як створювати розширення для Yii 2.0
або адаптувати вже наявні розширення для версії 1.1 під версію 2.0, наведені в розділі
[Створення розширень](structure-extensions.md#creating-extensions).
@ -39,17 +39,17 @@ Yii 2.0 використовує PHP 5.4 або вище, який включа
- [Пізнє статичне звʼязування (LSB)](http://php.net/manual/en/language.oop5.late-static-bindings.php);
- [Класи для дати та часу](http://php.net/manual/en/book.datetime.php);
- [Трейти](http://php.net/manual/en/language.oop5.traits.php);
- [Інтернаціонализація (Intl)](http://php.net/manual/en/book.intl.php); Yii 2.0 використовує розширення PHP `intl`
- [Інтернаціонализація (intl)](http://php.net/manual/en/book.intl.php); Yii 2.0 використовує розширення PHP `intl`
для різного функціоналу інтернаціоналізації.
Простори імен
-------------
Одним з основних змін в Yii 2.0 є використання просторів імен. Майже кожен клас фреймворку знаходиться у просторі імен,
наприклад, `yii\web\Request`. Префікс "С" більше не використовується в іменах класів. Угода іменування відповідає
структурі каталога, в якій розташовується клас. Наприклад, `yii\web\Request` означає, що відповідний клас знаходиться
у файлі `web/Request.php` в каталогу Yii фреймворка. (Завдяки завантажувачу класів Yii, ви можете використовувати
Однією з основних змін в Yii 2.0 є використання просторів імен. Майже кожен клас фреймворку знаходиться у просторі імен,
наприклад, `yii\web\Request`. Префікс "С" більше не використовується в іменах класів. Схема іменування
зараз відповідає структурі директорій. Наприклад, `yii\web\Request` означає, що відповідний клас знаходиться
у файлі `web/Request.php` в директорії фреймворка. (Завдяки завантажувачу класів Yii, ви можете використовувати
будь-який клас фреймворку без необхідності безпосередньо підключати його).
@ -57,8 +57,8 @@ Yii 2.0 використовує PHP 5.4 або вище, який включа
-------------------
В Yii 2.0 клас `CComponent` із версії 1.1 був розділений на два класи: [[yii\base\Object]] і [[yii\base\Component]].
Клас [[yii\base\Object|Object]] є простим базовим класом, який дозволяє використовувати
[геттери та сеттери](concept-properties.md) для властивостей. Клас [[yii\base\Component|Component]] наслідується
Клас [[yii\base\Object|Object]] є простим базовим класом, який дозволяє керувати [властивостями обʼєкта](concept-properties.md)
за допомогою геттерів та сеттерів. Клас [[yii\base\Component|Component]] наслідується
від класа [[yii\base\Object|Object]] та підтримує [події](concept-events.md) та [поведінки](concept-behaviors.md).
Якщо вашому класу не потрібно використовувати функціонал подій та поведінок, ви можете використати
@ -95,7 +95,7 @@ class MyClass extends \yii\base\Object
ключ-значення для ініціалізації властивостей обʼєкта. Ви можете перевизначити метод [[yii\base\Object::init()|init()]]
для ініціалізації обʼєкту після того, як до нього була застосована конфігурація.
Слідуючи цій угоді, ви зможете створювати і конфігурувати нові обʼєкти за допомогою масиву конфігурації:
Дотримуючись цієї угоди, ви зможете створювати і конфігурувати нові обʼєкти за допомогою масиву конфігурації:
```php
$object = Yii::createObject([
@ -105,14 +105,14 @@ $object = Yii::createObject([
], [$param1, $param2]);
```
Більш детальна інформація про конфігурацію представлена у розділі [Конфігурації обʼєктів](concept-configurations.md).
Більш детальна інформація про конфігурацію представлена у розділі [Конфігурації](concept-configurations.md).
Події
-----
В Yii1, події створювалися за допомогою оголошення методу `on` (наприклад, `onBeforeSave`).
В Yii2 ви можете тепер використовувати будь-яке імʼя події. Ви ініціюєте подію за допомогою виклику методу
В Yii 1, події створювалися за допомогою оголошення методу `on` (наприклад, `onBeforeSave`).
В Yii 2 ви можете тепер використовувати будь-яке імʼя події. Ви ініціюєте подію за допомогою виклику методу
[[yii\base\Component::trigger()|trigger()]].
```php
@ -124,44 +124,43 @@ $component->trigger($eventName, $event);
```php
$component->on($eventName, $handler);
// To detach the handler, use:
// прибрати обробник:
// $component->off($eventName, $handler);
```
Є також і інші покращення у функціоналі подій. Більш детальна інформація про конфігурація представлена у розділі
[Події](concept-events.md).
Є також інші покращення у функціоналі подій. Більш детальна інформація представлена у розділі [Події](concept-events.md).
Псевдоніми шляху
----------------
Yii 2.0 розширює спосіб використання псевдонімів шляху як для файлів і каталогів, так і для URL.
Yii 2.0 розширює спосіб використання псевдонімів шляху як для файлів та директорій, так і для URL.
У Yii 2.0 тепер також потрібно, щоб імʼя псевдоніма починалося із символу `@`, для розмежування псевдонімів від
звичайних шляхів файлів/каталогів і URL. Наприклад, псевдонім `@yii` відповідає каталогу встановлення Yii.
Псевдоніми шляху використовуються в багатьох місцях коду Yii. Наприклад, [[yii\caching\FileCache::cachePath]]
може використовувати як псевдонім шляху, так і звичайний шлях до каталогу.
звичайних шляхів файлів/директорій і URL. Наприклад, псевдонім `@yii` відповідає директорії встановлення Yii.
Псевдоніми шляху підтримуються в багатьох місцях коду Yii. Наприклад, [[yii\caching\FileCache::cachePath]]
може мати значення як псевдоніму шляху, так і звичайного шляху до директорії.
Псевдоніми шляху тісно повʼязані з простором імен класів. Рекомендується, що ви визначите псевдонім шляху
Псевдоніми шляху тісно повʼязані з простором імен класів. Рекомендується призначити псевдонім шляху
для кожного базового простору імен, таким чином завантажувач класів Yii може використовуватися без будь-якої
додаткової конфігурації. Наприклад, `@yii` відповідає каталогу встановлення Yii, тому клас `yii\webRequest`
може бути завантажений. Якщо ви використовуєте сторонні бібліотеки, такі як Zend Framework, ви можете також визначити
псевдонім шляху `@Zend`, який відповідає каталогу встановлення фреймворка. Одного разу зробивши це - Yii буде
додаткової конфігурації. Наприклад, оскільки `@yii` посилається на директорію де встановленно Yii, клас `yii\web\Request`
може бути завантажений автоматично. Якщо ви використовуєте сторонні бібліотеки, такі як Zend Framework, ви можете також визначити
псевдонім шляху `@Zend`, який відповідає директорії встановлення цього фреймворка. Після чого Yii буде
здатний автоматично завантажувати будь-який клас Zend Framework.
Більш детальна інформація про конфігурації представлена у розділі [Псевдонімів](concept-aliases.md).
Більш детальна інформація про псевдоніми шляху представлена у розділі [Псевдоніми](concept-aliases.md).
Представлення
-------------
Однією із основних змін в Yii2 є те, що спеціальна змінна `$this` у представленні більше не відповідає
поточному контролеру або віджету. Замість цього, `$this` тепер відповідає обʼєкту *представлення*, нової можливості,
поточному контролеру або віджету. Замість цього, `$this` тепер відповідає обʼєкту *представлення*, новій можливості,
яка була введена у версії 2.0. Обʼєкт представлення має тип [[yii\web\View]], який являє собою частину *представлення*
у шаблоні проектування MVC. Якщо ви хочете отримати доступ до контролера або віджету, то використовуйте вираз `$this->context`.
у шаблоні проектування Модель-Представления-Контролер (MVC). Якщо ви хочете отримати доступ до контролера або віджету, то використовуйте вираз `$this->context`.
Для рендеринга часткових представлень тепер використовується метод `$this->render()`, а не `$this->renderPartial()`.
Результат виклику методу `render` тепер повинен бути виведений безпосередньо, так як `render` повертає результат
рендеринга, а не відображає його одразу. Наприклад,
Для формування часткових представлень тепер використовується метод `$this->render()`, а не `$this->renderPartial()`.
Результат виклику методу `render` тепер повинен бути виведений безпосередньо, так як `render` повертає результат,
а не відображає його одразу. Наприклад,
```php
echo $this->render('_item', ['item' => $item]);
@ -169,7 +168,7 @@ echo $this->render('_item', ['item' => $item]);
Крім використання PHP у якості основного шаблонізатору, Yii 2.0 також включає офіційні розширення для основних
популярних шаблонізаторів: Smarty і Twig. Шаблонізатор Prado більше не підтримується. Для використання вказаних
шаблонізаторів вам необхідно налаштувати компонент додатка `view` за допомогою вказівки властивостей
шаблонізаторів вам необхідно сконфігурувати компонент додатка `view` за допомогою налаштування властивості
[[yii\base\View::$renderers|View::$renderers]].
Більш детальна інформація представлена у розділі [Шаблонізатори](tutorial-template-engines.md).
@ -196,15 +195,15 @@ public function scenarios()
```
У прикладі вище, оголошено два сценарії: `backend` і `frontend`. Для сценарію `backend` обидва атрибута `email` і `role`
є безпечними і можуть бути масово привласнені. Для сценарію `frontend` атрибут `email` може бути масово присвоєний,
а атрибут `role` - ні. Обидва атрибути `email` та `role` повинні бути перевірені за допомогою правил валідації.
є безпечними та можуть бути масово призначені. Для сценарію `frontend` атрибут `email` може бути масово призначений,
але атрибут `role` - ні. Обидва атрибути `email` та `role` повинні бути перевірені за допомогою правил валідації.
Метод [[yii\base\Model::rules()|rules()]] як і раніше використовується для оголошення правил валідації.
Зверніть увагу, що у звʼязку з появою нового методу [[yii\base\Model::scenarios()|scenarios()]] -
Зверніть увагу, що у звʼязку з появою нового методу [[yii\base\Model::scenarios()|scenarios()]],
більше не підтримується валідатор `unsafe`.
У більшості випадків вам не потрібно перевизначати метод [[yii\base\Model::scenarios()|scenarios()]],
якщо метод [[yii\base\Model::rules()|rules()]] повністю вказує всі існуючі сценарії і якщо немає потреби
якщо метод [[yii\base\Model::rules()|rules()]] повністю вказує всі сценарії, що існують, та якщо немає потреби
в оголошенні атрибутів небезпечними.
Більш детальна інформація представлена у розділі [Моделі](structure-models.md).
@ -216,7 +215,7 @@ public function scenarios()
В якості базового класу для контролерів в Yii 2.0 використовується [[yii\web\Controller]], який є
аналогічним `CController` у Yii 1.1. Базовим класом для всіх дій є [[yii\base\Action]].
Однією із основних змін є те, що дія контролера тепер має повернути результат замість того, щоб напряму виводити його:
Однією із основних змін є те, що дія контролера тепер має повернути результат замість того, щоб безпосередньо виводити його:
```php
@ -269,8 +268,10 @@ ActiveForm::end();
представлення із темізованим файлом. Наприклад, якщо використовується співставлення шляхів
`['/web/views' => '/web/themes/basic']`, то темізована версія файлу представлення `/web/views/site/index.php` буде
знаходитися у `/web/themes/basic/site/index.php`. З цієї причини теми можуть бути застосовані до будь-якого файлу
представлення, навіть до представлення, яке відрендерене всередині контексту контролера або віджету. Також, більше
не існує компонента `CThemeManager`. Замість цього, `theme` є конфігурованою властивістю компонента додатка `view`.
представлення, навіть до представлення, яке сформоване за межами контексту контролера або віджету.
Також, більше не існує компонента `CThemeManager`. Замість цього є властивість `theme` компонента додатка `view`,
яку можна сконфігурувати.
Більш детальна інформація представлена у розділі [Темізація](output-theming.md).
@ -278,7 +279,7 @@ ActiveForm::end();
Консольні додатки
-----------------
Консольні додатки тепер організовані як контролери, аналогічно веб додаткам. Консольні контролери
Консольні додатки тепер організовані як контролери, аналогічно веб-додаткам. Консольні контролери
повинні бути успадковані від класу [[yii\console\Controller]], аналогічного `CConsoleCommand` у версії 1.1.
Для виконання консольної команди, використовуйте `yii <маршрут>`, де `<маршрут>` це маршрут контролера
@ -295,10 +296,10 @@ I18N
----
У Yii 2.0 були прибрані вбудовані форматтери часу та чисел на користь
[PECL intl PHP розширення](http://pecl.php.net/package/intl).
[PECL розширення PHP intl](http://pecl.php.net/package/intl).
Переклад повідомлень тепер здійснюється через компонент додатка `i18n`. Даний компонент управляє безліччю вихідних сховищ
повідомлень, що дозволяє вам використовувати різні сховища для вихідних повідомлень залежно від категорії повідомлення.
Переклад повідомлень тепер здійснюється через компонент додатка `i18n`. Даний компонент управляє наборами джерел
повідомлень, що дозволяє вам використовувати різні джерела повідомлень, залежно від категорії повідомлення.
Більш детальна інформація представлена у розділі [Інтернаціоналізація](tutorial-i18n.md).
@ -306,7 +307,7 @@ I18N
Фільтри дій
-----------
Фільтри дій тепер зроблені за допомогою поведінок. Для визначення нового фільтру - успадкуйте від [[yii\base\ActionFilter]].
Фільтри дій тепер зроблені за допомогою поведінок. Новостворюваний фільтр необхідно успадкувати від [[yii\base\ActionFilter]].
Для використання фільтра - прикріпіть його до контролера у якості поведінки. Наприклад, для використання фільтра
[[yii\filters\AccessControl]] слід зробити наступне:
@ -332,8 +333,8 @@ public function behaviors()
У Yii 2.0 представлена нова можливість *звʼязки ресурсів*, яка замінює концепт пакетів скриптів у Yii 1.1.
Звʼязка ресурсів - це колекція файлів ресурсів (наприклад, Javascript файли, CSS файли, файли зображень, і т. п.)
у певній папці. Кожна звʼязка ресурсів представленакласом, успадкованим від [[yii\web\AssetBundle]].
Звʼязка ресурсів - це колекція файлів ресурсів (наприклад: Javascript файли, CSS файли, файли зображень, і т. п.)
у певній директорії. Кожна звʼязка ресурсів представлена класом, успадкованим від [[yii\web\AssetBundle]].
Звʼязка ресурсів стає доступною через веб, за допомогою реєстрації її методом [[yii\web\AssetBundle::register()]].
На відміну від Yii 1.1, сторінка, яка реєструє звʼязку ресурсів, автоматично буде містити посилання на
Javascript і CSS файли, які зазначені у звʼязці.
@ -352,7 +353,7 @@ Javascript і CSS файли, які зазначені у звʼязці.
* [[yii\helpers\FileHelper]]
* [[yii\helpers\Json]]
Більш детальна інформація представлена у розділі [Хелпери](helper-overview.md).
Більш детальна інформація представлена у розділі [Огляд хелперів](helper-overview.md).
Форми
@ -373,7 +374,7 @@ Yii 2.0 вводить нове поняття *поле* для побудов
<?php yii\widgets\ActiveForm::end(); ?>
```
Більш детальна інформація представлена у розділі [Робота з формами](input-forms.md).
Більш детальна інформація представлена у розділі [Створення форм](input-forms.md).
Конструктор запитів
@ -381,7 +382,7 @@ Yii 2.0 вводить нове поняття *поле* для побудов
У версії 1.1, побудова запиту була розкидана серед декількох класів, включаючи `CDbCommand`,
`CDbCriteria` та `CDbCommandBuilder`. У Yii 2.0 запит до БД представлений в рамках обʼєкта [[yii\db\Query|Query]],
який може бути перетворений у SQL вираз за допомогою [[yii\db\QueryBuilder|QueryBuilder]]. Наприклад,
який може бути перетворений у SQL-вираз за допомогою [[yii\db\QueryBuilder|QueryBuilder]]. Наприклад,
```php
$query = new \yii\db\Query();
@ -402,10 +403,10 @@ $rows = $command->queryAll();
Active Record
-------------
У Yii 2.0 внесено безліч змін в роботу [Active Record](db-active-record.md). Два основних з них включають в себе
побудову запитів і роботу із звʼязками.
У Yii 2.0 внесено безліч змін в роботу [Active Record](db-active-record.md). Основними двома є
побудова запитів і робота із звʼязками.
Клас `CDbCriteria` у версії 1.1 був замінений на [[yii\db\ActiveQuery]] у Yii 2.0. Це клас успадковується від
Клас `CDbCriteria` у версії 1.1 був замінений на [[yii\db\ActiveQuery]] у Yii 2.0. Цей клас успадковується від
[[yii\db\Query]] і таким чином отримує всі методи, які необхідні для побудови запиту. Для побудови запиту вам слід
викликати метод [[yii\db\ActiveRecord::find()]]:
@ -417,7 +418,7 @@ $customers = Customer::find()
->all();
```
Для оголошення звʼязку слід просто оголосити геттер, який повертає обʼєкт [[yii\db\ActiveQuery|ActiveQuery]].
Для оголошення звʼязку слід просто призначити геттер, який повертає обʼєкт [[yii\db\ActiveQuery|ActiveQuery]].
Імʼя властивості, яке визначене геттером, представляє собою назву звʼязку. Наприклад, наступний код оголошує звʼязок
`orders` (у версії 1.1 вам потрібно було б оголосити звʼязки в одному центральному місці - `relations()`):
@ -445,15 +446,15 @@ Yii 2.0 здійснює жадібне завантаження (eager loading)
Замість того, щоб повертати обʼєкти [[yii\db\ActiveRecord|ActiveRecord]], ви можете використовувати метод
[[yii\db\ActiveQuery::asArray()|asArray()]] при побудові запиту, для вибірки великої кількості записів.
Це змусить повернути результат запиту у якості масива, що може суттєво знизити час, який потрібен ЦПУ і памʼяті
Це змусить повернути результат запиту у якості масиву, що може суттєво знизити витрати процесорного часу і памʼяті
при великій кількості записів. Наприклад:
```php
$customers = Customer::find()->asArray()->all();
```
Ще одна зміна повʼязана з тим, що ви більше не можете визначати значення по-замовчуванням як властивостей.
Ви повинні встановити їх у методі `init` вашого класу, якщо це потрібно.
Ще одна зміна повʼязана з тим, що ви більше не можете визначати значення атрибутів за замовчуванням з допомогою public властивостей.
Ви можете встановити їх у методі `init` вашого класу запису, якщо це потрібно.
```php
public function init()
@ -463,21 +464,21 @@ public function init()
}
```
Також у версії 1.1 були деякі проблеми із перевизначенням конструктора ActiveRecord. Дані проблеми не присутні
Також у версії 1.1 були деякі проблеми із перевизначенням конструктора ActiveRecord. Дані проблеми відсутні
у версії 2.0. Зверніть увагу, що при додаванні параметрів у конструктор, вам, можливо, знадобиться перевизначити метод
[[yii\db\ActiveRecord::instantiate()]]. Перевизначення може не знадобитися, якщо параметри, передані в конструктор
матимуть значення за умовчанням, наприклад `null`.
Існує також безліч інших покращень у ActiveRecord. Більш детальна інформація про конфігурацію представлена у розділі
Є також безліч інших змін та покращень у ActiveRecord. Більш детальна інформація про них представлена у розділі
[Active Record](db-active-record.md).
Поведінки Active Record
-----------------------
У версії 2.0 ми позбулися від класу базової поведінки `CActiveRecordBehavior`. Якщо ви хочете створити поведінку
Active Record, ви повинні будете розширити класс `yii\base\Behavior`. Якщо класу поведінки необхідно реагувати на
деякі події власника, ви повинні перевизначити метод `events()`, як показано нижче,
У версії 2.0 розробники позбулися класу базової поведінки `CActiveRecordBehavior`. Новостворюваний клас поведінки Active Record
має бути успадкованим безпосередньо від класу `yii\base\Behavior`. Якщо класу поведінки необхідно реагувати на
деякі події власника, потрібно перевизначити метод `events()`, як показано нижче,
```php
namespace app\components;
@ -508,17 +509,17 @@ User та IdentityInterface
-------------------------
Клас `CWebUser` у версії 1.1 тепер замінений класом [[yii\web\User]], а також більше не існує класу `CUserIdentity`.
Замість цього, ви повинні надати реалізацію інтерфейсу [[yii\web\IdentityInterface]], що набагато простіше у використанні.
Замість цього, необхідно реалізувати інтерфейс [[yii\web\IdentityInterface]], що набагато простіше у використанні.
Більш детальна інформація представлена у розділах [Аутентифікація](security-authentication.md),
[Авторизація](security-authorization.md) та [Шаблон додатка advanced](tutorial-advanced-app.md).
[Авторизація](security-authorization.md) та [Розширений шаблон додатка](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide-uk/README.md).
Управління URL
--------------
Керування URL
-------------
Робота з URL в Yii 2.0 аналогічна тій, що була у версії 1.1. Основна зміна полягає в тому, що тепер підтримуються
додаткові параметри. Наприклад, якщо у вас є правило, оголошене наступним чином, то воно співпаде з `post/popular` та
Робота з URL в Yii 2.0 аналогічна тій, що була у версії 1.1. Основне покращення полягає в тому, що тепер підтримуються
додаткові параметри. Наприклад, якщо у вас є правило, оголошене нижче, то воно співпаде з `post/popular` та
`post/1/popular`. У версії 1.1 вам довелося б використовувати два правила для отримання того ж результату.
```php
@ -529,11 +530,11 @@ User та IdentityInterface
]
```
Більш детальна інформація представлена у розділі [Розбір та генерація URL](runtime-routing.md).
Більш детальна інформація представлена у розділі [Маршрутизація та створення URL](runtime-routing.md).
Використання Yii 1.1 разом із 2.x
---------------------------------
Інформація про використання коду для Yii 1.1 разом із Yii 2.0 представлена у розділі
[Одночасне використання Yii 1.1 та 2.0](tutorial-yii-integration.md).
[Робота із стороннім кодом](tutorial-yii-integration.md).

6
docs/guide-uk/intro-yii.md

@ -11,7 +11,7 @@ Yii – це високопродуктивний компонентний PHP
Yii – це універсальний фреймворк і може бути задіяний у всіх типах веб-додатків, що використовують PHP.
Завдяки його компонентній структурі і відмінній підтримці кешування, фреймворк особливо підходить для розробки
таких великих проектів як портали, форуми, системи керування контентом (CMS), інтернет-магазини або RESTful-додатки.
таких великих проектів як портали, форуми, системи керування вмістом (CMS), інтернет-магазини або RESTful-додатки.
Порівняння Yii з іншими фреймворками
@ -41,7 +41,7 @@ Yii — не проект однієї людини. Він підтримуєт
На даний момент існує дві основні версії Yii: 1.1 та 2.0. Версія 1.1 є попереднім поколінням і знаходиться у стані підтримки.
Версія 2.0 - це повністю переписаний Yii, що використовує останні технології і протоколи, такі як Composer, PSR, простори імен,
типажі (traits) і багато іншого. 2.0 - поточне покоління фреймворка. На цій версії будуть зосереджені основні зусилля
трейти і багато іншого. 2.0 - поточне покоління фреймворка. На цій версії будуть зосереджені основні зусилля
кілька наступних років. Даний посібник призначений в основному для версії 2.0.
@ -53,4 +53,4 @@ Yii 2.0 потребує PHP 5.4.0 та вище. Щоб дізнатися ви
Для розробки на Yii необхідне загальне розуміння ООП, так як фреймворк повністю слідує цій парадигмі.
Також слід вивчити такі сучасні можливості PHP як [простори імен](http://www.php.net/manual/en/language.namespaces.php)
і [типажі](http://www.php.net/manual/en/language.oop5.traits.php).
і [трейти](http://www.php.net/manual/en/language.oop5.traits.php).

4
docs/internals-uk/automation.md

@ -6,10 +6,10 @@
- Створення мапи класів `classes.php` у кореневій директорії фреймворку.
Виконати `./build/build classmap` для її створення.
- Створення анотацій `@property` у файлах класів, що описують властивості представлені функціями для отримання (getters) та призначення (setters) властивостей.
- Створення анотацій `@property` у файлах класів, що описують властивості представлені геттерами та сеттерами.
Виконати `./build/build php-doc/property` для їх оновлення.
- Виправлення стилю кодування та інших невеличких проблем у коментарях phpdoc.
Виконати `./build/build php-doc/fix` для виправлення.
Перед тим як створювати коміт, необхідно перевіряти зміни, оскільки команда не є досконалою й можливі не бажані зміни.
Перед тим як створювати комміт, необхідно перевіряти зміни, оскільки команда не є досконалою й можливі не бажані зміни.
Можна використовувати `git add -p` для перегляду змін.

4
docs/internals-uk/getting-started.md

@ -0,0 +1,4 @@
Підготовка до розробки Yii 2
============================
Інформація про те, як налаштувати середовище для розробки представлена у розділі [Робота з Git для учасників Yii 2](git-workflow.md).

233
docs/internals-uk/git-workflow.md

@ -0,0 +1,233 @@
Робота з Git для учасників Yii 2
================================
Ви бажаєте взяти участь в розробці Yii? Чудово! Але, щоб підвищити шанси швидкого прийняття ваших змін, будь ласка,
дотримуйтесь наступних кроків. Якщо ви новачок у Git та GitHub, спершу можете ознайомитись із
[довідкою GitHub](http://help.github.com/), [тренером Git](https://try.github.com)
або почитати книгу [Магія Git](http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/uk/)
чи [Розділ Git у Вікіпідручнику](http://uk.wikibooks.org/wiki/Git), щоб краще зрозуміти внутрішню структуру Git.
Підготовка вашого середовища розробки
-------------------------------------
Наступні кроки створять середовище розробки для Yii, яке ви зможете використовувати для роботи
над основним кодом фреймворку Yii. Ці кроки необхідні лише тоді, коли ви вперше долучаєтесь до співпраці.
### 1. [Створіть форк](http://help.github.com/fork-a-repo/) репозиторію Yii на GitHub та клонуйте свій форк у своє середовище розробки
```
git clone git@github.com:ВАШЕ-ІМ’Я-НА-GITHUB/yii2.git
```
Якщо у вас виникли проблеми із роботою Git з GitHub в Linux, або ви отримали помилку заборони доступу "Permission Denied (publickey)",
то вам необхідно [налаштувати Git для роботи з GitHub](https://help.github.com/articles/set-up-git/#platform-linux).
### 2. Додайте головний репозиторій Yii як додатковий віддалений репозиторій із назвою "upstream"
Перейдіть у директорію, в яку ви клонували Yii, зазвичай "yii2". Потім виконайте наведену команду:
```
git remote add upstream git://github.com/yiisoft/yii2.git
```
### 3. Підготуйте середовище тестування
Наступні кроки не обов'язкові, якщо ви хочете працювати лише над перекладом або документацією.
- виконайте `composer update` для встановлення залежностей (припускається, що ви маєте [глобально встановлений composer](https://getcomposer.org/doc/00-intro.md#globally)).
- виконайте `php build/build dev/app basic` для клонування базового додатку та встановлення його залежностей.
Ця команда встановить сторонні пакунки composer як завжди, а також створить посилання з репозиторію yii2
на поточний репозиторій. Таким чином ви будете мати один екземпляр встановленого коду.
Якщо необхідно, зробіть те ж саме для розширеного додатку: `php build/build dev/app advanced`.
Ця команда може використовуватись для оновлення залежностей, вона викликає `composer update` в процесі виконання.
**Тепер ви маєте робочий майданчик для експериментів з Yii 2.**
Наступні кроки не обов’язкові.
### Модульні тести
Ви можете виконати модульні тести, запустивши `phpunit` у кореневій директорії репозиторію. Якщо у вас phpunit не встановлений глобально,
ви можете запускати `php vendor/bin/phpunit`.
Деякі тести потребують додатково встановлення та налаштування баз даних. Ви можете створити `tests/data/config.local.php` для перевизначення
налаштувань сконфігурованих у `tests/data/config.php`.
Можливо обмежити тести групою тестів, що покривають область над якою ви працюєте, наприклад, щоб запустити тести для валідаторів
та redis, виконайте `phpunit --group=validators,redis`. Для отримання списку доступних груп виконайте `phpunit --list-groups`.
### Розширення
Для роботи з розширеннями необхідно клонувати відповідні репозиторії. Наступна команда зробить це для вас:
```
php build/build dev/ext <extension-name>
```
де `<extension-name>` є назвою розширення, наприклад `redis`.
Якщо бажаєте протестувати розширення в одному із шаблонів додатку, просто додайте його до `composer.json` додатку, як ви будете
робити зазвичай. Наприклад, додайте `"yiisoft/yii2-redis": "*"` до секції `require` базового додатку.
Команда `php build/build dev/app basic` встановить розширення та його залежності й створить
символьне посилання на `extensions/redis`, тому ви можете працювати безпосередньо в директорії репозиторію yii2,
а не у специфічній для composer директорії vendor.
Робота з помилками та функціоналом
----------------------------------
Отримавши середовище розробки, як було описано вище, ви можете розпочати роботу над функціоналом або виправленням помилок.
### 1. Переконайтесь, що створено питання стосовно речі, над якою ви працюєте, якщо це потребує багатьох зусиль для виконання
Усі нові можливості та виправлення помилок повинні мати пов’язане запитання, яке забезпечує єдину точку посилання для обговорення
та документації. Витратьте декілька хвилин на перегляд списку створених питань, щоб знайти ті, що стосуються внеску, який ви
збираєтесь зробити. Якщо знайдете таке у списку запитань, потім, будь ласка, залиште коментар із зазначенням, що ви
збираєтесь працювати над цим. Якщо не знайшли створеного питання, що стосується того, над чим ви збираєтесь працювати, будь ласка
[створіть нове запитання](report-an-issue.md) або відправте "pull request" безпосередньо, якщо це не складне виправлення. Це дозволить команді
розробників розглянути вашу пропозицію та надавати відповідний зворотний зв’язок протягом шляху.
> Для невеликих змін, проблем документації або простих виправлень нема потреби створювати питання, достатньо відправити "pull request" у цих випадках.
### 2. Отримайте останній код з головної гілки Yii
```
git fetch upstream
```
З цього необхідно розпочинати кожний новий внесок, щоб бути впевненим, що ви працюєте з найновішим кодом.
### 3. Створіть нову гілку для вашого внеску на базі поточної основної гілки Yii
> Це дуже важливо, тому що ви не зможете відправляти більше, ніж один "pull request" від вашого імені, у разі
використання основної (master) гілки.
Кожні окремі виправлення помилок або зміни повинні мати власні гілки. Назви гілок повинні бути наочними та починатись з
номеру питання, яке пов’язане із вашим кодом. Якщо ви працюєте не над специфічним питанням, просто пропустіть номер.
Наприклад:
```
git checkout upstream/master
git checkout -b 999-name-of-your-branch-goes-here
```
### 4. Робіть вашу магію, пишіть ваш код
Переконайтесь, що він працює :)
Модульні тести завжди вітаються. Протестований та добре покритий код надзвичайно полегшує перевірку вашого внеску.
Провальні модульні тести як опис проблеми також приймаються.
### 5. Оновіть журнал змін (CHANGELOG)
Додайте до файлу CHANGELOG зроблені вами зміни у верхній частині документу під заголовком
"Work in progress", запис у журналі змін повинен виглядати подібно до наведеного прикладу:
```
Bug #999: a description of the bug fix (Your Name)
Enh #999: a description of the enhancement (Your Name)
```
`#999` - це номер питання, на яке посилається виправлення помилки (`Bug`) або покращення (`Enh`).
Записи журналу змін повинні бути згруповані за типом (`Bug`, `Enh`) та сортовані за номером питання.
Для дуже малих виправлень, наприклад, друкарських помилок та змін у документації, нема потреби оновлювати CHANGELOG.
### 6. Створіть комміт ваших змін
Додайте файли/зміни, призначені для комміту, в [буферну зону](http://gitref.org/basic/#add) за допомогою команди:
```
git add path/to/my/file.php
```
Використовуйте опцію `-p` для відбору змін, які ви бажаєте додати до вашого комміту.
Створіть комміт з описовим повідомленням. Переконайтесь, що вказали номер питання як `#XXX`, щоб GitHub
автоматично пов’язав ваш комміт із питанням:
```
git commit -m "A brief description of this change which fixes #999 goes here"
```
### 7. Додайте останній код Yii з upstream до вашої гілки
```
git pull upstream master
```
Це гарантує, що ви матимете останній код у вашій гілці перед тим, як відправити "pull request". Якщо є будь-які конфлікти поєднання,
треба виправити їх одразу та знову створити комміт. Це забезпечить команду розробників Yii можливістю легко приєднати ваші зміни
одним натисканням кнопки.
### 8. Вирішивши будь-які конфлікти, відправте ваш код до GitHub
```
git push -u origin 999-name-of-your-branch-goes-here
```
Опція `-u` забезпечує те, що ваша гілка відтепер оброблятиметься автоматично при запитах push та pull до GitHub гілки.
Це означає, якщо ви виконаєте `git push` наступного разу, програма буде знати куди відправляти. Це корисно, якщо ви
бажаєте пізніше додавати більше коммітів у "pull request".
### 9. Відправте ["pull request"](http://help.github.com/send-pull-requests/) до upstream.
Перейдіть до вашого репозиторію на GitHub та натисніть "Pull Request", оберіть вашу гілку справа та внесіть трохи деталей
у полі коментарю. Щоб пов’язати "pull request" із запитанням, внесіть десь у коментарі `#999`, де 999 - це номер питання.
> Зауважте, що кожний "pull request" повинен стосуватись окремої зміни. Для багатьох змін, не пов’язаних між собою,
будь ласка, відправляйте "pull request" окремо для кожної.
### 10. Дехто перевірить ваш код
Дехто перевірить ваш код, й, можливо, вас попросять внести деякі зміни. У цьому випадку перейдіть до кроку #6 (нема потреби
відправляти інший "pull request", якщо ваш поточний досі відкритий). Якщо ваш код прийнято, то він буде поєднаний з головною гілкою
та стане частиною наступного релізу Yii. Якщо ж ні, не сумуйте, різні люди потребують різних можливостей, та Yii
не може бути всім для всіх, ваш код залишатиметься доступним на GitHub для людей, які його потребують.
### 11. Проведіть чистку
Після того, як ваш код був прийнятий або відхилений, можете видалити гілки, над якими ви працювали, із локального репозиторію
та з `origin`.
```
git checkout master
git branch -D 999-name-of-your-branch-goes-here
git push origin --delete 999-name-of-your-branch-goes-here
```
### Примітка:
Для виявлення регресу на ранніх стадіях кожне поєднання з кодовою базою Yii на GitHub опрацьовується у
[Travis CI](http://travis-ci.org) для автоматичного запуску тестів. Оскільки основна команда розробників не бажає
перевантажувати сервіс, додавайте [`[ci skip]`](http://about.travis-ci.org/docs/user/how-to-skip-a-build/) до
опису поєднання, якщо ваш "pull request":
* зачіпає лише файли javascript, css або файли зображень,
* оновлює документацію,
* змінює лише фіксовані текстові рядки (наприклад, оновлення перекладу)
Це захистить travis від запуску тестів на змінах, які не покриті тестами.
### Огляд команд (для досвідчених учасників)
```
git clone git@github.com:YOUR-GITHUB-USERNAME/yii2.git
git remote add upstream git://github.com/yiisoft/yii2.git
```
```
git fetch upstream
git checkout upstream/master
git checkout -b 999-name-of-your-branch-goes-here
/* робіть вашу магію; оновіть журнал змін, якщо необхідно */
git add path/to/my/file.php
git commit -m "A brief description of this change which fixes #999 goes here"
git pull upstream master
git push -u origin 999-name-of-your-branch-goes-here
```

22
docs/internals-uk/report-an-issue.md

@ -0,0 +1,22 @@
Повідомлення про проблему
=========================
Будь ласка, дотримуйтесь рекомендацій, зазначених нижче, при створенні питання, щоб прискорити його вирішення:
* Подавайте інформацію, включаючи: версію PHP та Yii, тип операційної системи та веб-сервера, тип та версію браузера.
* Додавайте **повний** вивід про помилку, якщо є. Скріншот, що пояснює проблему, дуже вітається.
* Опишіть кроки, які призводять до помилки. Було б ще краще, надати код для відтворення проблеми.
* Якщо можливо створіть модульний тест, навіть провальний, та [надішліть його як "pull request"](git-workflow.md).
Якщо проблема повʼязана з одним із офіційних розширень, будь ласка, повідомляйте про неї у репозиторії цього розширення.
Якщо ви не впевнені, [повідомляйте у головному репозиторії](https://github.com/yiisoft/yii2/issues/new) (<https://github.com/yiisoft/yii2/issues>).
**Не повідомляйте про проблему, якщо:**
* Ви хочете спитати як використовувати ту чи іншу можливість Yii. Для цього користуйтесь [форумом](http://www.yiiframework.com/forum/index.php/forum/42-general-discussions-for-yii-20/) або [чатом](http://www.yiiframework.com/chat/).
* Проблема стосується безпеки. Будь ласка, [звертайтесь безпосередньо до розробників](http://www.yiiframework.com/security/), щодо проблем з безпекою.
**Уникайте дублювання питань**
Перед тим, як повідомити про проблему, будь ласка, здійсніть пошук серед [створених запитань](https://github.com/yiisoft/yii2/issues),
можливо про проблему вже повідомили або проблема вже вирішена. Також переконайтесь, що маєте останню версію Yii та у разі оновлення перевірте чи проблема при цьому присутня.

146
docs/internals-uk/translation-workflow.md

@ -0,0 +1,146 @@
Процес перекладу
================
Yii перекладається на багато різних мов, щоб бути корисним для міжнародних додатків та розробників. Основними двома областями,
де вітається співпраця є документація та повідомлення фреймворку.
Повідомлення фреймворку
-----------------------
Фреймворк має два типи повідомлень: виключення, які призначені для розробників й ніколи не перекладаються, та повідомлення
видимі кінцевому користувачу, такі як помилки перевірки.
Щоб розпочати переклад повідомлень необхідно:
1. Перейти до директорії `framework` та виконати команду `./yii message/extract messages/config.php`.
2. Перекласти повідомлення у файлі `framework/messages/uk/yii.php`. Зберегти файл у кодуванні UTF-8.
3. [Відправити "pull request"](git-workflow.md).
Для підтримання перекладу в актуальному стані можна знову використовувати команду `./yii message/extract messages/config.php`.
Це автоматично здобуде нові повідомлення, зберігаючи при цьому вже перекладені.
У файлі перекладу кожний ключ елементу масиву представляє повідомлення, а значення елементу масиву представляє переклад.
Якщо значення порожнє, повідомлення вважається не перекладеним. Переклади повідомлень, які вже не потребують перекладу,
замкнуті між парами знаків '@@'. Текст перекладу може містити формат кількох форм множини.
Ознайомтесь з розділом посібника [Інтернаціоналізація](../guide-uk/tutorial-i18n.md) для більш детальної інформації.
Документація
------------
Переклад документації знаходиться у `docs/<original>-uk`, де `<original>` відповідає оригінальній директорії,
наприклад `guide` або `internals`.
Після завершення розпочатої роботи можна отримати звіт про стан перекладу за допомогою виклику спеціальної команди з
директорії `build`:
```
php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide translation report" > report_guide_uk.html
```
У разі необхідності встановіть [Composer](https://getcomposer.org/) в кореневій директорії вашого локального репозиторію.
### Список документів
Перелік документів, що потребують перекладу, можна знайти за нижченаведеними посиланнями:
- [список документів для guide-uk](https://ethercalc.org/yii2.docs.guide-uk);
- [список документів для internals-uk](https://ethercalc.org/yii2.docs.internals-uk).
Перед тим, як розпочати переклад, переконайтесь, що їм ніхто не займається, та запишіть себе у списку документів.
В залежності від прогресу оберіть відповідний статус перекладу:
- В роботі — переклад готується перекладачем до відправлення "pull request";
- Ревізія — відправлений переклад перевіряється ревізором;
- Перекладено — переклад прийнято до головної (master) гілки проекту.
За додатковою інформацією можете звертатись до учасників української [команди перекладачів](../internals/translation-teams.md).
### Переклад зображень
Зображення до документації знаходяться у вкладеній директорії `images`. Усі вони створенні програмою [yED](http://www.yworks.com/en/products/yfiles/yed/).
При необхідності перекладу оригінальний файл копіюється в директорію `images` перекладу, перекладається та зберігається у форматі png.
Перелік зображень, що потребують перекладу, можна знайти за нижченаведеним посиланням:
- [список зображень для guide-uk](https://ethercalc.org/yii2.docs.guide-uk.images).
### Переклад спеціальних повідомлень
- Tip → Підказка
- Note → Примітка
- Info → Інформація
### Список термінів
- action — дія;
- active record — (не перекладається);
- (advanced/basic) application — (розширений/базовий) додаток;
- attach handler — прикріпити обробник;
- attribute of the model — атрибут моделі;
- branch — гілка;
- cache — кеш;
- camel case — (не перекладається);
- column — колонка;
- commit — комміт;
- configuration — конфігурація;
- content — вміст;
- contributor — учасник;
- controller — контролер;
- cookies — кукі;
- customization — (тонке) налаштування;
- debug mode — режим налагодження (див. production mode);
- debugger — відладчик;
- (root) directory — (коренева) директорія;
- eager loading — жадібне завантаження (див. lazy loading);
- email address — email адреса;
- environment — середовище;
- exception — виключення;
- PHP extension — розширення PHP;
- field (of the table) — поле/атрибут (таблиці);
- fixture — фікстура;
- fork — форк;
- framework — фреймворк;
- front-controller — фронт-контролер;
- getter — геттер;
- (event) handler — обробник (події);
- hash — хеш;
- help - довідка;
- helper - хелпер;
- id — ідентифікатор;
- image — зображення;
- instance — екземпляр;
- issue — питання/проблема; // в залежності від контексту
- lazy loading — відкладене завантаження;
- log, logging — журнал, журналювання;
- method — метод (обʼєкта/класу);
- merge — поєднання;
- model — модель, модель даних;
- model form — модель форми;
- parameter — параметр (методу/функції);
- to parse — обробляти;
- placeholder — заповнювач;
- production mode — режим провадження (див. debug mode);
- property — властивість (обʼєкта);
- pull request — (не перекладається);
- query builder — конструктор запитів;
- to render, rendering — формувати, формування;
- related, relation — повʼязаний, звʼязок;
- repo, repository — репозиторій;
- resolve request — попередня обробка запиту;
- route, routing — маршрут, маршрутизація;
- row (of the table) — рядок (таблиці);
- setter — сеттер;
- staging area — буферна зона;
- string — текстовий рядок;
- tabular input — табличний ввід;
- template engine — шаблонізатор;
- theming — темізація;
- trait — трейт;
- unit tests — модульні тести;
- to validate — перевіряти;
- valid — коректний;
- validator — валідатор;
- validation — перевірка;
- validator class — клас валідатора;
- versioning — версіонування;
- view — представлення.

12
docs/internals-uk/versions.md

@ -23,10 +23,10 @@
* 100%-ва зворотна сумісність, що гарантує оновлення без проблем. Виключенням можуть бути лише проблеми безпеки, які потребують порушення зворотної сумісності
* Цикл релізу близько 1-2 місяців
* Не має необхідності у пре-релізах (альфа, бета, реліз-кандидат)
* Регулярно об'єднуються з головною (майстер) гілкою (щонайменш раз у тиждень вручну)
* Регулярно обʼєднуються з головною (master) гілкою (щонайменш раз у тиждень вручну)
## Молодші (майнор) релізи `2.X.0`
## Молодші (мінорні) релізи `2.X.0`
Зворотно несумісні релізи, що містять великі доповнення та зміни, які можуть порушувати зворотну сумісність. Оновлення з ранніх версій
може бути не простим, але у наявності повна інструкція по оновленню або навіть скрипт.
@ -40,10 +40,10 @@
* Потребують маркетингових зусиль та публікування у головних новинах
## Головні (мажор) релізи `X.0.0`
## Основні (мажорні) релізи `X.0.0`
Це наче 2.0 після 1.0. Такий перехід, вірогідніше, буде не частіше ніж кожні 3-5 років, у зв'язку з просуванням сторонніх технологій
Це наче 2.0 після 1.0. Такий перехід, вірогідніше, буде не частіше ніж кожні 3-5 років, у звʼязку з просуванням сторонніх технологій
(наприклад, оновлення PHP з 5.0 до 5.4).
> Примітка: Офіційні розширення використовують таку ж саму політику призначення версій але можуть публікуватись незалежно від
фреймворку, тобто номера версій фреймворку та розширення не повинні обов'язково збігатсь.
> Примітка: Офіційні розширення використовують таку ж саму політику призначення версій, але можуть публікуватись незалежно від
фреймворку, тобто номера версій фреймворку та розширення не повинні обовʼязково збігатися.

52
docs/internals-uk/view-code-style.md

@ -0,0 +1,52 @@
Оформлення коду представлень у Yii2
===================================
Нижченаведений стиль кодування використовується у представленнях основи Yii 2.x та у представленнях офіційних розширень.
Ми не наполягаємо на використанні цього стилю для вашого додатка. Вільно обирайте те, що підходить вам більше.
```php
<?php
// Початковий тег PHP, за яким йде пустий рядок, є обовʼязковим для усіх файлів шаблонів.
// Опис вхідних змінних, які передає контролер.
/* @var $this yii\base\View */
/* @var $form yii\widgets\ActiveForm */
/* @var $posts app\models\Post[] */
/* @var $contactMessage app\models\ContactMessage */
// Пустий рядок після є необхідним.
// Декларування класів з просторів імен.
use yii\helpers\Html;
use yii\widgets\ActiveForm;
// Пустий рядок після є необхідним.
// Призначення властивостей контексту, виклики їх сеттерів, інші речі.
$this->title = 'Posts';
?>
<!-- Для foreach, for, if, і т.п. краще використовувати роздільні блоки PHP. -->
<?php foreach ($posts as $post): ?>
<!-- Тут зверніть увагу на відступи. -->
<h2><?= Html::encode($post['title']) ?></h2>
<p><?= Html::encode($post['shortDescription']) ?></p>
<!-- `endforeach;`, `endfor;`, `endif;`, і т.п. потрібно використовувати замість `}` у випадку використання багатьох блоків PHP -->
<?php endforeach; ?>
<!-- При декларуванні віджету код може міститись як на одному так і на багатьох рядках. -->
<?php $form = ActiveForm::begin([
'options' => ['id' => 'contact-message-form'],
'fieldConfig' => ['inputOptions' => ['class' => 'common-input']],
]); ?>
<!-- Тут зверніть увагу на відступи. -->
<?= $form->field($contactMessage, 'name')->textInput() ?>
<?= $form->field($contactMessage, 'email')->textInput() ?>
<?= $form->field($contactMessage, 'subject')->textInput() ?>
<?= $form->field($contactMessage, 'body')->textArea(['rows' => 6]) ?>
<div class="form-actions">
<?= Html::submitButton('Обробити', ['class' => 'common-button']) ?>
</div>
<!-- Виклик завершення віджету має окремий блок PHP. -->
<?php ActiveForm::end(); ?>
<!-- Кінцевий знак нового рядка є обовʼязковим. -->
```

1
docs/internals/translation-teams.md

@ -62,3 +62,4 @@ Ukrainian
- **Alexandr Bordun [@borales](https://github.com/Borales), admin@yiiframework.com.ua**
- Roman Bahatyi [@RichWeber](https://github.com/RichWeber), rbagatyi@gmail.com
- Igor Zozulinskyi [@3y3ik](https://github.com/3y3ik)
- Vadym Chenin [@vchenin](https://github.com/vchenin), vchenin@meta.ua

Loading…
Cancel
Save