Налаштування програми

Огляд варіантів конфігурації застосунку Nette.

Додаток

application:
	# відображає вкладку "Nette Application" на синьому екрані Tracy?
	debugger: ...           # (bool) за замовчуванням true

	# чи буде викликатися презентер помилок у разі помилки?
	catchExceptions: ...    # (bool) за замовчуванням true на "бойовому" сервері

	# ім'я презентера помилок
	errorPresenter: Error   # (string) за замовчуванням 'Nette:Error'

	# визначає правила для перетворення імені ведучого в клас
	mapping: ...

	# чи видають погані посилання попередження?
	# має силу тільки в режимі розробки
	silentLinks: ...        # (bool) за замовчуванням false

Оскільки в режимі розробки презентери помилок за замовчуванням не викликаються, а помилки відображаються Tracy, зміна значення catchExceptions на true допомагає перевірити коректність роботи презентерів помилок під час розробки.

Опція silentLinks визначає, як Nette поводиться в режимі розробника, коли генерація посилань не вдається (наприклад, через відсутність презентера тощо). Значення за замовчуванням false означає, що Nette запускає E_USER_WARNING. Встановлення значення true пригнічує це повідомлення про помилку. У виробничому середовищі завжди викликається E_USER_WARNING. Ми також можемо вплинути на цю поведінку, встановивши змінну презентера $invalidLinkMode.

Карта mapping визначає правила, за якими ім'я класу виводиться з імені ведучого.

Автореєстрація презентерів

Nette автоматично додає презентери як сервіси в контейнер DI, що значно прискорює їхнє створення. Як Nette впізнає презентери, можна налаштувати:

application:
	# для пошуку презентерів у карті класів Composer?
	scanComposer: ...      # (bool) за замовчуванням true

	# маска, яка має відповідати класу та імені файлу
	scanFilter: ...        # (string) за замовчуванням '*Presenter'

	# у яких каталогах шукати презентери?
	scanDirs:              # (string[]|false) за замовчуванням '%appDir%'
		- %vendorDir%/mymodule

Каталоги, перераховані в scanDirs, не скасовують значення за замовчуванням %appDir%, а доповнюють його, тому scanDirs міститиме обидва шляхи %appDir% і %vendorDir%/mymodule. Щоб перезаписати каталог за замовчуванням, ми використовуємо знак оклику:

application:
	scanDirs!:
		- %vendorDir%/mymodule

Сканування каталогу можна відключити, задавши значення false. Ми не рекомендуємо повністю пригнічувати автоматичне додавання презентерів, інакше продуктивність програми знизиться.

Latte

Це налаштування глобально впливає на поведінку Latte в компонентах і презентерах.

latte:
	# відображає вкладку Latte на панелі Tracy для основного шаблону (true) або для всіх компонентів (all)?
	debugger: ...        # (true|false|'all') за замовчуванням true

	# генерує шаблони з declare(strict_types=1)
	strictTypes: ...     # (bool) за замовчуванням false

	# клас $this->template
	templateClass: App\MyTemplateClass # за замовчуванням Nette\Bridges\ApplicationLatte\DefaultTemplate

Якщо ви використовуєте Latte версії 3, ви можете додати нове розширення, використовуючи:

latte:
	расширения:
		- Latte\Essential\TranslatorExtension

Маршрутизація

Основні налаштування:

routing:
	# відображає вкладку Routing на панелі Tracy?
	debugger: ...   # (bool) за замовчуванням true

	# здійснювати серіалізацію маршрутів у DI-контейнері?
	cache: ...      # (bool) за замовчуванням false

Маршрути зазвичай визначаються в класі RouterFactory. Альтернативно, прості правила маршрутизації можна визначити в конфігурації за допомогою пар маска: действие:

routing:
	routes:
		'detail/<id>': Admin:Home:default
		'<presenter>/<action>': Front:Home:default

Константи

Створення констант PHP:

constants:
	Foobar: 'baz'

Константа Foobar буде створена після запуску.

Константи не повинні слугувати як глобально доступні змінні. Для передачі значень об'єктам використовуйте dependency injection.

PHP

Ви можете встановлювати директиви PHP. Огляд усіх директив можна знайти на сайті php.net.

php:
	date.timezone: Europe/Prague
версію: 4.0