You are browsing the unmaintained documentation for old Nette 2.3. See documentation for current Nette.

Konfigurace

Samotná konfigurace se obykle zapisuje v NEON souboru. Se syntaxí se můžete seznámit na stránce https://ne-on.org. V souboru můžeme nastavit

Sessions

Lze nastavovat všechny PHP direktivy (ve formátu camelCase).

session:
	autoStart: true  # výchozí je smart
	expiration: 10 days
	name: ...
	...

Doporučuje se používat autoStart: smart, protože pak automaticky startuje session, pouze pokud je již vytvořena.

Více o konfiguraci sessions.

Application

application:
	debugger: true # panel do Laděnky
	catchExceptions: ...
	errorPresenter: ...

errorPresenter

Defaultní hodnota: Nette:Error

Tímto parametrem určíme, jaký presenter se má zavolat, dojde-li v naší aplikaci k chybě. Jak takový presenter může vypadat, najdeme v sandboxu.

Pokud dojde k chybě během zpracování error presenteru, tak Tracy zobrazí pouze jednoduchou chybovou stránku.

catchExceptions

Defaultní hodnota: TRUE pro produkční mód, FALSE pro debug mód

Tento parametr ovlivňuje, zda dojde k zavolání error presenteru. Změnou hodnoty na TRUE můžeme v debug módu ověřit správnou funkčnost error presenteru.

mapping

Defaultní hodnota: *: *Module\*Presenter (v sandboxu je pak upravená na *: App\*Module\Presenters\*Presenter)

Tento parametr obsahuje pole s pravidly pro přepis názvu presenteru na název třídy. Klíč v poli obsahuje název modulu, pro který se má toto pravidlo uplatnit, nebo * jako fallback pro ostatní moduly. Hodnota pak obsahuje masku pravidla:

application:
	mapping:
		Admin: App\Admin\*Module\*Presenter
		*: App\*Module\Presenters\*Presenter

Presenter Front:Blog:Article je obsažen v modulu Front, pro ten nemáme žádný vlastní mapping, použije se tedy obecný s hvezdičkou a výsledná třída bude App\FrontModule\BlogModule\Presenters\ArticlePresenter. Presenter Admin:User:Edit se nachází v modulu Admin, pro které zde máme oddělený mapping. Výsledný název třídy bude App\Admin\UserModule\EditPresenter (všimněte si, že jelikož je modul Admin již uveden v pravidlech mappingu, ve výsledném názvu třídy bude zahozen).

Defaultní hodnota: FALSE

Tato hodnota určuje, jak se Nette zachová v debug módu při tom, když se nepodaří vygenerovat odkaz. Defautlní hodnota FALSE znamená, že Nette vyhodí E_USER_WARNING chybu. Nastavením na TRUE dojde k potlačení této chybové hlášky. V produkčním prostředí se E_USER_WARNING vyvolá vždy.

Toto chování můžeme také ovlivnit nastavením třídní proměnné Presenteru::$invalidLinkMode".

scan*

Nette umožnuje automaticky registrovat presentery jako služby, což poté zrychlí jejich vytváření. Je zde několik konfiguračních možností, které určují, kde a jak bude Nette tyto presentery hledat.

scanDirs

Defaultní hodnota: %appDir% (tedy /app)

Tato hodnota obsahuje pole určující, v jakých adresářích má Nette hledat presentery pomocí RobotLoaderu. Pokud zapíšeme do konfigurace nějakou hodnotu, bude spojená s tou defaultní:

application:
	scanDirs:
		- foo

scanDirs pak bude obsahovat hodnoty %appDir% a foo, pokud bychom chtěli skenování adresářů vypnout nebo zcela přepsat, musíme použít modifkátor !, který hodnotu přepíše:

application:
	scanDirs!:
		- foo

scanDirs bude nyní obsahovat pouze hodnotu foo.

scanComposer

Defaultní hodnota: TRUE

Tento paremetr určuje, zde má Nette hledat presentery v Composer classmap.

scanFilter

Defaultní hodnota: Presenter

Určuje, jaký řetězec musí obsahovat třída a název souboru, který bude automaticky registrován.

Routování

routing:
	debugger: true  # panel v Debugger baru
	routes:
			index.php: Dashboard:default
			'<presenter>/<action>[/<id>]': Dashboard:default

Konfigurace rout je zatím experimentální.

