# Awesome Doctrine

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

## For beginners

- Culttt - articles on various basic topics [2014]
- Doctrine 2 basic concepts - Very simple intro into Doctrine basics [2014]
- ORM Cheatsheet [Last update on May 19, 2015]
- Start Coding with Doctrine 2 ORM! [Published on May 29, 2017]

## Slides

- Extending Doctrine 2 For Your Domain Model - 171 lightweight slides with specific examples [2014]
- Doctrine fixtures - 13-slides intro to Doctrine Fixtures with Faker [2013]
- Doctrine ORM Good Practices and Tricks - slides [2015]

## Articles / Blog / Notes

- Why Doctrine ORM is not suited for PHP [2015]
- Doctrine 2 in Depth
- Some Doctrine 2 best practices - about performance [2012]
- Persisting Value Objects in Doctrine [2014]
- Doctrine2 entity changeset for relations [on Feb 24, 2017]
- Doctrine 2 Interview with Marco Pivetta, is the one of the maintainers of Doctrine 2 [Feb 27, 2017]
- Auto-Increment is the Devil: using UUIDs in Symfony and Doctrine [Jul 17, 2018]

## Repositories

- How to use Repository with Doctrine as Service in Symfony [2017]
- On Taming Repository Classes in Doctrine [2013]

## Domain model

- Rich domain model with Symfony 2.5 and Doctrine 2.5 [2014]

## How to Improve Performance

- Mastering Doctrine performance [2014]
- 5 Doctrine ORM Performance Traps You Should Avoid [2015]
- Effective Doctrine2: Performance Tips for Symfony2 Developers [2014]
- Doctrine ORM Hydration Performance Optimization [2015]

## Entities

- Filtering associations with Doctrine 2 - criteria filtering [2013]
- ManyToMany with extra columns - Stackoverflow [2011]

## Nette related

- Jak začít a propojit Doctrine a Nette Framework [2015, cs]
- Sbohem NDBT, vítej Doctrine [2014, cs]

## Books

- Persistence in PHP with Doctrine ORM [2013]
- 12. Database Management with Doctrine ORM with Zend Framework - This is a part of Using Zend Framework 3 book

## Related Projects

- Doctrine UUID - Allow the use of a ramsey/uuid UUID as Doctrine field type.
- Doctrine Point Type - POINT as Doctrine field type.
- Doctrine2 Behaviors
- Doctrine2 Behavioral Extensions
- Doctrine Database Migrations Library - Official
- Doctrine2 Spatial - Multi-platform support for spatial types and functions
- Doctrine Specification - Gives you a new way for writing queries
- 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 - This library provides integration of Consistence value objects for Doctrine ORM so that you can use them in your entities.
- Doctrine Encrypted Column - Provides a secure way to encrypt data in doctrine. Framework agnostic, Libsodium.
- Doctrine DBAL Postgresql - Add JSON query support to Doctrine DBAL and DQL
- PostgreSQL enhancements for Doctrine2 - Provides support for advanced data types (json, josnb, arrays), text search, array operators and jsonb specific functions.
- Doctrine Spesification - 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

## Open-Source Projects using Doctrine

- Packagist - Packagist is the main Composer repository. It aggregates public PHP packages installable with Composer.
- Elcodi - E-commerce components for Symfony
- Sylius - Sylius is a free, Open Source and exceptionally flexible eCommerce platform.
- OroCRM - The CRM for Marketing and Sales
- Mautic - Free and Open Source Marketing Automation

## Awesome Repositories For Doctrine

- https://github.com/andreia/awesome-doctrine

## License

To the extent possible under law, Biberlabs has waived all copyright and related or neighboring rights to this work.