Uygulama Yapılandırması
Nette Uygulamaları için yapılandırma seçeneklerine genel bakış.
Application
application:
# Tracy BlueScreen'de "Nette Application" panelini göster?
debugger: ... # (bool) varsayılan true
# hata durumunda error-presenter çağrılacak mı?
# yalnızca geliştirme modunda etkilidir
catchExceptions: ... # (bool) varsayılan true
# error-presenter adı
errorPresenter: Error # (string|array) varsayılan 'Nette:Error'
# presenter'lar ve eylemler için takma adları tanımlar
aliases: ...
# presenter adını sınıfa çevirme kurallarını tanımlar
mapping: ...
# hatalı bağlantılar uyarı oluşturmaz mı?
# yalnızca geliştirme modunda etkilidir
silentLinks: ... # (bool) varsayılan false
nette/application
sürüm 3.2'den itibaren bir çift error-presenter tanımlanabilir:
application:
errorPresenter:
4xx: Error4xx # Nette\Application\BadRequestException istisnası için
5xx: Error5xx # diğer istisnalar için
silentLinks
seçeneği, Nette'nin geliştirme modunda bir bağlantı oluşturma başarısız olduğunda
(örneğin, presenter mevcut olmadığı için vb.) nasıl davranacağını belirler. Varsayılan false
değeri,
Nette'nin bir E_USER_WARNING
hatası atacağı anlamına gelir. true
olarak ayarlamak bu hata mesajını
bastırır. Üretim ortamında E_USER_WARNING
her zaman tetiklenir. Bu davranışı, presenter değişkeni $invalidLinkMode ayarlayarak da
etkileyebiliriz.
Takma adlar, sık kullanılan presenter'lara bağlantı vermeyi basitleştirir.
Eşleme, presenter adından sınıf adının nasıl türetileceğine ilişkin kuralları tanımlar.
Presenter'ların Otomatik Kaydı
Nette, presenter'ları otomatik olarak DI konteynerine servis olarak ekler, bu da oluşturulmalarını önemli ölçüde hızlandırır. Nette'nin presenter'ları nasıl bulduğu yapılandırılabilir:
application:
# Composer sınıf haritasında presenter'ları ara?
scanComposer: ... # (bool) varsayılan true
# sınıf ve dosya adının uyması gereken maske
scanFilter: ... # (string) varsayılan '*Presenter'
# presenter'lar hangi dizinlerde aranacak?
scanDirs: # (string[]|false) varsayılan '%appDir%'
- %vendorDir%/mymodule
scanDirs
içinde belirtilen dizinler, varsayılan %appDir%
değerinin üzerine yazmaz, ancak onu
tamamlar, bu nedenle scanDirs
hem %appDir%
hem de %vendorDir%/mymodule
yollarını
içerecektir. Varsayılan dizini atlamak istiyorsak, değeri üzerine yazan ünlem işaretini kullanırız:
application:
scanDirs!:
- %vendorDir%/mymodule
Dizin taraması, false değeri belirtilerek kapatılabilir. Presenter'ların otomatik olarak eklenmesini tamamen bastırmanızı önermiyoruz, çünkü aksi takdirde uygulama performansı düşer.
Latte Şablonları
Bu ayar, Latte'nin bileşenlerdeki ve presenter'lardaki davranışını genel olarak etkilemenizi sağlar.
latte:
# Ana şablon için (true) veya tüm bileşenler için (all) Tracy Bar'da Latte panelini göster?
debugger: ... # (true|false|'all') varsayılan true
# declare(strict_types=1) başlığıyla şablonlar oluşturur
strictTypes: ... # (bool) varsayılan false
# [katı ayrıştırıcı |latte:develop#striktní režim] modunu açar
strictParsing: ... # (bool) varsayılan false
# [oluşturulan kodun kontrolünü |latte:develop#Kontrola vygenerovaného kódu] etkinleştirir
phpLinter: ... # (string) varsayılan null
# yerel ayarı ayarlar
locale: cs_CZ # (string) varsayılan null
# $this->template nesnesinin sınıfı
templateClass: App\MyTemplateClass # varsayılan Nette\Bridges\ApplicationLatte\DefaultTemplate
Latte sürüm 3 kullanıyorsanız, yeni uzantıları şu şekilde ekleyebilirsiniz:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Latte sürüm 2 kullanıyorsanız, yeni etiketleri sınıf adını belirterek veya bir servise referans vererek
kaydedebilirsiniz. Varsayılan olarak install()
metodu çağrılır, ancak bu, başka bir metodun adını belirterek
değiştirilebilir:
latte:
# özel Latte etiketlerini kaydet
macros:
- App\MyLatteMacros::register # statik metot, sınıf adı veya çağrılabilir
- @App\MyLatteMacrosFactory # install() metoduna sahip servis
- @App\MyLatteMacrosFactory::register # register() metoduna sahip servis
services:
- App\MyLatteMacrosFactory
Yönlendirme
Temel ayarlar:
routing:
# Tracy Bar'da yönlendirme panelini göster?
debugger: ... # (bool) varsayılan true
# yönlendiriciyi DI konteynerine serileştirir
cache: ... # (bool) varsayılan false
Yönlendirme genellikle RouterFactory sınıfında
tanımlanır. Alternatif olarak, rotalar yapılandırmada maske: eylem
çiftleri kullanılarak da tanımlanabilir,
ancak bu yöntem ayar konusunda o kadar geniş bir çeşitlilik sunmaz:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Sabitler
PHP sabitleri oluşturma.
constants:
Foobar: 'baz'
Uygulama başlatıldıktan sonra Foobar
sabiti oluşturulacaktır.
Sabitler, genel olarak erişilebilir değişkenler gibi kullanılmamalıdır. Nesnelere değer iletmek için bağımlılık enjeksiyonunu kullanın.
PHP
PHP yönergelerinin ayarlanması. Tüm yönergelerin bir listesini php.net adresinde bulabilirsiniz.
php:
date.timezone: Europe/Prague
DI Servisleri
Bu servisler DI konteynerine eklenir:
Ad | Tip | Açıklama |
---|---|---|
application.application |
Nette\Application\Application | tüm uygulamanın başlatıcısı |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | presenter'lar için fabrika |
application.### |
Nette\Application\UI\Presenter | bireysel presenter'lar |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | Latte\Engine nesnesi için fabrika |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | $this->template için fabrika |