HTTP hlavičky

http:
	frames: ... # ovlivňuje hlavičku X-Frame-Options
	headers:
		Content-Security-Policy: default-src 'self' https://maxcdn.bootstrapcdn.com

Framework z bezpečnostních důvodů odesílá hlavičku X-Frame-Options: SAMEORIGIN, která říká, že stránku lze zobrazit uvnitř jiné stránky (v elementu IFRAME) pouze pokud se nachází na stejné doméně. To může být v některých situacích nežádoucí (například pokud vyvíjíte aplikaci pro Facebook), chování lze proto vypnout nastavením položky frames: yes. Můžete ovlivňovat i další odesílané hlavičky nastavením http.headers. V tomto příkladě nastavujeme hlavičku Content-Security-Policy která nám dovolí stahovat externí soubory (img, script apod.) pouze z naší domény, nebo z https://maxcdn.bootstrapcdn.com. Více o hlavičce Content-Security-Policy.

Security

Uvedením pole users vytvoříme SimpleAuthenticator, uvedením polí roles nebo resources vytvoříme autorizátor Nette\Security\Permission.

security:
	debugger: true  # panel v Debugger baru

	users:
		frantisek: tajneheslo

	roles:
		guest:
		member:
		admin: [member]  # admin dědí od membera

	resources:
		file:

Maily

Standardní mailer je SendmailMailer, uvedením smtp aktivujeme SmtpMailer.

mail:
	smtp: true # zapne SmtpMailer místo SendmailMailer
	# nepovinné nastavení
	host: ...
	port: ...
	username: ...
	password: ...
	secure: # povolené hodnoty jsou ssl, tls nebo null
	timeout: ...

Databáze

Můžeme vytvořit více připojení, které uvedeme pod klíčem database. Takto vytvoříme spojení nazvané default.

database:
	default:
		dsn: "sqlite2:%appDir%/models/demo.db"
		user: ...
		password: ...
		options: [PDO::MYSQL_ATTR_COMPRESS = true]
		debugger: false # panel v Debugger baru
		explain: false  # explain dotazů v Debugger baru
		reflection: discovered # nebo static nebo název třídy

Framework tak vytvoří nejen objekt Nette\Database\Connection, ale nastavují mu i pomocné objekty jako reflection & cache a ve vývojářském režimu přidá panel do Debugger baru.

V rámci konfiguračního souboru se můžeme ke službě dostat přes autowiring (@Nette\Database\Connection), přes název služby (@nette.database.default) nebo si vytvořit alias a ten používat:

services:
	database: @nette.database.default

	authorizator: Auth(@database)

Formuláře

V konfiguračním souboru lze změnit výchozí chybové hlášky.

forms:
	messages:
		EQUAL: 'Please enter %s.'
		FILLED: 'Please complete mandatory field.'
		MIN_LENGTH: 'Please enter a value of at least %d characters.'
		EMAIL: '%label must be valid e-mail'

Šablony Latte

Lze přepínat HTML a XHTML režim šablon:

latte:
	xhtml: no  # výchozí je false

DI

di:
	debugger: true  # aktivuje panel v Debugger baru

Tracy debugger

Lze konfigurovat některé parametry Tracy a nastavovat panely do Debugger baru.

tracy:
	email: %webmasterEmail%
	strictMode: TRUE
	editor: ...
	browser: ...
	bar: # panely do Debugger baru
		- Nette\Bridges\DITracy\ContainerPanel # alias DI Container baru
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)
	blueScreen: # panely do Laděnky
		- DoctrinePanel::renderException

Low-level úpravy

Máte možnost si jednotlivé služby ještě „doladit“ na nižší úrovni. Takto například nahradíme standardní třídy za své:

services:
	mail.mailer:
		factory: MySmtpMailer

	application.presenterFactory:
		factory: MyPresenterFactory

Vlastní služby

Konfigurační soubor je místem, kam umísťujeme definice vlastních služeb. Slouží k tomu sekce services. Například tato definice služby:

services:
	database: Nette\Database\Connection(%dsn%, %user%, %password%)

# nebo ve dvou řádcích:
	database:
		factory: Nette\Database\Connection(%dsn%, %user%, %password%)

# nebo ve třech řádcích :-)
	database:
		class: Nette\Database\Connection
		arguments: [%dsn%, %user%, %password%]
Vylepšit tuto stránku