Nette Documentation Preview

syntax
Uygulama Yapılandırması
***********************

.[perex]
Nette Uygulamaları için yapılandırma seçeneklerine genel bakış.


Application
===========

```neon
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:

```neon
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 |creating-links#Geçersiz Bağlantılar] ayarlayarak da etkileyebiliriz.

[Takma adlar, sık kullanılan presenter'lara bağlantı vermeyi basitleştirir |creating-links#Takma Adlar Alias].

[Eşleme, presenter adından sınıf adının nasıl türetileceğine ilişkin kuralları tanımlar |directory-structure#Presenter Eşlemesi].


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:

```neon
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 |dependency-injection:configuration#Birleştirme] kullanırız:

```neon
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.

```neon
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ı |latte:extending-latte#Latte Extension] şu şekilde ekleyebilirsiniz:

```neon
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:

```neon
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:

```neon
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 |routing#Rota Koleksiyonu] 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:

```neon
routing:
	routes:
		'detail/<id>': Admin:Home:default
		'<presenter>/<action>': Front:Home:default
```


Sabitler
========

PHP sabitleri oluşturma.

```neon
constants:
	Foobar: 'baz'
```

Uygulama başlatıldıktan sonra `Foobar` sabiti oluşturulacaktır.

.[note]
Sabitler, genel olarak erişilebilir değişkenler gibi kullanılmamalıdır. Nesnelere değer iletmek için [bağımlılık enjeksiyonunu |dependency-injection:passing-dependencies] kullanın.


PHP
===

PHP yönergelerinin ayarlanması. Tüm yönergelerin bir listesini [php.net |https://www.php.net/manual/en/ini.list.php] adresinde bulabilirsiniz.

```neon
php:
	date.timezone: Europe/Prague
```


DI Servisleri
=============

Bu servisler DI konteynerine eklenir:

| Ad                | Tip                        | Açıklama
|----------------------------------------------------------
| `application.application`	     | [api:Nette\Application\Application]      |  [tüm uygulamanın başlatıcısı |how-it-works#Nette Application]
| `application.linkGenerator`    | [api:Nette\Application\LinkGenerator]    |  [LinkGenerator |creating-links#LinkGenerator]
| `application.presenterFactory` | [api:Nette\Application\PresenterFactory] |  presenter'lar için fabrika
| `application.###`              | [api:Nette\Application\UI\Presenter]     |  bireysel presenter'lar
| `latte.latteFactory`           | [api:Nette\Bridges\ApplicationLatte\LatteFactory] | `Latte\Engine` nesnesi için fabrika
| `latte.templateFactory`        | [api:Nette\Application\UI\TemplateFactory] | [`$this->template` |templates] için fabrika

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