Konfiguracja aplikacji
Przegląd opcji konfiguracyjnych dla Nette Applications.
Aplikacja
application:
# pokazać panel "Nette Application" w Tracy BlueScreen?
debugger: ... # (bool) domyślnie jest true
# czy error-presenter będzie wywoływany przy błędzie?
# działa tylko w trybie deweloperskim
catchExceptions: ... # (bool) domyślnie true
# error-presenter name
errorPresenter: Error # (string|array) domyślnie 'Nette:Error'
# definiuje aliasy dla prezenterów i wydarzeń
aliases: ...
# definiuje zasady rozwiązywania nazwy prezentera do klasy
mapping: ...
# błędne linki nie generują ostrzeżenia?
# działa tylko w trybie deweloperskim
silentLinks: ... # (bool) domyślnie jest false
Od wersji nette/application
3.2 możliwe jest zdefiniowanie pary prezenterów błędów:
application:
errorPresenter:
4xx: Error4xx # dla wyjątku Nette\Application\BadRequestException
5xx: Error5xx # dla innych wyjątków
Opcja silentLinks
określa, jak Nette zachowuje się w trybie rozwoju, gdy generowanie linków nie powiedzie się
(np. z powodu braku prezentera itp.). Domyślna wartość false
oznacza, że Nette rzuci błąd
E_USER_WARNING
. Ustawienie go na true
spowoduje wyeliminowanie tego komunikatu o błędzie. W
środowisku produkcyjnym, E_USER_WARNING
jest zawsze podniesiony. Na to zachowanie można również wpłynąć
poprzez ustawienie zmiennej prezentera $invalidLinkMode.
Aliasy ułatwiają odwoływanie się do często używanych prezenterów.
Odwzorowanie określa zasady, według których nazwa klasy jest wyprowadzana z nazwy prezentera.
Automatyczna rejestracja prezenterów
Nette automatycznie dodaje prezentery jako usługi do kontenera DI, co radykalnie przyspieszy ich tworzenie. Sposób śledzenia prezenterów przez Nette można skonfigurować:
zastosowanie:
# search presentery in Composer class map?
scanComposer: ... # (bool) domyślnie jest true
# maska, która musi pasować do nazwy klasy i pliku
scanFilter: ... # (string) domyślnie '*Prezenter'
# w jakich katalogach szukać prezenterów?
scanDirs: # (string[]|false) domyślnie '%appDir%'
- %vendorDir%/mymoduł
Katalogi wymienione w scanDirs
nie nadpisują domyślnej wartości %appDir%
, ale dodają do niej,
więc scanDirs
będzie zawierał zarówno ścieżki %appDir%
jak i %vendorDir%/mymodule
.
Jeśli chcielibyśmy pominąć domyślny katalog, używamy wykrzyknika, aby nadpisać wartość:
application:
scanDirs!:
- %vendorDir%/mymodule
Skanowanie katalogów można wyłączyć podając wartość false. Nie zaleca się całkowitego wyłączenia automatycznego dodawania prezenterów, w przeciwnym razie wydajność aplikacji ulegnie pogorszeniu.
Szablony Latte
To ustawienie może być używane do globalnego wpływania na zachowanie Latte w komponentach i prezenterach.
latte:
# show Latte bar in Tracy Bar for main template (true) or all components (all)?
debugger: ... # (true|false|'all') domyślnie jest true
# generowanie szablonów z nagłówkami declare(strict_types=1)
strictTypes: ... # (bool) domyślnie jest false
# włącza [ścisły tryb parsera |latte:develop#strict mode]
strictParsing: ... # (bool) domyślnie false
# włącza [sprawdzanie wygenerowanego kodu |latte:develop#Checking Generated Code]
phpLinter: ... # (string) domyślnie null
# ustawia ustawienia regionalne
locale: cs_CZ # (string) domyślnie null
# klasa obiektów $this->template
templateClass: AppMyTemplateClass # domyślnie jest Nette\Bridges\ApplicationLatte\DefaultTemplate
Jeśli używasz Latte w wersji 3, możesz dodać nowe rozszerzenia za pomocą:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Routing
Ustawienia podstawowe:
routing:
# show routing bar in Tracy Bar?
debugger: ... # (bool) domyślnie jest true
# serializuje router do kontenera DI
cache: ... # (bool) domyślnie jest false
Routing jest zwykle definiowany w klasie RouterFactory. Alternatywnie, routery
mogą być również zdefiniowane w konfiguracji przy użyciu par maska: akce
, ale ta metoda nie oferuje tak
szerokiego spektrum ustawień:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Stałe
Tworzenie stałych PHP.
constants:
Foobar: 'baz'
Po uruchomieniu aplikacji zostanie utworzona stała Foobar
.
Stałe nie powinny być używane jako zmienne dostępne globalnie. Użyj zastrzyku zależności, aby przekazać wartości do obiektów.
PHP
Ustawianie dyrektyw PHP. Przegląd wszystkich dyrektyw można znaleźć na stronie php.net.
php:
date.timezone: Europe/Prague
Usługi DI
Usługi te są dodawane do kontenera DI:
Nazwa | Typ | Opis |
---|---|---|
application.application |
Nette\Application\Application | pełny program uruchamiający aplikacje |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | fabryka prezenterów |
application.### |
Nette\Application\UI\Presenter | indywidualni prezenterzy |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | fabryka dla Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | fabryka dla $this->template |