# Awesome Doctrine [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

A curated list of amazingly awesome Doctrine ORM libraries, resources and shiny things.


## For beginners

* [Culttt](http://culttt.com/search/?q=doctrine) - articles on various basic topics [2014]
* [Doctrine 2 basic concepts](https://prezi.com/v3rhah2gqfvp/doctrine2-basic-concepts/) - Very simple intro into Doctrine basics [2014]
* [ORM Cheatsheet](http://ormcheatsheet.com/) [Last update on May 19, 2015]
* [Start Coding with Doctrine 2 ORM!](https://smozgur.com/blog/zend-framework/start-coding-with-doctrine-2-orm/) [Published on May 29, 2017]


## Slides

* [Extending Doctrine 2 For Your Domain Model](https://speakerdeck.com/player/50548d22bf73df0002051b1f) - 171 lightweight slides with specific examples [2014]
* [Doctrine fixtures](http://www.slideshare.net/bill16301/doctrine-fixtures) - 13-slides intro to Doctrine Fixtures with Faker [2013]
* [Doctrine ORM Good Practices and Tricks](https://vimeo.com/134178140) - [slides](http://ocramius.github.io/doctrine-best-practices/#/) [2015] 


## Articles / Blog / Notes

* [Why Doctrine ORM is not suited for PHP](http://web.archive.org/web/20160409001634/http://blog.bemycto.com/software-architecture/2015-05-17/doctrine-orm-not-suited-php) [2015]
* [Doctrine 2 in Depth](https://web.archive.org/web/*/http://krueckeberg.org/notes/d2.html)
* [Some Doctrine 2 best practices](http://www.uvd.co.uk/blog/some-doctrine-2-best-practices/) - about performance [2012]
* [Persisting Value Objects in Doctrine](http://rosstuck.com/persisting-value-objects-in-doctrine/) [2014]
* [Doctrine2 entity changeset for relations](http://kamiladryjanek.com/doctrine2-entity-changeset-for-relations/) [on Feb 24, 2017]
* [Doctrine 2 Interview with Marco Pivetta, is the one of the maintainers of Doctrine 2](http://in.relation.to/2017/02/27/meet-marco-pivetta/) [Feb 27, 2017]
* [Auto-Increment is the Devil: using UUIDs in Symfony and Doctrine](https://medium.com/@galopintitouan/auto-increment-is-the-devil-using-uuids-in-symfony-and-doctrine-71763721b9a9) [Jul 17, 2018]


## Repositories

* [How to use Repository with Doctrine as Service in Symfony](https://www.tomasvotruba.cz/blog/2017/10/16/how-to-use-repository-with-doctrine-as-service-in-symfony/) [2017]
* [On Taming Repository Classes in Doctrine](http://www.whitewashing.de/2013/03/04/doctrine_repositories.html) [2013]


## Domain model

- [Rich domain model with Symfony 2.5 and Doctrine 2.5](http://www.slideshare.net/_leopro_/rich-domain-model-with-symfony-25-and-doctrine-25) [2014]


## How to Improve Performance

* [Mastering Doctrine performance](http://labs.octivi.com/mastering-symfony2-performance-doctrine/) [2014]
* [5 Doctrine ORM Performance Traps You Should  Avoid](https://tideways.io/profiler/blog/5-doctrine-orm-performance-traps-you-should-avoid) [2015]
* [Effective Doctrine2: Performance Tips for Symfony2 Developers](http://pt.slideshare.net/marcinchwedziak/effective-doctrine2-performance-tips-for-symfony2-developers-33907944) [2014]
* [Doctrine ORM Hydration Performance Optimization](https://ocramius.github.io/blog/doctrine-orm-optimization-hydration/) [2015]


## Entities

* [Filtering associations with Doctrine 2](http://www.boxuk.com/blog/filtering-associations-with-doctrine-2/) - criteria filtering [2013]
* [ManyToMany with extra columns](http://stackoverflow.com/questions/3542243/doctrine2-best-way-to-handle-many-to-many-with-extra-columns-in-reference-table) - Stackoverflow [2011]


## Nette related

* [Jak začít a propojit Doctrine a Nette Framework](http://blog.honzacerny.com/post/3-jak-zacit-a-propojit-doctrine-a-nette-framework) [2015, cs]
* [Sbohem NDBT, vítej Doctrine](http://www.zeminem.cz/sbohem-ndbt-vitej-doctrine) [2014, cs]


## Books

* [Persistence in PHP with Doctrine ORM](http://www.amazon.com/Persistence-PHP-Doctrine-K%C3%A9vin-Dunglas/dp/1782164103) [2013]
* [12. Database Management with Doctrine ORM with Zend Framework](https://olegkrivtsov.github.io/using-zend-framework-3-book/html/en/Database_Management_with_Doctrine_ORM.html) - This is a part of Using Zend Framework 3 book

## Related Projects

 * [Doctrine UUID](https://github.com/ramsey/uuid-doctrine) - Allow the use of a ramsey/uuid UUID as Doctrine field type.
 * [Doctrine Point Type](https://github.com/vinyvicente/doctrine-point-type) - POINT as Doctrine field type.
 * [Doctrine2 Behaviors](https://github.com/KnpLabs/DoctrineBehaviors)
 * [Doctrine2 Behavioral Extensions](https://github.com/Atlantic18/DoctrineExtensions)
 * [Doctrine Database Migrations Library - Official](https://github.com/doctrine/migrations)
 * [Doctrine2 Spatial](https://github.com/creof/doctrine2-spatial) - Multi-platform support for spatial types and functions
 * [Doctrine Specification](https://github.com/Happyr/Doctrine-Specification) - Gives you a new way for writing queries
 * [DDD Embeddables](https://github.com/biberlabs/ddd-embeddables) - A collection of reusable value objects written in PHP and targeting versions 5.6 and above.
 * [Integration of Consistence library with Doctrine ORM](https://github.com/consistence/consistence-doctrine) - This library provides integration of Consistence value objects for Doctrine ORM so that you can use them in your entities.
 * [Doctrine Encrypted Column](https://github.com/carnage/doctrine-encrypted-column) - Provides a secure way to encrypt data in doctrine. Framework agnostic, Libsodium.
 * [Doctrine DBAL Postgresql](https://github.com/opsway/doctrine-dbal-postgresql) - Add JSON query support to Doctrine DBAL and DQL
 * [PostgreSQL enhancements for Doctrine2](https://github.com/martin-georgiev/postgresql-for-doctrine) - Provides support for advanced data types (json, josnb, arrays), text search, array operators and jsonb specific functions. 
 * [Doctrine Spesification](https://github.com/Happyr/Doctrine-Specification) - This library gives you a new way for writing queries. Using the Specification pattern you will get small Specification classes that are highly reusable.
 * [Sonata Doctrine Extensions](https://github.com/sonata-project/sonata-doctrine-extensions)


## Open-Source Projects using Doctrine

 * [Packagist](https://packagist.org) - Packagist is the main Composer repository. It aggregates public PHP packages installable with Composer.
 * [Elcodi](https://github.com/elcodi/elcodi) - E-commerce components for Symfony
 * [Sylius](http://sylius.org/about/developers#foundations) - Sylius is a free, Open Source and exceptionally flexible eCommerce platform.
 * [OroCRM](https://github.com/oroinc) - The CRM for Marketing and Sales
 * [Mautic](https://github.com/mautic) - Free and Open Source Marketing Automation
 

## Awesome Repositories For Doctrine

 * [https://github.com/andreia/awesome-doctrine]()

## License

[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/)

To the extent possible under law, [Biberlabs](http://biberlabs.com) has waived all copyright and related or neighboring rights to this work.
