## Властивості додатків <a name="application-properties"></a>
## Властивості додатків <a name="application-properties"></a>
Існує багато важливих властивостей додатка, які ви налаштовуєте в конфігураціях додатка. Ці властивості зазвичай описують середовище, в якому працює додаток. Наприклад, додаток мусить знати яким чином завантажувати [контролери](structure-controllers.md), де зберігати тимчасові файли, і т.п. Нижче ми розглянемо дані властивостей.
Існує багато важливих властивостей додатка, які ви налаштовуєте в конфігураціях додатка. Ці властивості зазвичай описують середовище, в якому працює додаток. Наприклад, додаток мусить знати яким чином завантажувати [контролери](structure-controllers.md), де зберігати тимчасові файли, і т.п. Нижче ми розглянемо дані властивості.
### Об’язкові властивості <a name="required-properties"></a>
### Об’язкові властивості <a name="required-properties"></a>
В любому додатку, ви маєте налаштувати мінімум дві властивості: [[yii\base\Application::id|id]]
В кодному додатку, ви маєте налаштувати мінімум дві властивості: [[yii\base\Application::id|id]]
Ви можете налаштувати властивість [[yii\base\Application::basePath|basePath]] вказавши прямий шлях до директорії через [псевдоніми шляху](concept-aliases.md). В обох випадках, вказана директорія має існувати, інакше буде отримано виняток. Шлях буде нормалізований за допомогою виклику функції `realpath()`.
Ви можете налаштувати властивість [[yii\base\Application::basePath|basePath]] вказавши прямий шлях до директорії через [псевдоніми шляху](concept-aliases.md). В обох випадках, вказана директорія має існувати, інакше буде отримано виняток. Шлях буде нормалізований за допомогою виклику функції `realpath()`.
Властивість [[yii\base\Application::basePath|basePath]] часто використовується для важливих шляхів, наприклад, шлях до runtime директоріх, котра використовується в процесі робити додатка. Саме по цій причині, псевдонім шляху `@app` є зумовленим і вказує на дану директорію. Інші шляхи можуть бути визначеними шляхом використання псевдоніму шляху, наприклад,
Властивість [[yii\base\Application::basePath|basePath]] часто використовується для важливих шляхів, наприклад, шлях до runtime директорії, котра використовується в процесі робити додатка. Саме по цій причині, псевдонім шляху `@app` є зумовленим і вказує на дану директорію. Інші шляхи можуть бути визначеними шляхом використання псевдоніму шляху, наприклад,
Властивість вказує на ім’я додатка, яку может бути зображене кінцевому користувачу. На відміну від властивості [[yii\base\Application::id|id]], яка має бути унікальним, значення даної властивості потрібне в основному для відображення і не є обов’язково унікальним.
Властивість вказує на ім’я додатка, яке може бути зображене кінцевому користувачу. На відміну від властивості [[yii\base\Application::id|id]], яка має бути унікальною, значення даної властивості потрібне в основному для відображення і не є обов’язково унікальною.
Якщо ваш код не використовує дану властивість, то ви можете не налаштовувати її.
Якщо ваш код не використовує дану властивість, то ви можете не налаштовувати її.
Властивість вказує кодування, яке використовує додаток. За замовчуванням значення рівне `'UTF-8'`, яке мусить бути залишеним для бульшості додатків, тільки якщо ви не працюєте з устарівшим кодом, який використовує більшу кількість даних не юнікода.
Властивість вказує кодування, яке використовує додаток. За замовчуванням значення рівне `'UTF-8'`, яке мусить бути залишеним для більшості додатків, тільки якщо ви не працюєте з устарівшим кодом, який використовує більшу кількість даних не юнікода.
Дана властивість описує перелік [розширень](structure-extensions.md), які встановлені і використовуються додатком. За замовчуванням, значення даної властивості буде масив, отриманий з файла `@vendor/yiisoft/extensions.php`. Файл `extensions.php` генерується і використовується автоматично, коли ви використовуєте [Composer](http://getcomposer.org) для встановлення розширень.
Дана властивість описує перелік [розширень](structure-extensions.md), які встановлені і використовуються додатком. За замовчуванням, значення даної властивості буде масив, отриманий з файла `@vendor/yiisoft/extensions.php`. Файл `extensions.php` генерується і використовується автоматично, коли ви використовуєте [Composer](http://getcomposer.org) для встановлення розширень.
Таким чином, в більшості випадків вам не потрібно налашстовувати дану властивість.
Таким чином, в більшості випадків вам не потрібно налаштовувати дану властивість.
В особливих випадках, коли ви хочете опрацьовувати розширення в ручному режимі, ви можете вказати дану властивість наступним чином:
В особливих випадках, коли ви хочете опрацьовувати розширення в ручному режимі, ви можете вказати дану властивість наступним чином:
Властивість вказує шлях, по якому зберігаються тисчасові файли, такі як: лог файли, кеш файли. За замовчуванням значення рівне директорії, яка преставлена псевдонімом шляху `@app/runtime`.
Властивість вказує шлях, по якому зберігаються тимчасові файли, такі як: лог файли, кеш файли. За замовчуванням значення рівне директорії, яка преставлена псевдонімом шляху `@app/runtime`.
Ви можете налаштувати дану властивість як директорію або як [псевдонім](concept-aliases.md) шляху. Зверніть увагу, що дана директорія має бути доступна для запису процесом, який запускає додаток. Також директорія має бути захищена від доступу кінцевим користувачам, файли які зберігаються в ній можуть містити важливу інформацію.
Ви можете налаштувати дану властивість як директорію або як [псевдонім](concept-aliases.md) шляху. Зверніть увагу, що дана директорія має бути доступна для запису процесом, який запускає додаток. Також директорія має бути захищена від доступу кінцевим користувачам, файли які зберігаються в ній можуть містити важливу інформацію.
Дана подія виникає *до* того як додаток починає обробляти вхідний запит.
Дана подія виникає *до* того як додаток починає обробляти вхідний запит.
Справжнє ім’я події - `beforeRequest`.
Справжнє ім’я події - `beforeRequest`.
На момент виникнення данох події, об’єкт додатка вже створений і проініційований. Таким чином, це є хорошим місцем для добавляння вашего коду з допомогою подій, для перехвату управління обробкою запиту.
На момент виникнення даної події, об’єкт додатка вже створений і проініційований. Таким чином, це є добрим місцем для добавляння вашого коду з допомогою подій, для перехвату управління обробкою запиту.
Наприклад, обробник події, може динамічно підставляти мову додатка [[yii\base\Application::language]] в залежності від деяких параметрів.
Наприклад, обробник події, може динамічно підставляти мову додатка [[yii\base\Application::language]] в залежності від деяких параметрів.
Зверніть увагу, що ті ж самі події `afterAction` виникають в [модулях](structure-modules.md) і [контролерах](structure-controllers.md). Ці об’єкти ініціюють подіх у зворотньому порядку, якщо зрівнювати з `beforeAction`.
Зверніть увагу, що ті ж самі події `afterAction` виникають в [модулях](structure-modules.md) і [контролерах](structure-controllers.md). Ці об’єкти ініціюють події у зворотньому порядку, якщо зрівнювати з `beforeAction`.
Таким чином, контролеры є першими, де виникає дана подія, потім в модулях (якщо такі мають місце), і врешті в додатках.
Таким чином, контролери є першими, де виникає дана подія, потім в модулях (якщо такі мають місце), і врешті в додатках.
## Життєвий цикл додатка <a name="application-lifecycle"></a>
## Життєвий цикл додатка <a name="application-lifecycle"></a>