mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-04 22:57:40 +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)
|
* [Панель налагодження та налагоджувач](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)
|
* [Генерація коду за допомогою Gii](https://github.com/yiisoft/yii2-gii/blob/master/docs/guide-uk/README.md)
|
||||||
* [Генератор документації API (en)](https://github.com/yiisoft/yii2-apidoc)
|
* **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** [Розширений шаблон проекту](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide-uk/README.md)
|
||||||
* **TBD** [Створення додатка з нуля](tutorial-start-from-scratch.md)
|
* **TBD** [Створення додатка з нуля](tutorial-start-from-scratch.md)
|
||||||
* **TBD** [Консольні команди](tutorial-console.md)
|
* [Консольні додатки](tutorial-console.md)
|
||||||
* **TBD** [Основні валідатори](tutorial-core-validators.md)
|
* **TBD** [Основні валідатори](tutorial-core-validators.md)
|
||||||
* **TBD** [Інтернаціоналізація](tutorial-i18n.md)
|
* **TBD** [Інтернаціоналізація](tutorial-i18n.md)
|
||||||
* **TBD** [Робота з поштою](tutorial-mailing.md)
|
* **TBD** [Робота з поштою](tutorial-mailing.md)
|
||||||
* **TBD** [Вдосконалення продуктивності](tutorial-performance-tuning.md)
|
* **TBD** [Покращення швидкодії](tutorial-performance-tuning.md)
|
||||||
* **TBD** [Робота на віртуальному хостингу](tutorial-shared-hosting.md)
|
* **TBD** [Робота на віртуальному хостингу](tutorial-shared-hosting.md)
|
||||||
* **TBD** [Шаблонізатори](tutorial-template-engines.md)
|
* **TBD** [Шаблонізатори](tutorial-template-engines.md)
|
||||||
* [Робота із стороннім кодом](tutorial-yii-integration.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.
|
- Висока швидкодія завжди є головною ціллю Yii.
|
||||||
|
|
||||||
Yii — не проект однієї людини. Він підтримується і розвивається [сильною командою][about_yii] і великою спільнотою розробників,
|
Yii — не проект однієї людини. Він підтримується і розвивається [сильною командою][about_yii] і великою спільнотою розробників,
|
||||||
які їй допомагають. Команда розробників фреймворку Yii стежать за тенденціями веб-розробки і розвитком інших проектів.
|
які їй допомагають. Команда розробників фреймворку Yii стежать за тенденціями веб-розробки і розвитком інших проектів.
|
||||||
|
|||||||
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
Ви можете використовувати два стовпці в таблиці user для зберігання кількості дозволених запитів та час останньої перевірки.
|
Ви можете використовувати два стовпці в таблиці user для зберігання кількості дозволених запитів та час останньої перевірки.
|
||||||
У методах `loadAllowance()` та `saveAllowance()` можна реалізувати зчитування та зберігання значень цих стовбців відповідно
|
У методах `loadAllowance()` та `saveAllowance()` можна реалізувати зчитування та зберігання значень цих стовбців відповідно
|
||||||
до даних поточного аутентифікованого користувача. Для підвищення продуктивності можна спробувати зберігати цю
|
до даних поточного аутентифікованого користувача. Для покращення швидкодії можна спробувати зберігати цю
|
||||||
інформацію в кеші чи NoSQL сховищі.
|
інформацію в кеш чи NoSQL-сховищі.
|
||||||
|
|
||||||
Як тільки відповідний інтерфейс буде реалізований у класі identity, Yii почне автоматично перевіряти обмеження
|
Як тільки відповідний інтерфейс буде реалізований у класі identity, Yii почне автоматично перевіряти обмеження
|
||||||
частоти запитів за допомогою фільтра дій [[yii\filters\RateLimiter]] для [[yii\rest\Controller]]. При перевищенні
|
частоти запитів за допомогою фільтра дій [[yii\filters\RateLimiter]] для [[yii\rest\Controller]]. При перевищенні
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
================
|
================
|
||||||
|
|
||||||
В даному розділі буде описано як створити нову сторінку з формою для отримання даних від користувачів.
|
В даному розділі буде описано як створити нову сторінку з формою для отримання даних від користувачів.
|
||||||
На сторінці буде розміщена форма з полями, де можна буде вказати ім’я та e-mail.
|
На сторінці буде розміщена форма з полями, де можна буде вказати ім’я та адресу електронної пошти.
|
||||||
Після отримання цих двох фрагментів інформації від користувача, сторінка відобразить введені значення знову для підтвердження.
|
Після отримання цих двох фрагментів інформації від користувача, сторінка відобразить введені значення знову для підтвердження.
|
||||||
|
|
||||||
Для досягнення даної цілі, крім створення [дії](structure-controllers.md) і
|
Для досягнення даної цілі, крім створення [дії](structure-controllers.md) і
|
||||||
@ -56,7 +56,7 @@ class EntryForm extends Model
|
|||||||
правил перевірки даних. Правила перевірки, оголошені у вищезазначеному коді означають наступне:
|
правил перевірки даних. Правила перевірки, оголошені у вищезазначеному коді означають наступне:
|
||||||
|
|
||||||
* поля `name` і `email` обов’язкові для заповнення;
|
* поля `name` і `email` обов’язкові для заповнення;
|
||||||
* поле `email` повинно містити правильну адресу e-mail.
|
* поле `email` повинно містити правильну адресу електронної пошти.
|
||||||
|
|
||||||
Якщо об’єкт `EntryForm` заповнений даними користувача, то для їх перевірки ви можете викликати метод
|
Якщо об’єкт `EntryForm` заповнений даними користувача, то для їх перевірки ви можете викликати метод
|
||||||
цього об’єкту [[yii\base\Model::validate()|validate()]]. У випадку
|
цього об’єкту [[yii\base\Model::validate()|validate()]]. У випадку
|
||||||
@ -139,7 +139,7 @@ HTML-формою та повідомленнями про присутні по
|
|||||||
На завершення, створюємо два файли представлення з іменами `entry-confirm` і `entry`, котрі зображаються дією `entry`
|
На завершення, створюємо два файли представлення з іменами `entry-confirm` і `entry`, котрі зображаються дією `entry`
|
||||||
з минулого підрозділу.
|
з минулого підрозділу.
|
||||||
|
|
||||||
Представлення `entry-confirm` просто зображає ім’я та e-mail. Воно мусить бути збережене у файлі `views/site/entry-confirm.php`.
|
Представлення `entry-confirm` просто зображає ім’я та адресу електронної пошти. Воно мусить бути збережене у файлі `views/site/entry-confirm.php`.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
<?php
|
<?php
|
||||||
@ -149,7 +149,7 @@ use yii\helpers\Html;
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><label>Ім’я</label>: <?= Html::encode($model->name) ?></li>
|
<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>
|
</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
|
```php
|
||||||
<?= $form->field($model, 'name')->label('Ваше ім’я') ?>
|
<?= $form->field($model, 'name')->label('Ваше ім’я') ?>
|
||||||
<?= $form->field($model, 'email')->label('Ваш e-mail') ?>
|
<?= $form->field($model, 'email')->label('Ваша адреса електронної пошти') ?>
|
||||||
```
|
```
|
||||||
|
|
||||||
> Інформація: У Yii є велика кількість віджетів, які дозволяють швидко будувати складні та динамічні представлення.
|
> Інформація: У Yii є велика кількість віджетів, які дозволяють швидко будувати складні та динамічні представлення.
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
* домашня сторінка, відображається при переході по URL `http://hostname/index.php`;
|
* домашня сторінка, відображається при переході по URL `http://hostname/index.php`;
|
||||||
* сторінка "About" ("Про нас");
|
* сторінка "About" ("Про нас");
|
||||||
* сторінка "Contact", що відображає форму зворотнього зв’язку, за допомогою якої користувач може звернутися до розробника по e-mail;
|
* сторінка "Contact", що відображає форму зворотнього зв’язку, через яку користувач може звернутися до розробника за допомогою електронної пошти;
|
||||||
* сторінка "Login", на якій відображається форма для аутентифікації користувачів. Спробуйте увійти з логіном/паролем
|
* сторінка "Login", на якій відображається форма для аутентифікації користувачів. Спробуйте увійти з логіном/паролем
|
||||||
"admin/admin". Зверніть увагу на зміну пункту "Login" в головному меню на "Logout".
|
"admin/admin". Зверніть увагу на зміну пункту "Login" в головному меню на "Logout".
|
||||||
|
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
У нижній частині вікна ви зможете бачити системні повідомлення Yii - налагоджувальну інформацію,
|
У нижній частині вікна ви зможете бачити системні повідомлення 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`, що розташований в базовій директорії додатка.
|
Крім веб-додатка, існує консольний скрипт `yii`, що розташований в базовій директорії додатка.
|
||||||
Цей скрипт може бути використаний для виконання фонових завдань або завдань обслуговування додатка.
|
Цей скрипт може бути використаний для виконання фонових завдань або завдань обслуговування додатка.
|
||||||
|
|||||||
@ -168,7 +168,7 @@ if (YII_ENV_DEV) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> Примітка: Якщо вказувати велику кількість компонентів у `bootstrap` - це негативно позначиться на продуктивності
|
> Примітка: Якщо вказувати велику кількість компонентів у `bootstrap` - це негативно позначиться на швидкодії
|
||||||
додатка, оскільки для кожного запиту буде виконуватись один й той самий набір компонентів. Таким чином, потрібно
|
додатка, оскільки для кожного запиту буде виконуватись один й той самий набір компонентів. Таким чином, потрібно
|
||||||
розсудливо використовувати компоненти початкового завантаження.
|
розсудливо використовувати компоненти початкового завантаження.
|
||||||
|
|
||||||
|
|||||||
@ -230,7 +230,7 @@ class User extends ActiveRecord
|
|||||||
|
|
||||||
Дані для моделі, які отримуються від кінцевих користувачів, повинні пройти перевірку, щоб пересвідчитись, що вони задовольняють
|
Дані для моделі, які отримуються від кінцевих користувачів, повинні пройти перевірку, щоб пересвідчитись, що вони задовольняють
|
||||||
певні правила (названі *правилами перевірки*, також відомі як *бізнес-правила*). Наприклад, дано модель `ContactForm`,
|
певні правила (названі *правилами перевірки*, також відомі як *бізнес-правила*). Наприклад, дано модель `ContactForm`,
|
||||||
ви, можливо, хочете пересвідчитись, що всі атрибути заповнені та атрибут `email` містить коректну адресу e-mail.
|
ви, можливо, хочете пересвідчитись, що всі атрибути заповнені та атрибут `email` містить коректну адресу електронної пошти.
|
||||||
Якщо значення для деяких атрибутів не задовольняють відповідні бізнес-правила, то будуть відображенні належні
|
Якщо значення для деяких атрибутів не задовольняють відповідні бізнес-правила, то будуть відображенні належні
|
||||||
повідомлення про помилки, щоб допомогти користувачу виправити їх.
|
повідомлення про помилки, щоб допомогти користувачу виправити їх.
|
||||||
|
|
||||||
@ -265,7 +265,7 @@ public function rules()
|
|||||||
// атрибути name, email, subject і body є обов’язковими
|
// атрибути name, email, subject і body є обов’язковими
|
||||||
[['name', 'email', 'subject', 'body'], 'required'],
|
[['name', 'email', 'subject', 'body'], 'required'],
|
||||||
|
|
||||||
// атрибут email повинен бути коректною адресою e-mail
|
// атрибут email повинен бути коректною адресою електронної пошти
|
||||||
['email', '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. **Коли перекладати повідомлення?**
|
2. **Коли перекладати повідомлення?**
|
||||||
Повідомлення повинні перекладатись, якщо вони показуються кінцевому користувачу та мають для нього значення. Повідомлення статусу HTTP,
|
Повідомлення повинні перекладатись, якщо вони показуються кінцевому користувачу та мають для нього значення. Повідомлення статусу HTTP,
|
||||||
виключення і т.п. не повинні перекладатись. Повідомлення консолі завжди англійською мовою, через труднощі обробки кодування
|
виключення і т. п. не повинні перекладатись. Повідомлення консолі завжди англійською мовою, через труднощі обробки кодування
|
||||||
та кодової сторінки.
|
та кодової сторінки.
|
||||||
3. **[Додавання підтримки нового клієнту аутентифікації](https://github.com/yiisoft/yii2/issues/1652)**
|
3. **[Додавання підтримки нового клієнту аутентифікації](https://github.com/yiisoft/yii2/issues/1652)**
|
||||||
Для кращого супроводу, ніякі додаткові клієнти аутентифікації не будуть додаватись до базового розширення. Вони
|
Для кращого супроводу, ніякі додаткові клієнти аутентифікації не будуть додаватись до базового розширення. Вони
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
Будь ласка, дотримуйтесь рекомендацій, зазначених нижче, при створенні питання, щоб прискорити його вирішення:
|
Будь ласка, дотримуйтесь рекомендацій, зазначених нижче, при створенні питання, щоб прискорити його вирішення:
|
||||||
|
|
||||||
* Подавайте інформацію, включаючи: версію PHP та Yii, тип операційної системи та веб-сервера, тип та версію браузера.
|
* Подавайте інформацію, включаючи: версію PHP та Yii, тип операційної системи та веб-сервера, тип та версію браузера.
|
||||||
* Додавайте **повний** вивід про помилку, якщо є. Скріншот, що пояснює проблему, дуже вітається.
|
* Додавайте **повний** вивід про помилку, якщо є. Знімок екрану, що пояснює проблему, дуже вітається.
|
||||||
* Опишіть кроки, які призводять до помилки. Було б ще краще, надати код для відтворення проблеми.
|
* Опишіть кроки, які призводять до помилки. Було б ще краще, надати код для відтворення проблеми.
|
||||||
* Якщо можливо створіть модульний тест, навіть провальний, та [надішліть його як "pull request"](git-workflow.md).
|
* Якщо можливо створіть модульний тест, навіть провальний, та [надішліть його як "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 — дія;
|
- action — дія;
|
||||||
- active record — (не перекладається);
|
- active record — (не перекладається);
|
||||||
- Advanced/Basic Project Template — Розширений/Базовий шаблон проекту;
|
- Advanced/Basic Project Template — Розширений/Базовий шаблон проекту;
|
||||||
@ -86,6 +88,7 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
|
|||||||
- authorization — авторизація/уповноваження;
|
- authorization — авторизація/уповноваження;
|
||||||
- autoloader — автозавантажувач;
|
- autoloader — автозавантажувач;
|
||||||
- back-end — (не перекладається);
|
- back-end — (не перекладається);
|
||||||
|
- backward compatibility / BC — зворотна сумісність;
|
||||||
- bootstrap, bootstrapping — початкове завантаження;
|
- bootstrap, bootstrapping — початкове завантаження;
|
||||||
- branch — гілка;
|
- branch — гілка;
|
||||||
- browser — браузер;
|
- browser — браузер;
|
||||||
@ -102,14 +105,14 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
|
|||||||
- cookies — кукі;
|
- cookies — кукі;
|
||||||
- customization — (тонке) налаштування;
|
- customization — (тонке) налаштування;
|
||||||
- debug mode — режим налагодження (див. production mode);
|
- debug mode — режим налагодження (див. production mode);
|
||||||
- debugger — відладчик;
|
- debugger — налагоджувач;
|
||||||
- (function) declaration — оголошення (функції);
|
- (function) declaration — оголошення (функції);
|
||||||
- definition — визначення;
|
- definition — визначення;
|
||||||
- design pattern — шаблон проектування;
|
- design pattern — шаблон проектування;
|
||||||
- development mode — режим розробки;
|
- development mode — режим розробки;
|
||||||
- (root) directory — (коренева) директорія;
|
- (root) directory — (коренева) директорія;
|
||||||
- eager loading — жадібне завантаження (див. lazy loading);
|
- eager loading — жадібне завантаження (див. lazy loading);
|
||||||
- email address — адреса e-mail;
|
- email address — адреса електронної пошти;
|
||||||
- environment — середовище;
|
- environment — середовище;
|
||||||
- exception — виключення;
|
- exception — виключення;
|
||||||
- existing — наявний/присутній; // перекладати як "існуючий" не вірно
|
- existing — наявний/присутній; // перекладати як "існуючий" не вірно
|
||||||
@ -144,15 +147,18 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
|
|||||||
- merge — поєднання;
|
- merge — поєднання;
|
||||||
- Model-View-Controller (MVC) — Модель-Представлення-Контролер (MVC);
|
- Model-View-Controller (MVC) — Модель-Представлення-Контролер (MVC);
|
||||||
- namespace — простір імен;
|
- namespace — простір імен;
|
||||||
|
- out of the box — "з коробки";
|
||||||
- package — пакунок;
|
- package — пакунок;
|
||||||
- pagination — розділення на сторінки;
|
- pagination — розділення на сторінки;
|
||||||
- parameter — параметр;
|
- parameter — параметр;
|
||||||
- to parse — обробляти;
|
- to parse — обробляти;
|
||||||
|
- (application) performance — швидкодія (додатка);
|
||||||
- placeholder — заповнювач;
|
- placeholder — заповнювач;
|
||||||
- plugin — плагін;
|
- plugin — плагін;
|
||||||
- postprocessing — після-обробка;
|
- postprocessing — після-обробка;
|
||||||
- predefined — попередньо визначений;
|
- predefined — попередньо визначений;
|
||||||
- production mode — робочий режим (див. debug mode);
|
- production mode — робочий режим (див. debug mode);
|
||||||
|
- profiling — профілювання;
|
||||||
- property — властивість (обʼєкта);
|
- property — властивість (обʼєкта);
|
||||||
- pull request — (не перекладається);
|
- pull request — (не перекладається);
|
||||||
- query builder — конструктор запитів;
|
- query builder — конструктор запитів;
|
||||||
@ -164,6 +170,7 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
|
|||||||
- resolve request — попередня обробка запиту;
|
- resolve request — попередня обробка запиту;
|
||||||
- route, routing — маршрут, маршрутизація;
|
- route, routing — маршрут, маршрутизація;
|
||||||
- row (of the table) — рядок (таблиці);
|
- row (of the table) — рядок (таблиці);
|
||||||
|
- screenshot — знімок екрану;
|
||||||
- Service Locator — Локатор служб;
|
- Service Locator — Локатор служб;
|
||||||
- setter — сеттер;
|
- setter — сеттер;
|
||||||
- shared hosting — віртуальний хостинг;
|
- shared hosting — віртуальний хостинг;
|
||||||
@ -178,6 +185,7 @@ php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide transl
|
|||||||
- theming — темізація;
|
- theming — темізація;
|
||||||
- third party — сторонній;
|
- third party — сторонній;
|
||||||
- thumbnail — мініатюра;
|
- thumbnail — мініатюра;
|
||||||
|
- tracing — трасування;
|
||||||
- trait — трейт;
|
- trait — трейт;
|
||||||
- Twitter — Твіттер;
|
- Twitter — Твіттер;
|
||||||
- Unicode — (не перекладається);
|
- Unicode — (не перекладається);
|
||||||
|
|||||||
@ -23,12 +23,12 @@ use yii\widgets\ActiveForm;
|
|||||||
// Призначення властивостей контексту, виклики їх сеттерів, інші речі.
|
// Призначення властивостей контексту, виклики їх сеттерів, інші речі.
|
||||||
$this->title = 'Posts';
|
$this->title = 'Posts';
|
||||||
?>
|
?>
|
||||||
<!-- Для foreach, for, if, і т.п. краще використовувати роздільні блоки PHP. -->
|
<!-- Для foreach, for, if, і т. п. краще використовувати роздільні блоки PHP. -->
|
||||||
<?php foreach ($posts as $post): ?>
|
<?php foreach ($posts as $post): ?>
|
||||||
<!-- Тут зверніть увагу на відступи. -->
|
<!-- Тут зверніть увагу на відступи. -->
|
||||||
<h2><?= Html::encode($post['title']) ?></h2>
|
<h2><?= Html::encode($post['title']) ?></h2>
|
||||||
<p><?= Html::encode($post['shortDescription']) ?></p>
|
<p><?= Html::encode($post['shortDescription']) ?></p>
|
||||||
<!-- `endforeach;`, `endfor;`, `endif;`, і т.п. потрібно використовувати замість `}` у випадку використання багатьох блоків PHP -->
|
<!-- `endforeach;`, `endfor;`, `endif;`, і т. п. потрібно використовувати замість `}` у випадку використання багатьох блоків PHP -->
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
|
||||||
<!-- При декларуванні віджету код може міститись як на одному так і на багатьох рядках. -->
|
<!-- При декларуванні віджету код може міститись як на одному так і на багатьох рядках. -->
|
||||||
|
|||||||
Reference in New Issue
Block a user