## Властивості додатків <a name="application-properties"></a>
Існує багато важливих властивостей додатка, які ви налаштовуєте в конфігураціях додатка. Ці властивості зазвичай описують середовище, в якому працює додаток. Наприклад, додаток мусить знати яким чином завантажувати [контролери](structure-controllers.md), де зберігати тимчасові файли, і т.п. Нижче ми розглянемо дані властивостей.
Існує багато важливих властивостей додатка, які ви налаштовуєте в конфігураціях додатка. Ці властивості зазвичай описують середовище, в якому працює додаток. Наприклад, додаток мусить знати яким чином завантажувати [контролери](structure-controllers.md), де зберігати тимчасові файли, і т.п. Нижче ми розглянемо дані властивості.
### Об’язкові властивості <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]] часто використовується для важливих шляхів, наприклад, шлях до 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) для встановлення розширень.
Таким чином, в більшості випадків вам не потрібно налашстовувати дану властивість.
Таким чином, в більшості випадків вам не потрібно налаштовувати дану властивість.
В особливих випадках, коли ви хочете опрацьовувати розширення в ручному режимі, ви можете вказати дану властивість наступним чином:
Властивість вказує шлях, по якому зберігаються тисчасові файли, такі як: лог файли, кеш файли. За замовчуванням значення рівне директорії, яка преставлена псевдонімом шляху `@app/runtime`.
Властивість вказує шлях, по якому зберігаються тимчасові файли, такі як: лог файли, кеш файли. За замовчуванням значення рівне директорії, яка преставлена псевдонімом шляху `@app/runtime`.
Ви можете налаштувати дану властивість як директорію або як [псевдонім](concept-aliases.md) шляху. Зверніть увагу, що дана директорія має бути доступна для запису процесом, який запускає додаток. Також директорія має бути захищена від доступу кінцевим користувачам, файли які зберігаються в ній можуть містити важливу інформацію.
Дана подія виникає *до* того як додаток починає обробляти вхідний запит.
Справжнє ім’я події - `beforeRequest`.
На момент виникнення данох події, об’єкт додатка вже створений і проініційований. Таким чином, це є хорошим місцем для добавляння вашего коду з допомогою подій, для перехвату управління обробкою запиту.
На момент виникнення даної події, об’єкт додатка вже створений і проініційований. Таким чином, це є добрим місцем для добавляння вашого коду з допомогою подій, для перехвату управління обробкою запиту.
Наприклад, обробник події, може динамічно підставляти мову додатка [[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>