Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

8.9 KiB

Компоненти додатка

Додатки є сервіс локаторами. Вони зберігають багато так званих компонентів додатку, які надають різноманітні інструменти для опрацювання запитів. Наприклад, компоненти urlManager відповідає за маршрутизацію веб запитів до потрібного контролера; компонент db надає інструменти для работи з базою даних; і т. д.

Кожний компонент додатка має свій унікальний ID, який дозволяє ідентифікувати його серед інших різноманітних компонентів в одному і тому ж додатку. Ви можете отримати доступ до компонента наступним чином:

\Yii::$app->ComponentID

Наприклад, ви можете використовувати \Yii::$app->db для отримання yii\db\Connection, і \Yii::$app->cache для отримання доступу до основного компонента yii\caching\Cache, зареєстрованого в додатку.

Компонентами додатку можуть бути любі об’єкти. Ви можете зареєструвати їх з допомогою властивості yii\base\Application::components в конфігурації додатка. Наприклад,

[
    'components' => [
        // реєстрація "cache" компонента з допомогою назви класу
        'cache' => 'yii\caching\ApcCache',

        // реєстрація "db" компонента з допомогою масива конфігурації
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=demo',
            'username' => 'root',
            'password' => '',
        ],

        // реєстрація "search" компонента з допомогою анонімної функції
        'search' => function () {
            return new app\components\SolrService;
        },
    ],
]

Інформація: Хоча ви можете зареєструвати стільки компонентів в додатку скільки вам потрібно, все ж таки варто робити це осмислено. Компоненти додатку схожі на глобальні змінні. Використання дуже великої кількості компонетів додатку може потенційно зробити ваш код складним для розробки і тестування. В більшості випадків ви можете просто створити локальний компонент і використовувати його при необхідності.

Вбудовані компоненти додатку

В Yii є декілька вбудованих компонентів додатку, з фіксованими ID і конфігураціями за замовчуванням. Наприклад, компонент yii\web\Application::request використовується для отримання інформації про запит користувача і розбору його в певний маршрут; компонент yii\base\Application::db являє собою з’єднання з базою даних, через яке ви можете виконувати запити. Саме з допомогою цих вбудованих компонентів Yii додатки можуть обрабляти запит користувача.

Нижче наведений перелік вбудованих компонентів додатку. Ви можете конфігурувати їх так само як і інші компоненти додатку. Коли ви конфігуруєте вбудований компонент додатку і не вказуєте клас цього компонента, то буде використовуватись значення за замовчуванням.

  • yii\web\AssetManager: використовується для керування і відображенням ресурсів додатку. Більш детальна інформація представлена в розділі Ресурси;
  • yii\db\Connection: являє собою з’єднання з базою даних, через яке ви можете виконувати запити. Зверніть увагу, що коли конфігуруєте даний компонент, ви маєте вказати клас компонента так як і решту необхідних параметрів, а саме такі як yii\db\Connection::dsn. Більш детальна інформація представлена в розділі Об’єкти доступу до даних (DAO);
  • yii\base\Application::errorHandler: здійснює опрацювання PHP помилок і виключень. Більш детальна інформація представлена в розділі Обробка помилок;
  • yii\base\Formatter: форматує дані для відображення їх кінцевому користувачу. Наприклад, число може бути зображене з різноманітними розділителями, дата може бути зображена в форматі long. Більш детальна інформація представлена в розділі Форматування даних;
  • yii\i18n\I18N: використовується для перекладу повідомлень і форматування. Більш детальна інформація представлена в розділі Інтернаціоналізація;
  • yii\log\Dispatcher: обробка і маршрутизація логів. Більш детальна інформація представлена в розділі Логування;
  • yii\swiftmailer\Mailer: надає можливості для побудови і розсилки поштових повідомлень. Більш детальна інформація представлена в розділі Відправлення пошти;
  • yii\base\Application::response: являє собою дані від серверу, які будуть направлені користувачу. Більш детальна інформація представлена в розділі Відповіді;
  • yii\base\Application::request: являє собою запит, отриманий від кінцевого користувача. Більш детальна інформація представлена в розділі Запити;
  • yii\web\Session: інформація про сесії. Даний компонент доступний тільки в yii\web\Application. Більш детальна інформація представлена в розділі Сесії і куки;
  • yii\web\UrlManager: використовується для розбору і побудови URL. Більш детальна інформація представлена в розділі Розбір і генерація URL;
  • yii\web\User: являє собою інформацію авторизованого користувача. Даний компонент доступний тільки в yii\web\Application. Більш детальна інформація представлена в розділі Аутентифікація;
  • yii\web\View: використовується для відображення представлень. Більш детальна інформація представлена в розділі Представлення.