dtforce/nette-doctrine

A lightweight Doctrine integration extension for Nette framework.

v1.0.0 2016-12-05 14:34 UTC

This package is not auto-updated.

Last update: 2024-11-23 18:34:12 UTC


README

Scrutinizer Code Quality

nette-doctrine

A lightweight Doctrine integration extension for Nette framework. This extension is a replacement of Kdyby\Doctrine, suitable for those who want to use native Doctrine classes and don't want register entity manager in the Nette service container themselves. It is compatible with Kdyby\Console.

Configuration

Add extension to Nette project like this:

extensions:
	doctrine: DTForce\DoctrineExtension\DI\DoctrineExtension

Configure Doctrine access and other parameters like this:

doctrine:
	connection:
		driver: pdo_pgsql
		host: localhost
		port: 5432
		user: username
		password: password
		dbname: database

	debug: true
	prefix: doctrine.default
	proxyDir: %tempDir%/cache/proxies
	sourceDir: %appDir%/Entity

	dbal:
		types:
			dateinterval: App\Doctrine\Postgresql\Types\DateIntervalType
		type_overrides:
			date: VasekPurchart\Doctrine\Type\DateTimeImmutable\DateTimeImmutableType
			datetime: VasekPurchart\Doctrine\Type\DateTimeImmutable\DateTimeImmutableType
			datetimetz: VasekPurchart\Doctrine\Type\DateTimeImmutable\DateTimeTzImmutableType
		schema_filter: "~^(?!nd_)~" # tables and sequences that start with nd_ are ingored by Doctrine

	functions:
		CAST: App\Doctrine\Postgresql\Functions\Cast

Tweaking

Mapping classes

To create mapping between classes used in annotations and the actually instantiated classes create a Nette extension implementing IClassMappingProvider. Method getClassnameToClassnameMapping is expected to return mapping using class used for annotations as its key and class actually instantiated as the associated value.

Adding entity source directories

To register different source directories for different extensions, let your extension implement IEntitySourceProvider. Method getEntityFolderMappings is expected to return list of folders, where Doctrine entities can be found. Key of the returned array is ignored.