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.
Mapowanie definiuje zasady, według których nazwa klasy pochodzi od 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 |