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
versiyon: 4.0