mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 14:46:19 +08:00 
			
		
		
		
	Merge pull request #8720 from vchenin/docs_uk
📖 docs/*uk add tutorial-console.md + some corrections [skip ci]
			
			
This commit is contained in:
		@ -143,9 +143,9 @@ All Rights Reserved.
 | 
			
		||||
Інструменти розробника
 | 
			
		||||
----------------------
 | 
			
		||||
 | 
			
		||||
* **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)
 | 
			
		||||
* [Панель налагодження та налагоджувач](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide-uk/README.md)
 | 
			
		||||
* [Генерація коду за допомогою Gii](https://github.com/yiisoft/yii2-gii/blob/master/docs/guide-uk/README.md)
 | 
			
		||||
* **TBD** [Генерація документації API](https://github.com/yiisoft/yii2-apidoc)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Тестування
 | 
			
		||||
@ -164,11 +164,11 @@ All Rights Reserved.
 | 
			
		||||
 | 
			
		||||
* **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)
 | 
			
		||||
* [Консольні додатки](tutorial-console.md)
 | 
			
		||||
* **TBD** [Основні валідатори](tutorial-core-validators.md)
 | 
			
		||||
* **TBD** [Інтернаціоналізація](tutorial-i18n.md)
 | 
			
		||||
* **TBD** [Робота з поштою](tutorial-mailing.md)
 | 
			
		||||
* **TBD** [Вдосконалення продуктивності](tutorial-performance-tuning.md)
 | 
			
		||||
* **TBD** [Покращення швидкодії](tutorial-performance-tuning.md)
 | 
			
		||||
* **TBD** [Робота на віртуальному хостингу](tutorial-shared-hosting.md)
 | 
			
		||||
* **TBD** [Шаблонізатори](tutorial-template-engines.md)
 | 
			
		||||
* [Робота із стороннім кодом](tutorial-yii-integration.md)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								docs/guide-uk/images/tutorial-console-help.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/guide-uk/images/tutorial-console-help.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 150 KiB  | 
@ -28,7 +28,7 @@ Yii – це універсальний фреймворк і може бути
 | 
			
		||||
  багаторівневе кешування та інші.
 | 
			
		||||
- Yii надзвичайно розширюваний. Ви можете налаштувати або замінити практично будь-яку частину основного коду.
 | 
			
		||||
  Завдяки надійній архітектурі розширень Yii, досить легко використовувати або розробляти поширюванні розширення.
 | 
			
		||||
- Висока продуктивність завжди є головною ціллю Yii.
 | 
			
		||||
- Висока швидкодія завжди є головною ціллю Yii.
 | 
			
		||||
 | 
			
		||||
Yii — не проект однієї людини. Він підтримується і розвивається [сильною командою][about_yii] і великою спільнотою розробників,
 | 
			
		||||
які їй допомагають. Команда розробників фреймворку Yii стежать за тенденціями веб-розробки і розвитком інших проектів.
 | 
			
		||||
 | 
			
		||||
@ -16,8 +16,8 @@
 | 
			
		||||
 | 
			
		||||
Ви можете використовувати два стовпці в таблиці user для зберігання кількості дозволених запитів та час останньої перевірки.
 | 
			
		||||
У методах `loadAllowance()` та `saveAllowance()` можна реалізувати зчитування та зберігання значень цих стовбців відповідно
 | 
			
		||||
до даних поточного аутентифікованого користувача. Для підвищення продуктивності можна спробувати зберігати цю
 | 
			
		||||
інформацію в кеші чи NoSQL сховищі.
 | 
			
		||||
до даних поточного аутентифікованого користувача. Для покращення швидкодії можна спробувати зберігати цю
 | 
			
		||||
інформацію в кеш чи NoSQL-сховищі.
 | 
			
		||||
 | 
			
		||||
Як тільки відповідний інтерфейс буде реалізований у класі identity, Yii почне автоматично перевіряти обмеження
 | 
			
		||||
частоти запитів за допомогою фільтра дій [[yii\filters\RateLimiter]] для [[yii\rest\Controller]]. При перевищенні
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@
 | 
			
		||||
================
 | 
			
		||||
 | 
			
		||||
В даному розділі буде описано як створити нову сторінку з формою для отримання даних від користувачів.
 | 
			
		||||
На сторінці буде розміщена форма з полями, де можна буде вказати ім’я та e-mail.
 | 
			
		||||
На сторінці буде розміщена форма з полями, де можна буде вказати ім’я та адресу електронної пошти.
 | 
			
		||||
Після отримання цих двох фрагментів інформації від користувача, сторінка відобразить введені значення знову для підтвердження.
 | 
			
		||||
 | 
			
		||||
Для досягнення даної цілі, крім створення [дії](structure-controllers.md) і
 | 
			
		||||
@ -56,7 +56,7 @@ class EntryForm extends Model
 | 
			
		||||
правил перевірки даних. Правила перевірки, оголошені у вищезазначеному коді означають наступне:
 | 
			
		||||
 | 
			
		||||
* поля `name` і `email` обов’язкові для заповнення;
 | 
			
		||||
* поле `email` повинно містити правильну адресу e-mail.
 | 
			
		||||
* поле `email` повинно містити правильну адресу електронної пошти.
 | 
			
		||||
 | 
			
		||||
Якщо об’єкт `EntryForm` заповнений даними користувача, то для їх перевірки ви можете викликати метод
 | 
			
		||||
цього об’єкту [[yii\base\Model::validate()|validate()]]. У випадку
 | 
			
		||||
@ -139,7 +139,7 @@ HTML-формою та повідомленнями про присутні по
 | 
			
		||||
На завершення, створюємо два файли представлення з іменами `entry-confirm` і `entry`, котрі зображаються дією `entry`
 | 
			
		||||
з минулого підрозділу.
 | 
			
		||||
 | 
			
		||||
Представлення `entry-confirm` просто зображає ім’я та e-mail. Воно мусить бути збережене у файлі `views/site/entry-confirm.php`.
 | 
			
		||||
Представлення `entry-confirm` просто зображає ім’я та адресу електронної пошти. Воно мусить бути збережене у файлі `views/site/entry-confirm.php`.
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
<?php
 | 
			
		||||
@ -149,7 +149,7 @@ use yii\helpers\Html;
 | 
			
		||||
 | 
			
		||||
<ul>
 | 
			
		||||
    <li><label>Ім’я</label>: <?= Html::encode($model->name) ?></li>
 | 
			
		||||
    <li><label>E-mail</label>: <?= Html::encode($model->email) ?></li>
 | 
			
		||||
    <li><label>Адреса електронної пошти</label>: <?= Html::encode($model->email) ?></li>
 | 
			
		||||
</ul>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -191,7 +191,7 @@ http://hostname/index.php?r=site/entry
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Ви побачите сторінку з формою і двома полями для заповнення. Перед кожним полем є надпис, який вказує, яку саме
 | 
			
		||||
інформацію слід вказувати. Якщо ви натиснете на кнопку відправлення даних без самих даних або якщо вкажете e-mail в невірному
 | 
			
		||||
інформацію слід вказувати. Якщо ви натиснете на кнопку відправлення даних без самих даних або якщо вкажете адресу електронної пошти в невірному
 | 
			
		||||
форматі, то ви побачите повідомлення про помилку біля кожного проблемного поля.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
@ -224,7 +224,7 @@ http://hostname/index.php?r=site/entry
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
<?= $form->field($model, 'name')->label('Ваше ім’я') ?>
 | 
			
		||||
<?= $form->field($model, 'email')->label('Ваш e-mail') ?>
 | 
			
		||||
<?= $form->field($model, 'email')->label('Ваша адреса електронної пошти') ?>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> Інформація: У Yii є велика кількість віджетів, які дозволяють швидко будувати складні та динамічні представлення.
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@
 | 
			
		||||
 | 
			
		||||
* домашня сторінка, відображається при переході по URL `http://hostname/index.php`;
 | 
			
		||||
* сторінка "About" ("Про нас");
 | 
			
		||||
* сторінка "Contact", що відображає форму зворотнього зв’язку, за допомогою якої користувач може звернутися до розробника по e-mail;
 | 
			
		||||
* сторінка "Contact", що відображає форму зворотнього зв’язку, через яку користувач може звернутися до розробника за допомогою електронної пошти;
 | 
			
		||||
* сторінка "Login", на якій відображається форма для аутентифікації користувачів. Спробуйте увійти з логіном/паролем
 | 
			
		||||
  "admin/admin". Зверніть увагу на зміну пункту "Login" в головному меню на "Logout".
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@
 | 
			
		||||
 | 
			
		||||
У нижній частині вікна ви зможете бачити системні повідомлення Yii - налагоджувальну інформацію,
 | 
			
		||||
повідомлення про помилки, запити до бази даних і т. п. Відображенням даної інформацію керує
 | 
			
		||||
[вбудований відладчик](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide-uk/README.md), він записує і відображає інформацію про хід виконання додатку.
 | 
			
		||||
[вбудований налагоджувач](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide-uk/README.md), він записує і відображає інформацію про хід виконання додатку.
 | 
			
		||||
 | 
			
		||||
Крім веб-додатка, існує консольний скрипт `yii`, що розташований в базовій директорії додатка.
 | 
			
		||||
Цей скрипт може бути використаний для виконання фонових завдань або завдань обслуговування додатка.
 | 
			
		||||
 | 
			
		||||
@ -168,7 +168,7 @@ if (YII_ENV_DEV) {
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> Примітка: Якщо вказувати велику кількість компонентів у `bootstrap` - це негативно позначиться на продуктивності
 | 
			
		||||
> Примітка: Якщо вказувати велику кількість компонентів у `bootstrap` - це негативно позначиться на швидкодії
 | 
			
		||||
  додатка, оскільки для кожного запиту буде виконуватись один й той самий набір компонентів. Таким чином, потрібно
 | 
			
		||||
  розсудливо використовувати компоненти початкового завантаження.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -230,7 +230,7 @@ class User extends ActiveRecord
 | 
			
		||||
 | 
			
		||||
Дані для моделі, які отримуються від кінцевих користувачів, повинні пройти перевірку, щоб пересвідчитись, що вони задовольняють
 | 
			
		||||
певні правила (названі *правилами перевірки*, також відомі як *бізнес-правила*). Наприклад, дано модель `ContactForm`,
 | 
			
		||||
ви, можливо, хочете пересвідчитись, що всі атрибути заповнені та атрибут `email` містить коректну адресу e-mail.
 | 
			
		||||
ви, можливо, хочете пересвідчитись, що всі атрибути заповнені та атрибут `email` містить коректну адресу електронної пошти.
 | 
			
		||||
Якщо значення для деяких атрибутів не задовольняють відповідні бізнес-правила, то будуть відображенні належні
 | 
			
		||||
повідомлення про помилки, щоб допомогти користувачу виправити їх.
 | 
			
		||||
 | 
			
		||||
@ -265,7 +265,7 @@ public function rules()
 | 
			
		||||
        // атрибути name, email, subject і body є обов’язковими
 | 
			
		||||
        [['name', 'email', 'subject', 'body'], 'required'],
 | 
			
		||||
 | 
			
		||||
        // атрибут email повинен бути коректною адресою e-mail
 | 
			
		||||
        // атрибут email повинен бути коректною адресою електронної пошти
 | 
			
		||||
        ['email', 'email'],
 | 
			
		||||
    ];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										208
									
								
								docs/guide-uk/tutorial-console.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										208
									
								
								docs/guide-uk/tutorial-console.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,208 @@
 | 
			
		||||
Консольні додатки
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
Окрім багатьох можливостей для побудови веб-додатків, Yii також має повноцінну підтримку консольних додатків,
 | 
			
		||||
які в основному використовуються для реалізації фонових або супроводжувальних задач, які необхідно виконати для веб-сайту.
 | 
			
		||||
 | 
			
		||||
Структура консольного додатка дуже подібна до структури веб-додатка Yii. Він складається з одного
 | 
			
		||||
або декількох класів [[yii\console\Controller]], які у середовищі консолі часто називають "командами".
 | 
			
		||||
Кожний контролер може також мати одну або декілька дій, так само як і веб-контролери.
 | 
			
		||||
 | 
			
		||||
Обидва шаблони проекту вже мають консольний додаток у комплекті.
 | 
			
		||||
Ви можете запустити його, викликавши скрипт `yii`, який розміщений у базовій директорії додатка.
 | 
			
		||||
Це дасть вам перелік доступних команд, коли ви запускаєте його без будь-яких додаткових параметрів:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Як видно на знімку екрану, Yii має вже визначений набір команд, які є доступними "з коробки":
 | 
			
		||||
 | 
			
		||||
- [[yii\console\controllers\AssetController|AssetController]] - Дозволяє вам комбінувати та стискати ваші файли JavaScript і CSS.
 | 
			
		||||
  Ви можете дізнатись більше про цю команду у розділі [Ресурси](structure-assets.md#using-the-asset-command).
 | 
			
		||||
- [[yii\console\controllers\CacheController|CacheController]] - Дозволяє вам оновити кеш додатка.
 | 
			
		||||
- [[yii\console\controllers\FixtureController|FixtureController]] - Керує завантаженням та вивантаженням даних фікстур для цілей тестування.
 | 
			
		||||
  Ця команда описана більш детально у [розділі тестування про фікстури](test-fixtures.md#managing-fixtures).
 | 
			
		||||
- [[yii\console\controllers\HelpController|HelpController]] - Надає довідкову інформацію про консольні команди, ця команда використовується за замовчуванням
 | 
			
		||||
  та виводить те, що ви побачили у вищенаведеному виводі.
 | 
			
		||||
- [[yii\console\controllers\MessageController|MessageController]] - Здобуває повідомлення для перекладу з файлів коду.
 | 
			
		||||
  Щоб дізнатись більше про цю команду, будь ласка, зверніться до розділу [Інтернаціоналізація](tutorial-i18n.md#message-command).
 | 
			
		||||
- [[yii\console\controllers\MigrateController|MigrateController]] - Управляє міграціями додатка.
 | 
			
		||||
  Міграції баз даних описані більш детально у розділі про [міграції баз даних](db-migrations.md).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Використання <span id="usage"></span>
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
Для виконання дії консольного контролера використовуйте наступний синтаксис:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
yii <route> [--option1=value1 --option2=value2 ... argument1 argument2 ...]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
У вищенаведеному прикладі, `<route>` означає маршрут до дії контролера. Опції будуть заповнювати
 | 
			
		||||
властивості класу, а аргументи є параметрами для методу дії.
 | 
			
		||||
 | 
			
		||||
Наприклад, дія [[yii\console\controllers\MigrateController::actionUp()|MigrateController::actionUp()]]
 | 
			
		||||
з властивістю [[yii\console\controllers\MigrateController::$migrationTable|MigrateController::$migrationTable]], що має значення `migrations`,
 | 
			
		||||
та обмеженням у 5 міграцій може бути викликана так:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
yii migrate/up 5 --migrationTable=migrations
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> **Примітка**: Коли використовуєте символ `*` в консолі, не забувайте замикати його в лапки, як `"*"`, для запобігання його інтерпретування як
 | 
			
		||||
> спецсимволу shell-оболонки, який заміщується іменами файлів поточної директорії.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Вхідний скрипт <span id="entry-script"></span>
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
Вхідний скрипт консольного додатку є еквівалентним до файлу початкового завантаження `index.php` для веб-додатків.
 | 
			
		||||
Консольний вхідний скрипт, як правило, називається `yii`, та розміщений у базовій директорії вашого додатку.
 | 
			
		||||
Він містить код подібний до наступного:
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
#!/usr/bin/env php
 | 
			
		||||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * Yii console bootstrap file.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
defined('YII_DEBUG') or define('YII_DEBUG', true);
 | 
			
		||||
 | 
			
		||||
// fcgi doesn't have STDIN and STDOUT defined by default
 | 
			
		||||
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
 | 
			
		||||
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
 | 
			
		||||
 | 
			
		||||
require(__DIR__ . '/vendor/autoload.php');
 | 
			
		||||
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
 | 
			
		||||
 | 
			
		||||
$config = require(__DIR__ . '/config/console.php');
 | 
			
		||||
 | 
			
		||||
$application = new yii\console\Application($config);
 | 
			
		||||
$exitCode = $application->run();
 | 
			
		||||
exit($exitCode);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Цей скрипт буде створено як частину вашого додатку; ви можете вільно змінювати його для відповідності вашим потребам. Значення константи `YII_DEBUG` може бути встановлено у `false`,
 | 
			
		||||
якщо ви не хочете бачити стек трасування при помилці, і/або якщо ви хочете підвищити загальну швидкодію. І в базовому, і в розширеному шаблонах
 | 
			
		||||
проекту у вхідному скрипті консольного додатку за замовчуванням включено режим налагодження для забезпечення більш дружнього до розробника середовища.
 | 
			
		||||
 | 
			
		||||
Конфігурація <span id="configuration"></span>
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
Як видно у вищенаведеному коді, консольний додаток використовує свій власний файл конфігурації з іменем `console.php`. У цьому файлі
 | 
			
		||||
ви можете налаштовувати різні [компоненти додатка](structure-application-components.md) та властивості для консольного додатка зокрема.
 | 
			
		||||
 | 
			
		||||
Якщо ваш веб-додаток та консольний додаток мають багато спільних параметрів конфігурації з однаковими значеннями, ви можете відокремити
 | 
			
		||||
спільні частини в окремий файл та включити цей файл до обох конфігурацій додатків (веб- та консольного).
 | 
			
		||||
Ви можете побачити приклад цього у "розширеному" шаблоні проекту.
 | 
			
		||||
 | 
			
		||||
> Підказка: Іноді, існує необхідність виконувати консольну команду, використовуючи конфігурацію додатка, яка
 | 
			
		||||
> відрізняється від заданої у вхідному скрипті. Наприклад, якщо ви хочете використати команду `yii migrate` для
 | 
			
		||||
> оновлення ваших тестових баз даних, які налаштовані кожна в окремому наборі тестів. Для динамічної зміни
 | 
			
		||||
> конфігурації просто вкажіть потрібний файл конфігурації додатка
 | 
			
		||||
> за допомогою опції `appconfig`, коли виконуєте команду:
 | 
			
		||||
> 
 | 
			
		||||
> ```
 | 
			
		||||
> yii <route> --appconfig=path/to/config.php ...
 | 
			
		||||
> ```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Створення власних консольних команд <span id="create-command"></span>
 | 
			
		||||
-----------------------------------
 | 
			
		||||
 | 
			
		||||
### Консольні контролер та дія
 | 
			
		||||
 | 
			
		||||
Консольна команда визначена класом контролера успадкованого від [[yii\console\Controller]]. У класі контролера
 | 
			
		||||
визначаються одна або більше дій, які відповідають під-командам контролера. Всередині кожної дії міститься код, який реалізує відповідні завдання для окремої під-команди.
 | 
			
		||||
 | 
			
		||||
При виконанні команди необхідно вказати маршрут до дії контролера. Наприклад,
 | 
			
		||||
маршрут `migrate/create` викликає під-команду, яка відповідає методу дії
 | 
			
		||||
[[yii\console\controllers\MigrateController::actionCreate()|MigrateController::actionCreate()]].
 | 
			
		||||
Якщо маршрут, запропонований при виконанні, не містить ідентифікатора дії, то буде виконана стандартна дія (так само як у веб-контролері).
 | 
			
		||||
 | 
			
		||||
### Опції
 | 
			
		||||
 | 
			
		||||
Через перевизначення методу [[yii\console\Controller::options()]] ви можете визначити опції, які будуть доступними
 | 
			
		||||
для консольної команди (controller/actionID). Метод повинен повертати перелік публічних властивостей класу контролера.
 | 
			
		||||
При виконанні команди можна задати значення опції, використовуючи синтаксис `--OptionName=OptionValue`.
 | 
			
		||||
Це призначить значення `OptionValue` властивості `OptionName` класу контролера.
 | 
			
		||||
 | 
			
		||||
Якщо значення за замовчуванням для опції є масивом і ви задаєте цю опцію під час виконання команди,
 | 
			
		||||
то значення опції буде перетворене у масив розділенням вхідного текстового рядка за комами.
 | 
			
		||||
 | 
			
		||||
### Аргументи
 | 
			
		||||
 | 
			
		||||
Окрім опцій, команда також може приймати аргументи. Аргументи будуть передані як параметри до методу дії
 | 
			
		||||
відповідно до запитуваної під-команди. Перший аргумент відповідає першому параметру, другий
 | 
			
		||||
відповідає другому і т. д. Якщо при виклику команди надано не достатньо аргументів, то відповідним параметрам
 | 
			
		||||
будуть призначені типові значення, якщо попередньо визначені. Якщо типове значення не визначено і не передано значення під час виконання, то команда буде завершена з помилкою.
 | 
			
		||||
 | 
			
		||||
Ви можете використовувати вказівку типу `array` для позначення аргументу, з яким потрібно обходитись як з масивом.
 | 
			
		||||
Масив буде згенерований розділенням вхідного текстового рядку за комами.
 | 
			
		||||
 | 
			
		||||
Наступний приклад показує як оголошувати аргументи:
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
class ExampleController extends \yii\console\Controller
 | 
			
		||||
{
 | 
			
		||||
    // Команда "yii example/create test" викличе "actionCreate('test')"
 | 
			
		||||
    public function actionCreate($name) { ... }
 | 
			
		||||
 | 
			
		||||
    // Команда "yii example/index city" викличе "actionIndex('city', 'name')"
 | 
			
		||||
    // Команда "yii example/index city id" викличе "actionIndex('city', 'id')"
 | 
			
		||||
    public function actionIndex($category, $order = 'name') { ... }
 | 
			
		||||
 | 
			
		||||
    // Команда "yii example/add test" викличе "actionAdd(['test'])"
 | 
			
		||||
    // Команда "yii example/add test1,test2" викличе "actionAdd(['test1', 'test2'])"
 | 
			
		||||
    public function actionAdd(array $name) { ... }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Код виходу
 | 
			
		||||
 | 
			
		||||
Використання кодів виходу є найкращою практикою для розробки консольного додатку. Прийнято, якщо команда повертає `0`, це означає, що
 | 
			
		||||
все добре. Якщо команда повертає число більше за нуль, це вважається показником помилки. Повернуте число буде кодом
 | 
			
		||||
помилки, яке потенційно може використовуватись для пошуку деталей про помилку.
 | 
			
		||||
Наприклад, число `1`, як правило, може означати невідому помилку, а усі коди вище можуть бути зарезервовані для специфічних випадків: помилки вводу, відсутні файли і так далі.
 | 
			
		||||
 | 
			
		||||
Для того, щоб ваша консольна команда повертала код виходу, просто поверніть ціле число з методу дії
 | 
			
		||||
контролера:
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
public function actionIndex()
 | 
			
		||||
{
 | 
			
		||||
    if (/* деяка проблема */) {
 | 
			
		||||
        echo "A problem occured!\n";
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
    // щось виконується
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Є декілька попередньо визначених констант, які ви можете використовувати:
 | 
			
		||||
 | 
			
		||||
- `Controller::EXIT_CODE_NORMAL` зі значенням `0`;
 | 
			
		||||
- `Controller::EXIT_CODE_ERROR` зі значенням `1`.
 | 
			
		||||
 | 
			
		||||
Хорошою практикою є визначення значущих констант для вашого контролера у випадку, якщо ви маєте більше типів помилок.
 | 
			
		||||
 | 
			
		||||
### Форматування та кольори
 | 
			
		||||
 | 
			
		||||
Консоль Yii підтримує форматований вивід, який автоматично стане не форматованим, якщо він не підтримується
 | 
			
		||||
терміналом, в якому виконується команда.
 | 
			
		||||
 | 
			
		||||
Виводити форматовані текстові рядки просто. Ось як вивести деякий жирний текст:
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
$this->stdout("Hello?\n", Console::BOLD);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Якщо необхідно побудувати текстовий рядок, динамічно комбінуючи декілька стилів, то найкраще використовувати `ansiFormat`:
 | 
			
		||||
 | 
			
		||||
```php
 | 
			
		||||
$name = $this->ansiFormat('Alex', Console::FG_YELLOW);
 | 
			
		||||
echo "Hello, my name is $name.";
 | 
			
		||||
```
 | 
			
		||||
@ -10,7 +10,7 @@
 | 
			
		||||
   у конфігураціях дуже зручно. В інших випадках, потрібно обмежувати підтримку псевдонімів шляху.
 | 
			
		||||
2. **Коли перекладати повідомлення?**
 | 
			
		||||
   Повідомлення повинні перекладатись, якщо вони показуються кінцевому користувачу та мають для нього значення. Повідомлення статусу HTTP,
 | 
			
		||||
   виключення і т.п. не повинні перекладатись. Повідомлення консолі завжди англійською мовою, через труднощі обробки кодування
 | 
			
		||||
   виключення і т. п. не повинні перекладатись. Повідомлення консолі завжди англійською мовою, через труднощі обробки кодування
 | 
			
		||||
   та кодової сторінки.
 | 
			
		||||
3. **[Додавання підтримки нового клієнту аутентифікації](https://github.com/yiisoft/yii2/issues/1652)**
 | 
			
		||||
   Для кращого супроводу, ніякі додаткові клієнти аутентифікації не будуть додаватись до базового розширення. Вони
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@
 | 
			
		||||
Будь ласка, дотримуйтесь рекомендацій, зазначених нижче, при створенні питання, щоб прискорити його вирішення:
 | 
			
		||||
 | 
			
		||||
* Подавайте інформацію, включаючи: версію PHP та Yii, тип операційної системи та веб-сервера, тип та версію браузера.
 | 
			
		||||
* Додавайте **повний** вивід про помилку, якщо є. Скріншот, що пояснює проблему, дуже вітається.
 | 
			
		||||
* Додавайте **повний** вивід про помилку, якщо є. Знімок екрану, що пояснює проблему, дуже вітається.
 | 
			
		||||
* Опишіть кроки, які призводять до помилки. Було б ще краще, надати код для відтворення проблеми.
 | 
			
		||||
* Якщо можливо створіть модульний тест, навіть провальний, та [надішліть його як "pull request"](git-workflow.md).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -73,6 +73,8 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
 | 
			
		||||
 | 
			
		||||
### Список термінів
 | 
			
		||||
 | 
			
		||||
[Англійсько-українські словники](http://e2u.org.ua)
 | 
			
		||||
 | 
			
		||||
- action — дія;
 | 
			
		||||
- active record — (не перекладається);
 | 
			
		||||
- Advanced/Basic Project Template — Розширений/Базовий шаблон проекту;
 | 
			
		||||
@ -86,6 +88,7 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
 | 
			
		||||
- authorization — авторизація/уповноваження;
 | 
			
		||||
- autoloader — автозавантажувач;
 | 
			
		||||
- back-end — (не перекладається);
 | 
			
		||||
- backward compatibility / BC — зворотна сумісність;
 | 
			
		||||
- bootstrap, bootstrapping — початкове завантаження;
 | 
			
		||||
- branch — гілка;
 | 
			
		||||
- browser — браузер;
 | 
			
		||||
@ -102,14 +105,14 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
 | 
			
		||||
- cookies — кукі;
 | 
			
		||||
- customization — (тонке) налаштування;
 | 
			
		||||
- debug mode — режим налагодження (див. production mode);
 | 
			
		||||
- debugger — відладчик;
 | 
			
		||||
- debugger — налагоджувач;
 | 
			
		||||
- (function) declaration — оголошення (функції);
 | 
			
		||||
- definition — визначення;
 | 
			
		||||
- design pattern — шаблон проектування;
 | 
			
		||||
- development mode — режим розробки;
 | 
			
		||||
- (root) directory — (коренева) директорія;
 | 
			
		||||
- eager loading — жадібне завантаження (див. lazy loading);
 | 
			
		||||
- email address — адреса e-mail;
 | 
			
		||||
- email address — адреса електронної пошти;
 | 
			
		||||
- environment — середовище;
 | 
			
		||||
- exception — виключення;
 | 
			
		||||
- existing — наявний/присутній; // перекладати як "існуючий" не вірно
 | 
			
		||||
@ -144,15 +147,18 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
 | 
			
		||||
- merge — поєднання;
 | 
			
		||||
- Model-View-Controller (MVC) — Модель-Представлення-Контролер (MVC);
 | 
			
		||||
- namespace — простір імен;
 | 
			
		||||
- out of the box — "з коробки";
 | 
			
		||||
- package — пакунок;
 | 
			
		||||
- pagination — розділення на сторінки;
 | 
			
		||||
- parameter — параметр;
 | 
			
		||||
- to parse — обробляти;
 | 
			
		||||
- (application) performance — швидкодія (додатка);
 | 
			
		||||
- placeholder — заповнювач;
 | 
			
		||||
- plugin — плагін;
 | 
			
		||||
- postprocessing — після-обробка;
 | 
			
		||||
- predefined — попередньо визначений;
 | 
			
		||||
- production mode — робочий режим (див. debug mode);
 | 
			
		||||
- profiling — профілювання;
 | 
			
		||||
- property — властивість (обʼєкта);
 | 
			
		||||
- pull request — (не перекладається);
 | 
			
		||||
- query builder — конструктор запитів;
 | 
			
		||||
@ -164,6 +170,7 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
 | 
			
		||||
- resolve request — попередня обробка запиту;
 | 
			
		||||
- route, routing — маршрут, маршрутизація;
 | 
			
		||||
- row (of the table) — рядок (таблиці);
 | 
			
		||||
- screenshot — знімок екрану;
 | 
			
		||||
- Service Locator — Локатор служб;
 | 
			
		||||
- setter — сеттер;
 | 
			
		||||
- shared hosting — віртуальний хостинг;
 | 
			
		||||
@ -178,6 +185,7 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
 | 
			
		||||
- theming — темізація;
 | 
			
		||||
- third party — сторонній;
 | 
			
		||||
- thumbnail — мініатюра;
 | 
			
		||||
- tracing — трасування;
 | 
			
		||||
- trait — трейт;
 | 
			
		||||
- Twitter — Твіттер;
 | 
			
		||||
- Unicode — (не перекладається);
 | 
			
		||||
 | 
			
		||||
@ -23,12 +23,12 @@ use yii\widgets\ActiveForm;
 | 
			
		||||
// Призначення властивостей контексту, виклики їх сеттерів, інші речі.
 | 
			
		||||
$this->title = 'Posts';
 | 
			
		||||
?>
 | 
			
		||||
<!-- Для foreach, for, if, і т.п. краще використовувати роздільні блоки PHP. -->
 | 
			
		||||
<!-- Для 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 -->
 | 
			
		||||
<!-- `endforeach;`, `endfor;`, `endif;`, і т. п. потрібно використовувати замість `}` у випадку використання багатьох блоків PHP -->
 | 
			
		||||
<?php endforeach; ?>
 | 
			
		||||
 | 
			
		||||
<!-- При декларуванні віджету код може міститись як на одному так і на багатьох рядках. -->
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user