Nette Documentation Preview

syntax
********
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

データベース設定

Nette Databaseの設定オプションの概要。

フレームワーク全体ではなく、このライブラリのみを使用している場合は、設定を読み込む方法 を読んでください。

単一接続

単一のデータベース接続の設定:

database:
	# DSN、唯一の必須キー
	dsn: "sqlite:%appDir%/Model/demo.db"
	user: ...
	password: ...

Nette\Database\ConnectionNette\Database\Explorer サービスを作成します。これらは通常、autowiring によって渡されるか、その名前 への参照によって渡されます。

その他の設定:

database:
	# Tracy Bar にデータベースパネルを表示しますか?
	debugger: ...     # (bool) デフォルトはtrue

	# Tracy Bar にクエリの EXPLAIN を表示しますか?
	explain: ...      # (bool) デフォルトはtrue

	# この接続に対して autowiring を許可しますか?
	autowired: ...    # (bool) 最初の接続ではデフォルトでtrue

	# テーブルの命名規則: discovered, static またはクラス名
	conventions: discovered  # (string) デフォルトは 'discovered'

	options:
		# データベースへの接続は必要になったときのみ行いますか?
		lazy: ...     # (bool) デフォルトはfalse

		# PHP データベースドライバクラス
		driverClass:  # (string)

		# MySQL のみ: sql_mode を設定
		sqlmode:      # (string)

		# MySQL のみ: SET NAMES を設定
		charset:      # (string) デフォルトは 'utf8mb4'

		# MySQL のみ: TINYINT(1) を bool に変換
		convertBoolean:  # (bool) デフォルトはfalse

		# 日付カラムを immutable オブジェクトとして返します (バージョン 3.2.1 以降)
		newDateTime:  # (bool) デフォルトはfalse

		# Oracle と SQLite のみ: 日付の保存形式
		formatDateTime: # (string) デフォルトは 'U'

options キーには、PDO ドライバのドキュメント に記載されているその他のオプションを指定できます。例:

database:
	options:
		PDO::MYSQL_ATTR_COMPRESS: true

複数接続

設定では、名前付きセクションに分割することで、複数のデータベース接続を定義することもできます:

database:
	main:
		dsn: 'mysql:host=127.0.0.1;dbname=test'
		user: root
		password: password

	another:
		dsn: 'sqlite::memory:'

Autowiringは最初のセクションのサービスに対してのみ有効です。これは autowired: false または autowired: true を使用して変更できます。

DI サービス

これらのサービスはDIコンテナに追加されます。ここで ### は接続名を表します:

名前 説明
database.###.connection Nette\Database\Connection データベース接続
database.###.explorer Nette\Database\Explorer Database Explorer

単一の接続のみを定義する場合、サービス名は database.default.connectiondatabase.default.explorer になります。上記の例のように複数の接続を定義する場合、名前はセクションに対応します。つまり、database.main.connectiondatabase.main.explorer、さらに database.another.connectiondatabase.another.explorer です。

Autowiringされていないサービスは、その名前への参照によって明示的に渡します:

services:
	- UserFacade(@database.another.connection)