Componette

Componette

Kdyby

Kdyby / Doctrine v3.3.1

Doctrine 2 ORM integration into Nette Framework

download-cloud-line composer require kdyby/doctrine
  • v3.3.1 v3.3.1

  • v3.3.0 v3.3.0

  • v3.1.4 v3.1.4

    • #299 Fixed merging metadata from IEntityProvider with config introduced in 4cda9bb

    This release is for Nette 2.3.*

  • v3.2.1 v3.2.1

    • #299 Fixed merging metadata from IEntityProvider with config introduced in 4cda9bb

    This release is for Nette ^2.4

  • v3.2.0 v3.2.0

    • #284 OrmExtensions: Repository magic removed [BC BREAK]
    • dropped Dibi bridge [BC BREAK]
    • #81 new console commands
    • #276 QueryObject: call postFetch after fetchOne()
    • #213 Allow service references in metadata
    • #231, #230 fix ResolveTargetEntityListener - not loadClassMetadata on each request; thx @jirinapravnik
    • #275 extract EntityManagerUnitOfWorkSnapshotPanel from Panel
    • #281 Panel: if line for property is not found don't kill bluescreen
    • #290, #288 NonLockingUniqueInserter: persist all fields; thx @pilec
    • #88 IEntityProvider cannot change already configured namespace
    • #294 Extension: create dao for subclasses; thx @vitkutny
    • #293 Removed deprecated Tracy\Debugger::$source from FileLogger; thx @her-ur
    • #291 Geo\Element: fix limited JIT stack space error on long geo-string validation; thx @xificurk

    This release is for Nette ^2.4

  • v3.1.3 v3.1.3

    • #213 Allow service references in metadata
    • #231, #230 fix ResolveTargetEntityListener - not loadClassMetadata on each request; thx @jirinapravnik
    • #275 extract EntityManagerUnitOfWorkSnapshotPanel from Panel
    • #281 Panel: if line for property is not found don't kill bluescreen
    • #290, #288 NonLockingUniqueInserter: persist all fields; thx @pilec
    • #88 IEntityProvider cannot change already configured namespace
    • #294 Extension: create dao for subclasses; thx @vitkutny
    • #293 Removed deprecated Tracy\Debugger::$source from FileLogger; thx @her-ur
    • #291 Geo\Element: fix limited JIT stack space error on long geo-string validation; thx @xificurk

    This release is for Nette 2.3.*

  • v3.1.2 v3.1.2

    • Compatibility with Nette 2.4

    This release is for Nette ~2.3 (which means also ~2.4).

  • v3.1.1 v3.1.1

    • Fix incompatibility with Nette/DI 2.4; thx @enumag
    • Revert 2fbfa9f. "Config: optimize production setup of autogenerating proxies [#237]" - this fixes the BC Break introduced in v3.1.0 that people were not expecting. The commit will remain master untill v4.0 is tagged. So start fixing your deployment routines while it's time.

    This release is for Nette ~2.3

  • v3.1.0 v3.1.0

    • Fixed EntityRepository::countBy MSSql bug #235, thx @josefzajac
    • DI: Optimized production setup of autogenerating proxies 2fbfa9f - this might potentially be a BC Break for you, if you do not have a propper deployment process, where you generate proxies manually with orm:generate-proxies
    • DI: refactor services to bind with specific EM 018671a - this allows autowiring for the default entity manager, but still provides all the required services for all entitymanagers, so you can wire them manually
    • Console: Added command switches for choosing EntityManager #247, thx @foxycode
    • MagicAccessors: fix incorrect handling of method names #228, thx @lookyman
    • ProxyAutoloader: refactor DI & drop dependency on Container::onInitialize event #263, thx @enumag - Kdyby/Doctrine should be able to work without Kdyby/Events, if you override the EventManager service
    • Remove dependency on Nette\Callback 34c1495

    This release is for Nette ~2.3

  • v3.0.1 v3.0.1

    • Reverted #174 "Remove LIMIT 1 for fetchOne" [BC Break revert - was introduced in v3.0.0]
    • Allow to override QueryObject::fetchOne(), as a better solution for the original problem with the limit, documented at QueryObject::fetchOne()
    • EntityManager: Implement QueryExecutor & Queryable by @juniwalk
    • Queryable: Remove select method
    • OrmExtension: make Tracy soft dependency by @TomasVotruba

    This release is for Nette ~2.3

  • v3.0.0 v3.0.0

    • Fixed tracy panel styles (and stolen SVG icon from nette/database)
    • Remove LIMIT 1 for EntityRepository::fetchOne() by @jasin755 (BC Break - but it fixes when you're selecting toMany with join)
    • EntityRepository::countBy() now returns integer type by @richard-ejem
    • Fix extension methods in BaseEntity & MagicAccessors (Nette\Callback is deprecated)
    • QueryBuilder: auto join ORDER BY can sort by aggregation function result by @EaredSeal
    • Add configuration for default query hints by @davidkudera
    • Added Kdyby\Doctrine\Entity\Attributes\UniversallyUniqueIdentifier trait by @klimesf
    • Fix RobotLoader::initialize() is incorrectly called for every tryLoad() by @lm (relevant to proxy autoloading)
    • Panel: Improved highlightQuery method by @enumag
    • RepositoryFactory: implemented handling of repositories as services (big feature, possibly might break some apps that already use this in some hackish way)
    • NonLockingUniqueInserter supports single table inheritance by @mkoubik
    • Deprecate BaseEntity & introduced MagicAccessors that returns read-only collections from getters of collection properties. Otherwise, it's compatible with BaseEntity.
    • Deprecate EntityManager::onDaoCreate()
    • DI: no longer autoregister AnnotationsExtension, but throw instead (Nette deprecated this feature)
    • Remove custom --debug-mode from CLI commands (compatibility with Kdyby/Console#v2.5.0 )
    • Introduce NativeQueryBuilder::setDefaultRenameMode()
    • Fixed clearing annotations cache
    • Implemented LazyCollection (might wanna push this to doctrine/common some day)
    • Preserve associative keys in ResultSet::toArray()
    • Fix nested iterations over ResultSet
    • ReadOnlyCollectionWrapper implements Doctrine\Common\Collections\Selectable
    • Render UnitOfWork panel when exception occurs during EntityManager->flush()
    • Catch warnings in Connection::ping()
    • EntityRepository: fetch with different hydration mode by @VaclavSir
    • Panel: highlight Doctrine\DBAL\Exception\DriverException
    • Fix contract BC Break in QueryBuilder by extracting InlineParamsBuilder (BC Break - if you're using inline parameters in QB ->andWhere('e.name = :name', $name) you have to re-enable it manually in config with queryBuilderClassName: Kdyby\Doctrine\Dql\InlineParamsBuilder). Also, you can now configure your own child of QueryBuilder as default QueryBuilder.
    • Add QueryObject::onPostFetch() to allow multiple initializers
    • Drop PHP 5.3
    • Panel: show cache statistics for 2nd level cache, if it's enabled
    • DI: basic 2nd lvl cache config section
    • The custom Events::postLoadRelations is useless in Doctrine 2.5, so everything related to it is removed and the event is deprecated - possible BC Break
    • Require doctrine/orm ~2.5

    This release is for Nette ~2.3

  • v2.3.1 v2.3.1

    • QueryBuilder: refactor autojoin aliasing
    • Fixed proxy autoloaders initialization by @enumag
    • Fixed generating sql value for POINT and LINE_STRING type by @brabijan
    • Nette 2.3 compatibility
    • Dibi extension bridge for Nette 2.2 by @stekycz
    • Implemented EmptyResultSet (for when you wanna return ResultSet type, but without results)
    • QueryObject: created postFetch method
    • Connection: fixed duplicate creation of database platform by @matej21

    This release is for Nette ~2.2

  • v2.3.0 v2.3.0

    • lock to doctrine 2.4, because 2.5 contains api bc breaks
    • Deprecated EntityDao::save() and EntityDao::remove()
    • Deprecated EntityManager::getDao()
    • implemented RepositoryFactory
    • Fixed lazy inicialization of database that broke with doctrine/dbal: 2.5
    • Use namespaced evm from kdyby/events. All events are now first dispatched with namespace Doctrine\ORM\Event, but don't worry, it contains a BC fix that also dispatches the old variant without namespace. After you migrate all your listeners to namespaced variant, you can disable the dispatchGlobalEvents to increase performance
    • fixed minor bugs

    This release is for Nette ~2.2

  • v2.0.6 v2.0.6

    • lock to doctrine 2.4, because 2.5 contains api bc breaks
    • Deprecated EntityDao::save() and EntityDao::remove()
    • Deprecated EntityManager::getDao()
    • implemented RepositoryFactory
    • Fixed lazy inicialization of database that broke with doctrine/dbal: 2.5
    • Use namespaced evm from kdyby/events. All events are now first dispatched with namespace Doctrine\ORM\Event, but don't worry, it contains a BC fix that also dispatches the old variant without namespace. After you migrate all your listeners to namespaced variant, you can disable the dispatchGlobalEvents to increase performance
    • fixed minor bugs

    This release is for Nette 2.1.*

  • v2.2.0 v2.2.0

    • [Soft BC Break] Minimum dependency on doctrine/dbal 2.5 which means new DBAL\Connection exceptions

    New property Connection::$throwOldKdybyExceptions was introduced, that enables the old behaviour of exceptions on Kdyby\Doctrine\Connection.
    The new DBAL has much better exception resolution and throws specific exceptions, making the old behaviour obsolete.

    The old behaviour is by default turned off, so you're pushed to migrating, but you can still turn it on.

    services:
        doctrine.default.connection:
            setup:
                - $throwOldKdybyExceptions(TRUE)
    

    This property and related deprecated exceptions will be removed no later than with release of Doctrine\DBAL 2.6

    • Fixed identifier quoting on shortcut methods insert/update/delete #64
    • Dropped custom Connection::ping() (completely compatible native one is used)
    • Implemented Persistence\ManagerRegistry #140
    • ClassMetadataFactory fix: add entity alias (which defined in targetEntityMappings) to the metadata map, thanks to @matej21
    • Added ResultSet::toArray() shortcut

    This release is for Nette 2.2.*

  • v2.0.5 v2.0.5

    • [Soft BC Break] Minimum dependency on doctrine/dbal 2.5 which means new DBAL\Connection exceptions

    New property Connection::$throwOldKdybyExceptions was introduced, that enables the old behaviour of exceptions on Kdyby\Doctrine\Connection.
    The new DBAL has much better exception resolution and throws specific exceptions, making the old behaviour obsolete.

    The old behaviour is by default turned off, so you're pushed to migrating, but you can still turn it on.

    services:
        doctrine.default.connection:
            setup:
                - $throwOldKdybyExceptions(TRUE)
    

    This property and related deprecated exceptions will be removed no later than with release of Doctrine\DBAL 2.6

    • Fixed identifier quoting on shortcut methods insert/update/delete #64
    • Dropped custom Connection::ping() (completely compatible native one is used)
    • Implemented Persistence\ManagerRegistry #140
    • ClassMetadataFactory fix: add entity alias (which defined in targetEntityMappings) to the metadata map, thanks to @matej21
    • Added ResultSet::toArray() shortcut

    This release is for Nette 2.1.*

  • v2.1.1 v2.1.1

    This release is for Nette 2.2.*

  • v2.0.4 v2.0.4

    This release is for Nette 2.1.*

  • v2.1.0 v2.1.0

  • v2.0.3 v2.0.3

    • Fixed autoJoin with multiple conditions on the same relation
    • Extracted and fixed Helpers::separateParameters()
    • Add support for subquery to NativeQueryBuilder, thx @pilec
    • Fixed configuring multiple connections
    • Use Nette's RobotLoader in AnnotationDriver to search for entities, If you don't wanna use it, then instead of %appDir%/models or annotations(%appDir%/models) (which is default) you have to specify the default implementation classname
    doctrine:
        metadata:
            App: Doctrine\ORM\Mapping\Driver\AnnotationDriver(%appDir%/models)

    Why would you wanna do that? Well, the Doctrine's implementation just crawls a directory and requires everything that remotely resembles PHP file. If you happen to have some scripts laying around, they will be triggered. On the other hand, the Doctrine's implementation is about 10x faster.

    On a directory with 800 files, the new implementation with RobotLoader takes more than 10 seconds. On the other hand, the files are crawled only once at compile-time.

  • v2.0.2 v2.0.2

    • Hotfixed ClassMetadata::newInstance()
    • Add smart NativeQueryBuilder::addColumn()
    • Created Entities\Attributes\Identifier trait to be used instead of IdentifiedEntity
    • Custom NativeQueryBuilder
    • Fixed handling of NativeQueryBuilder in ResultSet
    • Map joined entities to tables in NativeQueryBuilder
    • Autobuild entity result from join or from clauses in NativeQueryBuilder
    • BaseEntity: Support returning a collection, wrapped into ReadOnlyCollectionWrapper, thx @Majkl578
  • v2.0.1 v2.0.1

    • Locked dependency on Nette to 2.1.*
    • Implemented lazy geo element for lazy data parsing, thx @stekycz
    • Do not remove system cache in CacheCleaner
    • Shitload of documentation
    • Parameter inlining in query builder
    $qb->andWhere('r.id = :id', $restaurantId);
    • Added HashHydrator for hydrating Nette\Utils\ArrayHash instead of array
    $result = $query->getResult(Hydration\HashHydrator::NAME);
  • v2.0.0 v2.0.0

    • Fixed count of result set to be different from totalCount [BC break]
    • Underscore is now default naming convetion [BC BREAK]. You can change it back using namingStrategy option.
    • EntityRepository extracted from EntityDao. You can now change defaultRepositoryClassName to Kdyby\Doctrine\EntityRepository and ignore that you ever could call save() on repository which was a bad idea to even begin with.
    • Add option --debug-mode to cli commands [experiment]
    • Added ResultSet::clearSorting()
    • Refactored and improved debug bar panel to use parameter types for formatting, thx @stekycz
    • Added console commands orm:convert-mapping and orm:generate-entities, thx @foxycode
    • Refactored processing of ::safePersist() to work also with not autogenerated identifiers, thx @stekycz
    • Implemented saving of relations using ::safePersist(), thx @stekycz
    • Created Events::postLoadRelations that is called after result row hydratation
  • v1.2.0 v1.2.0

    • Fixed and improved configuration autoGenerateProxyClasses
    • Better cache invalidation before bussines critical cli commands
    • SQL file logger, that can be turned on by simply passing a filename to logging option
    doctrine:
        logging: %appDir%/../log/queries.sql
    • NativeQuery support in QueryObject
    • Fixed highlighting of imported annotations
    • ResultSet accepts QueryObject that it was created in and can delegate counting on it for optimalization purposes
    • Smarter findBy(), findPairs() and findAssoc() criteria filtering with autojoin and rich operators on DAO
    • Auto-join refactored from DAO to QueryBuilder and created QueryBuilder::whereCriteria()
    • Better EntityManager ::clear(), ::remove() and ::persist() api (accepts array and is fluent)
    • Dropped JitProxyWarmer
    • ResultSet: allow to set useOutputWalkers
  • v1.1.0 v1.1.0

    • Bumped dependency on Nette to ~2.1@dev
    • IdentifiedEntity is deprecated
    • Colored output of schema commands in CLI
    • Extracted standalone package Kdyby/DoctrineForms
  • v0.10.4 v0.10.4

    • Locked Nette dependency to 2.0.*
  • v0.10.3 v0.10.3

    • Removed check for result set modification from applyPaging (it broke everything 😰 )
  • v1.0.2 v1.0.2

    • Removed check for result set modification from applyPaging (it broke everything 😰 )
  • v1.0.1 v1.0.1

    • Easier memcache configuration
    • Protect initialized ResultSet from modifying
    • Fixed magic findBy*() methods on DAO
    • Fixed formating of Datetime in queries panel
    • Added IDatabaseTypeProvider
    • Implemented EntityListenerResolver
    • Dao::save() & Dao::add() & Dao::delete() has new $relations parameter that can persistent entities of other types than only the type of current dao
    • Clear cache before cli commands that generate and validate data
    • ResultSet for query without limit & offset doesn't use paginator
    • Panel::renderException() handles SchemaException
    • Support for connection's defaultTableOptions
    • Allow change the hydratation mode on ResultSet
    • Allow to set fetchJoinCollection to ResultSet
  • v0.10.2 v0.10.2

    • Easier memcache configuration
    • Protect initialized ResultSet from modifying
Componette Componette felix@nette.org