アプリケーション設定
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 のファクトリ |