Uygulama Yapılandırma

Nette Uygulaması için yapılandırma seçeneklerine genel bakış.

Uygulama

application:
	# Tracy BlueScreen'de "Nette Application" panelini gösterir?
	debugger: ...           # (bool) varsayılan olarak true

	# error-presenter hata üzerine çağrılacak mı?
	# sadece geliştirici modunda etkilidir
	catchExceptions: ...    # (bool) varsayılan olarak true

	# hata sunucusunun adı
	errorPresenter: Error   # (string|array) varsayılan olarak 'Nette:Error'

	# sunum yapanlar ve etkinlikler için takma adlar tanımlar
	aliases: ...

	# sunum yapan kişinin adını bir sınıfa çözümlemek için kuralları tanımlar
	mapping: ...

	# kötü bağlantılar uyarı oluşturuyor mu?
	# sadece geliştirici modunda etkilidir
	silentLinks: ...        # (bool) varsayılan değer false

nette/application sürüm 3.2'den itibaren bir çift hata sunucusu tanımlamak mümkündür:

application:
	errorPresenter:
		4xx: Error4xx   # Nette\Application\BadRequestException için
		5xx: Error5xx   # diğer istisnalar için

silentLinks seçeneği, bağlantı oluşturma başarısız olduğunda (örneğin, sunum yapan kişi olmadığından vb.) Nette'in geliştirici modunda nasıl davranacağını belirler. Varsayılan değer olan false, Nette'in E_USER_WARNING adresini tetikleyeceği anlamına gelir. true olarak ayarlanması bu hata mesajını bastırır. Bir üretim ortamında, E_USER_WARNING her zaman çağrılır. Bu davranışı, sunum yapan değişken $invalidLinkMode'u ayarlayarak da etkileyebiliriz.

Takma adlar, sık kullanılan sunum yapanlara atıfta bulunmayı kolaylaştırır.

Eşleme, sınıf adının sunum yapan kişinin adından türetildiği kuralları tanımlar.

Sunum Yapanların Otomatik Kaydı

Nette, sunum yapan kişileri otomatik olarak DI konteynerine hizmet olarak ekler, bu da onların oluşturulmasını önemli ölçüde hızlandırır. Nette'in sunucuları nasıl bulacağı yapılandırılabilir:

application:
	# Composer sınıf haritasında sunum yapan kişileri aramak için?
	scanComposer: ...      # (bool) varsayılan değer true

	# sınıf ve dosya adıyla eşleşmesi gereken bir maske
	scanFilter: ...        # (string) varsayılan olarak '*Presenter'

	# sunum yapan kişileri hangi dizinlerde arayalım?
	scanDirs:              # (string[]|false) varsayılan değer '%appDir%'
		- %vendorDir%/mymodule

scanDirs adresinde listelenen dizinler %appDir% varsayılan değerini geçersiz kılmaz, ancak onu tamamlar, bu nedenle scanDirs hem %appDir% hem de %vendorDir%/mymodule yollarını içerecektir. Varsayılan dizinin üzerine yazmak istiyorsak ünlem işareti kullanırız:

application:
	scanDirs!:
		- %vendorDir%/mymodule

Dizin taraması false ayarı yapılarak kapatılabilir. Sunucuların otomatik olarak eklenmesinin tamamen engellenmesini önermiyoruz, aksi takdirde uygulama performansı düşecektir.

Latte

Bu ayar, Latte'nin bileşenler ve sunuculardaki davranışını genel olarak etkiler.

latte:
	# Latte panelini Tracy Bar'da ana şablon için mi (true) yoksa tüm bileşenler için mi (all) gösteriyor?
	debugger: ...        # (true|false|'all') varsayılan olarak true

	# declare(strict_types=1) ile şablonlar oluşturur
	strictTypes: ...     # (bool) varsayılan değer false

	# [katı ayrıştırıcı modunu |latte:develop#strict mode]etkinleştirir
	strictParsing: ...   # (bool) varsayılan değer false

	# [oluşturulan kodun kontrol |latte:develop#Checking Generated Code]edilmesini sağlar
	phpLinter: ...       # (string) varsayılan null

	# $this->template sınıfı
	templateClass: App\MyTemplateClass # varsayılan olarak Nette\Bridges\ApplicationLatte\DefaultTemplate

Latte sürüm 3 kullanıyorsanız, kullanarak yeni uzantı ekleyebilirsiniz:

latte:
	extensions:
		- Latte\Essential\TranslatorExtension

Yönlendirme

Temel ayarlar:

yönlendirme:
	# Tracy Bar'da yönlendirme panelini gösterir mi?
	debugger: ...   # (bool) varsayılan değer true

	# yönlendiriciyi DI konteynerine serileştirmek için?
	cache: ...      # (bool) varsayılan değer false

Yönlendirici genellikle RouterFactory sınıfında tanımlanır. Alternatif olarak, yönlendiriciler mask: action çiftleri kullanılarak yapılandırmada da tanımlanabilir, ancak bu yöntem ayarlarda bu 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'

Foobar sabiti başlangıçtan sonra oluşturulacaktır.

Sabitler global olarak kullanılabilir değişkenler olarak kullanılmamalıdır. Nesnelere değer aktarmak için bağımlılık enjeksiyonu kullanın.

PHP

PHP yönergelerini ayarlayabilirsiniz. Tüm yönergelere genel bir bakış php.net adresinde bulunabilir.

php:
	date.timezone: Europe/Prague

DI Hizmetleri

Bu hizmetler DI konteynerine eklenir:

Ad Tür Açıklama
application.application Nette\Application\Application tam uygulama başlatıcı
application.linkGenerator Nette\Application\LinkGenerator LinkGenerator
application.presenterFactory Nette\Application\PresenterFactory sunum fabrikası
application.### Nette\Application\UI\Presenter bireysel sunum yapanlar
latte.latteFactory Nette\Bridges\ApplicationLatte\LatteFactory fabrika için Latte\Engine
latte.templateFactory Nette\Application\UI\TemplateFactory fabrika için $this->template
versiyon: 4.0