アプリケーション設定

Netteアプリケーションの設定オプションの概要。

Application

application:
	# Tracy BlueScreenに「Nette Application」パネルを表示しますか?
	debugger: ...           # (bool) デフォルトは true

	# エラー時に error-presenter を呼び出しますか?
	# 開発モードでのみ効果があります
	catchExceptions: ...    # (bool) デフォルトは true

	# error-presenter の名前
	errorPresenter: Error   # (string|array) デフォルトは 'Nette:Error'

	# Presenterとアクションのエイリアスを定義します
	aliases: ...

	# Presenter名をクラスに変換するルールを定義します
	mapping: ...

	# 不正なリンクは警告を生成しませんか?
	# 開発モードでのみ効果があります
	silentLinks: ...        # (bool) デフォルトは false

nette/application バージョン 3.2 以降、エラープレゼンターのペアを定義できます。

application:
	errorPresenter:
		4xx: Error4xx   # Nette\Application\BadRequestException 例外用
		5xx: Error5xx   # その他の例外用

silentLinks オプションは、リンク生成が失敗した場合(例えば、Presenterが存在しないためなど)に、開発モードでNetteがどのように動作するかを決定します。デフォルト値 false は、Netteが E_USER_WARNING エラーをスローすることを意味します。true に設定すると、このエラーメッセージが抑制されます。本番環境では、E_USER_WARNING は常に発生します。この動作は、Presenter変数 $invalidLinkMode を設定することでも制御できます。

エイリアスは、頻繁に使用されるPresenterへのリンクを簡略化します。

マッピングは、Presenter名からクラス名を導出するルールを定義します。

Presenterの自動登録

NetteはPresenterをサービスとしてDIコンテナに自動的に追加し、これによりPresenterの作成が大幅に高速化されます。NetteがPresenterをどのように検索するかは設定可能です。

application:
	# ComposerクラスマップでPresenterを検索しますか?
	scanComposer: ...      # (bool) デフォルトは true

	# クラス名とファイル名が一致する必要があるマスク
	scanFilter: ...        # (string) デフォルトは '*Presenter'

	# どのディレクトリでPresenterを検索しますか?
	scanDirs:              # (string[]|false) デフォルトは '%appDir%'
		- %vendorDir%/mymodule

scanDirs にリストされたディレクトリは、デフォルト値 %appDir% を上書きするのではなく、補完します。したがって、scanDirs には %appDir%%vendorDir%/mymodule の両方のパスが含まれます。デフォルトのディレクトリを除外したい場合は、値を上書きする感嘆符を使用します。

application:
	scanDirs!:
		- %vendorDir%/mymodule

ディレクトリのスキャンは、false値を指定することで無効にできます。Presenterの自動追加を完全に抑制することはお勧めしません。そうしないと、アプリケーションのパフォーマンスが低下します。

Latte テンプレート

この設定により、コンポーネントとPresenterにおけるLatteの動作をグローバルに影響させることができます。

latte:
	# メインテンプレート(true)またはすべてのコンポーネント(all)に対してTracy BarにLatteパネルを表示しますか?
	debugger: ...        # (true|false|'all') デフォルトは true

	# declare(strict_types=1) ヘッダーを持つテンプレートを生成します
	strictTypes: ...     # (bool) デフォルトは false

	# [厳密なパーサーモード |latte:develop#striktní režim]を有効にします
	strictParsing: ...   # (bool) デフォルトは false

	# [生成されたコードのチェック |latte:develop#Kontrola vygenerovaného kódu]を有効にします
	phpLinter: ...       # (string) デフォルトは null

	# ロケールを設定します
	locale: cs_CZ        # (string) デフォルトは null

	# $this->template オブジェクトのクラス
	templateClass: App\MyTemplateClass # デフォルトは Nette\Bridges\ApplicationLatte\DefaultTemplate

Latteバージョン3を使用している場合は、次のようにして新しい拡張機能を追加できます。

latte:
	extensions:
		- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)

Latteバージョン2を使用している場合は、クラス名を指定するか、サービスへの参照を指定することで、新しいタグ(マクロ)を登録できます。デフォルトでは install() メソッドが呼び出されますが、別のメソッド名を指定することで変更できます。

latte:
	# カスタムLatteタグの登録
	macros:
		- App\MyLatteMacros::register         # 静的メソッド、クラス名またはcallable
		- @App\MyLatteMacrosFactory           # install() メソッドを持つサービス
		- @App\MyLatteMacrosFactory::register # register() メソッドを持つサービス

services:
	- App\MyLatteMacrosFactory

ルーティング

基本設定:

routing:
	# Tracy Barにルーティングパネルを表示しますか?
	debugger: ...   # (bool) デフォルトは true

	# ルーターをDIコンテナにシリアライズします
	cache: ...      # (bool) デフォルトは false

ルーティングは通常、RouterFactoryクラスで定義します。あるいは、maska: akce のペアを使用して設定でルートを定義することもできますが、この方法では設定の柔軟性がそれほど高くありません。

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

定数

PHP定数の作成。

constants:
	Foobar: 'baz'

アプリケーション起動後、Foobar 定数が作成されます。

定数は、グローバルにアクセス可能な変数として使用すべきではありません。オブジェクトに値を渡すには、依存関係注入を使用してください。

PHP

PHPディレクティブの設定。すべてのディレクティブの概要はphp.netにあります。

php:
	date.timezone: Europe/Prague

DI サービス

これらのサービスはDIコンテナに追加されます。

名前 説明
application.application Nette\Application\Application アプリケーション全体の起動
application.linkGenerator Nette\Application\LinkGenerator LinkGenerator
application.presenterFactory Nette\Application\PresenterFactory Presenter のファクトリ
application.### Nette\Application\UI\Presenter 個々の Presenter
latte.latteFactory Nette\Bridges\ApplicationLatte\LatteFactory Latte\Engine オブジェクトのファクトリ
latte.templateFactory Nette\Application\UI\TemplateFactory $this->template のファクトリ
バージョン: 4.0