Nette Documentation Preview

Konfigurace

Konfigurace se obykle zapisuje v NEON souboru. Se syntaxí si můžete pohrát na stránce https://ne-on.org.

Většinu parametrů Nette Frameworku lze nyní ovlivnit pomocí konfiguračního souboru. Nette Framework sám sebe konfiguruje pomocí rozšíření DI Containeru, které přijímá parametry v sekci nette v konfiguračním souboru, která se nachází pod hlavní sekcí common (pokud ji používáte).

Sessions

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

nette:
	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

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

Routování

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


Konfigurace rout je zatím experimentální.

Security

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

nette:
	security:
		debugger: true  # panel v Debugger baru
		frames: ... # ovlivňuje hlavičku X-Frame-Options

		users:
			frantisek: tajneheslo

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

		resources:
			file:

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.

Maily

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

nette:
	mailer:
		smtp: true # zapne SmtpMailer místo SendmailMailer
		# dále lze uvést host, port, username, password, secure, timeout


Databáze

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

nette:
	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 conventional 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.

nette:
	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

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

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

DI

nette:
	container:
		debugger: true  # aktivuje panel v Debugger baru

Debugger

Lze konfigurovat některé parametry Tracy (dříve Nette\Diagnostics\Debugger) a nastavovat panely do Debugger baru.

nette:
	debugger:
		email: %webmasterEmail%
		strictMode: TRUE
		editor: ...
		browser: ...
		bar: # panely do Debugger baru
			- IncludePanel
			- XDebugHelper('myIdeKey')
			- MyPanel(@MyService)
		blueScreen: # panely do Laděnky
			- DoctrinePanel::renderException

Low-level úpravy

Všechna tato nastavení ovlivňují podobu výsledného systémového DI kontejneru. Oproti přímému zápisu do sekcí services či factories nabízejí srozumitelnější a stručnější syntax. Nicméně zůstává možnost si jednotlivé služby ještě „doladit“ na nižší úrovni:

services:
	nette.mailer:
		class: MySmtpMailer

	nette.presenterFactory:
		class: MyPresenterFactory

Nebo vytvořit nové služby poděděním existujících:

services:
	myPresenterFactory < nette.presenterFactory
		setup:
			- setMapping([])

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%]