diff --git a/2007/10/09/new-website.html b/2007/10/09/new-website.html index 5d42926a052e..3437a6079517 100644 --- a/2007/10/09/new-website.html +++ b/2007/10/09/new-website.html @@ -222,9 +222,9 @@

New Website

- Posted on October 9, 2007 + Posted on April 6, 2018 by - jwage + Jonathan H. Wage

diff --git a/2018/04/06/new-website.html b/2018/04/06/new-website.html index 3580cfc4e631..01b5004f9d79 100644 --- a/2018/04/06/new-website.html +++ b/2018/04/06/new-website.html @@ -223,9 +223,9 @@

New Website

- Posted on October 9, 2007 + Posted on April 6, 2018 by - jwage + Jonathan H. Wage

diff --git a/atom.xml b/atom.xml index 0ef26daa5ba6..e9e570cba493 100644 --- a/atom.xml +++ b/atom.xml @@ -3,7 +3,7 @@ <![CDATA[Doctrine]]> - 2024-01-23T20:02:14-05:00 + 2024-01-24T20:12:44-05:00 https://www.doctrine-project.org/ diff --git a/blog/archive.html b/blog/archive.html index 0e92bfbba6be..13902ff26531 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -344,12 +344,12 @@

Blog Archive

by Gianluca Arbezzano
- 2016-01-05   Doctrine ORM 2.5.4 Released + 2016-01-05   Doctrine DBAL 2.5.4 and 2.4.5 Released by Marco Pivetta
- 2016-01-05   Doctrine DBAL 2.5.4 and 2.4.5 Released + 2016-01-05   Doctrine ORM 2.5.4 Released by Marco Pivetta @@ -364,12 +364,12 @@

Blog Archive

by Marco Pivetta
- 2015-12-25   Doctrine DBAL 2.5.3 Released + 2015-12-25   Doctrine ORM 2.5.3 Released by Marco Pivetta
- 2015-12-25   Doctrine ORM 2.5.3 Released + 2015-12-25   Doctrine DBAL 2.5.3 Released by Marco Pivetta @@ -427,12 +427,12 @@

Blog Archive

by Steve Müller
- 2015-08-31   Doctrine ORM 2.5.1 and 2.4.8 released + 2015-08-31   Security Misconfiguration Vulnerability in various Doctrine projects by default
- 2015-08-31   Security Misconfiguration Vulnerability in various Doctrine projects + 2015-08-31   Doctrine ORM 2.5.1 and 2.4.8 released by default @@ -472,12 +472,12 @@

Blog Archive

by Marco Pivetta
- 2015-04-02   Doctrine ORM 2.5.0 Release + 2015-04-02   Doctrine Common 2.5.0 Release by Marco Pivetta
- 2015-04-02   Doctrine Common 2.5.0 Release + 2015-04-02   Doctrine ORM 2.5.0 Release by Marco Pivetta @@ -494,27 +494,27 @@

Blog Archive


2015-03-31   Doctrine ORM 2.5.0-RC2 Release Candidate - by - Marco Pivetta -
- 2015-03-25   Doctrine ORM 2.5.0-RC1 Release Candidate - by Marco Pivetta
2015-03-25   Doctrine Common 2.5.0-beta1 Pre-Release
- 2015-03-22   Doctrine Migrations 1.0.0-alpha3 Pre-Release + 2015-03-25   Doctrine ORM 2.5.0-RC1 Release Candidate by - Michael Simonson + Marco Pivetta
2015-03-22   Doctrine Data Fixtures 1.0.1 by Sebastien Lavoie
+ 2015-03-22   Doctrine Migrations 1.0.0-alpha3 Pre-Release + + by + Michael Simonson +
2015-03-18   Doctrine ORM 2.5.0 BETA 1 Released by @@ -535,12 +535,12 @@

Blog Archive

by Steve Müller
- 2014-12-20   Inflector 1.0.1 released + 2014-12-20   Annotations 1.2.3 released by Marco Pivetta
- 2014-12-20   Annotations 1.2.3 released + 2014-12-20   Inflector 1.0.1 released by Marco Pivetta @@ -873,15 +873,15 @@

Blog Archive

by beberlei
- 2010-11-18   Common RC2 and DBAL RC3 released + 2010-11-18   Doctrine2 Behavioral Extensions by - beberlei + gmorkevicius
- 2010-11-18   Doctrine2 Behavioral Extensions + 2010-11-18   Common RC2 and DBAL RC3 released by - gmorkevicius + beberlei
2010-09-01   Birthday Release Party @@ -973,12 +973,12 @@

Blog Archive

by jwage
- 2010-05-13   Doctrine MongoDB Object Document Mapper + 2010-05-13   The Switch to git by jwage
- 2010-05-13   The Switch to git + 2010-05-13   Doctrine MongoDB Object Document Mapper by jwage @@ -1078,12 +1078,12 @@

Blog Archive

by jwage
- 2009-11-23   Doctrine 1.2.0-RC1 Released + 2009-11-23   New Doctrine Core Team Member by jwage
- 2009-11-23   New Doctrine Core Team Member + 2009-11-23   Doctrine 1.2.0-RC1 Released by jwage @@ -1218,12 +1218,12 @@

Blog Archive

by jwage
- 2009-06-21   Website Updates + 2009-06-21   Doctrine Future Roadmap by jwage
- 2009-06-21   Doctrine Future Roadmap + 2009-06-21   Website Updates by jwage diff --git a/index.html b/index.html index 10709c7896a1..0416a466477d 100644 --- a/index.html +++ b/index.html @@ -219,7 +219,7 @@

Doctrine

-

Doctrine has been downloaded a total of 4,807,933,458 times!

+

Doctrine has been downloaded a total of 4,811,497,951 times!

diff --git a/projects/annotations.html b/projects/annotations.html index 51dcbe5ecad1..4ede00305a43 100644 --- a/projects/annotations.html +++ b/projects/annotations.html @@ -444,15 +444,15 @@

Statistics

Total Downloads - 389,024,026 + 389,220,314 Monthly Downloads - 5,691,611 + 5,790,511 Daily Downloads - 325,460 + 285,432 diff --git a/projects/cache.html b/projects/cache.html index cf61175caa47..b169ccd46bd5 100644 --- a/projects/cache.html +++ b/projects/cache.html @@ -429,7 +429,7 @@

Statistics

GitHub Stars - 7,754 + 7,756 GitHub Watchers @@ -437,7 +437,7 @@

Statistics

GitHub Forks - 221 + 220 GitHub Open Issues @@ -453,15 +453,15 @@

Statistics

Total Downloads - 417,286,123 + 417,799,307 Monthly Downloads - 6,597,726 + 6,984,013 Daily Downloads - 321,785 + 367,243 diff --git a/projects/coding-standard.html b/projects/coding-standard.html index 75018b244f23..2fed02c7cade 100644 --- a/projects/coding-standard.html +++ b/projects/coding-standard.html @@ -435,15 +435,15 @@

Statistics

Total Downloads - 6,624,556 + 6,632,746 Monthly Downloads - 167,433 + 173,415 Daily Downloads - 7,067 + 8,274 diff --git a/projects/collections.html b/projects/collections.html index 57ac60ae3920..b581670c05ba 100644 --- a/projects/collections.html +++ b/projects/collections.html @@ -390,15 +390,15 @@

Statistics

Total Downloads - 280,100,972 + 280,239,397 Monthly Downloads - 3,921,923 + 3,999,791 Daily Downloads - 204,495 + 169,343 diff --git a/projects/common.html b/projects/common.html index a5d3ecc4e0cc..c2e5622d3452 100644 --- a/projects/common.html +++ b/projects/common.html @@ -464,15 +464,15 @@

Statistics

Total Downloads - 258,725,832 + 258,744,330 Monthly Downloads - 3,578,932 + 3,597,430 Daily Downloads - 181,824 + 150,482 diff --git a/projects/couchdb-client.html b/projects/couchdb-client.html index fce88e063876..aa397241287c 100644 --- a/projects/couchdb-client.html +++ b/projects/couchdb-client.html @@ -305,15 +305,15 @@

Statistics

Total Downloads - 718,238 + 718,312 Monthly Downloads - 4,704 + 4,778 Daily Downloads - 202 + 159 diff --git a/projects/couchdb-odm.html b/projects/couchdb-odm.html index 7c54c235924b..015c7b3a571e 100644 --- a/projects/couchdb-odm.html +++ b/projects/couchdb-odm.html @@ -295,11 +295,11 @@

Statistics

Total Downloads - 65,225 + 65,237 Monthly Downloads - 200 + 212 Daily Downloads diff --git a/projects/data-fixtures.html b/projects/data-fixtures.html index 238f9fb5dd53..24a7d0e81a3a 100644 --- a/projects/data-fixtures.html +++ b/projects/data-fixtures.html @@ -358,15 +358,15 @@

Statistics

Total Downloads - 88,100,285 + 88,181,728 Monthly Downloads - 1,337,353 + 1,397,419 Daily Downloads - 64,160 + 63,727 diff --git a/projects/dbal.html b/projects/dbal.html index f8d04b53cfd5..d295e1a2aff3 100644 --- a/projects/dbal.html +++ b/projects/dbal.html @@ -516,7 +516,7 @@

Statistics

Dependents - 5,356 + 5,359 Suggesters @@ -524,15 +524,15 @@

Statistics

Total Downloads - 373,656,333 + 373,976,334 Monthly Downloads - 6,250,860 + 6,448,157 Daily Downloads - 320,353 + 291,833 diff --git a/projects/doctrine-annotations/en/1.10/metas.php b/projects/doctrine-annotations/en/1.10/metas.php index 79052e10b09d..c82f39dd6a63 100644 Binary files a/projects/doctrine-annotations/en/1.10/metas.php and b/projects/doctrine-annotations/en/1.10/metas.php differ diff --git a/projects/doctrine-annotations/en/1.11/metas.php b/projects/doctrine-annotations/en/1.11/metas.php index d4035712e3de..c1cd818722a2 100644 Binary files a/projects/doctrine-annotations/en/1.11/metas.php and b/projects/doctrine-annotations/en/1.11/metas.php differ diff --git a/projects/doctrine-annotations/en/1.12/metas.php b/projects/doctrine-annotations/en/1.12/metas.php index e3583d9b9f96..9106e16cc8e4 100644 Binary files a/projects/doctrine-annotations/en/1.12/metas.php and b/projects/doctrine-annotations/en/1.12/metas.php differ diff --git a/projects/doctrine-annotations/en/1.13/metas.php b/projects/doctrine-annotations/en/1.13/metas.php index d556d5a11738..f0cf8312f402 100644 Binary files a/projects/doctrine-annotations/en/1.13/metas.php and b/projects/doctrine-annotations/en/1.13/metas.php differ diff --git a/projects/doctrine-annotations/en/1.14/metas.php b/projects/doctrine-annotations/en/1.14/metas.php index d556d5a11738..f0cf8312f402 100644 Binary files a/projects/doctrine-annotations/en/1.14/metas.php and b/projects/doctrine-annotations/en/1.14/metas.php differ diff --git a/projects/doctrine-annotations/en/1.6/metas.php b/projects/doctrine-annotations/en/1.6/metas.php index 3bfe3666275c..5c448bb49b36 100644 Binary files a/projects/doctrine-annotations/en/1.6/metas.php and b/projects/doctrine-annotations/en/1.6/metas.php differ diff --git a/projects/doctrine-annotations/en/1.7/metas.php b/projects/doctrine-annotations/en/1.7/metas.php index 3bfe3666275c..5c448bb49b36 100644 Binary files a/projects/doctrine-annotations/en/1.7/metas.php and b/projects/doctrine-annotations/en/1.7/metas.php differ diff --git a/projects/doctrine-annotations/en/1.8/metas.php b/projects/doctrine-annotations/en/1.8/metas.php index 3bfe3666275c..5c448bb49b36 100644 Binary files a/projects/doctrine-annotations/en/1.8/metas.php and b/projects/doctrine-annotations/en/1.8/metas.php differ diff --git a/projects/doctrine-annotations/en/1.9/metas.php b/projects/doctrine-annotations/en/1.9/metas.php index 3bfe3666275c..5c448bb49b36 100644 Binary files a/projects/doctrine-annotations/en/1.9/metas.php and b/projects/doctrine-annotations/en/1.9/metas.php differ diff --git a/projects/doctrine-annotations/en/2.0/metas.php b/projects/doctrine-annotations/en/2.0/metas.php index 2ba1837b9661..1d62d8d0aaf8 100644 Binary files a/projects/doctrine-annotations/en/2.0/metas.php and b/projects/doctrine-annotations/en/2.0/metas.php differ diff --git a/projects/doctrine-bundle.html b/projects/doctrine-bundle.html index 08eac5166287..7e86770d66b1 100644 --- a/projects/doctrine-bundle.html +++ b/projects/doctrine-bundle.html @@ -541,7 +541,7 @@

Statistics

Dependents - 3,409 + 3,410 Suggesters @@ -549,15 +549,15 @@

Statistics

Total Downloads - 157,472,249 + 157,607,612 Monthly Downloads - 2,474,674 + 2,570,580 Daily Downloads - 150,641 + 143,730 diff --git a/projects/doctrine-bundle/en/1.1/metas.php b/projects/doctrine-bundle/en/1.1/metas.php index c9013784a77c..b7aba97f3eb1 100644 Binary files a/projects/doctrine-bundle/en/1.1/metas.php and b/projects/doctrine-bundle/en/1.1/metas.php differ diff --git a/projects/doctrine-bundle/en/1.10/metas.php b/projects/doctrine-bundle/en/1.10/metas.php index f5fd0d621592..46b555958290 100644 Binary files a/projects/doctrine-bundle/en/1.10/metas.php and b/projects/doctrine-bundle/en/1.10/metas.php differ diff --git a/projects/doctrine-bundle/en/1.11/metas.php b/projects/doctrine-bundle/en/1.11/metas.php index f5fd0d621592..46b555958290 100644 Binary files a/projects/doctrine-bundle/en/1.11/metas.php and b/projects/doctrine-bundle/en/1.11/metas.php differ diff --git a/projects/doctrine-bundle/en/1.12/metas.php b/projects/doctrine-bundle/en/1.12/metas.php index b0e03313f975..7d25cf8a10ad 100644 Binary files a/projects/doctrine-bundle/en/1.12/metas.php and b/projects/doctrine-bundle/en/1.12/metas.php differ diff --git a/projects/doctrine-bundle/en/1.2/metas.php b/projects/doctrine-bundle/en/1.2/metas.php index 91210990bb06..9cd8b2ac5b31 100644 Binary files a/projects/doctrine-bundle/en/1.2/metas.php and b/projects/doctrine-bundle/en/1.2/metas.php differ diff --git a/projects/doctrine-bundle/en/1.3/metas.php b/projects/doctrine-bundle/en/1.3/metas.php index 161d8e0442e1..a49a8d839a95 100644 Binary files a/projects/doctrine-bundle/en/1.3/metas.php and b/projects/doctrine-bundle/en/1.3/metas.php differ diff --git a/projects/doctrine-bundle/en/1.4/metas.php b/projects/doctrine-bundle/en/1.4/metas.php index 395153ace66e..f8f706854e01 100644 Binary files a/projects/doctrine-bundle/en/1.4/metas.php and b/projects/doctrine-bundle/en/1.4/metas.php differ diff --git a/projects/doctrine-bundle/en/1.5/metas.php b/projects/doctrine-bundle/en/1.5/metas.php index 395153ace66e..f8f706854e01 100644 Binary files a/projects/doctrine-bundle/en/1.5/metas.php and b/projects/doctrine-bundle/en/1.5/metas.php differ diff --git a/projects/doctrine-bundle/en/1.6/metas.php b/projects/doctrine-bundle/en/1.6/metas.php index 3e283f0e7633..914f87488330 100644 Binary files a/projects/doctrine-bundle/en/1.6/metas.php and b/projects/doctrine-bundle/en/1.6/metas.php differ diff --git a/projects/doctrine-bundle/en/1.7/metas.php b/projects/doctrine-bundle/en/1.7/metas.php index 26cb30d906fe..1179c6394e6e 100644 Binary files a/projects/doctrine-bundle/en/1.7/metas.php and b/projects/doctrine-bundle/en/1.7/metas.php differ diff --git a/projects/doctrine-bundle/en/1.8/metas.php b/projects/doctrine-bundle/en/1.8/metas.php index 26cb30d906fe..1179c6394e6e 100644 Binary files a/projects/doctrine-bundle/en/1.8/metas.php and b/projects/doctrine-bundle/en/1.8/metas.php differ diff --git a/projects/doctrine-bundle/en/1.9/metas.php b/projects/doctrine-bundle/en/1.9/metas.php index 0cd838adaecc..3fe9d1f6a390 100644 Binary files a/projects/doctrine-bundle/en/1.9/metas.php and b/projects/doctrine-bundle/en/1.9/metas.php differ diff --git a/projects/doctrine-bundle/en/2.0/metas.php b/projects/doctrine-bundle/en/2.0/metas.php index b0e03313f975..7d25cf8a10ad 100644 Binary files a/projects/doctrine-bundle/en/2.0/metas.php and b/projects/doctrine-bundle/en/2.0/metas.php differ diff --git a/projects/doctrine-bundle/en/2.1/metas.php b/projects/doctrine-bundle/en/2.1/metas.php index b0e03313f975..7d25cf8a10ad 100644 Binary files a/projects/doctrine-bundle/en/2.1/metas.php and b/projects/doctrine-bundle/en/2.1/metas.php differ diff --git a/projects/doctrine-bundle/en/2.10/metas.php b/projects/doctrine-bundle/en/2.10/metas.php index ddc7da9559f1..e0ff673ec0e0 100644 Binary files a/projects/doctrine-bundle/en/2.10/metas.php and b/projects/doctrine-bundle/en/2.10/metas.php differ diff --git a/projects/doctrine-bundle/en/2.11/metas.php b/projects/doctrine-bundle/en/2.11/metas.php index ddc7da9559f1..e0ff673ec0e0 100644 Binary files a/projects/doctrine-bundle/en/2.11/metas.php and b/projects/doctrine-bundle/en/2.11/metas.php differ diff --git a/projects/doctrine-bundle/en/2.2/metas.php b/projects/doctrine-bundle/en/2.2/metas.php index e1981c7d7259..7d25cf8a10ad 100644 Binary files a/projects/doctrine-bundle/en/2.2/metas.php and b/projects/doctrine-bundle/en/2.2/metas.php differ diff --git a/projects/doctrine-bundle/en/2.3/metas.php b/projects/doctrine-bundle/en/2.3/metas.php index 38e1946085d9..90b08e127098 100644 Binary files a/projects/doctrine-bundle/en/2.3/metas.php and b/projects/doctrine-bundle/en/2.3/metas.php differ diff --git a/projects/doctrine-bundle/en/2.4/metas.php b/projects/doctrine-bundle/en/2.4/metas.php index 38e1946085d9..90b08e127098 100644 Binary files a/projects/doctrine-bundle/en/2.4/metas.php and b/projects/doctrine-bundle/en/2.4/metas.php differ diff --git a/projects/doctrine-bundle/en/2.5/metas.php b/projects/doctrine-bundle/en/2.5/metas.php index 38e1946085d9..90b08e127098 100644 Binary files a/projects/doctrine-bundle/en/2.5/metas.php and b/projects/doctrine-bundle/en/2.5/metas.php differ diff --git a/projects/doctrine-bundle/en/2.6/metas.php b/projects/doctrine-bundle/en/2.6/metas.php index 38e1946085d9..90b08e127098 100644 Binary files a/projects/doctrine-bundle/en/2.6/metas.php and b/projects/doctrine-bundle/en/2.6/metas.php differ diff --git a/projects/doctrine-bundle/en/2.7/metas.php b/projects/doctrine-bundle/en/2.7/metas.php index 38e1946085d9..90b08e127098 100644 Binary files a/projects/doctrine-bundle/en/2.7/metas.php and b/projects/doctrine-bundle/en/2.7/metas.php differ diff --git a/projects/doctrine-bundle/en/2.8/metas.php b/projects/doctrine-bundle/en/2.8/metas.php index a093738ed0b3..832036bf1c1b 100644 Binary files a/projects/doctrine-bundle/en/2.8/metas.php and b/projects/doctrine-bundle/en/2.8/metas.php differ diff --git a/projects/doctrine-bundle/en/2.9/metas.php b/projects/doctrine-bundle/en/2.9/metas.php index ddc7da9559f1..e0ff673ec0e0 100644 Binary files a/projects/doctrine-bundle/en/2.9/metas.php and b/projects/doctrine-bundle/en/2.9/metas.php differ diff --git a/projects/doctrine-bundle/en/latest/metas.php b/projects/doctrine-bundle/en/latest/metas.php index ddc7da9559f1..e0ff673ec0e0 100644 Binary files a/projects/doctrine-bundle/en/latest/metas.php and b/projects/doctrine-bundle/en/latest/metas.php differ diff --git a/projects/doctrine-cache-bundle.html b/projects/doctrine-cache-bundle.html index 396ada9697ba..40a58733ba13 100644 --- a/projects/doctrine-cache-bundle.html +++ b/projects/doctrine-cache-bundle.html @@ -307,15 +307,15 @@

Statistics

Total Downloads - 77,345,124 + 77,355,605 Monthly Downloads - 282,847 + 293,328 Daily Downloads - 15,799 + 16,952 diff --git a/projects/doctrine-cache-bundle/en/1.2/metas.php b/projects/doctrine-cache-bundle/en/1.2/metas.php index e8fcfffd3d24..5b735e986788 100644 Binary files a/projects/doctrine-cache-bundle/en/1.2/metas.php and b/projects/doctrine-cache-bundle/en/1.2/metas.php differ diff --git a/projects/doctrine-cache-bundle/en/1.3/metas.php b/projects/doctrine-cache-bundle/en/1.3/metas.php index 2abe8715adb4..859c5ed400aa 100644 Binary files a/projects/doctrine-cache-bundle/en/1.3/metas.php and b/projects/doctrine-cache-bundle/en/1.3/metas.php differ diff --git a/projects/doctrine-cache-bundle/en/1.4/metas.php b/projects/doctrine-cache-bundle/en/1.4/metas.php index 2abe8715adb4..859c5ed400aa 100644 Binary files a/projects/doctrine-cache-bundle/en/1.4/metas.php and b/projects/doctrine-cache-bundle/en/1.4/metas.php differ diff --git a/projects/doctrine-cache/en/1.10/metas.php b/projects/doctrine-cache/en/1.10/metas.php index 3e45ac5b257e..1461b4f74352 100644 Binary files a/projects/doctrine-cache/en/1.10/metas.php and b/projects/doctrine-cache/en/1.10/metas.php differ diff --git a/projects/doctrine-cache/en/1.11/metas.php b/projects/doctrine-cache/en/1.11/metas.php index 44653bacee43..1461b4f74352 100644 Binary files a/projects/doctrine-cache/en/1.11/metas.php and b/projects/doctrine-cache/en/1.11/metas.php differ diff --git a/projects/doctrine-cache/en/1.12/metas.php b/projects/doctrine-cache/en/1.12/metas.php index 44653bacee43..1461b4f74352 100644 Binary files a/projects/doctrine-cache/en/1.12/metas.php and b/projects/doctrine-cache/en/1.12/metas.php differ diff --git a/projects/doctrine-cache/en/1.13/metas.php b/projects/doctrine-cache/en/1.13/metas.php index 44653bacee43..1461b4f74352 100644 Binary files a/projects/doctrine-cache/en/1.13/metas.php and b/projects/doctrine-cache/en/1.13/metas.php differ diff --git a/projects/doctrine-cache/en/1.8/metas.php b/projects/doctrine-cache/en/1.8/metas.php index 1ba9941576ee..1a3695b278fb 100644 Binary files a/projects/doctrine-cache/en/1.8/metas.php and b/projects/doctrine-cache/en/1.8/metas.php differ diff --git a/projects/doctrine-cache/en/1.9/metas.php b/projects/doctrine-cache/en/1.9/metas.php index 1ba9941576ee..1a3695b278fb 100644 Binary files a/projects/doctrine-cache/en/1.9/metas.php and b/projects/doctrine-cache/en/1.9/metas.php differ diff --git a/projects/doctrine-cache/en/2.0/metas.php b/projects/doctrine-cache/en/2.0/metas.php index 962630cccfd3..fd5288e479b2 100644 Binary files a/projects/doctrine-cache/en/2.0/metas.php and b/projects/doctrine-cache/en/2.0/metas.php differ diff --git a/projects/doctrine-cache/en/2.1/metas.php b/projects/doctrine-cache/en/2.1/metas.php index 0ef793fa6ee4..e542ed6e236d 100644 Binary files a/projects/doctrine-cache/en/2.1/metas.php and b/projects/doctrine-cache/en/2.1/metas.php differ diff --git a/projects/doctrine-cache/en/2.2/metas.php b/projects/doctrine-cache/en/2.2/metas.php index 0ef793fa6ee4..e542ed6e236d 100644 Binary files a/projects/doctrine-cache/en/2.2/metas.php and b/projects/doctrine-cache/en/2.2/metas.php differ diff --git a/projects/doctrine-coding-standard/en/10.0/metas.php b/projects/doctrine-coding-standard/en/10.0/metas.php index 7d3daeeb1b40..daa3e7859b48 100644 Binary files a/projects/doctrine-coding-standard/en/10.0/metas.php and b/projects/doctrine-coding-standard/en/10.0/metas.php differ diff --git a/projects/doctrine-coding-standard/en/11.0/metas.php b/projects/doctrine-coding-standard/en/11.0/metas.php index 7d3daeeb1b40..daa3e7859b48 100644 Binary files a/projects/doctrine-coding-standard/en/11.0/metas.php and b/projects/doctrine-coding-standard/en/11.0/metas.php differ diff --git a/projects/doctrine-coding-standard/en/11.1/metas.php b/projects/doctrine-coding-standard/en/11.1/metas.php index 7d3daeeb1b40..daa3e7859b48 100644 Binary files a/projects/doctrine-coding-standard/en/11.1/metas.php and b/projects/doctrine-coding-standard/en/11.1/metas.php differ diff --git a/projects/doctrine-coding-standard/en/12.0/metas.php b/projects/doctrine-coding-standard/en/12.0/metas.php index 7d3daeeb1b40..daa3e7859b48 100644 Binary files a/projects/doctrine-coding-standard/en/12.0/metas.php and b/projects/doctrine-coding-standard/en/12.0/metas.php differ diff --git a/projects/doctrine-coding-standard/en/5.0/metas.php b/projects/doctrine-coding-standard/en/5.0/metas.php index e2a8b8dec5a7..6c258f7020bb 100644 Binary files a/projects/doctrine-coding-standard/en/5.0/metas.php and b/projects/doctrine-coding-standard/en/5.0/metas.php differ diff --git a/projects/doctrine-coding-standard/en/6.0/metas.php b/projects/doctrine-coding-standard/en/6.0/metas.php index e2a8b8dec5a7..6c258f7020bb 100644 Binary files a/projects/doctrine-coding-standard/en/6.0/metas.php and b/projects/doctrine-coding-standard/en/6.0/metas.php differ diff --git a/projects/doctrine-coding-standard/en/7.0/metas.php b/projects/doctrine-coding-standard/en/7.0/metas.php index e2a8b8dec5a7..6c258f7020bb 100644 Binary files a/projects/doctrine-coding-standard/en/7.0/metas.php and b/projects/doctrine-coding-standard/en/7.0/metas.php differ diff --git a/projects/doctrine-coding-standard/en/8.0/metas.php b/projects/doctrine-coding-standard/en/8.0/metas.php index e2a8b8dec5a7..1d870e92b3ef 100644 Binary files a/projects/doctrine-coding-standard/en/8.0/metas.php and b/projects/doctrine-coding-standard/en/8.0/metas.php differ diff --git a/projects/doctrine-coding-standard/en/8.1/metas.php b/projects/doctrine-coding-standard/en/8.1/metas.php index a41ea7ef3eef..c2126bcd8719 100644 Binary files a/projects/doctrine-coding-standard/en/8.1/metas.php and b/projects/doctrine-coding-standard/en/8.1/metas.php differ diff --git a/projects/doctrine-coding-standard/en/8.2/metas.php b/projects/doctrine-coding-standard/en/8.2/metas.php index a41ea7ef3eef..c2126bcd8719 100644 Binary files a/projects/doctrine-coding-standard/en/8.2/metas.php and b/projects/doctrine-coding-standard/en/8.2/metas.php differ diff --git a/projects/doctrine-coding-standard/en/9.0/metas.php b/projects/doctrine-coding-standard/en/9.0/metas.php index a41ea7ef3eef..c2126bcd8719 100644 Binary files a/projects/doctrine-coding-standard/en/9.0/metas.php and b/projects/doctrine-coding-standard/en/9.0/metas.php differ diff --git a/projects/doctrine-collections/en/1.6/metas.php b/projects/doctrine-collections/en/1.6/metas.php index c88be65bb952..6ccc4ae87676 100644 Binary files a/projects/doctrine-collections/en/1.6/metas.php and b/projects/doctrine-collections/en/1.6/metas.php differ diff --git a/projects/doctrine-collections/en/1.7/metas.php b/projects/doctrine-collections/en/1.7/metas.php index c88be65bb952..afdff84e88b5 100644 Binary files a/projects/doctrine-collections/en/1.7/metas.php and b/projects/doctrine-collections/en/1.7/metas.php differ diff --git a/projects/doctrine-collections/en/1.8/metas.php b/projects/doctrine-collections/en/1.8/metas.php index c88be65bb952..afdff84e88b5 100644 Binary files a/projects/doctrine-collections/en/1.8/metas.php and b/projects/doctrine-collections/en/1.8/metas.php differ diff --git a/projects/doctrine-collections/en/2.0/metas.php b/projects/doctrine-collections/en/2.0/metas.php index 12d49c3f4499..f26a8a543037 100644 Binary files a/projects/doctrine-collections/en/2.0/metas.php and b/projects/doctrine-collections/en/2.0/metas.php differ diff --git a/projects/doctrine-collections/en/latest/metas.php b/projects/doctrine-collections/en/latest/metas.php index 198bb112f496..17065391e0da 100644 Binary files a/projects/doctrine-collections/en/latest/metas.php and b/projects/doctrine-collections/en/latest/metas.php differ diff --git a/projects/doctrine-collections/en/stable/metas.php b/projects/doctrine-collections/en/stable/metas.php index 198bb112f496..17065391e0da 100644 Binary files a/projects/doctrine-collections/en/stable/metas.php and b/projects/doctrine-collections/en/stable/metas.php differ diff --git a/projects/doctrine-common/en/2.10/metas.php b/projects/doctrine-common/en/2.10/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/2.10/metas.php and b/projects/doctrine-common/en/2.10/metas.php differ diff --git a/projects/doctrine-common/en/2.11/metas.php b/projects/doctrine-common/en/2.11/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/2.11/metas.php and b/projects/doctrine-common/en/2.11/metas.php differ diff --git a/projects/doctrine-common/en/2.12/metas.php b/projects/doctrine-common/en/2.12/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/2.12/metas.php and b/projects/doctrine-common/en/2.12/metas.php differ diff --git a/projects/doctrine-common/en/2.13/metas.php b/projects/doctrine-common/en/2.13/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/2.13/metas.php and b/projects/doctrine-common/en/2.13/metas.php differ diff --git a/projects/doctrine-common/en/2.9/metas.php b/projects/doctrine-common/en/2.9/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/2.9/metas.php and b/projects/doctrine-common/en/2.9/metas.php differ diff --git a/projects/doctrine-common/en/3.0/metas.php b/projects/doctrine-common/en/3.0/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/3.0/metas.php and b/projects/doctrine-common/en/3.0/metas.php differ diff --git a/projects/doctrine-common/en/3.1/metas.php b/projects/doctrine-common/en/3.1/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/3.1/metas.php and b/projects/doctrine-common/en/3.1/metas.php differ diff --git a/projects/doctrine-common/en/3.2/metas.php b/projects/doctrine-common/en/3.2/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/3.2/metas.php and b/projects/doctrine-common/en/3.2/metas.php differ diff --git a/projects/doctrine-common/en/3.3/metas.php b/projects/doctrine-common/en/3.3/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/3.3/metas.php and b/projects/doctrine-common/en/3.3/metas.php differ diff --git a/projects/doctrine-common/en/3.4/metas.php b/projects/doctrine-common/en/3.4/metas.php index 6dd9c7ca45b1..52995b9b8e0a 100644 Binary files a/projects/doctrine-common/en/3.4/metas.php and b/projects/doctrine-common/en/3.4/metas.php differ diff --git a/projects/doctrine-couchdb-client/en/latest/metas.php b/projects/doctrine-couchdb-client/en/latest/metas.php index 0f79fcb89e6d..5cb438089dc5 100644 Binary files a/projects/doctrine-couchdb-client/en/latest/metas.php and b/projects/doctrine-couchdb-client/en/latest/metas.php differ diff --git a/projects/doctrine-couchdb-odm/en/latest/metas.php b/projects/doctrine-couchdb-odm/en/latest/metas.php index 0c71d0293da4..acb909de8523 100644 Binary files a/projects/doctrine-couchdb-odm/en/latest/metas.php and b/projects/doctrine-couchdb-odm/en/latest/metas.php differ diff --git a/projects/doctrine-data-fixtures/en/1.5/metas.php b/projects/doctrine-data-fixtures/en/1.5/metas.php index 6c9abc73bb91..a3406af129f3 100644 Binary files a/projects/doctrine-data-fixtures/en/1.5/metas.php and b/projects/doctrine-data-fixtures/en/1.5/metas.php differ diff --git a/projects/doctrine-data-fixtures/en/1.6/metas.php b/projects/doctrine-data-fixtures/en/1.6/metas.php index 6c9abc73bb91..a3406af129f3 100644 Binary files a/projects/doctrine-data-fixtures/en/1.6/metas.php and b/projects/doctrine-data-fixtures/en/1.6/metas.php differ diff --git a/projects/doctrine-data-fixtures/en/1.7/metas.php b/projects/doctrine-data-fixtures/en/1.7/metas.php index 6c9abc73bb91..a3406af129f3 100644 Binary files a/projects/doctrine-data-fixtures/en/1.7/metas.php and b/projects/doctrine-data-fixtures/en/1.7/metas.php differ diff --git a/projects/doctrine-data-fixtures/en/latest/metas.php b/projects/doctrine-data-fixtures/en/latest/metas.php index 6c9abc73bb91..a3406af129f3 100644 Binary files a/projects/doctrine-data-fixtures/en/latest/metas.php and b/projects/doctrine-data-fixtures/en/latest/metas.php differ diff --git a/projects/doctrine-dbal/en/2.10/metas.php b/projects/doctrine-dbal/en/2.10/metas.php index 2f5b833dd620..ae6411b3ff6f 100644 Binary files a/projects/doctrine-dbal/en/2.10/metas.php and b/projects/doctrine-dbal/en/2.10/metas.php differ diff --git a/projects/doctrine-dbal/en/2.11/metas.php b/projects/doctrine-dbal/en/2.11/metas.php index e8cbe7daf07b..1901247494fc 100644 Binary files a/projects/doctrine-dbal/en/2.11/metas.php and b/projects/doctrine-dbal/en/2.11/metas.php differ diff --git a/projects/doctrine-dbal/en/2.12/metas.php b/projects/doctrine-dbal/en/2.12/metas.php index fc627ae841c0..cb4bf91c19dd 100644 Binary files a/projects/doctrine-dbal/en/2.12/metas.php and b/projects/doctrine-dbal/en/2.12/metas.php differ diff --git a/projects/doctrine-dbal/en/2.13/metas.php b/projects/doctrine-dbal/en/2.13/metas.php index 3baec0a9b87b..58dd1a4aba89 100644 Binary files a/projects/doctrine-dbal/en/2.13/metas.php and b/projects/doctrine-dbal/en/2.13/metas.php differ diff --git a/projects/doctrine-dbal/en/2.4/metas.php b/projects/doctrine-dbal/en/2.4/metas.php index 9156cfe352a5..e1fc58599387 100644 Binary files a/projects/doctrine-dbal/en/2.4/metas.php and b/projects/doctrine-dbal/en/2.4/metas.php differ diff --git a/projects/doctrine-dbal/en/2.5/metas.php b/projects/doctrine-dbal/en/2.5/metas.php index 4756857f60d9..6d579ba6241b 100644 Binary files a/projects/doctrine-dbal/en/2.5/metas.php and b/projects/doctrine-dbal/en/2.5/metas.php differ diff --git a/projects/doctrine-dbal/en/2.6/metas.php b/projects/doctrine-dbal/en/2.6/metas.php index 99b1efe750be..0ca2143e792e 100644 Binary files a/projects/doctrine-dbal/en/2.6/metas.php and b/projects/doctrine-dbal/en/2.6/metas.php differ diff --git a/projects/doctrine-dbal/en/2.7/metas.php b/projects/doctrine-dbal/en/2.7/metas.php index d6aa4724ecae..307997f803cd 100644 Binary files a/projects/doctrine-dbal/en/2.7/metas.php and b/projects/doctrine-dbal/en/2.7/metas.php differ diff --git a/projects/doctrine-dbal/en/2.8/metas.php b/projects/doctrine-dbal/en/2.8/metas.php index bff000d2340e..01290fb69ca2 100644 Binary files a/projects/doctrine-dbal/en/2.8/metas.php and b/projects/doctrine-dbal/en/2.8/metas.php differ diff --git a/projects/doctrine-dbal/en/2.9/metas.php b/projects/doctrine-dbal/en/2.9/metas.php index 03564899590d..1f7ac23d67ae 100644 Binary files a/projects/doctrine-dbal/en/2.9/metas.php and b/projects/doctrine-dbal/en/2.9/metas.php differ diff --git a/projects/doctrine-dbal/en/3.0/metas.php b/projects/doctrine-dbal/en/3.0/metas.php index 23bad65e7529..1f4339746cbe 100644 Binary files a/projects/doctrine-dbal/en/3.0/metas.php and b/projects/doctrine-dbal/en/3.0/metas.php differ diff --git a/projects/doctrine-dbal/en/3.1/metas.php b/projects/doctrine-dbal/en/3.1/metas.php index 1ee664ffb955..6d96291299d5 100644 Binary files a/projects/doctrine-dbal/en/3.1/metas.php and b/projects/doctrine-dbal/en/3.1/metas.php differ diff --git a/projects/doctrine-dbal/en/3.2/metas.php b/projects/doctrine-dbal/en/3.2/metas.php index bafc98b69374..e7feafd7e40c 100644 Binary files a/projects/doctrine-dbal/en/3.2/metas.php and b/projects/doctrine-dbal/en/3.2/metas.php differ diff --git a/projects/doctrine-dbal/en/3.3/metas.php b/projects/doctrine-dbal/en/3.3/metas.php index cdeaffdfd1f9..ab860b2ab3ac 100644 Binary files a/projects/doctrine-dbal/en/3.3/metas.php and b/projects/doctrine-dbal/en/3.3/metas.php differ diff --git a/projects/doctrine-dbal/en/3.4/metas.php b/projects/doctrine-dbal/en/3.4/metas.php index 11ce8037b53c..213dff52a1e1 100644 Binary files a/projects/doctrine-dbal/en/3.4/metas.php and b/projects/doctrine-dbal/en/3.4/metas.php differ diff --git a/projects/doctrine-dbal/en/3.5/metas.php b/projects/doctrine-dbal/en/3.5/metas.php index d574d1624d9c..68923a432f88 100644 Binary files a/projects/doctrine-dbal/en/3.5/metas.php and b/projects/doctrine-dbal/en/3.5/metas.php differ diff --git a/projects/doctrine-dbal/en/3.6/metas.php b/projects/doctrine-dbal/en/3.6/metas.php index cf51a0ebbd55..85f8de289362 100644 Binary files a/projects/doctrine-dbal/en/3.6/metas.php and b/projects/doctrine-dbal/en/3.6/metas.php differ diff --git a/projects/doctrine-dbal/en/3.7/metas.php b/projects/doctrine-dbal/en/3.7/metas.php index ea3b3d4983f6..2cd6275d6ea2 100644 Binary files a/projects/doctrine-dbal/en/3.7/metas.php and b/projects/doctrine-dbal/en/3.7/metas.php differ diff --git a/projects/doctrine-dbal/en/3.8/metas.php b/projects/doctrine-dbal/en/3.8/metas.php index 4ac363ea4595..a28a710090ac 100644 Binary files a/projects/doctrine-dbal/en/3.8/metas.php and b/projects/doctrine-dbal/en/3.8/metas.php differ diff --git a/projects/doctrine-dbal/en/latest/metas.php b/projects/doctrine-dbal/en/latest/metas.php index 3f28afc91099..fb6743fc87eb 100644 Binary files a/projects/doctrine-dbal/en/latest/metas.php and b/projects/doctrine-dbal/en/latest/metas.php differ diff --git a/projects/doctrine-event-manager/en/1.0/metas.php b/projects/doctrine-event-manager/en/1.0/metas.php index 11deabf558b3..c6061933f3d5 100644 Binary files a/projects/doctrine-event-manager/en/1.0/metas.php and b/projects/doctrine-event-manager/en/1.0/metas.php differ diff --git a/projects/doctrine-event-manager/en/1.1/metas.php b/projects/doctrine-event-manager/en/1.1/metas.php index 11deabf558b3..c6061933f3d5 100644 Binary files a/projects/doctrine-event-manager/en/1.1/metas.php and b/projects/doctrine-event-manager/en/1.1/metas.php differ diff --git a/projects/doctrine-event-manager/en/1.2/metas.php b/projects/doctrine-event-manager/en/1.2/metas.php index 11deabf558b3..c6061933f3d5 100644 Binary files a/projects/doctrine-event-manager/en/1.2/metas.php and b/projects/doctrine-event-manager/en/1.2/metas.php differ diff --git a/projects/doctrine-event-manager/en/latest/metas.php b/projects/doctrine-event-manager/en/latest/metas.php index 11deabf558b3..c6061933f3d5 100644 Binary files a/projects/doctrine-event-manager/en/latest/metas.php and b/projects/doctrine-event-manager/en/latest/metas.php differ diff --git a/projects/doctrine-inflector/en/1.3/metas.php b/projects/doctrine-inflector/en/1.3/metas.php index 8f3d27a671c2..7086eb56e6e5 100644 Binary files a/projects/doctrine-inflector/en/1.3/metas.php and b/projects/doctrine-inflector/en/1.3/metas.php differ diff --git a/projects/doctrine-inflector/en/1.4/metas.php b/projects/doctrine-inflector/en/1.4/metas.php index ba2fd1faa72e..a03f9d2b9b91 100644 Binary files a/projects/doctrine-inflector/en/1.4/metas.php and b/projects/doctrine-inflector/en/1.4/metas.php differ diff --git a/projects/doctrine-inflector/en/2.0/metas.php b/projects/doctrine-inflector/en/2.0/metas.php index ba2fd1faa72e..a03f9d2b9b91 100644 Binary files a/projects/doctrine-inflector/en/2.0/metas.php and b/projects/doctrine-inflector/en/2.0/metas.php differ diff --git a/projects/doctrine-inflector/en/2.1/metas.php b/projects/doctrine-inflector/en/2.1/metas.php index ba2fd1faa72e..a03f9d2b9b91 100644 Binary files a/projects/doctrine-inflector/en/2.1/metas.php and b/projects/doctrine-inflector/en/2.1/metas.php differ diff --git a/projects/doctrine-instantiator/en/1.0/metas.php b/projects/doctrine-instantiator/en/1.0/metas.php index a887c38fdc26..da39098f1aa3 100644 Binary files a/projects/doctrine-instantiator/en/1.0/metas.php and b/projects/doctrine-instantiator/en/1.0/metas.php differ diff --git a/projects/doctrine-instantiator/en/1.2/metas.php b/projects/doctrine-instantiator/en/1.2/metas.php index a887c38fdc26..da39098f1aa3 100644 Binary files a/projects/doctrine-instantiator/en/1.2/metas.php and b/projects/doctrine-instantiator/en/1.2/metas.php differ diff --git a/projects/doctrine-instantiator/en/1.3/metas.php b/projects/doctrine-instantiator/en/1.3/metas.php index a887c38fdc26..da39098f1aa3 100644 Binary files a/projects/doctrine-instantiator/en/1.3/metas.php and b/projects/doctrine-instantiator/en/1.3/metas.php differ diff --git a/projects/doctrine-instantiator/en/1.4/metas.php b/projects/doctrine-instantiator/en/1.4/metas.php index a887c38fdc26..da39098f1aa3 100644 Binary files a/projects/doctrine-instantiator/en/1.4/metas.php and b/projects/doctrine-instantiator/en/1.4/metas.php differ diff --git a/projects/doctrine-instantiator/en/1.5/metas.php b/projects/doctrine-instantiator/en/1.5/metas.php index a887c38fdc26..da39098f1aa3 100644 Binary files a/projects/doctrine-instantiator/en/1.5/metas.php and b/projects/doctrine-instantiator/en/1.5/metas.php differ diff --git a/projects/doctrine-instantiator/en/2.0/metas.php b/projects/doctrine-instantiator/en/2.0/metas.php index a887c38fdc26..da39098f1aa3 100644 Binary files a/projects/doctrine-instantiator/en/2.0/metas.php and b/projects/doctrine-instantiator/en/2.0/metas.php differ diff --git a/projects/doctrine-laminas-hydrator.html b/projects/doctrine-laminas-hydrator.html index 212dc98436a7..6d4f281d0926 100644 --- a/projects/doctrine-laminas-hydrator.html +++ b/projects/doctrine-laminas-hydrator.html @@ -361,15 +361,15 @@

Statistics

Total Downloads - 1,192,371 + 1,194,510 Monthly Downloads - 41,859 + 43,998 Daily Downloads - 2,087 + 2,404 diff --git a/projects/doctrine-laminas-hydrator/en/2.2/metas.php b/projects/doctrine-laminas-hydrator/en/2.2/metas.php index 26dc030c37bb..19ed9780bbf5 100644 Binary files a/projects/doctrine-laminas-hydrator/en/2.2/metas.php and b/projects/doctrine-laminas-hydrator/en/2.2/metas.php differ diff --git a/projects/doctrine-laminas-hydrator/en/3.0/metas.php b/projects/doctrine-laminas-hydrator/en/3.0/metas.php index 26dc030c37bb..19ed9780bbf5 100644 Binary files a/projects/doctrine-laminas-hydrator/en/3.0/metas.php and b/projects/doctrine-laminas-hydrator/en/3.0/metas.php differ diff --git a/projects/doctrine-laminas-hydrator/en/3.1/metas.php b/projects/doctrine-laminas-hydrator/en/3.1/metas.php index e2965f81c1ab..4f749afa4675 100644 Binary files a/projects/doctrine-laminas-hydrator/en/3.1/metas.php and b/projects/doctrine-laminas-hydrator/en/3.1/metas.php differ diff --git a/projects/doctrine-laminas-hydrator/en/3.2/metas.php b/projects/doctrine-laminas-hydrator/en/3.2/metas.php index e2965f81c1ab..f78fb1a727de 100644 Binary files a/projects/doctrine-laminas-hydrator/en/3.2/metas.php and b/projects/doctrine-laminas-hydrator/en/3.2/metas.php differ diff --git a/projects/doctrine-laminas-hydrator/en/3.3/metas.php b/projects/doctrine-laminas-hydrator/en/3.3/metas.php index e2965f81c1ab..f78fb1a727de 100644 Binary files a/projects/doctrine-laminas-hydrator/en/3.3/metas.php and b/projects/doctrine-laminas-hydrator/en/3.3/metas.php differ diff --git a/projects/doctrine-laminas-hydrator/en/3.4/metas.php b/projects/doctrine-laminas-hydrator/en/3.4/metas.php index 9a525341f71c..f78fb1a727de 100644 Binary files a/projects/doctrine-laminas-hydrator/en/3.4/metas.php and b/projects/doctrine-laminas-hydrator/en/3.4/metas.php differ diff --git a/projects/doctrine-laminas-hydrator/en/3.5/metas.php b/projects/doctrine-laminas-hydrator/en/3.5/metas.php index 9a525341f71c..f78fb1a727de 100644 Binary files a/projects/doctrine-laminas-hydrator/en/3.5/metas.php and b/projects/doctrine-laminas-hydrator/en/3.5/metas.php differ diff --git a/projects/doctrine-lexer/en/1.0/metas.php b/projects/doctrine-lexer/en/1.0/metas.php index 650a80c1d630..0114aa28f849 100644 Binary files a/projects/doctrine-lexer/en/1.0/metas.php and b/projects/doctrine-lexer/en/1.0/metas.php differ diff --git a/projects/doctrine-lexer/en/1.1/metas.php b/projects/doctrine-lexer/en/1.1/metas.php index 650a80c1d630..0114aa28f849 100644 Binary files a/projects/doctrine-lexer/en/1.1/metas.php and b/projects/doctrine-lexer/en/1.1/metas.php differ diff --git a/projects/doctrine-lexer/en/1.2/metas.php b/projects/doctrine-lexer/en/1.2/metas.php index 650a80c1d630..0114aa28f849 100644 Binary files a/projects/doctrine-lexer/en/1.2/metas.php and b/projects/doctrine-lexer/en/1.2/metas.php differ diff --git a/projects/doctrine-lexer/en/1.3/metas.php b/projects/doctrine-lexer/en/1.3/metas.php index 8a40587ca990..1b9a2774466d 100644 Binary files a/projects/doctrine-lexer/en/1.3/metas.php and b/projects/doctrine-lexer/en/1.3/metas.php differ diff --git a/projects/doctrine-lexer/en/2.0/metas.php b/projects/doctrine-lexer/en/2.0/metas.php index 8a40587ca990..1b9a2774466d 100644 Binary files a/projects/doctrine-lexer/en/2.0/metas.php and b/projects/doctrine-lexer/en/2.0/metas.php differ diff --git a/projects/doctrine-lexer/en/2.1/metas.php b/projects/doctrine-lexer/en/2.1/metas.php index 8a40587ca990..1b9a2774466d 100644 Binary files a/projects/doctrine-lexer/en/2.1/metas.php and b/projects/doctrine-lexer/en/2.1/metas.php differ diff --git a/projects/doctrine-lexer/en/latest/metas.php b/projects/doctrine-lexer/en/latest/metas.php index 8a40587ca990..1b9a2774466d 100644 Binary files a/projects/doctrine-lexer/en/latest/metas.php and b/projects/doctrine-lexer/en/latest/metas.php differ diff --git a/projects/doctrine-migrations-bundle.html b/projects/doctrine-migrations-bundle.html index 30b0f25af43b..0fbe214dd5e4 100644 --- a/projects/doctrine-migrations-bundle.html +++ b/projects/doctrine-migrations-bundle.html @@ -396,15 +396,15 @@

Statistics

Total Downloads - 110,709,723 + 110,820,538 Monthly Downloads - 1,975,085 + 2,055,140 Daily Downloads - 123,042 + 117,494 diff --git a/projects/doctrine-migrations-bundle/en/1.0/metas.php b/projects/doctrine-migrations-bundle/en/1.0/metas.php index 40286bb556be..20321e19718b 100644 Binary files a/projects/doctrine-migrations-bundle/en/1.0/metas.php and b/projects/doctrine-migrations-bundle/en/1.0/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/1.1/metas.php b/projects/doctrine-migrations-bundle/en/1.1/metas.php index b5befae315aa..ddc5bddfca7d 100644 Binary files a/projects/doctrine-migrations-bundle/en/1.1/metas.php and b/projects/doctrine-migrations-bundle/en/1.1/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/1.2/metas.php b/projects/doctrine-migrations-bundle/en/1.2/metas.php index b499787ca944..20321e19718b 100644 Binary files a/projects/doctrine-migrations-bundle/en/1.2/metas.php and b/projects/doctrine-migrations-bundle/en/1.2/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/1.3/metas.php b/projects/doctrine-migrations-bundle/en/1.3/metas.php index b499787ca944..20321e19718b 100644 Binary files a/projects/doctrine-migrations-bundle/en/1.3/metas.php and b/projects/doctrine-migrations-bundle/en/1.3/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/2.0/metas.php b/projects/doctrine-migrations-bundle/en/2.0/metas.php index 185921f318d1..1c4a5c0b80ee 100644 Binary files a/projects/doctrine-migrations-bundle/en/2.0/metas.php and b/projects/doctrine-migrations-bundle/en/2.0/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/2.1/metas.php b/projects/doctrine-migrations-bundle/en/2.1/metas.php index 185921f318d1..1c4a5c0b80ee 100644 Binary files a/projects/doctrine-migrations-bundle/en/2.1/metas.php and b/projects/doctrine-migrations-bundle/en/2.1/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/2.2/metas.php b/projects/doctrine-migrations-bundle/en/2.2/metas.php index 185921f318d1..1c4a5c0b80ee 100644 Binary files a/projects/doctrine-migrations-bundle/en/2.2/metas.php and b/projects/doctrine-migrations-bundle/en/2.2/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/3.0/metas.php b/projects/doctrine-migrations-bundle/en/3.0/metas.php index 2c97710d28e3..8be653cb6b9c 100644 Binary files a/projects/doctrine-migrations-bundle/en/3.0/metas.php and b/projects/doctrine-migrations-bundle/en/3.0/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/3.1/metas.php b/projects/doctrine-migrations-bundle/en/3.1/metas.php index 2c97710d28e3..8be653cb6b9c 100644 Binary files a/projects/doctrine-migrations-bundle/en/3.1/metas.php and b/projects/doctrine-migrations-bundle/en/3.1/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/3.2/metas.php b/projects/doctrine-migrations-bundle/en/3.2/metas.php index e3502f7a64aa..4f68f2dad62f 100644 Binary files a/projects/doctrine-migrations-bundle/en/3.2/metas.php and b/projects/doctrine-migrations-bundle/en/3.2/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/3.3/metas.php b/projects/doctrine-migrations-bundle/en/3.3/metas.php index e3502f7a64aa..4f68f2dad62f 100644 Binary files a/projects/doctrine-migrations-bundle/en/3.3/metas.php and b/projects/doctrine-migrations-bundle/en/3.3/metas.php differ diff --git a/projects/doctrine-migrations-bundle/en/latest/metas.php b/projects/doctrine-migrations-bundle/en/latest/metas.php index e3502f7a64aa..4f68f2dad62f 100644 Binary files a/projects/doctrine-migrations-bundle/en/latest/metas.php and b/projects/doctrine-migrations-bundle/en/latest/metas.php differ diff --git a/projects/doctrine-migrations/en/1.7/metas.php b/projects/doctrine-migrations/en/1.7/metas.php index 50f0c9f442f9..51cc10673509 100644 Binary files a/projects/doctrine-migrations/en/1.7/metas.php and b/projects/doctrine-migrations/en/1.7/metas.php differ diff --git a/projects/doctrine-migrations/en/1.8/metas.php b/projects/doctrine-migrations/en/1.8/metas.php index c05fab5932ad..711204be0004 100644 Binary files a/projects/doctrine-migrations/en/1.8/metas.php and b/projects/doctrine-migrations/en/1.8/metas.php differ diff --git a/projects/doctrine-migrations/en/2.0/metas.php b/projects/doctrine-migrations/en/2.0/metas.php index cf81c8489a5a..a62234e6892a 100644 Binary files a/projects/doctrine-migrations/en/2.0/metas.php and b/projects/doctrine-migrations/en/2.0/metas.php differ diff --git a/projects/doctrine-migrations/en/2.1/metas.php b/projects/doctrine-migrations/en/2.1/metas.php index cf81c8489a5a..a62234e6892a 100644 Binary files a/projects/doctrine-migrations/en/2.1/metas.php and b/projects/doctrine-migrations/en/2.1/metas.php differ diff --git a/projects/doctrine-migrations/en/2.2/metas.php b/projects/doctrine-migrations/en/2.2/metas.php index cf81c8489a5a..a62234e6892a 100644 Binary files a/projects/doctrine-migrations/en/2.2/metas.php and b/projects/doctrine-migrations/en/2.2/metas.php differ diff --git a/projects/doctrine-migrations/en/2.3/metas.php b/projects/doctrine-migrations/en/2.3/metas.php index 8201bbeff7f4..8cf494b4e785 100644 Binary files a/projects/doctrine-migrations/en/2.3/metas.php and b/projects/doctrine-migrations/en/2.3/metas.php differ diff --git a/projects/doctrine-migrations/en/3.0/metas.php b/projects/doctrine-migrations/en/3.0/metas.php index 82065d0eed5c..8cf494b4e785 100644 Binary files a/projects/doctrine-migrations/en/3.0/metas.php and b/projects/doctrine-migrations/en/3.0/metas.php differ diff --git a/projects/doctrine-migrations/en/3.1/metas.php b/projects/doctrine-migrations/en/3.1/metas.php index 97a7cfdd00cb..7e8c67a147fe 100644 Binary files a/projects/doctrine-migrations/en/3.1/metas.php and b/projects/doctrine-migrations/en/3.1/metas.php differ diff --git a/projects/doctrine-migrations/en/3.2/metas.php b/projects/doctrine-migrations/en/3.2/metas.php index 810ffe8e8d11..2c6c8c2c1883 100644 Binary files a/projects/doctrine-migrations/en/3.2/metas.php and b/projects/doctrine-migrations/en/3.2/metas.php differ diff --git a/projects/doctrine-migrations/en/3.3/metas.php b/projects/doctrine-migrations/en/3.3/metas.php index 85fce9216c3e..36a7a951f6cd 100644 Binary files a/projects/doctrine-migrations/en/3.3/metas.php and b/projects/doctrine-migrations/en/3.3/metas.php differ diff --git a/projects/doctrine-migrations/en/3.4/metas.php b/projects/doctrine-migrations/en/3.4/metas.php index e87c27f927bd..36a7a951f6cd 100644 Binary files a/projects/doctrine-migrations/en/3.4/metas.php and b/projects/doctrine-migrations/en/3.4/metas.php differ diff --git a/projects/doctrine-migrations/en/3.5/metas.php b/projects/doctrine-migrations/en/3.5/metas.php index e87c27f927bd..f86330d70cc0 100644 Binary files a/projects/doctrine-migrations/en/3.5/metas.php and b/projects/doctrine-migrations/en/3.5/metas.php differ diff --git a/projects/doctrine-migrations/en/3.6/metas.php b/projects/doctrine-migrations/en/3.6/metas.php index e87c27f927bd..f86330d70cc0 100644 Binary files a/projects/doctrine-migrations/en/3.6/metas.php and b/projects/doctrine-migrations/en/3.6/metas.php differ diff --git a/projects/doctrine-migrations/en/3.7/metas.php b/projects/doctrine-migrations/en/3.7/metas.php index e87c27f927bd..f86330d70cc0 100644 Binary files a/projects/doctrine-migrations/en/3.7/metas.php and b/projects/doctrine-migrations/en/3.7/metas.php differ diff --git a/projects/doctrine-migrations/en/3.8/metas.php b/projects/doctrine-migrations/en/3.8/metas.php index 0b0434e7438e..49f838dd9154 100644 Binary files a/projects/doctrine-migrations/en/3.8/metas.php and b/projects/doctrine-migrations/en/3.8/metas.php differ diff --git a/projects/doctrine-module.html b/projects/doctrine-module.html index 4ea17c3bd3cf..9997855d13f7 100644 --- a/projects/doctrine-module.html +++ b/projects/doctrine-module.html @@ -455,15 +455,15 @@

Statistics

Total Downloads - 6,095,179 + 6,097,856 Monthly Downloads - 63,390 + 65,063 Daily Downloads - 3,941 + 3,647 diff --git a/projects/doctrine-module/en/4.1/metas.php b/projects/doctrine-module/en/4.1/metas.php index 57eda0d98d9c..5d2d4d3563e0 100644 Binary files a/projects/doctrine-module/en/4.1/metas.php and b/projects/doctrine-module/en/4.1/metas.php differ diff --git a/projects/doctrine-module/en/4.2/metas.php b/projects/doctrine-module/en/4.2/metas.php index 7d38ab81e7dc..af393ddab608 100644 Binary files a/projects/doctrine-module/en/4.2/metas.php and b/projects/doctrine-module/en/4.2/metas.php differ diff --git a/projects/doctrine-module/en/4.3/metas.php b/projects/doctrine-module/en/4.3/metas.php index 7d38ab81e7dc..cfbce3c9ca9a 100644 Binary files a/projects/doctrine-module/en/4.3/metas.php and b/projects/doctrine-module/en/4.3/metas.php differ diff --git a/projects/doctrine-module/en/4.4/metas.php b/projects/doctrine-module/en/4.4/metas.php index a315d08eb6d1..cfbce3c9ca9a 100644 Binary files a/projects/doctrine-module/en/4.4/metas.php and b/projects/doctrine-module/en/4.4/metas.php differ diff --git a/projects/doctrine-module/en/5.0/metas.php b/projects/doctrine-module/en/5.0/metas.php index 2a2b3241fd71..30c634621ae3 100644 Binary files a/projects/doctrine-module/en/5.0/metas.php and b/projects/doctrine-module/en/5.0/metas.php differ diff --git a/projects/doctrine-module/en/5.1/metas.php b/projects/doctrine-module/en/5.1/metas.php index 2a2b3241fd71..30c634621ae3 100644 Binary files a/projects/doctrine-module/en/5.1/metas.php and b/projects/doctrine-module/en/5.1/metas.php differ diff --git a/projects/doctrine-module/en/5.2/metas.php b/projects/doctrine-module/en/5.2/metas.php index 2a2b3241fd71..30c634621ae3 100644 Binary files a/projects/doctrine-module/en/5.2/metas.php and b/projects/doctrine-module/en/5.2/metas.php differ diff --git a/projects/doctrine-module/en/5.3/metas.php b/projects/doctrine-module/en/5.3/metas.php index 2a2b3241fd71..30c634621ae3 100644 Binary files a/projects/doctrine-module/en/5.3/metas.php and b/projects/doctrine-module/en/5.3/metas.php differ diff --git a/projects/doctrine-module/en/6.0/metas.php b/projects/doctrine-module/en/6.0/metas.php index 2a2b3241fd71..bcd7f2191a7f 100644 Binary files a/projects/doctrine-module/en/6.0/metas.php and b/projects/doctrine-module/en/6.0/metas.php differ diff --git a/projects/doctrine-module/en/6.1/metas.php b/projects/doctrine-module/en/6.1/metas.php index 188c8f3c5a87..bcd7f2191a7f 100644 Binary files a/projects/doctrine-module/en/6.1/metas.php and b/projects/doctrine-module/en/6.1/metas.php differ diff --git a/projects/doctrine-module/en/6.2/metas.php b/projects/doctrine-module/en/6.2/metas.php index 188c8f3c5a87..bcd7f2191a7f 100644 Binary files a/projects/doctrine-module/en/6.2/metas.php and b/projects/doctrine-module/en/6.2/metas.php differ diff --git a/projects/doctrine-mongo-odm-module.html b/projects/doctrine-mongo-odm-module.html index 9fe8a0f2bb09..fdf7376b8080 100644 --- a/projects/doctrine-mongo-odm-module.html +++ b/projects/doctrine-mongo-odm-module.html @@ -404,15 +404,15 @@

Statistics

Total Downloads - 563,935 + 564,069 Monthly Downloads - 3,486 + 3,620 Daily Downloads - 171 + 154 diff --git a/projects/doctrine-mongo-odm-module/en/3.0/metas.php b/projects/doctrine-mongo-odm-module/en/3.0/metas.php index 981d697c6b51..cc9ec195ecd2 100644 Binary files a/projects/doctrine-mongo-odm-module/en/3.0/metas.php and b/projects/doctrine-mongo-odm-module/en/3.0/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/3.1/metas.php b/projects/doctrine-mongo-odm-module/en/3.1/metas.php index 981d697c6b51..cc9ec195ecd2 100644 Binary files a/projects/doctrine-mongo-odm-module/en/3.1/metas.php and b/projects/doctrine-mongo-odm-module/en/3.1/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/3.2/metas.php b/projects/doctrine-mongo-odm-module/en/3.2/metas.php index 981d697c6b51..cc9ec195ecd2 100644 Binary files a/projects/doctrine-mongo-odm-module/en/3.2/metas.php and b/projects/doctrine-mongo-odm-module/en/3.2/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/4.0/metas.php b/projects/doctrine-mongo-odm-module/en/4.0/metas.php index 981d697c6b51..da40acbc089c 100644 Binary files a/projects/doctrine-mongo-odm-module/en/4.0/metas.php and b/projects/doctrine-mongo-odm-module/en/4.0/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/4.1/metas.php b/projects/doctrine-mongo-odm-module/en/4.1/metas.php index ba8b6f5f3044..c1fee89ce772 100644 Binary files a/projects/doctrine-mongo-odm-module/en/4.1/metas.php and b/projects/doctrine-mongo-odm-module/en/4.1/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/4.2/metas.php b/projects/doctrine-mongo-odm-module/en/4.2/metas.php index ba8b6f5f3044..c1fee89ce772 100644 Binary files a/projects/doctrine-mongo-odm-module/en/4.2/metas.php and b/projects/doctrine-mongo-odm-module/en/4.2/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/4.3/metas.php b/projects/doctrine-mongo-odm-module/en/4.3/metas.php index ba8b6f5f3044..c1fee89ce772 100644 Binary files a/projects/doctrine-mongo-odm-module/en/4.3/metas.php and b/projects/doctrine-mongo-odm-module/en/4.3/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/5.0/metas.php b/projects/doctrine-mongo-odm-module/en/5.0/metas.php index ba8b6f5f3044..c1fee89ce772 100644 Binary files a/projects/doctrine-mongo-odm-module/en/5.0/metas.php and b/projects/doctrine-mongo-odm-module/en/5.0/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/5.1/metas.php b/projects/doctrine-mongo-odm-module/en/5.1/metas.php index d350a1d31348..c1fee89ce772 100644 Binary files a/projects/doctrine-mongo-odm-module/en/5.1/metas.php and b/projects/doctrine-mongo-odm-module/en/5.1/metas.php differ diff --git a/projects/doctrine-mongo-odm-module/en/5.2/metas.php b/projects/doctrine-mongo-odm-module/en/5.2/metas.php index d350a1d31348..c1fee89ce772 100644 Binary files a/projects/doctrine-mongo-odm-module/en/5.2/metas.php and b/projects/doctrine-mongo-odm-module/en/5.2/metas.php differ diff --git a/projects/doctrine-mongodb-bundle.html b/projects/doctrine-mongodb-bundle.html index 6099bbb0a21b..beb02ae19cf4 100644 --- a/projects/doctrine-mongodb-bundle.html +++ b/projects/doctrine-mongodb-bundle.html @@ -455,15 +455,15 @@

Statistics

Total Downloads - 11,936,370 + 11,946,191 Monthly Downloads - 186,797 + 192,815 Daily Downloads - 12,327 + 11,160 diff --git a/projects/doctrine-mongodb-bundle/en/5.0/metas.php b/projects/doctrine-mongodb-bundle/en/5.0/metas.php index c257259f7ae3..3c1ba156290b 100644 Binary files a/projects/doctrine-mongodb-bundle/en/5.0/metas.php and b/projects/doctrine-mongodb-bundle/en/5.0/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/1.0/metas.php b/projects/doctrine-mongodb-odm/en/1.0/metas.php index 988cd3cd9d0d..d3e072b2a873 100644 Binary files a/projects/doctrine-mongodb-odm/en/1.0/metas.php and b/projects/doctrine-mongodb-odm/en/1.0/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/1.1/metas.php b/projects/doctrine-mongodb-odm/en/1.1/metas.php index bf69f2578552..4949229aaa71 100644 Binary files a/projects/doctrine-mongodb-odm/en/1.1/metas.php and b/projects/doctrine-mongodb-odm/en/1.1/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/1.2/metas.php b/projects/doctrine-mongodb-odm/en/1.2/metas.php index af582957b272..9982466ee5c0 100644 Binary files a/projects/doctrine-mongodb-odm/en/1.2/metas.php and b/projects/doctrine-mongodb-odm/en/1.2/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/1.3/metas.php b/projects/doctrine-mongodb-odm/en/1.3/metas.php index 3094391a109c..66b4a39e50fd 100644 Binary files a/projects/doctrine-mongodb-odm/en/1.3/metas.php and b/projects/doctrine-mongodb-odm/en/1.3/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/2.0/metas.php b/projects/doctrine-mongodb-odm/en/2.0/metas.php index fc82df34938b..17b669053594 100644 Binary files a/projects/doctrine-mongodb-odm/en/2.0/metas.php and b/projects/doctrine-mongodb-odm/en/2.0/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/2.1/metas.php b/projects/doctrine-mongodb-odm/en/2.1/metas.php index 105c5869c0fe..ee31bcf6ce77 100644 Binary files a/projects/doctrine-mongodb-odm/en/2.1/metas.php and b/projects/doctrine-mongodb-odm/en/2.1/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/2.2/metas.php b/projects/doctrine-mongodb-odm/en/2.2/metas.php index 10d39313c04c..276aac367cd2 100644 Binary files a/projects/doctrine-mongodb-odm/en/2.2/metas.php and b/projects/doctrine-mongodb-odm/en/2.2/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/2.3/metas.php b/projects/doctrine-mongodb-odm/en/2.3/metas.php index e02c65fd242c..9076b87cb376 100644 Binary files a/projects/doctrine-mongodb-odm/en/2.3/metas.php and b/projects/doctrine-mongodb-odm/en/2.3/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/2.4/metas.php b/projects/doctrine-mongodb-odm/en/2.4/metas.php index 70f92cbb87f7..4c1f00d82876 100644 Binary files a/projects/doctrine-mongodb-odm/en/2.4/metas.php and b/projects/doctrine-mongodb-odm/en/2.4/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/2.5/metas.php b/projects/doctrine-mongodb-odm/en/2.5/metas.php index 2824f40ec6fd..8a56573b2532 100644 Binary files a/projects/doctrine-mongodb-odm/en/2.5/metas.php and b/projects/doctrine-mongodb-odm/en/2.5/metas.php differ diff --git a/projects/doctrine-mongodb-odm/en/latest/metas.php b/projects/doctrine-mongodb-odm/en/latest/metas.php index afdb0d91ca93..eed123e8fff7 100644 Binary files a/projects/doctrine-mongodb-odm/en/latest/metas.php and b/projects/doctrine-mongodb-odm/en/latest/metas.php differ diff --git a/projects/doctrine-orientdb-odm/en/latest/metas.php b/projects/doctrine-orientdb-odm/en/latest/metas.php index 365129fc4e27..43f1d1f856c8 100644 Binary files a/projects/doctrine-orientdb-odm/en/latest/metas.php and b/projects/doctrine-orientdb-odm/en/latest/metas.php differ diff --git a/projects/doctrine-orm-module.html b/projects/doctrine-orm-module.html index 3f32a3b40064..814b50671294 100644 --- a/projects/doctrine-orm-module.html +++ b/projects/doctrine-orm-module.html @@ -427,15 +427,15 @@

Statistics

Total Downloads - 5,635,586 + 5,637,414 Monthly Downloads - 57,470 + 59,298 Daily Downloads - 3,251 + 3,215 diff --git a/projects/doctrine-orm-module/en/2.1/metas.php b/projects/doctrine-orm-module/en/2.1/metas.php index d15a8e8ec995..53f268f10dff 100644 Binary files a/projects/doctrine-orm-module/en/2.1/metas.php and b/projects/doctrine-orm-module/en/2.1/metas.php differ diff --git a/projects/doctrine-orm-module/en/3.0/metas.php b/projects/doctrine-orm-module/en/3.0/metas.php index a6cf85e7e87d..1cb5cd040606 100644 Binary files a/projects/doctrine-orm-module/en/3.0/metas.php and b/projects/doctrine-orm-module/en/3.0/metas.php differ diff --git a/projects/doctrine-orm-module/en/3.1/metas.php b/projects/doctrine-orm-module/en/3.1/metas.php index e2f2f91d7501..ee9ac244515b 100644 Binary files a/projects/doctrine-orm-module/en/3.1/metas.php and b/projects/doctrine-orm-module/en/3.1/metas.php differ diff --git a/projects/doctrine-orm-module/en/3.2/metas.php b/projects/doctrine-orm-module/en/3.2/metas.php index a174a4ee7a28..21ac340da93f 100644 Binary files a/projects/doctrine-orm-module/en/3.2/metas.php and b/projects/doctrine-orm-module/en/3.2/metas.php differ diff --git a/projects/doctrine-orm-module/en/4.0/metas.php b/projects/doctrine-orm-module/en/4.0/metas.php index 74f028542db7..8975adcf0a8f 100644 Binary files a/projects/doctrine-orm-module/en/4.0/metas.php and b/projects/doctrine-orm-module/en/4.0/metas.php differ diff --git a/projects/doctrine-orm-module/en/4.1/metas.php b/projects/doctrine-orm-module/en/4.1/metas.php index 7aef10d0e820..d496deb0d3fc 100644 Binary files a/projects/doctrine-orm-module/en/4.1/metas.php and b/projects/doctrine-orm-module/en/4.1/metas.php differ diff --git a/projects/doctrine-orm-module/en/4.2/metas.php b/projects/doctrine-orm-module/en/4.2/metas.php index 30dcbf49cafd..ec6120c6614e 100644 Binary files a/projects/doctrine-orm-module/en/4.2/metas.php and b/projects/doctrine-orm-module/en/4.2/metas.php differ diff --git a/projects/doctrine-orm-module/en/5.0/metas.php b/projects/doctrine-orm-module/en/5.0/metas.php index 9124f41a6583..e9e4dfa903f7 100644 Binary files a/projects/doctrine-orm-module/en/5.0/metas.php and b/projects/doctrine-orm-module/en/5.0/metas.php differ diff --git a/projects/doctrine-orm-module/en/5.1/metas.php b/projects/doctrine-orm-module/en/5.1/metas.php index 468107852cc4..dbc62d79c02c 100644 Binary files a/projects/doctrine-orm-module/en/5.1/metas.php and b/projects/doctrine-orm-module/en/5.1/metas.php differ diff --git a/projects/doctrine-orm-module/en/5.2/metas.php b/projects/doctrine-orm-module/en/5.2/metas.php index 468107852cc4..dbc62d79c02c 100644 Binary files a/projects/doctrine-orm-module/en/5.2/metas.php and b/projects/doctrine-orm-module/en/5.2/metas.php differ diff --git a/projects/doctrine-orm-module/en/5.3/metas.php b/projects/doctrine-orm-module/en/5.3/metas.php index 468107852cc4..3ea6c2b1c152 100644 Binary files a/projects/doctrine-orm-module/en/5.3/metas.php and b/projects/doctrine-orm-module/en/5.3/metas.php differ diff --git a/projects/doctrine-orm-module/en/6.0/metas.php b/projects/doctrine-orm-module/en/6.0/metas.php index 468107852cc4..3ea6c2b1c152 100644 Binary files a/projects/doctrine-orm-module/en/6.0/metas.php and b/projects/doctrine-orm-module/en/6.0/metas.php differ diff --git a/projects/doctrine-orm-module/en/6.1/metas.php b/projects/doctrine-orm-module/en/6.1/metas.php index e62cbafd5e2b..3ea6c2b1c152 100644 Binary files a/projects/doctrine-orm-module/en/6.1/metas.php and b/projects/doctrine-orm-module/en/6.1/metas.php differ diff --git a/projects/doctrine-orm/en/2.10/metas.php b/projects/doctrine-orm/en/2.10/metas.php index c4dca0b615df..59714d68e709 100644 Binary files a/projects/doctrine-orm/en/2.10/metas.php and b/projects/doctrine-orm/en/2.10/metas.php differ diff --git a/projects/doctrine-orm/en/2.10/reference/installation.html b/projects/doctrine-orm/en/2.10/reference/installation.html index 314be39a907c..39be0fc83910 100644 --- a/projects/doctrine-orm/en/2.10/reference/installation.html +++ b/projects/doctrine-orm/en/2.10/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to 95d31969725a91915e491a5303c4b8b2364d3a83.

+

The installation chapter has moved to 224a13a5d9e15b391d0c0accb146167140ed2df9.

diff --git a/projects/doctrine-orm/en/2.10/reference/query-builder.html b/projects/doctrine-orm/en/2.10/reference/query-builder.html index 6a268c8d05a3..91c75a9f3063 100644 --- a/projects/doctrine-orm/en/2.10/reference/query-builder.html +++ b/projects/doctrine-orm/en/2.10/reference/query-builder.html @@ -339,7 +339,7 @@ as you want, or just pick a preferred one.

The QueryBuilder is not an abstraction of DQL, but merely a tool to dynamically build it. You should still use plain DQL when you can, as it is simpler and more readable. -More about this in the e08a61cb76a89d9d940b9fb8c3420c465cfee2be.

+More about this in the ef9b16b84598220541a4be2845388e3289f233ad.

Constructing a new QueryBuilder object

The same way you build a normal Query, you build a QueryBuilder diff --git a/projects/doctrine-orm/en/2.11/metas.php b/projects/doctrine-orm/en/2.11/metas.php index 9f12f7d3c8cb..7f00cc1cd96d 100644 Binary files a/projects/doctrine-orm/en/2.11/metas.php and b/projects/doctrine-orm/en/2.11/metas.php differ diff --git a/projects/doctrine-orm/en/2.11/reference/installation.html b/projects/doctrine-orm/en/2.11/reference/installation.html index 6b0fb7c8244e..8295a6472402 100644 --- a/projects/doctrine-orm/en/2.11/reference/installation.html +++ b/projects/doctrine-orm/en/2.11/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to 030d5041b88bcf19eabadb25c2288d04350b2475.

+

The installation chapter has moved to e06eec824e043063be58203e8a89b2095703e7d8.

diff --git a/projects/doctrine-orm/en/2.12/metas.php b/projects/doctrine-orm/en/2.12/metas.php index e30cb7bbc194..6e0d258bb5b0 100644 Binary files a/projects/doctrine-orm/en/2.12/metas.php and b/projects/doctrine-orm/en/2.12/metas.php differ diff --git a/projects/doctrine-orm/en/2.12/reference/installation.html b/projects/doctrine-orm/en/2.12/reference/installation.html index 7ac5935a80d4..daa70c935b6d 100644 --- a/projects/doctrine-orm/en/2.12/reference/installation.html +++ b/projects/doctrine-orm/en/2.12/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to d36252fa989151991b21c67cfb0a0ca32faf4c86.

+

The installation chapter has moved to 1dd212fafe99f0320ddce57134e4219e1187dc2b.

diff --git a/projects/doctrine-orm/en/2.13/metas.php b/projects/doctrine-orm/en/2.13/metas.php index 66aca5870f1b..ddd598d4a967 100644 Binary files a/projects/doctrine-orm/en/2.13/metas.php and b/projects/doctrine-orm/en/2.13/metas.php differ diff --git a/projects/doctrine-orm/en/2.13/reference/installation.html b/projects/doctrine-orm/en/2.13/reference/installation.html index 7e4347237ee0..3b312f0a06ec 100644 --- a/projects/doctrine-orm/en/2.13/reference/installation.html +++ b/projects/doctrine-orm/en/2.13/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to 2db15b25b6661cfdef0be5eeb672288d8fc7c0fc.

+

The installation chapter has moved to 4a0ee4cfa3fa6a330f128f81401cd3cac85ff1a8.

diff --git a/projects/doctrine-orm/en/2.14/metas.php b/projects/doctrine-orm/en/2.14/metas.php index 3fb3268c63bc..e847830dd401 100644 Binary files a/projects/doctrine-orm/en/2.14/metas.php and b/projects/doctrine-orm/en/2.14/metas.php differ diff --git a/projects/doctrine-orm/en/2.14/reference/installation.html b/projects/doctrine-orm/en/2.14/reference/installation.html index 170b08d55a6d..d700619719dc 100644 --- a/projects/doctrine-orm/en/2.14/reference/installation.html +++ b/projects/doctrine-orm/en/2.14/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to a810665ca3bc3b1b29842bdafd762203b89ad707.

+

The installation chapter has moved to f61381bcaa5aeaf6ed0e3d9178cc1e077ed30c1f.

diff --git a/projects/doctrine-orm/en/2.15/metas.php b/projects/doctrine-orm/en/2.15/metas.php index 3e5b75937af5..10b676be3852 100644 Binary files a/projects/doctrine-orm/en/2.15/metas.php and b/projects/doctrine-orm/en/2.15/metas.php differ diff --git a/projects/doctrine-orm/en/2.16/metas.php b/projects/doctrine-orm/en/2.16/metas.php index 5198c45ccbf6..2bea8017d344 100644 Binary files a/projects/doctrine-orm/en/2.16/metas.php and b/projects/doctrine-orm/en/2.16/metas.php differ diff --git a/projects/doctrine-orm/en/2.17/metas.php b/projects/doctrine-orm/en/2.17/metas.php index 7792099a7ae4..a067f8b5dc79 100644 Binary files a/projects/doctrine-orm/en/2.17/metas.php and b/projects/doctrine-orm/en/2.17/metas.php differ diff --git a/projects/doctrine-orm/en/2.18/metas.php b/projects/doctrine-orm/en/2.18/metas.php index 386dfbe431b8..d39146fd9222 100644 Binary files a/projects/doctrine-orm/en/2.18/metas.php and b/projects/doctrine-orm/en/2.18/metas.php differ diff --git a/projects/doctrine-orm/en/2.4/metas.php b/projects/doctrine-orm/en/2.4/metas.php index 028be3f86d62..e8a5278d289e 100644 Binary files a/projects/doctrine-orm/en/2.4/metas.php and b/projects/doctrine-orm/en/2.4/metas.php differ diff --git a/projects/doctrine-orm/en/2.5/metas.php b/projects/doctrine-orm/en/2.5/metas.php index 300ad70ff5e8..993b3af1e87a 100644 Binary files a/projects/doctrine-orm/en/2.5/metas.php and b/projects/doctrine-orm/en/2.5/metas.php differ diff --git a/projects/doctrine-orm/en/2.6/metas.php b/projects/doctrine-orm/en/2.6/metas.php index 06df00595b2e..0e8cce864876 100644 Binary files a/projects/doctrine-orm/en/2.6/metas.php and b/projects/doctrine-orm/en/2.6/metas.php differ diff --git a/projects/doctrine-orm/en/2.6/reference/installation.html b/projects/doctrine-orm/en/2.6/reference/installation.html index c1f8cbd9be28..1b411e0a3623 100644 --- a/projects/doctrine-orm/en/2.6/reference/installation.html +++ b/projects/doctrine-orm/en/2.6/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to c4f9052899adff634f09b238b368f43549f681e8.

+

The installation chapter has moved to 5048b0000f4db20e047a7c1c9bdd20e68e48de96.

diff --git a/projects/doctrine-orm/en/2.6/reference/query-builder.html b/projects/doctrine-orm/en/2.6/reference/query-builder.html index e2bb735d6c78..db8cffe6c35f 100644 --- a/projects/doctrine-orm/en/2.6/reference/query-builder.html +++ b/projects/doctrine-orm/en/2.6/reference/query-builder.html @@ -339,7 +339,7 @@ as you want, or just pick a preferred one.

The QueryBuilder is not an abstraction of DQL, but merely a tool to dynamically build it. You should still use plain DQL when you can, as it is simpler and more readable. -More about this in the d165c9d2995eed58a80fdd5aba0dd628728452ed.

+More about this in the dc2a9cd34dd8a75820ba49e92b884e06867388b9.

Constructing a new QueryBuilder object

The same way you build a normal Query, you build a QueryBuilder diff --git a/projects/doctrine-orm/en/2.7/metas.php b/projects/doctrine-orm/en/2.7/metas.php index f8d32bb56888..99f4ffd01be8 100644 Binary files a/projects/doctrine-orm/en/2.7/metas.php and b/projects/doctrine-orm/en/2.7/metas.php differ diff --git a/projects/doctrine-orm/en/2.7/reference/installation.html b/projects/doctrine-orm/en/2.7/reference/installation.html index 07b7ba7f2de3..77fdbcca00b2 100644 --- a/projects/doctrine-orm/en/2.7/reference/installation.html +++ b/projects/doctrine-orm/en/2.7/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to f247e46473cac56044ae7da6927a24331cba763e.

+

The installation chapter has moved to d0d904413cb889a6aab8850b3d4ab46334ae7608.

diff --git a/projects/doctrine-orm/en/2.7/reference/query-builder.html b/projects/doctrine-orm/en/2.7/reference/query-builder.html index cb22ebd38226..88ad55512403 100644 --- a/projects/doctrine-orm/en/2.7/reference/query-builder.html +++ b/projects/doctrine-orm/en/2.7/reference/query-builder.html @@ -339,7 +339,7 @@ as you want, or just pick a preferred one.

The QueryBuilder is not an abstraction of DQL, but merely a tool to dynamically build it. You should still use plain DQL when you can, as it is simpler and more readable. -More about this in the b3fe390b8d94058bf9020f0a018e6d2c3a4c2e9d.

+More about this in the 210f9992847bc3f531f92486576046a88544acba.

Constructing a new QueryBuilder object

The same way you build a normal Query, you build a QueryBuilder diff --git a/projects/doctrine-orm/en/2.8/metas.php b/projects/doctrine-orm/en/2.8/metas.php index b60a73a34384..63d971828d73 100644 Binary files a/projects/doctrine-orm/en/2.8/metas.php and b/projects/doctrine-orm/en/2.8/metas.php differ diff --git a/projects/doctrine-orm/en/2.8/reference/installation.html b/projects/doctrine-orm/en/2.8/reference/installation.html index a75c38680d39..0a508e7f5f5c 100644 --- a/projects/doctrine-orm/en/2.8/reference/installation.html +++ b/projects/doctrine-orm/en/2.8/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to af77e8dc33511f5124ea82a43d356a338c6c7ed3.

+

The installation chapter has moved to f2ac4a9791317b7b04360a1a8bffd5bad9c56f93.

diff --git a/projects/doctrine-orm/en/2.8/reference/query-builder.html b/projects/doctrine-orm/en/2.8/reference/query-builder.html index 854046ed1b76..c7b5093397bc 100644 --- a/projects/doctrine-orm/en/2.8/reference/query-builder.html +++ b/projects/doctrine-orm/en/2.8/reference/query-builder.html @@ -339,7 +339,7 @@ as you want, or just pick a preferred one.

The QueryBuilder is not an abstraction of DQL, but merely a tool to dynamically build it. You should still use plain DQL when you can, as it is simpler and more readable. -More about this in the 699be532108bd373915ec03b1435be2814a9fd32.

+More about this in the aea64daaba55c2a096a31504f4fc5da71f73d4b8.

Constructing a new QueryBuilder object

The same way you build a normal Query, you build a QueryBuilder diff --git a/projects/doctrine-orm/en/2.9/metas.php b/projects/doctrine-orm/en/2.9/metas.php index 643d18677a1d..a379d640486f 100644 Binary files a/projects/doctrine-orm/en/2.9/metas.php and b/projects/doctrine-orm/en/2.9/metas.php differ diff --git a/projects/doctrine-orm/en/2.9/reference/installation.html b/projects/doctrine-orm/en/2.9/reference/installation.html index ba9137bd1762..ea8b94a1a9fb 100644 --- a/projects/doctrine-orm/en/2.9/reference/installation.html +++ b/projects/doctrine-orm/en/2.9/reference/installation.html @@ -331,7 +331,7 @@

Installation

-

The installation chapter has moved to fd0634a22c9f87647bf823e636f6a32ed95541a1.

+

The installation chapter has moved to 7302caba49ee821e969b42a09bbdd9c8428b1aca.

diff --git a/projects/doctrine-orm/en/2.9/reference/query-builder.html b/projects/doctrine-orm/en/2.9/reference/query-builder.html index a72a94c9703e..93b80e743021 100644 --- a/projects/doctrine-orm/en/2.9/reference/query-builder.html +++ b/projects/doctrine-orm/en/2.9/reference/query-builder.html @@ -339,7 +339,7 @@ as you want, or just pick a preferred one.

The QueryBuilder is not an abstraction of DQL, but merely a tool to dynamically build it. You should still use plain DQL when you can, as it is simpler and more readable. -More about this in the e25860e0258027fde1b8d02ccfaf370040b79d78.

+More about this in the 4e2dc7e63298303c44b268472d6c3a02baf77d3b.

Constructing a new QueryBuilder object

The same way you build a normal Query, you build a QueryBuilder diff --git a/projects/doctrine-orm/en/latest/metas.php b/projects/doctrine-orm/en/latest/metas.php index e5b5c1670e88..03dc847845c6 100644 Binary files a/projects/doctrine-orm/en/latest/metas.php and b/projects/doctrine-orm/en/latest/metas.php differ diff --git a/projects/doctrine-persistence/en/1.0/metas.php b/projects/doctrine-persistence/en/1.0/metas.php index 8cf784680482..585452529892 100644 Binary files a/projects/doctrine-persistence/en/1.0/metas.php and b/projects/doctrine-persistence/en/1.0/metas.php differ diff --git a/projects/doctrine-persistence/en/1.1/metas.php b/projects/doctrine-persistence/en/1.1/metas.php index 5e3d4b5457f1..23039d03d65f 100644 Binary files a/projects/doctrine-persistence/en/1.1/metas.php and b/projects/doctrine-persistence/en/1.1/metas.php differ diff --git a/projects/doctrine-persistence/en/1.2/metas.php b/projects/doctrine-persistence/en/1.2/metas.php index 5e3d4b5457f1..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/1.2/metas.php and b/projects/doctrine-persistence/en/1.2/metas.php differ diff --git a/projects/doctrine-persistence/en/1.3/metas.php b/projects/doctrine-persistence/en/1.3/metas.php index 5e3d4b5457f1..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/1.3/metas.php and b/projects/doctrine-persistence/en/1.3/metas.php differ diff --git a/projects/doctrine-persistence/en/1.4/metas.php b/projects/doctrine-persistence/en/1.4/metas.php index 5e3d4b5457f1..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/1.4/metas.php and b/projects/doctrine-persistence/en/1.4/metas.php differ diff --git a/projects/doctrine-persistence/en/2.0/metas.php b/projects/doctrine-persistence/en/2.0/metas.php index 5e3d4b5457f1..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/2.0/metas.php and b/projects/doctrine-persistence/en/2.0/metas.php differ diff --git a/projects/doctrine-persistence/en/2.1/metas.php b/projects/doctrine-persistence/en/2.1/metas.php index 5e3d4b5457f1..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/2.1/metas.php and b/projects/doctrine-persistence/en/2.1/metas.php differ diff --git a/projects/doctrine-persistence/en/2.2/metas.php b/projects/doctrine-persistence/en/2.2/metas.php index e2c1191d9595..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/2.2/metas.php and b/projects/doctrine-persistence/en/2.2/metas.php differ diff --git a/projects/doctrine-persistence/en/2.3/metas.php b/projects/doctrine-persistence/en/2.3/metas.php index e2c1191d9595..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/2.3/metas.php and b/projects/doctrine-persistence/en/2.3/metas.php differ diff --git a/projects/doctrine-persistence/en/2.4/metas.php b/projects/doctrine-persistence/en/2.4/metas.php index e2c1191d9595..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/2.4/metas.php and b/projects/doctrine-persistence/en/2.4/metas.php differ diff --git a/projects/doctrine-persistence/en/2.5/metas.php b/projects/doctrine-persistence/en/2.5/metas.php index e2c1191d9595..cb22df886e6a 100644 Binary files a/projects/doctrine-persistence/en/2.5/metas.php and b/projects/doctrine-persistence/en/2.5/metas.php differ diff --git a/projects/doctrine-persistence/en/3.0/metas.php b/projects/doctrine-persistence/en/3.0/metas.php index eced1581e096..41b9fcb5a1cb 100644 Binary files a/projects/doctrine-persistence/en/3.0/metas.php and b/projects/doctrine-persistence/en/3.0/metas.php differ diff --git a/projects/doctrine-persistence/en/3.1/metas.php b/projects/doctrine-persistence/en/3.1/metas.php index eced1581e096..41b9fcb5a1cb 100644 Binary files a/projects/doctrine-persistence/en/3.1/metas.php and b/projects/doctrine-persistence/en/3.1/metas.php differ diff --git a/projects/doctrine-persistence/en/3.2/metas.php b/projects/doctrine-persistence/en/3.2/metas.php index eced1581e096..41b9fcb5a1cb 100644 Binary files a/projects/doctrine-persistence/en/3.2/metas.php and b/projects/doctrine-persistence/en/3.2/metas.php differ diff --git a/projects/doctrine-persistence/en/latest/metas.php b/projects/doctrine-persistence/en/latest/metas.php index eced1581e096..41b9fcb5a1cb 100644 Binary files a/projects/doctrine-persistence/en/latest/metas.php and b/projects/doctrine-persistence/en/latest/metas.php differ diff --git a/projects/doctrine-phpcr-odm/en/1.7/metas.php b/projects/doctrine-phpcr-odm/en/1.7/metas.php index 79f6a897f8bf..3f57ee0d9e22 100644 Binary files a/projects/doctrine-phpcr-odm/en/1.7/metas.php and b/projects/doctrine-phpcr-odm/en/1.7/metas.php differ diff --git a/projects/doctrine-phpcr-odm/en/1.8/metas.php b/projects/doctrine-phpcr-odm/en/1.8/metas.php index 9b3fade997e5..9964cd35440c 100644 Binary files a/projects/doctrine-phpcr-odm/en/1.8/metas.php and b/projects/doctrine-phpcr-odm/en/1.8/metas.php differ diff --git a/projects/doctrine-phpcr-odm/en/1.x/metas.php b/projects/doctrine-phpcr-odm/en/1.x/metas.php index fa1718e83bf8..ffbba203b196 100644 Binary files a/projects/doctrine-phpcr-odm/en/1.x/metas.php and b/projects/doctrine-phpcr-odm/en/1.x/metas.php differ diff --git a/projects/doctrine-phpcr-odm/en/2.0/metas.php b/projects/doctrine-phpcr-odm/en/2.0/metas.php index 84a6e0f54ee6..6765f42fc6cf 100644 Binary files a/projects/doctrine-phpcr-odm/en/2.0/metas.php and b/projects/doctrine-phpcr-odm/en/2.0/metas.php differ diff --git a/projects/doctrine-phpcr-odm/en/latest/metas.php b/projects/doctrine-phpcr-odm/en/latest/metas.php index e1cd03fb4e78..089962e859b3 100644 Binary files a/projects/doctrine-phpcr-odm/en/latest/metas.php and b/projects/doctrine-phpcr-odm/en/latest/metas.php differ diff --git a/projects/doctrine-reflection/en/1.0/metas.php b/projects/doctrine-reflection/en/1.0/metas.php index 9731a5361ab3..b9d76bf2e1e1 100644 Binary files a/projects/doctrine-reflection/en/1.0/metas.php and b/projects/doctrine-reflection/en/1.0/metas.php differ diff --git a/projects/doctrine-reflection/en/1.1/metas.php b/projects/doctrine-reflection/en/1.1/metas.php index 9731a5361ab3..b9d76bf2e1e1 100644 Binary files a/projects/doctrine-reflection/en/1.1/metas.php and b/projects/doctrine-reflection/en/1.1/metas.php differ diff --git a/projects/doctrine-reflection/en/1.2/metas.php b/projects/doctrine-reflection/en/1.2/metas.php index 9731a5361ab3..b9d76bf2e1e1 100644 Binary files a/projects/doctrine-reflection/en/1.2/metas.php and b/projects/doctrine-reflection/en/1.2/metas.php differ diff --git a/projects/doctrine-rst-parser/en/0.0/metas.php b/projects/doctrine-rst-parser/en/0.0/metas.php index 530f7f1af830..539f84434497 100644 Binary files a/projects/doctrine-rst-parser/en/0.0/metas.php and b/projects/doctrine-rst-parser/en/0.0/metas.php differ diff --git a/projects/doctrine-rst-parser/en/0.1/metas.php b/projects/doctrine-rst-parser/en/0.1/metas.php index 530f7f1af830..539f84434497 100644 Binary files a/projects/doctrine-rst-parser/en/0.1/metas.php and b/projects/doctrine-rst-parser/en/0.1/metas.php differ diff --git a/projects/doctrine-rst-parser/en/0.2/metas.php b/projects/doctrine-rst-parser/en/0.2/metas.php index 530f7f1af830..539f84434497 100644 Binary files a/projects/doctrine-rst-parser/en/0.2/metas.php and b/projects/doctrine-rst-parser/en/0.2/metas.php differ diff --git a/projects/doctrine-rst-parser/en/0.3/metas.php b/projects/doctrine-rst-parser/en/0.3/metas.php index b2bb0a6aa46d..842157cd452f 100644 Binary files a/projects/doctrine-rst-parser/en/0.3/metas.php and b/projects/doctrine-rst-parser/en/0.3/metas.php differ diff --git a/projects/doctrine-rst-parser/en/0.4/metas.php b/projects/doctrine-rst-parser/en/0.4/metas.php index b2bb0a6aa46d..f4f656b36e46 100644 Binary files a/projects/doctrine-rst-parser/en/0.4/metas.php and b/projects/doctrine-rst-parser/en/0.4/metas.php differ diff --git a/projects/doctrine-rst-parser/en/0.5/metas.php b/projects/doctrine-rst-parser/en/0.5/metas.php index 2d391c20a30e..f996459649e7 100644 Binary files a/projects/doctrine-rst-parser/en/0.5/metas.php and b/projects/doctrine-rst-parser/en/0.5/metas.php differ diff --git a/projects/doctrine-rst-parser/en/0.6/metas.php b/projects/doctrine-rst-parser/en/0.6/metas.php index 43b3e08681ea..88c69e168fc6 100644 Binary files a/projects/doctrine-rst-parser/en/0.6/metas.php and b/projects/doctrine-rst-parser/en/0.6/metas.php differ diff --git a/projects/doctrine-rst-parser/en/latest/metas.php b/projects/doctrine-rst-parser/en/latest/metas.php index b2bb0a6aa46d..f4f656b36e46 100644 Binary files a/projects/doctrine-rst-parser/en/latest/metas.php and b/projects/doctrine-rst-parser/en/latest/metas.php differ diff --git a/projects/doctrine-skeleton-mapper/en/0.0/metas.php b/projects/doctrine-skeleton-mapper/en/0.0/metas.php index 31c87c4d622f..9cc111d1f78e 100644 Binary files a/projects/doctrine-skeleton-mapper/en/0.0/metas.php and b/projects/doctrine-skeleton-mapper/en/0.0/metas.php differ diff --git a/projects/doctrine-skeleton-mapper/en/1.0/metas.php b/projects/doctrine-skeleton-mapper/en/1.0/metas.php index 31c87c4d622f..f9350fc00084 100644 Binary files a/projects/doctrine-skeleton-mapper/en/1.0/metas.php and b/projects/doctrine-skeleton-mapper/en/1.0/metas.php differ diff --git a/projects/doctrine-skeleton-mapper/en/2.0/metas.php b/projects/doctrine-skeleton-mapper/en/2.0/metas.php index 31c87c4d622f..f9350fc00084 100644 Binary files a/projects/doctrine-skeleton-mapper/en/2.0/metas.php and b/projects/doctrine-skeleton-mapper/en/2.0/metas.php differ diff --git a/projects/doctrine1/en/latest/metas.php b/projects/doctrine1/en/latest/metas.php index bdbb94286989..b98878795cd3 100644 Binary files a/projects/doctrine1/en/latest/metas.php and b/projects/doctrine1/en/latest/metas.php differ diff --git a/projects/doctrine1/ja/latest/metas.php b/projects/doctrine1/ja/latest/metas.php index 7bbc7b7b4e22..fa2ce526925f 100644 Binary files a/projects/doctrine1/ja/latest/metas.php and b/projects/doctrine1/ja/latest/metas.php differ diff --git a/projects/event-manager.html b/projects/event-manager.html index 258d12466883..4a51372b6ba3 100644 --- a/projects/event-manager.html +++ b/projects/event-manager.html @@ -308,15 +308,15 @@

Statistics

Total Downloads - 301,989,932 + 302,135,033 Monthly Downloads - 6,664,267 + 6,686,515 Daily Downloads - 371,464 + 292,328 diff --git a/projects/inflector.html b/projects/inflector.html index b4e1c54c7e69..2bc11f7f6838 100644 --- a/projects/inflector.html +++ b/projects/inflector.html @@ -330,7 +330,7 @@

Statistics

Dependents - 748 + 747 Suggesters @@ -338,15 +338,15 @@

Statistics

Total Downloads - 550,857,077 + 551,307,900 Monthly Downloads - 9,350,613 + 9,615,094 Daily Downloads - 468,504 + 453,760 diff --git a/projects/instantiator.html b/projects/instantiator.html index a3edf4992dcf..dd54abbba724 100644 --- a/projects/instantiator.html +++ b/projects/instantiator.html @@ -340,15 +340,15 @@

Statistics

Total Downloads - 606,228,958 + 606,645,800 Monthly Downloads - 8,109,501 + 8,366,312 Daily Downloads - 378,806 + 348,094 diff --git a/projects/lexer.html b/projects/lexer.html index c66d1a8124c0..9ad89ceac6b3 100644 --- a/projects/lexer.html +++ b/projects/lexer.html @@ -333,7 +333,7 @@

Statistics

Dependents - 88 + 89 Suggesters @@ -341,15 +341,15 @@

Statistics

Total Downloads - 576,737,215 + 577,238,951 Monthly Downloads - 10,053,119 + 10,086,489 Daily Downloads - 520,783 + 476,775 diff --git a/projects/migrations.html b/projects/migrations.html index fa773e58c68a..c8ddc0084869 100644 --- a/projects/migrations.html +++ b/projects/migrations.html @@ -491,7 +491,7 @@

Statistics

Dependents - 449 + 451 Suggesters @@ -499,15 +499,15 @@

Statistics

Total Downloads - 127,671,075 + 127,898,149 Monthly Downloads - 2,176,487 + 2,320,128 Daily Downloads - 104,798 + 118,435 diff --git a/projects/mongodb-odm.html b/projects/mongodb-odm.html index bed2fcddcb9c..82d9edacb243 100644 --- a/projects/mongodb-odm.html +++ b/projects/mongodb-odm.html @@ -373,7 +373,7 @@

Statistics

GitHub Open Issues - 102 + 101 Dependents @@ -385,15 +385,15 @@

Statistics

Total Downloads - 14,621,105 + 14,635,524 Monthly Downloads - 246,565 + 255,793 Daily Downloads - 10,956 + 11,576 diff --git a/projects/orm.html b/projects/orm.html index 79219e299ef5..c7db17b7f9ff 100644 --- a/projects/orm.html +++ b/projects/orm.html @@ -480,15 +480,15 @@

Statistics

Total Downloads - 185,700,998 + 185,849,715 Monthly Downloads - 2,997,081 + 3,096,423 Daily Downloads - 168,100 + 162,757 diff --git a/projects/persistence.html b/projects/persistence.html index a71f095ddb68..5baa2acc8e73 100644 --- a/projects/persistence.html +++ b/projects/persistence.html @@ -429,15 +429,15 @@

Statistics

Total Downloads - 164,559,577 + 164,662,169 Monthly Downloads - 3,508,137 + 3,554,899 Daily Downloads - 183,232 + 151,493 diff --git a/projects/phpcr-odm.html b/projects/phpcr-odm.html index 04cf1300c5dc..364350b125b7 100644 --- a/projects/phpcr-odm.html +++ b/projects/phpcr-odm.html @@ -389,15 +389,15 @@

Statistics

Total Downloads - 1,272,089 + 1,272,313 Monthly Downloads - 5,254 + 5,461 Daily Downloads - 126 + 191 diff --git a/projects/reflection.html b/projects/reflection.html index 705f3643e8ba..344a6aea5cf3 100644 --- a/projects/reflection.html +++ b/projects/reflection.html @@ -307,15 +307,15 @@

Statistics

Total Downloads - 92,796,502 + 92,803,989 Monthly Downloads - 751,497 + 758,984 Daily Downloads - 39,173 + 33,676 diff --git a/projects/rst-parser.html b/projects/rst-parser.html index 56bc66009def..a4f4a9b6543f 100644 --- a/projects/rst-parser.html +++ b/projects/rst-parser.html @@ -363,15 +363,15 @@

Statistics

Total Downloads - 136,844 + 136,949 Monthly Downloads - 2,945 + 2,909 Daily Downloads - 195 + 106 diff --git a/projects/skeleton-mapper.html b/projects/skeleton-mapper.html index f3812736fa2f..6251faab8dfd 100644 --- a/projects/skeleton-mapper.html +++ b/projects/skeleton-mapper.html @@ -305,7 +305,7 @@

Statistics

Daily Downloads - 3 + 1 diff --git a/sitemap.xml b/sitemap.xml index c001de3a3335..2a2134b10734 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,31375 +2,31375 @@ https://www.doctrine-project.org/2007/10/09/new-website.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2007/10/14/new-coverage-report.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2007/11/02/beta-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2007/12/03/beta2_released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2007/12/04/url_changes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2007/12/08/new_design.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/01/05/project_status.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/01/16/cleaning_up_the_mess.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/01/25/a-few-updates-for-2008.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/01/29/using-doctrine-with-codeigniter.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/02/14/doctrine-all-grown-up.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/02/16/doctrine-0-9-1-0-10-1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/02/18/doctrine-orm-sandbox.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/03/01/0-10-2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/03/02/my-first-project-doctrine-tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/03/04/doctrine-cheat-sheet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/03/16/4-000th-svn-commit-revision.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/03/18/0-10-3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/03/28/0-10-4-released-46-closed-tickets.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/03/29/using-doctrine-zend-framework.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/04/01/doctrine-goes-pecl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/04/05/doctrine-frequently-asked-questions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/04/21/0-11-0-release-candidate-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/04/30/0-11-0-release-candidate-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/04/30/wow-1000-tickets.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/05/03/website-upgraded-to-symfony-1-1-and-doctrine-0-11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/05/11/road-to-doctrine-1-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/05/31/0-11-0-rc3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/06/11/one-more-0-11-release-candidate.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/06/13/php-net-style-api-documentation-lookups.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/06/16/getting-started-with-doctrine-and-symfony-1-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/06/21/doctrine-in-your-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/06/23/introducing-the-doctrine-cookbook.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/06/24/0-11-0-stable-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/06/29/1000th-ticket-closed.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/01/introducing-the-doctrine-forum.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/02/doctrine-1-0-and-symfony-1-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/12/doctrine-0-11-1-and-1-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/20/doctrine-gets-its-first-employee.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/21/plug-and-play-schema-information-with-templates.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/24/taking-advantage-of-column-aggregation-inheritance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/25/who-is-behind-doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/07/26/doctrine-growth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/08/05/doctrine-1-0-beta1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/08/06/master-and-slave-connections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/08/08/creating-a-unit-of-work-using-doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/08/25/pre-1-0-updates-and-1-0-0-rc1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/08/27/moving-quickly.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/08/27/release-candidate-2-available.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/09/01/doctrine-1-0-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/09/05/doctrine-at-symfony-camp2008.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/09/09/doctrine-1-0-1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/09/11/doctrine-1-0-2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/09/18/doctrine-and-symfony-frameworks-collaborating.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/09/23/doctrine-at-latino-ware-2008.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/09/30/get-expert-training.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/10/02/doctrine-1-1-development-begins.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/10/02/first-symfony-1-1-workshop-in-atlanta-usa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/10/12/new-hydration-modes-for-doctrine-1-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/10/13/doctrine-1-0-3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/10/18/new-to-migrations-in-1-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/10/19/the-bleeding-edge-website-upgraded.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/10/26/symfony-doctrine-schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/11/25/doctrine-1-0-4-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/12/03/first-1-1-alpha-version-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2008/12/11/double-dose-of-doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/05/doctrine-1-0-6-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/06/2nd-1-1-beta-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/12/doctrine-1-1-is-right-around-the-corner.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/15/documentation-updates.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/23/introducing-doctrine-orm-for-php.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/26/php-5-3-and-doctrine-2-0-teaser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/28/cookbook-recipe-relation-dql-behavior.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/01/30/new-documentation-pdf-downloads.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/02/03/doctrine-1-0-7-is-available.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/02/04/using-behaviors-to-share-relationship-properties.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/03/02/doctrine-1-0-8-and-1-1-0-rc2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/03/03/doctrine-1-1-documentation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/03/12/get-trained-by-doctrine-experts.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/03/16/doctrine-1-1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/05/11/doctrine-1-0-9-and-1-1-1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/05/22/glimpse-of-doctrine-2-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/05/27/want-to-contribute-to-doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/05/28/doctrine-database-abstraction-layer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/05/29/doctrine-lazy-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/05/doctrine-statistics.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/13/doctrine-visiting-conferences-around-the-world.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/15/doctrine-1-0-10-and-1-1-2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/15/sensio-labs-training-sessions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/16/doctrine-changing-homes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/17/special-price-offer-symfony-1-2-doctrine-training-workshop.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/19/cross-database-joins.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/19/using-views-with-doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/21/doctrine-future-roadmap.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/21/website-updates.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/24/thank-you-servergrove.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/26/what-s-new-in-doctrine-1-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/28/introducing-the-google-i18n-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/06/30/doctrine-orm-for-php-available-in-print.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/07/04/major-site-enhancements.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/07/27/doctrine-1-0-11-and-1-1-3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/08/04/help-write-tests-for-new-dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/08/07/doctrine2-batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/08/15/doctrine2-native-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/08/22/transactions-and-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/08/24/doctrine-2-0-quality-assurance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/09/01/doctrine2-preview-release.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/09/14/moving-to-jira.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/09/18/doctrine-1-2-0-alpha-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/09/25/doctrine-1-0-12-and-1-1-4-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/10/02/doctrine-fedora-package.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/10/05/second-alpha-release-of-doctrine-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/10/06/doctrine-1-2-nearing-stable-release.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/10/07/doctrine-2-documentation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/10/21/doctrine-1-2-alpha3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/03/a-doctrine-triple-play.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/04/doctrine-1-2-documentation-available.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/10/doctrine-1-2-0-beta2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/11/doctrine-2-0-0-alpha3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/16/doctrine-1-2-0-beta3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/18/php-benchmarking-mythbusters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/23/doctrine-1-2-0-rc1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/23/new-doctrine-core-team-member.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/11/30/doctrine-1-2-0-stable-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/12/01/more-doctrine-releases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2009/12/07/doctrine-1-2-1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/01/22/doctrine-2-0-0-alpha4-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/02/11/database-support-doctrine2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/02/17/doctrine2-behaviours-nutshell.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/02/18/symfony-live-2010.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/02/24/doctrine2-versionable.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/01/introduction-to-doctrine-2-webinar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/13/doctrine2-validations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/15/doctrine-2-at-confoo-2010.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/15/what-to-expect-from-doctrine-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/17/doctrine-performance-revisited.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/21/doctrine-2-give-me-my-constructor-back.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/29/doctrine-1-2-2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/03/29/doctrine2-custom-dql-udfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/04/20/orm-is-not-a-choice.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/04/27/doctrine-2-0-0-beta1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/05/12/a-few-website-changes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/05/13/doctrine-mongodb-object-document-mapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/05/13/the-switch-to-git.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/05/27/bringing-it-all-together.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/06/09/doctrine-mongodb-odm-1-0-0alpha1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/06/15/doctrine2-beta2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/07/implementing-aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/12/doctrine2-large-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/19/your-own-orm-doctrine2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/20/mixing-types-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/21/mongodb-odm-query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/22/mongodb-for-ecommerce.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/27/dbal2-beta3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/27/document-oriented-databases-vs-relational-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/07/30/doctrine-mongodb-odm-1-0-0alpha2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/08/06/doctrine2-orm-beta3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/08/07/dc2-experimental-associations-id-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/08/10/mongodb-odm-atomic-operator-improvements.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/08/18/mongodb-odm-1-0-0beta1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/08/24/doctrine-orm-version-1-2-3-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/09/01/birthday-release-party.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/11/18/common-rc2-dbal-rc2-release.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/11/18/doctrine2-behavioral-extensions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/12/04/doctrine2-rc1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/12/12/doctrine2-orm-rc2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2010/12/21/doctrine2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/01/13/roadmap-doctrine2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/01/30/doctrine-maintenance-jan2011.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/02/19/doctrine-mongodb-odm-beta2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/03/05/doctrine-maintenance-mar05.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/03/06/doctrine-oxm-intro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/03/20/doctrine-security-fix.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/04/07/doctrine2-april-2011-maintenance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/05/14/doctrine-maintenance-may11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/05/16/doctrine-2-1-beta-release.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/06/17/doctrine-2-0-6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/06/18/doctrine-2-1-rc1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/06/28/doctrine-2-1-rc2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/07/02/doctrine-2-1-rc3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/07/04/doctrine-2-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/08/17/doctrine-2-0-7-and-eol.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/08/26/doctrine2-1-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/08/29/dbal-security-2011-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/09/25/doctrine-maintenance-sep2011.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/11/21/a-doctrine-orm-odm-base-class.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/11/21/doctrine-maintenance-nov2011.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/11/23/doctrine-orm-2-1-4-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/12/15/symfony-bundles-move.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/12/19/doctrine-2-1-5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2011/12/20/doctrine2-2-beta.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/01/03/doctrine2-2-beta2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/01/22/dbal-orm-22rc1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/01/29/doctrine-2-2-final.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/01/30/doctrine-2-1-6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/03/04/doctrine-2-2-1-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/03/07/new-doctrine-website.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/04/13/doctrine-2-2-2-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/05/28/doctrine-2-1-7-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/05/29/symfony-live-2012-hackday.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/07/16/doctrine-2-3-beta.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/08/29/doctrine-2-3-rc2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/09/05/doctrine-2-3-rc3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/09/17/doctrine-2-3-rc4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/09/20/doctrine-2-3-final.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/12/05/doctrine-2-3-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2012/12/28/doctrine-orientdb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/01/08/doctrine-2-3-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/03/24/doctrine-2-3-3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/03/24/doctrine-2-4-beta.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/05/11/doctrine-2-3-4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/05/11/doctrine-2-4-beta2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/09/11/doctrine-2-4-released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/09/25/phpcr-odm-qbv2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/11/12/doctrine-2-4-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2013/12/23/our-hhvm-roadmap.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/01/01/dbal-242-252beta1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/02/08/orm-235-234.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/02/21/doctrine_2_5_beta3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/02/21/security_in_doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/09/11/instantiator-1-0-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/09/11/orm-244.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/09/12/dbal-250rc2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/09/15/dbal-235.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/09/23/orm-245.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/10/06/orm-246.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/10/16/dbal-243.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/12/04/doctrine_dbal_2_5_release.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/12/16/orm-247.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/12/18/annotations-122.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/12/20/annotations-123.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2014/12/20/inflector-101.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/01/12/dbal-244-251.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/01/15/cache-1-4-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/01/25/orm-2-5-0-alpha-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/03/18/orm-2-5-0-beta-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/03/22/data-fixtures-1-0-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/03/22/migrations-1-0-0-alpha-3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/03/25/common-2-5-0-beta-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/03/25/orm-2-5-0-rc-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/03/31/doctrine-mongo-odm-module-release-0-8-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/03/31/orm-2-5-0-rc-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/04/01/indoctrinator-0-0-1-alpha-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/04/02/common-2-5-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/04/02/orm-2-5-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/04/14/annotations-1-2-4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/04/14/collections-1-3-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/04/15/cache-1-4-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/04/16/doctrine-module-release-0-8-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/05/05/doctrine-orm-module-release-0-9-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/05/22/doctrine-mongodb-odm-release-1-0-0-beta13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/08/18/doctrine-mongodb-odm-release-1-0-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/08/31/doctrine_orm_2_5_1_and_2_4_8_released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/08/31/security_misconfiguration_vulnerability_in_various_doctrine_projects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/09/16/doctrine_dbal_2_5_2_released.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/10/28/cache-1-4-3_and-1-5-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/11/02/cache-1-4-4_and-1-5-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/11/03/doctrine-mongodb-odm-release-1-0-3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/11/06/doctrine-inflector-1-1-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/11/23/orm-2-5-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/02/doctrine-module-0-10-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/03/cache-1-5-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/04/common-2-5-2-and-2-6-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/08/jira-issues-migration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/15/doctrine-mongodb-odm-release-1.0.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/25/common-2-5-3-and-2-6-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/25/dbal-2-5-3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/25/orm-2-5-3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2015/12/31/cache-1-6-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/01/05/dbal-2-5-4-and-2-4-5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/01/05/orm-2-5-4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/02/02/doctrine_module_1_0_0_stable_release.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/02/16/doctrine-mongodb-odm-release-1.0.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/06/09/odm-1-1-0-and-1-0-6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/06/19/data-fixtures-1-2-0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/07/27/doctrine-mongodb-odm-release-1.1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/09/09/dbal-2-5-5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/09/10/orm-2-5-5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/10/07/doctrine-mongodb-odm-release-1.1.2-and-1.0.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2016/11/22/doctrine-mongodb-release-1.4.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2017/07/25/php-7.1-requirement-and-composer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2017/10/24/odm-1-2-0-and-1-1-7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2017/12/21/orm-2-6-0-and-next.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2018/04/06/new-website.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2018/07/12/common-2-9-and-dbal-2-8-and-orm-2-6-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2019/01/09/migrations-2-0-stable.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2019/05/21/monetizing-open-source.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2019/05/30/doctrine-webinars.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2019/09/30/mongodb-odm-1.3.0-and-2.0.0-RC2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2020/04/10/doctrine-migrations-3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2020/11/17/dbal-3.0.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2021/03/29/dbal-2.13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2021/04/19/dbal-2.13.1-3.1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2021/05/24/orm2.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2021/11/11/dbal3-vulnerability-fixed.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2021/11/26/dbal-3.2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2021/12/04/mongodb-odm-2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2022/01/11/orm-2.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2022/01/22/sunsetting-dbal-2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2022/03/24/opencollective.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2022/08/06/dbal-3.4.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2022/11/04/annotations-to-attributes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2023/08/21/doctrine-orm-team-meetup.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/2023/10/11/orm3-beta1-dbal4-rc1-future-plans.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/404.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/atom.xml - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/blog/archive.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/blog/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/community/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/contribute/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/contribute/maintainer/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/contribute/website/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/favicon.ico - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-114x114.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-120x120.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-144x144.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-152x152.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-57x57.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-60x60.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-72x72.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/apple-touch-icon-76x76.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/default-branch.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/favicon-128.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/favicon-16x16.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/favicon-196x196.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/favicon-32x32.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/favicon-96x96.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/favicon.ico - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/jwage.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/laminas-foundation-logo.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/marco.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/mstile-144x144.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/mstile-150x150.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/mstile-310x150.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/mstile-310x310.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/mstile-70x70.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/og.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/partners/beachcasts.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/partners/blackfire.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/partners/stickermule.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/partners/symfonycasts.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/partners/tideways.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/posts/doctrine-migrations-3.0/complex-cycle-v2.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/posts/doctrine-migrations-3.0/complex-cycle-v3.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/search-by-algolia.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/symfony-logo.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/tidelift-icon.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/images/tidelift-logo.png - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/js/index.js - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/js/main.js - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/js/search.js - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/js/sidebar.js - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/logos/doctrine-logo-black-text.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/logos/doctrine-logo-outline-orange-text.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/logos/doctrine-logo.svg - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/partners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/partners/beachcasts.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/partners/blackfire.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/partners/stickermule.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/partners/symfony-casts.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/partners/tideways.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/policies/deprecation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/policies/releases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/policies/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.12.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.14.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/1.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/annotations/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.12.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/1.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/cache/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/10.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/11.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/11.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/12.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/4.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/5.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/6.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/7.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/8.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/8.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/8.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/coding-standard/9.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/1.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/collections/stable.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.12.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/2.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/3.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/common/3.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/couchdb-client.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/couchdb-client/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/couchdb-client/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/couchdb-client/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/couchdb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/couchdb-odm/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/couchdb-odm/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/1.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/data-fixtures/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.12.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/2.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/3.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/dbal/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.10/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.10/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.10/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.10/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.10/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.11/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.11/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.11/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.11/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.11/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.12/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.12/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.12/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.12/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.12/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.13/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.13/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.13/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.13/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.13/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.14/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.14/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.14/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.14/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.14/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.6/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.6/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.6/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.7/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.7/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.7/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.8/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.8/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.8/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.9/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.9/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.9/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.9/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/1.9/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/2.0/annotations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/2.0/custom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-annotations/en/2.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.12.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/1.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/2.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.1/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.10/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.10/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.10/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.10/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.10/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.11/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.11/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.11/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.11/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.11/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.12/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.12/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.12/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.12/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.12/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.2/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.2/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.3/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.3/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.3/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.4/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.4/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.4/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.5/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.5/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.5/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.6/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.6/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.6/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.7/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.7/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.7/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.8/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.8/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.8/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.9/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.9/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.9/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.9/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/1.9/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.0/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.0/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.0/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.1/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.1/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/event-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.10/middlewares.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/event-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.11/middlewares.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.2/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.2/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.2/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.3/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.3/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.3/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.3/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.4/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.4/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.4/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.4/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.5/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.5/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.5/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.5/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.6/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.6/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.6/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.6/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.7/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.7/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.7/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.7/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.8/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.8/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.8/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.8/event-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.8/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/event-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/2.9/middlewares.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/custom-id-generators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/entity-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/event-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/en/latest/middlewares.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-bundle/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/acl_cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/custom_providers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/service_parameter.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.3/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/acl_cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/custom_providers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/service_parameter.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache-bundle/en/1.4/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.10/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.10/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.11/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.11/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.12/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.12/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.13/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.13/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.9/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/1.9/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/2.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-cache/en/2.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/10.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/10.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/10.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/10.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/10.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.1/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.1/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/11.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/12.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/12.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/12.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/12.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/12.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/5.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/5.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/5.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/5.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/5.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/6.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/6.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/6.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/6.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/6.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/7.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/7.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/7.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/7.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/7.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.1/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.1/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.2/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.2/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/8.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/9.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/9.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/9.0/reference/customizing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/9.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-coding-standard/en/9.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.6/derived-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.6/expression-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.6/expressions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.6/lazy-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.6/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.7/derived-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.7/expression-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.7/expressions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.7/lazy-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.7/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.8/derived-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.8/expression-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.8/expressions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.8/lazy-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/1.8/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/derived-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/expression-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/expressions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/lazy-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/serialization.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/2.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/derived-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/expression-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/expressions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/lazy-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/serialization.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/derived-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/expression-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/expressions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/lazy-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/serialization.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-collections/en/stable/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.10/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.10/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.10/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.11/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.11/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.11/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.12/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.12/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.12/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.13/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.13/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.13/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.9/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.9/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/2.9/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.0/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.1/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.2/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.3/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-common/en/3.4/reference/class-loading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-client/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-client/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/attachments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/lucene-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/map-reduce-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-couchdb-odm/en/latest/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.5/explanation/transactions-and-purging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.5/how-to/fixture-ordering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.5/how-to/loading-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.5/how-to/sharing-objects-between-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.6/explanation/transactions-and-purging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.6/how-to/fixture-ordering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.6/how-to/loading-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.6/how-to/sharing-objects-between-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.6/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.7/explanation/transactions-and-purging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.7/how-to/fixture-ordering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.7/how-to/loading-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.7/how-to/sharing-objects-between-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/1.7/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/latest/explanation/transactions-and-purging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/latest/how-to/fixture-ordering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/latest/how-to/loading-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/latest/how-to/sharing-objects-between-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-data-fixtures/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.11/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.12/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.13/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.4/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.5/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.6/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/sharding_azure_tutorial.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/explanation/dc2type-comments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/reference/upgrading.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/explanation/dc2type-comments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/cli-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/explanation/dc2type-comments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/cli-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/explanation/dc2type-comments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/cli-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/explanation/dc2type-comments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/cli-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.6/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/explanation/dc2type-comments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/cli-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.7/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/explanation/dc2type-comments.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/cli-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/3.8/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/explanation/implicit-indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/how-to/postgresql-identity-migration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/cli-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/known-vendor-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/platforms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/portability.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/schema-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/schema-representation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/supporting-other-databases.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.1/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.2/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/1.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/latest/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-event-manager/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/1.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/1.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-inflector/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/1.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-instantiator/en/2.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/3.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/3.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/3.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/basic-usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/by-value-by-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/collections-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/laminas-form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/performance-considerations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/2.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/basic-usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/by-value-by-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/collections-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/laminas-form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/performance-considerations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/basic-usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/by-value-by-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/collections-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/enum-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/laminas-form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/performance-considerations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/basic-usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/by-value-by-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/collections-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/enum-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/laminas-form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/performance-considerations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/basic-usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/by-value-by-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/collections-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/enum-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/laminas-form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/performance-considerations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/basic-usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/by-value-by-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/collections-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/enum-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/laminas-form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/performance-considerations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/basic-usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/by-value-by-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/collections-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/enum-strategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/laminas-form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/performance-considerations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-laminas-hydrator/en/3.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.0/dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.0/simple-parser-example.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.1/dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.1/simple-parser-example.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.2/dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.2/simple-parser-example.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.3/dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/1.3/simple-parser-example.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.0/dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.0/simple-parser-example.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.1/dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/2.1/simple-parser-example.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/latest/dql-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-lexer/en/latest/simple-parser-example.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/3.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/2.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/2.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations-bundle/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/building_framework_specific_integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/custom_configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/generating_migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/input_output_customization.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/managing_migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/migration_classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/reference/version_numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.7/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/building_framework_specific_integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/custom_configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/generating_migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/input_output_customization.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/managing_migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/migration_classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/reference/version_numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/1.8/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/2.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/explanation/implicit-commits.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/explanation/implicit-commits.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/explanation/implicit-commits.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/explanation/implicit-commits.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/explanation/implicit-commits.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.6/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/explanation/implicit-commits.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.7/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/explanation/implicit-commits.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/custom-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/custom-integration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/generating-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/integrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/managing-migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/migration-classes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/reference/version-numbers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-migrations/en/3.8/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/4.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/4.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/4.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/4.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/4.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/5.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/5.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/5.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/5.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/6.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/6.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/6.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.1/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.2/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.3/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/4.4/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.0/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.1/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.2/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/5.3/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.0/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.1/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/authentication.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/cli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/form-element.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/paginator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-module/en/6.2/validator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/4.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/4.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/4.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/4.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/5.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/5.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/5.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.0/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.0/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.0/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.1/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.1/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.1/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.2/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.2/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/3.2/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.0/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.0/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.0/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.1/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.1/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.1/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.2/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.2/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.2/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.3/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.3/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/4.3/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.0/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.0/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.0/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.1/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.1/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.1/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.2/development.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.2/usage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongo-odm-module/en/5.2/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/3.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/3.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/3.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/3.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/4.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/4.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/4.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/4.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/4.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/4.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/4.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/5.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/config.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/console.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/cookbook/registration_form.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/first_steps.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/form_validation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/messenger.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/en/5.0/security_bundle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-bundle/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/collection-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/eager-cursors.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/logging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/map-reduce.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/slave-okay-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/storing-files-with-mongogridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/reference/yml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.0/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/eager-cursors.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/logging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/map-reduce.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/slave-okay-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/storing-files-with-mongogridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/reference/yml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.1/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/eager-cursors.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/logging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/map-reduce.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/slave-okay-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/storing-files-with-mongogridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/reference/yml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.2/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/eager-cursors.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/logging.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/map-reduce.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/slave-okay-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/storing-files-with-mongogridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/reference/yml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/1.3/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/storing-files-with-gridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/storing-files-with-gridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.1/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/storing-files-with-gridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.2/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/storing-files-with-gridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.3/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/storing-files-with-gridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.4/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/storing-files-with-gridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.5/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/blending-orm-and-mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/implementing-array-access-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/mapping-classes-to-orm-and-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/resolve-target-document-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/simple-search-engine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/soft-delete-extension.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/cookbook/validation-of-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/aggregation-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/aggregation-stage-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/bidirectional-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/capped-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/complex-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/console-commands.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/custom-collections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/document-repositories.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/embedded-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/find-and-update.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/geospatial-queries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/indexes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/migrating-schemas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/priming-references.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/reference-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/sharding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/storage-strategies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/storing-files-with-gridfs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/trees.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/upserting-documents.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orientdb-odm/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orientdb-odm/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/4.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/4.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/4.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/5.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/5.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/5.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/5.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/6.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/6.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/2.1/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/2.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/2.1/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/2.1/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/2.1/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.0/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.0/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.0/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.0/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.0/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.1/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.1/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.1/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.1/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.2/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.2/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.2/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.2/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/3.2/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.0/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.1/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/forms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/4.2/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/forms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.0/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/forms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.1/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/forms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.2/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/forms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/5.3/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/forms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.0/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/developer-tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/forms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/miscellaneous.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm-module/en/6.1/user-guide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/accessing-private-properties-of-the-same-class-from-different-instance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/accessing-private-properties-of-the-same-class-from-different-instance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.12/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/accessing-private-properties-of-the-same-class-from-different-instance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.13/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/typedfieldmapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/typedfieldmapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/typedfieldmapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.16/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/typedfieldmapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.17/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/typedfieldmapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.18/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/integrating-with-codeigniter.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.4/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/changelog/migration_2_5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/integrating-with-codeigniter.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.8/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/implementing-the-notify-changetracking-policy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/implementing-wakeup-or-clone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/annotations-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/partial-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/yaml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/advanced-field-value-conversion-using-custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/aggregate-fields.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/custom-mapping-types.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/decorator-pattern.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/dql-custom-walkers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/dql-user-defined-functions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/entities-in-session.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/implementing-arrayaccess-for-domain-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/mysql-enums.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/resolve-target-entity-listener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/sql-table-prefixes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/strategy-cookbook-introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/validation-of-entities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/working-with-datetime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/advanced-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/attributes-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/batch-processing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/best-practices.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/change-tracking-policies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/faq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/filters.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/installation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/limitations-and-known-issues.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/metadata-drivers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/namingstrategy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/php-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/second-level-cache.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/security.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/transactions-and-concurrency.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/typedfieldmapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/unitofwork-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/unitofwork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/embeddables.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/extra-lazy-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/getting-started-database.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/getting-started-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/ordered-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/override-field-association-mappings-in-subclasses.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/pagination.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/working-with-indexed-associations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.1/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.1/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.2/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.2/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.3/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.3/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.4/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.4/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/1.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.0/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.1/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.1/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.2/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.2/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.3/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.3/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.4/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.4/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.5/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.5/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/2.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.0/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.1/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.1/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.2/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.2/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/3.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/latest/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/latest/reference/object-change-tracking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-persistence/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/cookbook/custom_documentclass_mapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/cookbook/last-modified.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/cookbook/refactoring-multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/annotations-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/fetch-depth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/installation-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/phpcr-access.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/query-builder-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/query.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/versioning.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.7/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/cookbook/custom_documentclass_mapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/cookbook/last-modified.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/cookbook/refactoring-multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/annotations-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/attributes-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/fetch-depth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/installation-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/phpcr-access.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/query-builder-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/query.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/versioning.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.8/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/cookbook/custom_documentclass_mapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/cookbook/last-modified.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/cookbook/refactoring-multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/annotations-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/attributes-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/fetch-depth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/installation-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/phpcr-access.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/query-builder-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/query.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/versioning.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/1.x/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/cookbook/custom_documentclass_mapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/cookbook/last-modified.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/cookbook/refactoring-multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/attributes-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/fetch-depth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/installation-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/phpcr-access.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/query-builder-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/query.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/versioning.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/2.0/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/cookbook/custom_documentclass_mapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/cookbook/last-modified.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/cookbook/refactoring-multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/architecture.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/association-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/attributes-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/basic-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/fetch-depth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/inheritance-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/installation-configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/multilang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/phpcr-access.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder-reference.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/tools.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/versioning.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/working-with-objects.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/xml-mapping.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.0/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.1/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.2/reference/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-reflection/en/1.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.0/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.1/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.2/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.3/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.4/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.5/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/custom-text-roles.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/0.6/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/attribution.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/builder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/custom-directives.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/customizing-rendering.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/events.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/formats.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/sidebar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-rst-parser/en/latest/themes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-skeleton-mapper/en/0.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-skeleton-mapper/en/0.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-skeleton-mapper/en/1.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-skeleton-mapper/en/1.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-skeleton-mapper/en/2.0/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine-skeleton-mapper/en/2.0/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/code-igniter-and-doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/creating-a-unit-of-work-using-doctrine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/master-and-slave-connections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/my-first-project.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/plug-and-play-schema-information-with-templates.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/record-based-retrieval-security-template.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/cookbook/taking-advantage-of-column-aggregation-inheritance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/about-author.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/about-sensio.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/acknowledgements.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/behaviors.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/coding-standards.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/component-overview.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/connections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/data-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/data-hydrators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/data-validation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/database-abstraction-layer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/defining-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/event-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/exceptions-and-warnings.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/extensions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/hierarchical-data.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/imprint.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/inheritance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/introduction-to-connections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/introduction-to-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/license.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/real-world-examples.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/searching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/technology.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/unit-testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/utilities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/working-with-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/yaml-schema-files.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/en/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/about-author.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/about-sensio.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/acknowledgements.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/behaviors.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/caching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/coding-standards.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/component-overview.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/configuration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/connections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/data-fixtures.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/data-hydrators.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/data-validation.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/database-abstraction-layer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/defining-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/dql-doctrine-query-language.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/event-listeners.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/exceptions-and-warnings.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/extensions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/getting-started.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/hierarchical-data.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/improving-performance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/index.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/inheritance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/introduction-to-connections.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/introduction-to-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/introduction.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/license.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/native-sql.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/real-world-examples.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/searching.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/technology.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/transactions.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/unit-testing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/utilities.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/working-with-models.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/manual/yaml-schema-files.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/ja/latest/metas.php - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/doctrine1/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/event-manager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/event-manager/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/event-manager/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/event-manager/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/event-manager/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/inflector/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/instantiator/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/lexer/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/1.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/migrations/3.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/2.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/2.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/mongodb-odm/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orientdb-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orientdb-odm/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orientdb-odm/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.11.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.12.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.14.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.15.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.16.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.17.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.18.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/2.9.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/orm/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/2.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/2.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/2.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/2.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/2.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/3.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/3.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/3.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/persistence/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/1.x.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/phpcr-odm/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/reflection.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/reflection/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/reflection/1.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/reflection/1.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/0.6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/rst-parser/latest.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/skeleton-mapper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/skeleton-mapper/0.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/skeleton-mapper/1.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/projects/skeleton-mapper/2.0.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/robots.txt - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/rst-examples.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/schemas/odm/doctrine-phpcr-mapping.xsd - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/sitemap.xml - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/sponsorship.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/styleguide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/styles/_carbonads.scss - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/styles/_railscasts.scss - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/styles/index.scss - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/0x616469.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/77web.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/7ochem.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/94noni.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/a-menshchikov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aaa2000.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aabdou.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aar0nr.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/abacaphiliac.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/abdounikarim.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Abhishek-17.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/acoulton.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/acrobat.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adaamz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adambalint-srg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adamh114.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adamlundrigan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adammbalogh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aderuwe.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/AdilHoumadi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Adirelle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adou600.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adrianolek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/adrienbrault.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/AdryanSignor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aemaething.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Aerendir.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/agustingomes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Ahummeling.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aivchen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aivus.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ajthinking.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/akeemphilbert.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/akkie.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/akomm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/akondas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alanpoulain.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/albe.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alcaeus.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aledeg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/AlessandroMinoccheri.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alexander-schranz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alexandre-abrioux.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alexdenvir.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alexmootassem.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alexpott.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alexsegura.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alextech.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Aliance.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alister.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alli83.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/alOneh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Amorfx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/andig.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/andreasrs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/andrelemos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/andrew-demb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/andrey-tech.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/andreybolonin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/andreyvital.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/annervisser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/AntoniusGolly.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/anyt.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/AolEvanFribourg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Aphinion.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aramalipoor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/arendjantetteroo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/arghav.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/armetiz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/arnaud-lb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/asafdav.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/asgrim.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/asiragusa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/asm89.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/asuri0n.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/atans.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/atehvg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aturki.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/aurimasniekis.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ausi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/austinsmorris.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/av3.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/avalanche123.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/AydinHassan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Ayesh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/azjezz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/BackEndTea.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/BafS.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/baghayi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/baileylo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/baktify.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bakura10.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bamarni.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/banrobert.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bantu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/barryvdh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bartfaitamas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bartfeenstra.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bartv2.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/basz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bcremer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/beberlei.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/belgattitude.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bendavies.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/benja-M-1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/benjamin-carl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/BenMorel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/benvdh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/benvdhgss.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bergie.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/BernardoSilva.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bertrandseurot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/besir.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bfanger.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bfoosness.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bgotink.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bigfoot90.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Bilge.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/billsworld.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bingvanmoorsel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/biozshock.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/birko.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bjoernhaeuser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/blue-eyes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bmichalski.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bnkr.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bobthecow.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bobvandevijver.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bocharsky-bw.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/boesing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/BostjanOb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bounoable.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bperel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bradley-holt.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/BreiteSeite.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/brikou.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/brki.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/BruceLampson.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bryanschmidty.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bsahlhof.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bsattelb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/buffcode.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bugalot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/bupy7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/butter5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/c960657.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/caciobanu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/caefer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cafferata.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/caponica.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/carnage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/carusogabriel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/castarco.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/catchamonkey.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cbednarski.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ccovey.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cdaguerre.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cesarep.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cgknx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chalasr.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chEbba.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chr-hertel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chraiet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chregu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chrisguitarguy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ChrisReid.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chriswoodford.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chrvadala.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/chx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ciaranmcnulty.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cinamo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cirpo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/clslrns.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/comfortablynumb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/contributors.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cordoval.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/coudenysj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cowboy129.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/craig-patrick.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/craigmarvelley.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/CraigMason.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/crashbtz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/craue.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/crayner.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/CreepPork.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/curzio-della-santa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/cvuorinen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/D-BlindSide.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/damiankloip.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/danez.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/danizord.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DanJFletcher.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DannyCooper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DannyvdSluijs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dannyvw.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dant89.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dantleech.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/danut007ro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dao.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/daschl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/davedevelopment.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DavidHavl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/davidino.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DavidPrevot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/davidwindell.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/davividal.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dawehner.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Dazag.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dazz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dbrumann.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dbu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dchesterton.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/deeky666.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DeepDiver1975.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Defender32.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/deguif.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Deltachaos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/demiankatz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/denderello.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DenisGorbachev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dennisenderink.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DenysMedvid.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dependabot%5Bbot%5D.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dependabot-preview%5Bbot%5D.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DerekRoth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/deresh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/derrabus.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dextermb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DHager.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dheineman.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DieterHolvoet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/diewom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/DIReports.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/divine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/djlambert.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dkmuir.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dkop.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dlsniper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dmaicher.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dmitryuk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/docteurklein.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/doctrinebot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/doekenorg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dominics.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dorongutman.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dpb587.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dragonwize.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dragoonis.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/drdev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/driehle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dron-alterpost.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/drupol.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dunglas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dustinwhittle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/dzuelke.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/e2video.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/eabay.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/eb-eoliveira.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/eduardosoliv.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/elazar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ElectricMaxxx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ElectroLutz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ellisv.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/EmanueleMinotto.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/emodric.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/emulienfou.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/encoder32.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Engerim.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/enumag.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/eric-addcream.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ericclemmons.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/erikn69.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/esserj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/estahn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/etshy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/eugenegp.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/eugenekurasov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/EvanDotPro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Exeu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/eXsio.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/f-lombardo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fabaopaiva.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fabiang.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/FabianKoestring.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/FabienSalles.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/FabioBatSilva.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fabiocarneiro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fabpot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/facupanizza.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fancyweb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/farzadghanei.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fbrinker.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fdomig.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Fedik.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fefas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fejese.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/felzend.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ferjul17.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fesor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fezfez.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ffgalvao.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fgm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fgrandel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/flack.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/flip111.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/flojon.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/FlorianT03.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/florin-innobyte.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fprochazka.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/francisbesset.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/frankdejonge.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/frankverhoeven.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/franmomu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/freemanirl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fridde.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/frosas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fruit.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fruitwasp.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fspillner.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ftassi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/fullbl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/FunTimeCoding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gajdaw.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/GameplayJDK.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gammamatrix.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/garak.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/garoevans.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/garygitton.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/GaryJones.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gedrox.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/geertclerx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Geolim4.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gerfigna.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ggayan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gistya.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/github-actions%5Bbot%5D.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/glen-84.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gmponos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gnat42.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gnutix.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/goetas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gondo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gordinskiy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gquemener.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Grafikart.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/GrahamCampbell.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/greg0ire.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gregberge.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Gregwar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gries.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/GromNaN.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gsomoza.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gszy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/guilhermeblanco.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/guilliamxavier.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/guiwoda.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Gwalchmei.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/GwendolenLynch.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/gyndav.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/h4cc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hacfi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Haehnchen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/halaxa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hami9x.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hanikesn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hasc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hason.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/havvg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hboomsma.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/he-li.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/healerz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/healsdata.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/heiglandreas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/henrikbjorn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Hermannovich.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/HeyRatFans.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hjanuschka.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hkulekci.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hlubek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hluup.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/hobodave.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/holtkamp.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Hounddog.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/huebs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/HypeMC.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/iambrosi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/iamdto.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/iamluc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/iammichiel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/icanhazstring.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/IceShack.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/igorw.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ihortymoshenko.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/inoryy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/instabledesign.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/intel352.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/internalsystemerror.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/IonBazan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ishyevandro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/itsliamjones.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ittmann.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ivanrey.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ivoba.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/j.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/j0k3r.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/j13k.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/j4nr6n.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jaapio.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JaepilCyan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jagalan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jaimz22.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jakuza.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jalliot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/janbarasek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jandlouhy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/janlanger.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/janpieper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/janschoenherr.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/japaveh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jarednipper.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JarJak.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jarrettj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jasny.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jaspernbrouwer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/javer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/javiereguiluz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JaworskiLukasz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jaymecd.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jaytaph.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jbergler.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jdelaune.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jdeniau.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jderusse.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Jean-Beru.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Jean85.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jekill.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jellerodenburg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jenniferyien.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jeqq.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jeremyFreeAgent.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JeroenDeDauw.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jeroennoten.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jhuet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jimcottrell.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jkrcma.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jkufner.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jmikola.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jmsche.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jnvsor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/joaojacome.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jocel1.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jochensengier.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/joe-walker.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/joec4i.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/johnkary.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/johnnypeck.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JonasHaouzi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JonathanO.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JonEastman.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jonl-mf.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jordisala1991.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jorge-ruukfy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jorrit.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/joschi127.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/joshlopes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Josiah.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jrfnl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jrjohnson.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jrpereira.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jrumbut.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jseverson.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jsor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jtreminio.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/judaschwartz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/juillerat.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/julesbou.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JulienBreux.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/juliendidier.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/julienfalque.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/julienfastre.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/juliusstoerrle.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/juokaz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/JustBlackBird.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/justinrainbow.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/juzna.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jvasseur.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/jwage.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/k00ni.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kabushi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kamil-tekiela.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kaznovac.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kbond.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kelvinj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kevin2244.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kevinyien.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/khepin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kimhemsoe.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kingcrunch.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kinncj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kissifrot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kix.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/klandaika.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/klaussilveira.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kmontag.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Koc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Kocal.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kocsismate.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/koemeet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/KoenraadM.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kokspflanze.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kokx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Konafets.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kore.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kostya1000.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/koubas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/krispypen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kristiyanivanovx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kriswallsmith.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ksowa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kubawerlos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kukulich.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kwiateusz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/kyosheek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/l-vo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/l3pp4rd.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lainosantos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/latrell.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lavoiesl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lcobucci.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Lctrs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/leabaertschi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/leedavis81.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/leek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lemoinem.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/leopro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lepiaf.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/levofski.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/linaori.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/linawolf.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/liorcode.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/liuggio.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/llaville.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/llsousa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/llupa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/localheinz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/losinggeneration.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/louiscytc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lsmith77.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lstrojny.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ltrebing.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lucasgranberg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lucasvanlierop.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lucchese.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lucifurious.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ludofleury.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Lumbendil.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/LVoogd.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/lyrixx.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Ma27.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/macnibblet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/magnetik.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/magnusnordlander.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/maintainers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Majkl578.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/makasim.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Maks3w.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/malarzm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/malef.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/manuakasam.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MarcBrillault.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marcel-burkhard.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marcelsud.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marcortola.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marcuswinkler.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marcw.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marek-saji.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marijn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MarioBlazek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/marnusw.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/martin-georgiev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/martin-heralecky.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/masarliev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/maschmann.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MasterB.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mathiasverraes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mathieu-bour.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mathieudz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mathieutu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/matks.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MatTheCat.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MatthiasKuehneEllerhold.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mattwells.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/matwright.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mauris.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/maxhelias.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/maxim-oleinik.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/maximium.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/maxnuf.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mazsudo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mbabker.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mbeccati.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mcbennn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/md2perpe.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MDrollette.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/megazoll.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mehrdadmhd.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mellowplace.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mente.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/meonkeys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/merk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/merorafael.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mever.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mfdj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mgirouard.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mgonyan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mhor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mhujer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/michael-bouvy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MichaelGooden.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/michaelKaefer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/michaelmoussa.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/michaelperrin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/michalbundyra.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/micheh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/micheleorselli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/michnovka.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mickaelandrieu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mickverm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MidnightDesign.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mikeSimonson.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mikesul.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/milokmet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/miloshavlicek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mitom.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mjhca.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mlocati.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mlodick.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mmarksnippety.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mmoreram.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mnapoli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/moderndeveloperllc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mondrake.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/monooso.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/morawskim.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/morozov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mpalourdio.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mpdude.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mridgway.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/MrMitch.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mrohnstock.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mrtorrent.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mtarld.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mtymek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/muglug.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mustanggb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mvorisek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mvriel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/mweimerskirch.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/n3ziniuka5.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/naahuc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nacmartin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/naderman.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/natewiebe13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/NathanBaulch.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/naurojunior.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nebkam.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/neeckeloo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/neilime.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Nek-.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nemekzg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nepda.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nexxai.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ngroot.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nicam.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nicholasruunu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nickygerritsen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nicolas-grekas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nicwortel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nikic.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nikolay-kozlov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nikophil.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/NinoSkopac.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/njohns-grovo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nlegoff.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/noniagriconomie.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Nono1971.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/norberttech.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/norkunas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/notrix.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nresni.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nrk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nschoellhorn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ntzm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/nubs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Nyholm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/o.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Ocramius.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/OddOneOut.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/odiaseo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/odino.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/odolbeau.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ogizanagi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ohartl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ojhaujjwal.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/oldskool.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/OleMchls.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/olsavmic.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/olvlvl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ondrejmirtes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/opalenet-yann.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/oriole9g.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Orkin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/orklah.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ornicar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/OskarStark.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ossinkine.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ostrolucky.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/othillo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pablodip.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Padam87.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/palicao.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pamil.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/PapsOu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/paragonie-scott.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pascal-hofmann.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/patrickbrouwers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/patrickjahns.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/PATROMO.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/paulchubatyy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pauoliveras.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/PavelJurasek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pavlepredic.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pawel-lewtak.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pborreli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pensiero.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pepeh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/peter-gribanov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/peterhorne.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/peterrehm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/petk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/petr-buchin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pezia.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pgodel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pgrimaud.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/phansys.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/photodude.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/phpeek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/phreaknerd.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Pictor13.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pietervogelaar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pine3ree.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/piotrantosik.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/piotras.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pitpit.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pkraeutli.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pkruithof.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/plfort.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/poldridge.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/polishExperiment.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/posulliv.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Pouix.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/poulikov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/powellblyth.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Powerhamster.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/PowerKiKi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/prgTW.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/prolic.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pschaub.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pscheit.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ptlis.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/pyatnitsev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/racheldomingo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rajeshreeputra.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ramonornela.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ramsey.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rande.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Ravetracer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Rayito-M.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/raziel057.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rbalazs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rbroen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rcatlin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rdohms.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/reedy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ReenExe.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rehfeldchris.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Reinmar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/remi-san.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/remicollet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rgomezcasas.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Rican7.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ricbra.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/riccardonar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/richardmiller-zz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rieschl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rjkip.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rjmunro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rmsint.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rnamiki.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rndstr.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/robap.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/robholmes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/robocoder.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/robsonvn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rocksfrow.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rodion-k.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rodnaph.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rogervila.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/romainneutron.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/romanb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/romankonz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rosier.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/roukmoute.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/roverwolf.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rrajkomar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rrehbein.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rShipelov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rubenrua.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rubensayshi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rufinus.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ruian.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ruleant.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Runrioter.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ruudk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ruudvanderweijde.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rvitaliy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/RWOverdijk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/rybakit.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Rybbow.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/S-Tian86.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/S1SYPHOS.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sabruss.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/saem.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Safranil.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sallaigy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Sam-Burns.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/SamGoossens.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/samikatz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/samnela.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/samsonasik.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Sander-Toonen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sandermarechal.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sanmai.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sarcher.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sasezaki.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/scaytrase.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/schaumiii.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/schmittjoh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/scourgen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/scrutinizer-auto-fixer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ScullWM.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sdepablos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/seanbright.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sebastianbergmann.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/seferov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Seldaek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/semos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/SenseException.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sergiy-petrov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sergponomaryov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/serieznyi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sethunath.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Sgoettschkes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/shepard8.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sheridan-dev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/shieldo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Shurakai.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/shyim.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/simensen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/simonberger.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/simPod.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sinacek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/siwinski.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sjopet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/skolodyazhnyy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Slamdunk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/slimacek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/slipo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sliver.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/smilesrg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/smnandre.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/smolnikov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/snapshotpl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/snc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/snovichkov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/snsanich.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sobstel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/SofHad.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/solocommand.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/someniatko.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sormes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/soullivaneuh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/SpacePossum.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/spantaleev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Spea.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/speedytwenty.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/SpencerIsGiddy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Spomky.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sspat.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/staabm.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/starkj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/stefanotorresi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/stephandesouza.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/stephen-lewis.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Steveb-p.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/steveoliver.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/stfalcon.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/stloyd.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/stof.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/stollr.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Strate.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Sundrique.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sunspikes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/superdweebie.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Superkooka.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sustmi.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/sveriger.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/svycka.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Sweetchuck.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/syzygymsu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/szepeviktor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/SzymonKaminski.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/taion809.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Taluu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tarlepp.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tavy315.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/teohhanhui.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/texdc.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tgabi333.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ThaDafinser.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/thanosp.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/theofidry.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/theojlab.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/thePanz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/theq86.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/thestanislav.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ThomasLandauer.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/thomasrockhu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/thomasvargiu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tiger-seo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/till.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/TiMESPLiNTER.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/TimeToogo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/timmillwood.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tkachuk.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Tobion.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tobmaster.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tobre6.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/toby-griffiths.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tobyS.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Tofandel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tolbon.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tom-1bg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/TomasVotruba.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tombevers.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tomdrissen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/TomHAnderson.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tompro.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tomudding.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ToshY.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/totaltrash.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/touki653.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tPl0ch.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/trakos.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/trickeyone.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tristanbes.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/trsteel88.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tsantos84.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tsteur.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tuanphpvn.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tucksaun.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tvlooy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/tystr.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/UFOMelkor.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/UFTimmy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/uwej711.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/ValeryDubrava.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/valtzu.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vbarinov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/VBelozyorov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vehsamrak.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/velovint.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vicb.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/victorjonsson.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/victorsmirnov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vikbert.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vilartoni.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/villermen.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vincentchalamon.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/VincentLanglet.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vincequeiroz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Vincz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vkartaviy.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vladar.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vladyslavstartsev.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vlastv.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vnagara.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/volkan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/voltel.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Vrtak-CZ.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vudaltsov.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/vvaswani.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/waahhhh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Warxcell.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/watari.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/weaverryan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/webda2l.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/webmozart.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/wedgybo.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/weinr0ck.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/weirdan.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/weph.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/WesleyVanOpdorp.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/whatthejeff.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/wiistriker.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/willemstuursma.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/williarin.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Wilt.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/wjzijderveld.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/wouterj.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/wuchen90.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/WyriHaximus.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/x42p.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/xabbuh.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/xavierleune.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/XCame.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/xepozz.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Xerkus.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/xoob.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/XWB.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/Xymanek.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/yannickl88.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/YaoOcelotl.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/yethee.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/yktd26.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/yourwebmaker.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/yura3d.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/zamorem.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/zatikbalazs.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/zluiten.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/zolex.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 https://www.doctrine-project.org/team/zomberg.html - 2024-01-23T20:02:19-05:00 + 2024-01-24T20:12:44-05:00 weekly 1.0 diff --git a/website-data/blog_posts.json b/website-data/blog_posts.json index 9bb40f317416..f14be6940979 100644 --- a/website-data/blog_posts.json +++ b/website-data/blog_posts.json @@ -1,102 +1,66 @@ [ { - "url": "/2016/11/22/doctrine-mongodb-release-1.4.0.html", - "slug": "doctrine-mongodb-release-1.4.0", - "title": "Doctrine MongoDB 1.4.0", - "authorName": "Andreas Braun", - "authorEmail": "alcaeus@alcaeus.org", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nAbstraction Layer\n[1.4.0](https://github.com/doctrine/mongodb/releases/tag/1.4.0).\n\nPassing context options to the driver\n=====================================\n\nWith this release it's possible to pass driver options to the connection\nclass, which will then be passed on to the MongoDB driver. For example,\nto pass a stream context with SSL context options, you could use the\nfollowing code snippet:\n\n```php\n$context = stream_context_create([\n 'ssl' => [\n 'allow_self_signed' => false,\n ]\n]);\n$connection = new \\Doctrine\\MongoDB\\Connection(null, [], null, null, ['context' => $context]);\n```\n\nPassing multiple expressions to logical operators\n=================================================\n\nThe `addAnd`, `addNor` and `addOr` methods in the query and aggregation\nbuilders now take multiple expression objects. Instead of having to call\nthe method repeatedly, you may call it once with multiple arguments:\n\n```php\n// Before\n$builder\n ->addAnd($someExpression)\n ->addAnd($otherExpression);\n\n// After\n$builder->addAnd($someExpression, $otherExpression);\n```\n\nDeprecations\n============\n\nThe `update` and `multiple` methods in the query have been deprecated in\nfavor of `updateOne` and `updateMany`. These deprecations help people\nusing ODM prepare for the next version of ODM which will utilize the new\nMongoDB library API.\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb/blob/master/CHANGELOG-1.4.md#140-2016-11-22).\nA full list of issues and pull requests included in this release may be\nfound in the [1.4.0\nmilestone](https://github.com/doctrine/mongodb/issues?q=milestone%3A1.4.0).\n\nPHP version support\n===================\n\nWith this release, we have dropped support for PHP 5.5. Users using PHP\n5.5 or older are encouraged to upgrade to a newer PHP version. If you\nare using PHP 7.0 or 7.1, you can use this library by adding a polyfill\nfor `ext-mongo`, like\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter).\n\nFuture releases\n===============\n\nThis release is the last planned minor release of the MongoDB\nAbstraction Layer, with only bugfixes being done in maintenance\nreleases. The library will not be rewritten to support the new MongoDB\ndriver. Users are encouraged to use the new [MongoDB\nlibrary](https://github.com/mongodb/mongo-php-library). Doctrine\nMongoDB ODM will be adapted to support the new driver and the MongoDB\nlibrary.\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb\": \"^1.4.0\"\n }\n}\n```\n", - "date": "2016-11-22 00:00:00" - }, - { - "url": "/2009/06/19/using-views-with-doctrine.html", - "slug": "using-views-with-doctrine", - "title": "Using Views with Doctrine", - "authorName": "jwage", - "authorEmail": "", - "contents": "I've seen a few requests recently on how you can use a view with\nDoctrine. This is very easy and I've also learned a few neat tricks that\nyou can do to accomplish abnormal things while writing this article.\n\nCreating the View\n=================\n\nFirst I will demonstrate how you can turn a normal `Doctrine_Query`\ninstance in to a view. This is just as easy as creating an instance of\n`Doctrine_View` and setting a reference between the query and the view.\n\n~~~~ {.sourceCode .php}\ncreateQuery('p')\n ->select('p.*, COUNT(c.id) as num_comments')\n ->leftJoin('p.Comments c')\n ->orderBy('p.id DESC')\n ->groupBy('p.id');\n\n$view = new Doctrine_View($q, 'test_view');\n~~~~\n\nTo create the view in the database you can call the\n`Doctrine_View::create()` method.\n\n~~~~ {.sourceCode .php}\ncreate();\n\n**TIP** You can drop the view just the same by calling the\n``Doctrine_View::drop()`` method.\n~~~~\n\n~~~~ {.sourceCode .php}\ndrop();\n~~~~\n\nExecuting the View\n==================\n\nNow when the `Doctrine_Query` instance above is executed, it will\nexecute the SQL for the view instead of parsing the DQL, generating the\nSQL and executing it.\n\n~~~~ {.sourceCode .php}\nexecute();\n~~~~\n\nExecuting the above would execute the following SQL query.\n\n [sql]\n SELECT * FROM test_view\n\nTweaking the View\n=================\n\nNow here is where things get interesting. Say we wanted to take the SQL\nthat the above `Doctrine_Query` generates, and modify it slightly with\nsome custom SQL that otherwise could not make it through the DQL parser.\n\nWe can get the SQL from the query, modify it, then manually create the\nview in our database.\n\n~~~~ {.sourceCode .php}\ngetSql();\n~~~~\n\nThe above would output the following SQL.\n\n [sql]\n SELECT b.id AS b__id, b.title AS b__title, b.excerpt AS b__excerpt, b.body AS b__body, COUNT(c.id) AS c__0 FROM blog_post b LEFT JOIN comment c ON b.id = c.blog_post_id GROUP BY b.id ORDER BY b.id DESC\n\nNow lets say we wanted to add something to the SQL that is proprietary\nto your DBMS, or is some complex SQL that won't make it through the DQL\nparser. We can modify the above SQL then re-create the view with that\nSQL manually. Let's make a simple change and add the `USE INDEX` keyword\nto force MySQL to use a certain index for the query.\n\n> **NOTE** The example I have chosen is a very simple one only to\n> demonstrate the capabilities. This example may not be a real world\n> scenario for you. The only purpose of me showing this is to open a\n> door for you to solve potential problems for you in the future.\n\n [sql]\n SELECT b.id AS b__id, b.title AS b__title, b.excerpt AS b__excerpt, b.body AS b__body, COUNT(c.id) AS c__0 FROM blog_post b LEFT JOIN comment c USE INDEX (blog_post_id_idx) ON b.id = c.blog_post_id GROUP BY b.id ORDER BY b.id DESC;\n\nNow lets take this query and manually create the view with it.\n\n> **NOTE** We must first drop the view as we already created it once in\n> a previous step. This is just as easy as issuing the DROP VIEW command\n> to MySQL. Afterward, re-create the view again with the modified SQL.\n\n [sql]\n DROP VIEW test_view;\n CREATE VIEW test_view AS SELECT b.id AS b__id, b.title AS b__title, b.excerpt AS b__excerpt, b.body AS b__body, COUNT(c.id) AS c__0 FROM blog_post b LEFT JOIN comment c USE INDEX (blog_post_id_idx) ON b.id = c.blog_post_id GROUP BY b.id ORDER BY b.id DESC;\n\nNow when we execute the code in the first part of this article it will\nexecute the view which contains the customized SQL.\n\n~~~~ {.sourceCode .php}\nexecute();\n\n**CAUTION** If you customize the SQL, it must maintain the same\nstructure, aliases, etc. in order for Doctrine to be able to\nhydrate the data in to the object graph.\n~~~~\n\nThat is it! Now you can easily use some custom SQL in your queries as\nviews. The benefit of using a view is that it is easily reusable and it\nis much faster than executing a normal query in most cases.\n", - "date": "2009-06-19 00:00:00" - }, - { - "url": "/2010/02/11/database-support-doctrine2.html", - "slug": "database-support-doctrine2", - "title": "Database-Driver Support in Doctrine 2", - "authorName": "beberlei", - "authorEmail": "", - "contents": "Not only the ORM part of Doctrine will see major changes for the step\nfrom the 1.x to the Doctrine 2 series. The DBAL layer has undergone\nmajor refactorings and there has been a very throughout separation of\nconcerns. Any database platform that will be supported has to extend\nfour different classes/interfaces.\n\n- Doctrine and Doctrine - Both interfaces implement the interference\n between PHP and the Database, they are the lowest layer of any\n platform support.\n- Doctrine - This abstract class requires you to specify the\n specialites of the SQL dialect of the database-platform you are\n going to implement.\n- Doctrine - This abstract class defines the interaction of the\n database platform to create a database schema, for example in\n combination with the ORM SchemaTool.\n\nFor the Doctrine 2.0 release we plan to support 4 different platforms,\nall tested in-depth:\n\n- MySQL using the PDO Mysql extension\n- PgSQL using the PDO PostgresSQL extension\n- Oracle using the OCI extension\n- Sqlite using the PDO SQLite extension\n\nBoth the SchemaManager and Platform can be re-used for any Driver that\nis connected to the database. If you would want to use Mysqli instead of\nPDO MySQL you would only need to implement a new Driver and Statement.\nAnd if you just want to change some of the sql specific details in\nregard to schema generation you would only need to extend the\nAbstractPlatform.\n\nStill, from a database-platform point of view the default support is\nlacking, for example MsSql support with both PDO and SqlSrv is currently\nmissing. Firebird or IBM Db2 are other platforms that are wide-spread\nand not supported currently. However we don't want to rush only\nhalf-finished support into Doctrine 2. That is where you come in: We\nwould greatly appreciate any help in getting support for any new\ndatabase platform into Doctrine 2.\n\nFor the implementation of a completly new database platform you can rely\non the powerful PHPUnit Testsuite of Doctrine 2. There are lots of tests\nthat check the functionality of your driver, platform and schema\nimplementations against various scenarios. Additionally the complete ORM\nfunctional test-suite can run against your new database platform.\nFurthermore you can count of everyone in the Doctrine DEV Team for help,\nwe are hanging around on Freenode IRC in the \\#doctrine-dev Channel. You\ncould also create a ticket on Jira and attach a patch or just discuss\nyour ideas.\n", - "date": "2010-02-11 00:00:00" - }, - { - "url": "/2008/03/02/my-first-project-doctrine-tutorial.html", - "slug": "my-first-project-doctrine-tutorial", - "title": "My First Project Doctrine Tutorial", + "url": "/2009/02/03/doctrine-1-0-7-is-available.html", + "slug": "doctrine-1-0-7-is-available", + "title": "Doctrine 1.0.7 is Available!", "authorName": "jwage", "authorEmail": "", - "contents": "I have put together a short and sweet tutorial on how to get started\nusing Doctrine in under 5 minutes. A few weeks ago, we announced the\nsandbox package which allows you to get started using Doctrine with a\nzero configuration sandbox environment. The tutorial is built using this\nsandbox package and shows you how Doctrine can be easily implemented and\nused in your web applications.\n", - "date": "2008-03-02 00:00:00" + "contents": "Today I have made available [Doctrine\n1.0.7](https://www.doctrine-project.org/download) , the latest bug fix\nrelease for the 1.0 version of Doctrine. This release is a significant\none with a few dozen bugs fixed. Below is a list that highlights some of\nthe fixes.\n\nHighlights\n==========\n\n- [r5361] Fixed NestedSet to not create column for root column if it\n already exists (closes \\#1817)\n- [r5419] Fixes \\#1856. Added checking to schema file to ensure\n correct file extension (format).\n- [r5429] Fixes issue with generated count queries (closes \\#1766)\n- [r5438] Fixes issue with saveRelated() being called too early\n (closes \\#1865)\n- [r5441] Fixing generated models to adhere to coding standard of\n using 4 spaces (closes \\#1846)\n- [r5459] Fixes issue with I18n and column aliases (closes \\#1824)\n\nLots of other fixes have been made in this release so if you want to see\na list of all the changes be sure to check the\n[changelog](https://www.doctrine-project.org/change_log/1_0_7).\n", + "date": "2009-02-03 00:00:00" }, { - "url": "/2010/06/09/doctrine-mongodb-odm-1-0-0alpha1-released.html", - "slug": "doctrine-mongodb-odm-1-0-0alpha1-released", - "title": "Doctrine MongoDB ODM 1.0.0ALPHA1 Released", + "url": "/2008/12/03/first-1-1-alpha-version-released.html", + "slug": "first-1-1-alpha-version-released", + "title": "First 1.1 Alpha Version Released", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am very happy to announce the release of the first alpha version\nof the Doctrine [MongoDB](https://www.mongodb.com/) Object Document\nMapper. This is exciting as it is the beginning of a whole new chapter\nin the life of the Doctrine Project. We hope to continue adding packages\nto allow you to transparently persist your domain objects to a variety\nof different database engines!\n\nFeatures\n========\n\nBelow you will find a list of some of the features provided by the\nDoctrine MongoDB Object Document Mapper:\n\n- Transparent persistence.\n- Map one or many\n [embedded](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/embedded-mapping/en)\n documents.\n- Map one or many\n [referenced](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/reference-mapping/en)\n documents.\n- Create references between documents in different databases.\n- Map documents with\n [Annotations](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/annotations-reference/en)\n ,\n [XML](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/xml-mapping/en#xml-mapping)\n ,\n [YAML](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/yml-mapping/en#yml-mapping)\n or plain old PHP code.\n- Documents can be stored on the\n [MongoGridFS](https://secure.php.net/MongoGridFS).\n- Collection per class(concrete) and single collection\n [inheritance](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/inheritance-mapping/en)\n supported.\n- Map your Doctrine 2 ORM Entities to the ODM and use mixed data\n stores.\n- Inserts are performed using\n [MongoCollection::batchInsert()](http://us.php.net/manual/en/mongocollection.batchinsert.php)\n- Updates are performed using the atomic operators \\$set, \\$pullAll,\n \\$pushAll and \\$increment instead of saving the entire document.\n- [Migrate](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/migrating-schemas/en)\n your schema as your domain model evolves and changes.\n- [Fluent Object Oriented\n Interface](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/query-api/en)\n for building and executing queries.\n- [Map\n Reduce](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/map-reduce/en)\n integration.\n\nYou can continue reading the\n[Introduction](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/introduction/en)\nchapter in the reference documentation to get a grasp of what exactly\nthe Doctrine MongoDB Object Document Mapper does by looking at some\nexamples!\n\nDocumentation\n=============\n\nWant documentation? You got it! Check out the links below to get started\nlearning about the Doctrine MongoDB Object Document Mapper:\n\n- [Reference\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/en)\n- [Getting Started Cookbook\n Article](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/cookbook/getting-started/en)\n- [API\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/api)\n\nWe'll be adding more\n[Cookbook](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/cookbook)\narticles in the coming weeks so check back for more documentation!\n\nDownload\n========\n\nYou can see all the download information for the Doctrine MongoDB ODM on\nthe projects\n[download](https://www.doctrine-project.org/projects/mongodb_odm/download)\npage. You have several ways to get the code which are described below as\nwell:\n\nCheckout from Git\n-----------------\n\n $ git clone git://github.com/doctrine/mongodb-odm.git mongodb_odm\n $ cd mongodb_odm\n $ git checkout 1.0.0ALPHA1\n\nDownload PEAR Package\n---------------------\n\nYou can manually download the PEAR package\n[here](https://www.doctrine-project.org/downloads/DoctrineMongoDBODM-1.0.0ALPHA1.tgz).\nIf you want you can manually unarchive the code or you can\n`pear install` the downloaded package:\n\n $ pear install /path/to/downloads/DoctrineMongoDBODM-1.0.0ALPHA1.tgz\n\nInstall from PEAR\n-----------------\n\nYou can also directly install using our [PEAR\nServer](http://pear.doctrine-project.org):\n\n $ pear install pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0ALPHA1\n\nReporting Issues\n================\n\nIf you encounter any problems with the Doctrine MongoDB Object Document\nMapper you can report new issues to the\n[Jira](https://www.doctrine-project.org/jira/browse/MODM) project. For\nmore information about contributing to Doctrine you can checkout the\ndocumentation for our [Contributor\nWorkflow](https://www.doctrine-project.org/contribute).\n", - "date": "2010-06-09 00:00:00" + "contents": "Today I am very happy to introduce the first alpha version of the 1.1\nbranch of Doctrine. This means we have just about finalized the scope of\nfeatures and are preparing to enter the beta and release candidate\ncycles before releasing the stable version.\n\nThis new version is sporting dozens of enhancements and even more bug\nfixes. Primarily the [new scalar hydration\ntype](https://www.doctrine-project.org/2008/10/12/new-hydration-modes-for-doctrine-1-1.html)\n, [the migration diff\ntool](https://www.doctrine-project.org/2008/10/18/new-to-migrations-in-1-1.html) ,\nand other [miscellaneous new\nfeatures](https://www.doctrine-project.org/2008/10/02/doctrine-1-1-development-begins.html).\n\nYou can download the package\n[here](https://www.doctrine-project.org/download) and read some\ndocumentation on the changes and new features\n[here](http://trac.doctrine-project.org/browser/branches/1.1/UPGRADE_TO_1_1).\n", + "date": "2008-12-03 00:00:00" }, { - "url": "/2011/08/17/doctrine-2-0-7-and-eol.html", - "slug": "doctrine-2-0-7-and-eol", - "title": "Doctrine 2.0.7 and EOL", + "url": "/2011/03/05/doctrine-maintenance-mar05.html", + "slug": "doctrine-maintenance-mar05", + "title": "Maintenance Releases 2.0.2 DBAL and ORM", "authorName": "beberlei", "authorEmail": "", - "contents": "We released the last maintenance version of the 2.0.x branch Doctrine\n2.0.7 today. It contains a bunch of fixes backported from the 2.1.x and\nmaster branches. You can find the list of fixes in the Changelog:\n\n- [ORM Changelog\n 2.0.7](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10150)\n- [DBAL Changelog\n 2.0.7](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10151)\n\nThis release marks the end of line of the 2.0.x branch. We will not port\nbugs for this branch anymore only security issues will get applied.\nPlease upgrade to 2.1.1 when it will be released later this week. The\nupgrade to 2.1 is painless and the small number of backwards\nincompatible changes [is\ndocumented](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-21).\nAlso most of the BC related bugs in the 2.1.0 release will be fixed in\n2.1.1.\n", - "date": "2011-08-17 00:00:00" + "contents": "Slightly delayed but here are the releases of DBAL and ORM versions\n2.0.2:\n\n- [ORM 2.0.2\n Changeset](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10116)\n- [DBAL 2.0.2\n Changeset](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10118)\n\nA total of 22 issues was fixed.\n\nThere was one big change in the build mechanism. Symfony YAML and\nConsole dependencies are now converted to git submodules and are also\nshipped as their own PEAR packages (DoctrineSymfonyYaml and\nDoctrineSymfonyConsole).\n", + "date": "2011-03-05 00:00:00" }, { - "url": "/2008/08/05/doctrine-1-0-beta1-released.html", - "slug": "doctrine-1-0-beta1-released", - "title": "Doctrine 1.0 BETA1 Released", + "url": "/2010/02/18/symfony-live-2010.html", + "slug": "symfony-live-2010", + "title": "Symfony Live 2010", "authorName": "jwage", "authorEmail": "", - "contents": "

\n\nToday I am happy to announce the release of Doctrine 1.0-BETA1. This\nmarks the true start for the 1st generation Doctrine stable lifecycle.\nAs you may already know, Doctrine 1.0 has been slated to be released on\nSeptember 1st 2008 for quite some time now. We still have a few more\npre-1.0 releases to go until 1.0. The roadmap for now is BETA1, RC1, RC2\nand then 1.0 STABLE. You can see the roadmap in trac if you're\ninterested in keeping up with the Doctrine schedule. More information on\n1.0 and what other things to expect on September 1st will be given soon.\nMake some noise!\n\n

\n\n\n", - "date": "2008-08-05 00:00:00" - }, - { - "url": "/2015/12/25/common-2-5-3-and-2-6-1.html", - "slug": "common-2-5-3-and-2-6-1", - "title": "Common 2.5.3 and 2.6.1 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Common\n[2.5.3](https://github.com/doctrine/common/releases/tag/v2.5.3) and\n[2.6.1](https://github.com/doctrine/common/releases/tag/v2.6.1).\n\nCommon 2.5.3\n============\n\nThis release corrects an issue with the precedence of namespaces being\nmatched by the `SymfonyFileLocator`\n[\\#367](https://github.com/doctrine/common/pull/367).\n\nCommon 2.6.1\n============\n\nThis release includes all of the fixes reported above for 2.5.3.\n\nInstallation\n============\n\nYou can install the Common component using Composer and one of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.5.3\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.6.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/common/issues).\n", - "date": "2015-12-25 00:00:00" + "contents": "This past week I had the pleasure of spending time in Paris, France for\nthe [2010 Symfony Live](https://live.symfony.com/) conference. My\nfirst Symfony event was [Symfony Camp](http://www.symfonycamp.com) in\n2008 which was a great success. I also attended the first Symfony Live\nlast year where I spoke about [Sympal](http://www.sympalphp.org) and\nDoctrine. This time around the Symfony conference was an even bigger\nsuccess! The community around Symfony and Doctrine has grown a great\namount over the years and the event shows that! Many great speakers and\ntopics were present at the conference and it was very exciting to get to\nbe a part of it.\n\nOn the first day of the conference I was invited to speak about the\nlatest Doctrine 2! This is perfect timing as Fabien Potencier made\navailable the source code of [Symfony\n2](http://www.symfony-reloaded.org) the following day. I am very excited\nabout what the future holds for PHP in the coming years as Symfony 2 and\nDoctrine 2 are really revolutionary PHP projects!\n\nYou can find the presentations given at the conference related to\nDoctrine below:\n\n- [Using Doctrine\n Migrations](https://www.slideshare.net/denderello/symfony-live-2010-using-doctrine-migrations)\n- [Doctrine 2: Not the same Old PHP\n ORM](https://www.slideshare.net/jwage/doctrine-2-not-the-same-old-php-orm)\n\n", + "date": "2010-02-18 00:00:00" }, { - "url": "/2016/02/02/doctrine_module_1_0_0_stable_release.html", - "slug": "doctrine_module_1_0_0_stable_release", - "title": "DoctrineModule 1.0.0 we have a stable release", - "authorName": "Gianluca Arbezzano", - "authorEmail": "gianarb92@gmail.com", - "contents": "We are happy to announce the first stable release for DoctrineModule!\n[1.0.0](https://github.com/doctrine/DoctrineModule/releases/tag/1.0.0)\nis ready to go after a couple of years of work.\n\nThe [\"Initial\nCommit\"](https://github.com/doctrine/DoctrineModule/commit/13ededfcf10f9db6a4113cd9bdb4956ea145b6cd)\ndates back to the date Oct 22, 2011 after 4 years, we are ready.\n\nThanks at all for yours contributions!\n\nUpdate your composer configuration to use the stable version of this\nproject.\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-module\": \"~1.0\"\n }\n}\n```\n\nChanges since 0.10.0\n====================\n\nThis is a list of issues resolved in `1.0.0` since `0.10.0`:\n\n- [[\\#523]](https://github.com/doctrine/DoctrineModule/pull/523)\n Remove deprecated api call from test\n- [[\\#547]](https://github.com/doctrine/DoctrineModule/pull/547) Allow\n for the use of ZendCacheServiceStorageCacheAbstractServiceFactory\n\nPlease report any issues you may have with the update on the mailing\nlist or on [GitHub](https://github.com/doctrine/DoctrineModule/issues).\n\nRemember to read [our\ndocumentation](https://github.com/doctrine/DoctrineModule/tree/master/docs)\nand improve it with your knowledge.\n", - "date": "2016-02-02 00:00:00" + "url": "/2017/12/21/orm-2-6-0-and-next.html", + "slug": "orm-2-6-0-and-next", + "title": "Doctrine ORM 2.6 and Next (3.0)", + "authorName": "Mike Simonson", + "authorEmail": "mike@simonson.be", + "contents": "We are happy to announce the immediate availability of Doctrine ORM [2.6.0](https://github.com/doctrine/orm/releases/tag/v2.6.0).\n\nORM 2.6.0\n=========\n\nThis release contains almost 3 years of active development and it\nprovides several improvements and fixes, including:\n\n- Better commit order calculation\n- More stable second level cache\n- Strict testing and quality control\n- PHP 7.1+ requirement\n\n[changelog](https://github.com/doctrine/orm/releases/tag/v2.6.0).\n\nNext?\n=====\n\nThis release marks the feature freeze of the 2.x version.\n\nIf you need to improve please work on the develop branch that will\nbecome the 3.0 branch in the coming days. The changes are already too\nnumerous to easily rebase a feature from the 2.x branch to the develop\none.\n", + "date": "2017-12-21 00:00:00" }, { - "url": "/2010/01/22/doctrine-2-0-0-alpha4-released.html", - "slug": "doctrine-2-0-0-alpha4-released", - "title": "Doctrine 2 ALPHA4 Released", - "authorName": "romanb", + "url": "/2009/06/13/doctrine-visiting-conferences-around-the-world.html", + "slug": "doctrine-visiting-conferences-around-the-world", + "title": "Doctrine visiting conferences around the world", + "authorName": "jwage", "authorEmail": "", - "contents": "Today we are happy to announce the release of the next, and hopefully\nlast, alpha release of Doctrine 2. With over 60 fixed bugs and some\nimprovements this is another significant step towards the final release.\n\nHighlights\n==========\n\n- DBAL Refactorings: [DDC-169]\n- CLI Refactoring and Enhancements: [r6972] [DDC-223], [DDC-225]\n- Support for customizing the DDL of column definitions: [DDC-200]\n- XML Mapping Driver Improvements: [DDC-243], [DDC-242], [DDC-159]\n\nView the complete [change\nlog](https://www.doctrine-project.org/change_log/2_0_0_ALPHA4) to see a\ndetailed list of every change contained in this release. You can\n[download](https://www.doctrine-project.org/download#2_0) this release\nand report any issues you find in\n[Jira](https://www.doctrine-project.org/jira).\n\nWe would like to thank everyone who participated in this release through\nbug reports, patches and suggestions.\n\nWhat is Next?\n=============\n\nWe are planning to work towards entering beta from here on. There are\nstill some backwards-incompatible changes to come. Once we hit beta,\nefforts will concentrate on fixing bugs and further stabilizing the code\nbase. The first beta release is currently scheduled for March 1st, 2010.\n", - "date": "2010-01-22 00:00:00" + "contents": "This last month I have been present at a few events to speak about\nDoctrine. I visited Verona, Italy for the phpDay conference and this\nlast week I was present at the first Symfony conference in Paris,\nFrance. I also have given a few talks at some smaller local events such\nas the Nashville Enterprise LAMP group. Below are the links to the\npresentations on slideshare.\n\nWhat's new in Doctrine (symfony live)\n=====================================\n\n
\n\nWhat's new in Doctrine\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nWhat is Doctrine? (Nashville LAMP Group)\n========================================\n\n
\n\nWhat Is Doctrine?\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nWhat's new in Doctrine (phpDay 2009)\n====================================\n\n
\n\nWhat's New In Doctrine\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nIn addition to the Doctrine talks I have been talking a lot recently\nabout a new CMS built on top of Symfony and Doctrine called Sympal.\nBelow you can view those presentations as well if interested.\n\nSympal - The flexible Symfony CMS (symfony live)\n================================================\n\n
\n\nSympal - The flexible Symfony CMS\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nSympal - The flexible Symfony CMS (phpDay 2009)\n===============================================\n\n
\n\nSympal - The Flexible Symfony Cms\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\n\n", + "date": "2009-06-13 00:00:00" }, { - "url": "/2022/11/04/annotations-to-attributes.html", - "slug": "annotations-to-attributes", - "title": "From annotations to attributes", - "authorName": "Gr\u00e9goire Paris", - "authorEmail": "postmaster@greg0ire.fr", - "contents": "Last month, we migrated the tests of the ORM from annotations to attributes.\nLet us look back on what lead to this moment.\n\n## Annotations\n\nLet's go 22 years back in time. In October 2000, Ulf Wendel introduces phpdoc\ncomments at the PHP-Kongress. These comments follow a structure that allows\nto produce API documentation from them. They are inspired by javadoc.\n\nIn 2002, Alex Buckley, a Specification lead for the Java language publishes\n[JSR-175][jsr-175], thus proposing to add user-defined annotations to the\nlanguage, allowing to tag language elements with extra information. 2 years\nlater, it gets approved and Java 1.5, also known as Java 5 is released, [with\nsupport for annotations][annotation-guide].\n\n2 more years elapse and in 2004, Jano Suchal publishes [Addendum][addendum], a\nPHP library that adds support for using \"Docblock/JavaDoc\" as annotations,\nmeaning that contrary to what is done in Java, Addendum annotations are\ncontained inside phpdoc comments, like this:\n\n```php\n/** @test */\nfunction test_it_throws_on_invalid_argument(): void\n{}\n```\n\nThat is because they are implemented in userland, without requiring a change in\nPHP itself.\n\nDoctrine ORM 2.0 is not released yet at that point, but [the library is used to\nbuild an annotation driver][addendum-common] in Doctrine 2 in early 2009.\nAt that time, Doctrine was a project in a single repository, with `Common`,\n`DBAL` and `ORM` as top-level namespaces.\n[Addendum is replaced 6 months later][annotation-driver], with a new namespace\nunder `Common` called `Annotations`.\n\nIn the summer of 2010, Guilherme Blanco and Pierrick Charron submit\n[an RFC to add annotations support to PHP][annotations-rfc], but it\n[gets declined][mailing-list-annotations-rfc]. The RFC already mentions the\nneed for annotations in PHPUnit, Symfony, Zend Framework, FLOW3 and of course,\nDoctrine.\n\nLate 2010, Doctrine 2 is tagged, and the single repository is split into 3\nrepositories.\n\nFinally, in 2013, the namespace above is isolated in its own repository, and\n`doctrine/annotations` 1.0.0 is tagged.\n\nToday, the package is widely used in the PHP ecosystem and has a little short\nof 300 million downloads on Packagist, and is depended on by over 2 thousand\npackages, including major frameworks and tools. It is fair to say annotations\nhave proven valuable to many users.\n\n[jsr-175]: https://www.cs.ubc.ca/~gregor/teaching/cpsc411/metadata-public-draft.html\n[annotation-guide]: https://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html\n[addendum]: https://github.com/jsuchal/addendum\n[addendum-common]: https://github.com/doctrine/orm/commit/bcf0110249978c8fc705916d5a4f94216bb98b07\n[annotation-driver]: https://github.com/doctrine/orm/commit/9075f10bf5da3058f6ef82ff08e4783ff70424a4\n[annotations-rfc]: https://wiki.php.net/rfc/annotations\n[mailing-list-annotations-rfc]: https://externals.io/message/49733\n\n## Attributes\n\nThe RFC mentioned above is only one among [many][rfc-list]. As mentioned\nbefore, annotations were implemented as phpdoc comments, which has several\ndrawbacks:\n\n- The comments are necessary to run the code, and [need to be kept in the\n opcode cache][opcache-save-comments].\n- They are obtained at runtime, by using the reflection API, and because of\n that, can only be detected as invalid at runtime.\n- They are not well supported by IDEs if at all.\n- They clutter comments, which were originally intended for humans.\n- They can be confused with phpdoc, which are something else entirely.\n\nIn March 2020, Benjamin Eberlei resurrects [Dmitry Stogov's attributes\nRFC][attributes-rfc] and submits [the seventh RFC on this\ntopic][attributes-v2-rfc], introducing attributes to PHP.\n\nA few rounds of RFCs about syntax later, PHP 8.0 is released, with a notable\nfeature missing: nested attributes. PHP 8.0 attributes use a syntax that is\nforward-compatible with them though, and finally, with PHP 8.1, nested\nattributes are supported.\n\n[rfc-list]: https://wiki.php.net/rfc\n[opcache-save-comments]: https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.save-comments\n[attributes-rfc]: https://wiki.php.net/rfc/attributes\n[attributes-v2-rfc]: https://wiki.php.net/rfc/attributes_v2\n\n## Migrating from one to the other\n\nSince attributes are much better than annotations, with `doctrine/orm` 3.0,\nannotations will no longer be supported, which means applications using them as\na way to map entities to tables need to migrate towards attributes (or another\ndriver).\nAs maintainers of that library, even we needed to migrate: most of the test\nsuite of `doctrine/orm` used annotations.\n\nEnter [Rector][rector]. Rector is a standalone tool that is invaluable when it\ncomes to performing such migrations: it is able to understand PHP code and\napply so-called Rectors to it. It is extensible, so it is possible to define\nsuch Rectors in order to address upgrades for anything, including Doctrine.\n\nWhat's more, it comes with batteries included: when you install\n`rector/rector`, what you get is code from `rector/rector-src` _and_ its official\nextensions, among which you will find [`rector/rector-doctrine`][rector-doctrine].\nThat's right, there is already an entire extension dedicated to Doctrine.\n\nRules are grouped together in sets, and the set that interests us here is\n`Rector\\Doctrine\\Set\\DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES`.\n\nTo migrate `doctrine/orm`'s test suite to annotations, here is how we\nproceeded:\n\n1. Install Rector: `composer require --dev rector/rector`.\n2. Create a file called `rector.php` at the root of the library with the\n following contents:\n\n ```php\n paths([\n __DIR__ . '/tests',\n ]);\n $rectorConfig->sets([\n DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,\n ]);\n };\n ```\n3. Run `vendor/bin/rector`, which obeys the above configuration.\n4. Uninstall Rector: `composer remove rector/rector && rm rector.php`\n5. Run `vendor/bin/phpcbf` to make the migrated codebase compliant with our\n coding standard.\n\nOr at least, it was the plan, because some annotations were not perfectly\nmigrated. All in all, I found only [2][bug-1] [bugs][bug-2], which looks great\ngiven how so many edge cases should appear in our test suite.\n\nI went on and reported those 2 bugs, and this is where the experience went from\ngreat to stellar:\nthe issue template leads to [a playground][demo], much like the one you can\nfind for other tools such as Psalm or PHPStan.\n\nThis one comes with 2 buttons: \"Create an issue\", which pre-fills the Github\nissue with useful information, and \"Create a test\", that lets you create a test\nin the right directory (and also, the right repository, which is\n`rectorphp/rector-src`, and not `rectorphp/rector`).\n\nIf you want to add a new test for the bug you reported, you should let\n[the official tutorial][rector-test-tutorial] walk you through that, it is very\nwell written.\n\nAnyway, now that these 2 bugs are fixed and you know how to migrate, plan that\nmigration, and let us know how it goes! Happy Rectoring!\n\n[rector]: https://github.com/rectorphp/rector\n[rector-doctrine]: https://github.com/rectorphp/rector-doctrine\n[bug-1]: https://github.com/rectorphp/rector/issues/7528\n[bug-2]: https://github.com/rectorphp/rector-src/pull/2988\n[demo]: https://getrector.org/demo\n[rector-test-tutorial]: https://github.com/rectorphp/rector/blob/main/docs/how_to_add_test_for_rector_rule.md\n", - "date": "2022-11-04 00:00:00" + "url": "/2008/07/21/plug-and-play-schema-information-with-templates.html", + "slug": "plug-and-play-schema-information-with-templates", + "title": "Plug and Play Schema Information With Templates", + "authorName": "jwage", + "authorEmail": "", + "contents": "Check out the latest addition to the Doctrine Cookbook. We have added a\nshort little tutorial on how to use Doctrine templates to solve a real\nworld problem to allow Address attributes on many records easily. We\nwill be publishing many more tutorials in the coming weeks. If you're\ninterested in contributing a tutorial please contact me at jonwage [at]\ngmail.com.\n", + "date": "2008-07-21 00:00:00" }, { "url": "/2009/03/12/get-trained-by-doctrine-experts.html", @@ -108,85 +72,31 @@ "date": "2009-03-12 00:00:00" }, { - "url": "/2015/04/02/orm-2-5-0.html", - "slug": "orm-2-5-0", - "title": "Doctrine ORM 2.5.0 Release", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.0`.\n\nThis release spans over almost 2 years of development, and is a major\neffort by the team and the community to make the ORM more robust and\nperformant.\n\n[457\nissues](?jql=project%20%3D%20DDC%20AND%20fixVersion%20%3D%202.5%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC)\nwere resolved in this release, so we are very proud of the work being\ndone by the community and the core team.\n\nWhat is new in 2.5.x?\n=====================\n\nDoctrine ORM 2.5.0 comes with a set of major improvements:\n\n- The Second-level Cache, a component that greatly improves ORM\n performance\n- Embeddable classes, allowing for a more fine-grained design of your\n entities without having to resort to one-to-one associations for\n Value Objects\n- Entity type specific event listeners, for improved event handling\n performance\n- Improvements in the Criteria Collection filtering API, now also\n supporting `EXTRA_LAZY` filtering\n\nWhat has to be done to upgrade to 2.5.x?\n========================================\n\nSome backwards incompatible changes were also involved in this release:\nto read them, along with a more extensive list of the 2.5.0 changes,\nplease consult [the upgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nStability\n=========\n\nWe currently do not have a release schedule for Doctrine ORM `2.6.0`.\n\nAs of today, Doctrine ORM `2.5.x` is our stable distribution, and will\nreceive regular bugfix releases.\n\nDoctrine ORM `2.4.8` will be the last bugfix release for the `2.4.x`\nseries. Further releases will only occur in the eventuality of a\nsecurity issue being discovered.\n\nWe will also keep patching previous versions of the ORM in the\neventuality of a security issue being discovered.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"~2.5.0\"\n }\n}\n```\n\nChanges since 2.4.0\n===================\n\nThis is a list of issues resolved in `2.5.0` since `2.4.0`:\n\nNew Feature\n-----------\n\n- [DDC-93](https://github.com/doctrine/orm/issues/1581) - It\n would be nice if we could have support for ValueObjects\n- [DDC-1149](https://github.com/doctrine/orm/issues/1749)\n -Optimize OneToMany and ManyToMany without join\n- [DDC-1216](https://github.com/doctrine/orm/issues/1823)\n -A way to mark an entity to always use result cache. Like\n @UseResultCache class annotation.\n- [DDC-1247](https://github.com/doctrine/orm/issues/1856)\n -Implement AnnotationDriver::addExcludePath\n- [DDC-1563](https://github.com/doctrine/orm/issues/2199)\n -Result cache for repository queries\n- [DDC-2021](https://github.com/doctrine/orm/issues/2698)\n -Array Data in Member OF\n- [DDC-2773](https://github.com/doctrine/orm/issues/3520)\n -[\\#835](https://github.com/doctrine/orm/pull/835) Value\n objects (Based on \\#634)\n- [DDC-2959](https://github.com/doctrine/orm/issues/3722)\n -[\\#937](https://github.com/doctrine/orm/pull/937)\n Extra-lazy for containsKey on collections\n- [DDC-3117](https://github.com/doctrine/orm/issues/3893)\n -[\\#1027](https://github.com/doctrine/orm/pull/1027) Support\n for Partial Indexes for PostgreSql and Sqlite\n- [DDC-3161](https://github.com/doctrine/orm/issues/3941)\n -[\\#1054](https://github.com/doctrine/orm/pull/1054)\n SQLFilters enahancements\n- [DDC-3186](https://github.com/doctrine/orm/issues/3968)\n -[\\#1069](https://github.com/doctrine/orm/pull/1069) added\n method to be able to reuse the console application\n- [DDC-3231](https://github.com/doctrine/orm/issues/4019)\n -[\\#1089](https://github.com/doctrine/orm/pull/1089) Entity\n repository generator default repository\n- [DDC-3300](https://github.com/doctrine/orm/issues/4094)\n -[\\#1130](https://github.com/doctrine/orm/pull/1130) Added\n resolve entities support in discrim. map\n- [DDC-3385](https://github.com/doctrine/orm/issues/4187)\n -[\\#1181](https://github.com/doctrine/orm/pull/1181) Support\n fetching entities by aliased name\n- [DDC-3462](https://github.com/doctrine/orm/issues/4272)\n -[\\#1230](https://github.com/doctrine/orm/pull/1230) Allow\n dumping SQL query when passing DQL on cli\n- [DDC-3503](https://github.com/doctrine/orm/issues/4317)\n -[\\#1257](https://github.com/doctrine/orm/pull/1257) Resolve\n target entity also in discriminator map (allows interfaces and\n custom names in discriminator map)\n- [DDC-3567](https://github.com/doctrine/orm/issues/4386)\n -[\\#1303](https://github.com/doctrine/orm/pull/1303) make\n QueryBuilder::getAllAliases public\n\nImprovement\n-----------\n\n- [DDC-54](https://github.com/doctrine/orm/issues/5047)\n -Trigger postLoad events and callbacks after associations have been\n initialized\n- [DDC-1590](https://github.com/doctrine/orm/issues/2227)\n -Fix Inheritance in Code-Generation\n- [DDC-1787](https://github.com/doctrine/orm/issues/2441)\n -Fix for JoinedSubclassPersister, multiple inserts with versioning\n throws an optimistic locking exception\n- [DDC-1858](https://github.com/doctrine/orm/issues/2519)\n -LIKE and IS NULL operators not supported in HAVING clause\n- [DDC-2052](https://github.com/doctrine/orm/issues/2732)\n -Custom tree walkers are not allowed to add new components to the\n query\n- [DDC-2061](https://github.com/doctrine/orm/issues/2742)\n -Matching Criteria on a PersistentCollection only works on OneToMany\n associations\n- [DDC-2128](https://github.com/doctrine/orm/issues/2815)\n -[\\#507](https://github.com/doctrine/orm/pull/507) Now\n MetaDataFilter takess also regexp. For example whern you want to\n- [DDC-2183](https://github.com/doctrine/orm/issues/2876)\n -Second Level Cache improvements\n- [DDC-2210](https://github.com/doctrine/orm/issues/2907)\n -PHP warning in ProxyFactory when renaming proxy file\n- [DDC-2217](https://github.com/doctrine/orm/issues/2914)\n -Return a lazy collection from\n PersistentCollection::match(\\$criteria)\n- [DDC-2319](https://github.com/doctrine/orm/issues/3023)\n -[\\#590](https://github.com/doctrine/orm/pull/590) DQL\n Query: process ArrayCollection values to ease development\n- [DDC-2534](https://github.com/doctrine/orm/issues/3258)\n -[\\#711](https://github.com/doctrine/orm/pull/711) Coveralls\n code coverage\n- [DDC-2538](https://github.com/doctrine/orm/issues/3262)\n -[\\#713](https://github.com/doctrine/orm/pull/713) Quick\n grammar fix\n- [DDC-2544](https://github.com/doctrine/orm/issues/3269)\n -[\\#717](https://github.com/doctrine/orm/pull/717) Allow\n query parameters starting with an underscore\n- [DDC-2546](https://github.com/doctrine/orm/issues/3271)\n -[\\#719](https://github.com/doctrine/orm/pull/719) Access\n properties via static:: instead of self::.\n- [DDC-2615](https://github.com/doctrine/orm/issues/3347)\n -LIKE operator not supported in HAVING clause\n- [DDC-2636](https://github.com/doctrine/orm/issues/3370)\n -Handle SQLite with dot notation in @Table and @JoinTable\n- [DDC-2639](https://github.com/doctrine/orm/issues/3373)\n -[\\#771](https://github.com/doctrine/orm/pull/771) Added\n indexBy option to createQueryBuilder\n- [DDC-2770](https://github.com/doctrine/orm/issues/3517)\n -[\\#833](https://github.com/doctrine/orm/pull/833)\n Generate-Entities-Console-Command: Adding an 'avoid backup' flag\n- [DDC-2789](https://github.com/doctrine/orm/issues/3537)\n -[\\#844](https://github.com/doctrine/orm/pull/844) Teach\n orm:validate-schema to --skip-mapping and --skip-sync\n- [DDC-2794](https://github.com/doctrine/orm/issues/3543)\n -the Paginator does not support arbitrary join\n- [DDC-2814](https://github.com/doctrine/orm/issues/3566)\n -[\\#858](https://github.com/doctrine/orm/pull/858) lifts an\n unnecessary restriction on ResultSetMappingBuilder\n- [DDC-2824](https://github.com/doctrine/orm/issues/3577)\n -[\\#863](https://github.com/doctrine/orm/pull/863) The new\n configuration option: defaultQueryHints\n- [DDC-2861](https://github.com/doctrine/orm/issues/3617)\n -[\\#881](https://github.com/doctrine/orm/pull/881) Fix\n persistence exception on a table with a schema on a platform without\n schema support\n- [DDC-2865](https://github.com/doctrine/orm/issues/3621)\n -[\\#882](https://github.com/doctrine/orm/pull/882) Efficient\n counting on Criteria\n- [DDC-2868](https://github.com/doctrine/orm/issues/3624)\n -[\\#885](https://github.com/doctrine/orm/pull/885) Add\n support for ManyToMany Criteria\n- [DDC-2926](https://github.com/doctrine/orm/issues/3686)\n -[\\#914](https://github.com/doctrine/orm/pull/914) added\n license badge\n- [DDC-2970](https://github.com/doctrine/orm/issues/3735)\n -[\\#946](https://github.com/doctrine/orm/pull/946) Cleaned\n up unused imports\n- [DDC-2981](https://github.com/doctrine/orm/issues/3745)\n -Multi get for second level cache (Doctrine Cache related)\n- [DDC-2982](https://github.com/doctrine/orm/issues/3746)\n -[\\#954](https://github.com/doctrine/orm/pull/954) Multi Get\n support for Second Level Cache\n- [DDC-2984](https://github.com/doctrine/orm/issues/3748)\n -Support Custom DBAL types to be used as identifiers\n- [DDC-2991](https://github.com/doctrine/orm/issues/3755)\n -[\\#957](https://github.com/doctrine/orm/pull/957) makes\n doctrine less dependent upon the symfony yaml component\n- [DDC-2999](https://github.com/doctrine/orm/issues/3763)\n -[\\#962](https://github.com/doctrine/orm/pull/962) Stop\n executeDeletions when there is nothing to to delete anymore\n- [DDC-3000](https://github.com/doctrine/orm/issues/3767)\n -[\\#963](https://github.com/doctrine/orm/pull/963) SQLFilter\n -- allows to check if a parameter was set\n- [DDC-3004](https://github.com/doctrine/orm/issues/3771)\n -[\\#966](https://github.com/doctrine/orm/pull/966) Simplify\n build matrix\n- [DDC-3005](https://github.com/doctrine/orm/issues/3772)\n -Events::postLoad fires without filled associations\n- [DDC-3014](https://github.com/doctrine/orm/issues/3781)\n -[\\#973](https://github.com/doctrine/orm/pull/973) Added\n index flags support in annotation, xml & yaml mapping drivers.\n- [DDC-3032](https://github.com/doctrine/orm/issues/3801)\n -[\\#980](https://github.com/doctrine/orm/pull/980) Added\n options attribute export to Annotation, Xml & Yaml exporters.\n- [DDC-3039](https://github.com/doctrine/orm/issues/3808)\n -[\\#983](https://github.com/doctrine/orm/pull/983) Added\n MEMBER OF and INSTANCE OF to ExpressionBuilder\n- [DDC-3068](https://github.com/doctrine/orm/issues/3840)\n -EntityManager::find does not accept an array of object as a primary\n key\n- [DDC-3070](https://github.com/doctrine/orm/issues/3843)\n -[\\#1001](https://github.com/doctrine/orm/pull/1001)\n [DDC-3005](https://github.com/doctrine/orm/issues/3772)\n Defer invoking of postLoad event to the end of hydration cycle.\n- [DDC-3076](https://github.com/doctrine/orm/issues/3849)\n -[\\#1006](https://github.com/doctrine/orm/pull/1006)\n Handling invalid discriminator values\n- [DDC-3114](https://github.com/doctrine/orm/issues/3891)\n -[\\#1026](https://github.com/doctrine/orm/pull/1026) Remove\n some redundant clauses\n- [DDC-3133](https://github.com/doctrine/orm/issues/3911)\n -[\\#1036](https://github.com/doctrine/orm/pull/1036) Move\n space addition to implementation.\n- [DDC-3138](https://github.com/doctrine/orm/issues/3916)\n -[\\#1037](https://github.com/doctrine/orm/pull/1037) I can't\n look at those semicolons, sorry ;-)\n- [DDC-3150](https://github.com/doctrine/orm/issues/3929)\n -[\\#1047](https://github.com/doctrine/orm/pull/1047) Minor\n grammatical corrections\n- [DDC-3178](https://github.com/doctrine/orm/issues/3959)\n -[\\#1064](https://github.com/doctrine/orm/pull/1064) remove\n on-update from join-column\n- [DDC-3249](https://github.com/doctrine/orm/issues/4037)\n -[\\#1105](https://github.com/doctrine/orm/pull/1105) Add\n support for nesting embeddables\n- [DDC-3257](https://github.com/doctrine/orm/issues/4046)\n -[\\#1112](https://github.com/doctrine/orm/pull/1112)\n DefaultRepositoryFactory: single repository for aliased entities\n- [DDC-3258](https://github.com/doctrine/orm/issues/4047)\n -[\\#1113](https://github.com/doctrine/orm/pull/1113) Added\n support for composite primary key on findBy methods and Criteria\n- [DDC-3274](https://github.com/doctrine/orm/issues/4064)\n -Improve schema validator error message\n- [DDC-3275](https://github.com/doctrine/orm/issues/4065)\n -[\\#1121](https://github.com/doctrine/orm/pull/1121)\n [DDC-3274](https://github.com/doctrine/orm/issues/4064)\n Improve schema validator error message for invalid bi-directional\n relations\n- [DDC-3276](https://github.com/doctrine/orm/issues/4066)\n -[\\#1122](https://github.com/doctrine/orm/pull/1122) Support\n arithmetic expressions in `COUNT()`\n- [DDC-3304](https://github.com/doctrine/orm/issues/4098)\n -[EntityGenerator] Embeddables properties and methods are broken\n- [DDC-3305](https://github.com/doctrine/orm/issues/4099)\n -[\\#1133](https://github.com/doctrine/orm/pull/1133)\n [Embeddables] Improved exception message\n- [DDC-3307](https://github.com/doctrine/orm/issues/4101)\n -[\\#1135](https://github.com/doctrine/orm/pull/1135)\n [DDC-3304](https://github.com/doctrine/orm/issues/4098)\n Add support for embeddables in entity generator\n- [DDC-3418](https://github.com/doctrine/orm/issues/4223)\n -Indexes not inherited from mapped superclass\n- [DDC-3457](https://github.com/doctrine/orm/issues/4266)\n -[\\#1227](https://github.com/doctrine/orm/pull/1227) Ensure\n query cache is not ArrayCache in production\n- [DDC-3461](https://github.com/doctrine/orm/issues/4271)\n -[\\#1229](https://github.com/doctrine/orm/pull/1229)\n Identity in onetoone association builder\n- [DDC-3477](https://github.com/doctrine/orm/issues/4287)\n -[\\#1238](https://github.com/doctrine/orm/pull/1238) Avoid\n prefixing columns when `false` is assigned to `column-prefix`\n- [DDC-3479](https://github.com/doctrine/orm/issues/4289)\n -[\\#1240](https://github.com/doctrine/orm/pull/1240) Include\n IDs in the exception message to ease debugging\n- [DDC-3483](https://github.com/doctrine/orm/issues/4294)\n -[\\#1243](https://github.com/doctrine/orm/pull/1243) Fixed\n phpunit tests autoload requirements and moved to composer\n autoload-dev\n- [DDC-3486](https://github.com/doctrine/orm/issues/4297)\n -[\\#1245](https://github.com/doctrine/orm/pull/1245)\n Implemented support for one to many extra lazy with joined\n inheritance.\n- [DDC-3487](https://github.com/doctrine/orm/issues/4298)\n -[\\#1246](https://github.com/doctrine/orm/pull/1246) Moved\n delete() and update() to proper locations.\n- [DDC-3490](https://github.com/doctrine/orm/issues/4302)\n -[\\#1248](https://github.com/doctrine/orm/pull/1248)\n improved error handling for invalid association values \\#2\n- [DDC-3492](https://github.com/doctrine/orm/issues/4304)\n -[\\#1249](https://github.com/doctrine/orm/pull/1249) Support\n for extra lazy get for both owning and inverse side on many to many\n associations.\n- [DDC-3495](https://github.com/doctrine/orm/issues/4307)\n -[\\#1251](https://github.com/doctrine/orm/pull/1251) travis:\n optimize to run coverage only once\n- [DDC-3496](https://github.com/doctrine/orm/issues/4308)\n -[\\#1252](https://github.com/doctrine/orm/pull/1252) Include\n className in calls to NamingStrategy joinColumnName method\n- [DDC-3501](https://github.com/doctrine/orm/issues/4315)\n -[\\#1255](https://github.com/doctrine/orm/pull/1255)\n Cleanup: PHP 5.3 support end\n- [DDC-3504](https://github.com/doctrine/orm/issues/4318)\n -[\\#1258](https://github.com/doctrine/orm/pull/1258)\n Classify persisters into more granular namespaces.\n- [DDC-3514](https://github.com/doctrine/orm/issues/4328)\n -LimitSubqueryOutputWalker should not duplicate orderBy clauses\n- [DDC-3521](https://github.com/doctrine/orm/issues/4336)\n -[\\#1269](https://github.com/doctrine/orm/pull/1269)\n [DDC-3520](https://github.com/doctrine/orm/issues/4335)\n self-update composer before install\n- [DDC-3528](https://github.com/doctrine/orm/issues/4343)\n -[\\#1274](https://github.com/doctrine/orm/pull/1274)\n PersistentCollection now extends AbstractLazyCollection.\n- [DDC-3541](https://github.com/doctrine/orm/issues/4358)\n -[\\#1286](https://github.com/doctrine/orm/pull/1286)\n Removing XDebug from non-coverage builds\n- [DDC-3546](https://github.com/doctrine/orm/issues/4363)\n -[\\#1289](https://github.com/doctrine/orm/pull/1289) Improve\n test suite\n- [DDC-3549](https://github.com/doctrine/orm/issues/4366)\n -[\\#1292](https://github.com/doctrine/orm/pull/1292) Mark\n getSelectConditionStatementColumnSQL method as private\n- [DDC-3588](https://github.com/doctrine/orm/issues/4409)\n -[\\#1314](https://github.com/doctrine/orm/pull/1314)\n DATE\\_ADD\n - Support for seconds\n- [DDC-3590](https://github.com/doctrine/orm/issues/4412)\n -[\\#1316](https://github.com/doctrine/orm/pull/1316) Allow\n to join non-public schema tables\n- [DDC-3594](https://github.com/doctrine/orm/issues/4416)\n -[\\#1319](https://github.com/doctrine/orm/pull/1319) travis:\n PHP 7.0 nightly added\n- [DDC-3607](https://github.com/doctrine/orm/issues/4431)\n -[\\#1326](https://github.com/doctrine/orm/pull/1326) Allow\n AssociationBuilder to set a relation as orphan removal\n- [DDC-3630](https://github.com/doctrine/orm/issues/4457)\n -[\\#1343](https://github.com/doctrine/orm/pull/1343) Support\n embeddables in partial object query expression\n [DDC-3621](https://github.com/doctrine/orm/issues/4447)\n- [DDC-2850](https://github.com/doctrine/orm/issues/3605)\n -Allow cascaded clearing of Entities associated to the indicated\n Entity\n\nBugfix\n------\n\n- [DDC-1624](https://github.com/doctrine/orm/issues/2265)\n -Locking CTI doesnt work on SQL Server\n- [DDC-2310](https://github.com/doctrine/orm/issues/3014)\n -Recent changes to DBAL SQL Server platform lock hinting breaks ORM\n SqlWalker in DQL queries with joins\n- [DDC-2352](https://github.com/doctrine/orm/issues/3059)\n -[\\#615](https://github.com/doctrine/orm/pull/615) Update\n SqlWalker.php\n- [DDC-2372](https://github.com/doctrine/orm/issues/3081)\n -[\\#632](https://github.com/doctrine/orm/pull/632) entity\n generator - ignore trait properties and methods\n- [DDC-2504](https://github.com/doctrine/orm/issues/3226)\n -[\\#696](https://github.com/doctrine/orm/pull/696) extra\n lazy joined test\n- [DDC-2559](https://github.com/doctrine/orm/issues/3285)\n -[\\#728](https://github.com/doctrine/orm/pull/728) Color\n message like the update tools\n- [DDC-2561](https://github.com/doctrine/orm/issues/3288)\n -[\\#729](https://github.com/doctrine/orm/pull/729) add\n missing hint about lifecycle callback\n- [DDC-2562](https://github.com/doctrine/orm/issues/3289)\n -[\\#730](https://github.com/doctrine/orm/pull/730) To avoid\n \"SpacingAfterParams\" error with PHPCS Symfony2 coding standard\n- [DDC-2566](https://github.com/doctrine/orm/issues/3293)\n -[\\#732](https://github.com/doctrine/orm/pull/732) Update\n working-with-associations.rst\n- [DDC-2568](https://github.com/doctrine/orm/issues/3295)\n -[\\#733](https://github.com/doctrine/orm/pull/733) Update\n Parser.php\n- [DDC-2572](https://github.com/doctrine/orm/issues/3300)\n -ResolveTargetEntityListener does not work as documented.\n- [DDC-2573](https://github.com/doctrine/orm/issues/3301)\n -[\\#735](https://github.com/doctrine/orm/pull/735) Fix proxy\n performance test\n- [DDC-2575](https://github.com/doctrine/orm/issues/3303)\n -Hydration bug\n- [DDC-2580](https://github.com/doctrine/orm/issues/3309)\n -[\\#739](https://github.com/doctrine/orm/pull/739) Fix\n DDC-2579\n- [DDC-2581](https://github.com/doctrine/orm/issues/3310)\n -[\\#740](https://github.com/doctrine/orm/pull/740)\n Synchronized support of FilterCollection with ODM by adding missing\n method\n- [DDC-2584](https://github.com/doctrine/orm/issues/3313)\n -[\\#743](https://github.com/doctrine/orm/pull/743) Added\n coverage to DDC-2524. Updated DDC-1719 to fix related DBAL bug.\n- [DDC-2588](https://github.com/doctrine/orm/issues/3317)\n -[\\#745](https://github.com/doctrine/orm/pull/745) Update\n basic-mapping.rst\n- [DDC-2591](https://github.com/doctrine/orm/issues/3321)\n -[\\#747](https://github.com/doctrine/orm/pull/747) fix some\n file mode 755-\\>644\n- [DDC-2592](https://github.com/doctrine/orm/issues/3322)\n -[\\#748](https://github.com/doctrine/orm/pull/748) Add hour\n to DATE\\_ADD and DATE\\_SUB\n- [DDC-2603](https://github.com/doctrine/orm/issues/3334)\n -[\\#751](https://github.com/doctrine/orm/pull/751) Added\n coverage for querying support during postLoad.\n- [DDC-2604](https://github.com/doctrine/orm/issues/3335)\n -[\\#752](https://github.com/doctrine/orm/pull/752) ORM side\n fixes.\n- [DDC-2616](https://github.com/doctrine/orm/issues/3348)\n -[\\#759](https://github.com/doctrine/orm/pull/759) Fixed out\n of sync code examples in getting-started.rst\n- [DDC-2624](https://github.com/doctrine/orm/issues/3357)\n -ManyToManyPersister fails to handle cloned PeristentCollections\n- [DDC-2652](https://github.com/doctrine/orm/issues/3388)\n -[\\#777](https://github.com/doctrine/orm/pull/777) Fixed\n typo in mapping documentation\n- [DDC-2653](https://github.com/doctrine/orm/issues/3389)\n -[\\#778](https://github.com/doctrine/orm/pull/778) Fixed\n typo in property mapping\n- [DDC-2654](https://github.com/doctrine/orm/issues/3390)\n -[\\#779](https://github.com/doctrine/orm/pull/779) Fixed\n grammar in custom data types\n- [DDC-2656](https://github.com/doctrine/orm/issues/3392)\n -[\\#780](https://github.com/doctrine/orm/pull/780)\n [DDC-2655](https://github.com/doctrine/orm/issues/3391)\n Don't let getOneOrNullResult throw NoResultException\n- [DDC-2668](https://github.com/doctrine/orm/issues/3405)\n -DQL TRIM function is not converted into TRIM SQL correctly\n- [DDC-2673](https://github.com/doctrine/orm/issues/3411)\n -[\\#785](https://github.com/doctrine/orm/pull/785) Update\n dql-custom-walkers.rst\n- [DDC-2676](https://github.com/doctrine/orm/issues/3414)\n -[\\#786](https://github.com/doctrine/orm/pull/786) Minor\n updates while reading the basic-mapping page\n- [DDC-2678](https://github.com/doctrine/orm/issues/3416)\n -[\\#787](https://github.com/doctrine/orm/pull/787) Update\n DDC719Test.php to be compatible with MsSQL\n- [DDC-2681](https://github.com/doctrine/orm/issues/3420)\n -[\\#790](https://github.com/doctrine/orm/pull/790) HHVM\n compatibility: func\\_get\\_args\n- [DDC-2682](https://github.com/doctrine/orm/issues/3421)\n -[\\#791](https://github.com/doctrine/orm/pull/791)\n Implemented \"contains\" operator for Criteria expressions\n- [DDC-2683](https://github.com/doctrine/orm/issues/3422)\n -[\\#792](https://github.com/doctrine/orm/pull/792)\n [DDC-2668](https://github.com/doctrine/orm/issues/3405)\n Fix trim leading zero string\n- [DDC-2689](https://github.com/doctrine/orm/issues/3428)\n -Doctrine ORM test suite failing on MySQL\n- [DDC-2690](https://github.com/doctrine/orm/issues/3430)\n -Doctrine ORM test suite failing on PostgresSQL\n- [DDC-2696](https://github.com/doctrine/orm/issues/3436)\n -[\\#795](https://github.com/doctrine/orm/pull/795) Update\n query-builder.rst\n- [DDC-2699](https://github.com/doctrine/orm/issues/3439)\n -[\\#797](https://github.com/doctrine/orm/pull/797) CS fixes\n- [DDC-2700](https://github.com/doctrine/orm/issues/3442)\n -[\\#798](https://github.com/doctrine/orm/pull/798)\n Identifier can be empty for MappedSuperclasses\n- [DDC-2702](https://github.com/doctrine/orm/issues/3444)\n -[\\#799](https://github.com/doctrine/orm/pull/799) remove\n unused test case\n- [DDC-2704](https://github.com/doctrine/orm/issues/3446)\n -When using Discriminator EntityManager\\#merge fails\n- [DDC-2706](https://github.com/doctrine/orm/issues/3448)\n -[\\#801](https://github.com/doctrine/orm/pull/801) Update\n SqlWalker.php fixed wrong GROUP BY clause on SQL Server platform\n- [DDC-2707](https://github.com/doctrine/orm/issues/3449)\n -[\\#802](https://github.com/doctrine/orm/pull/802) Respect\n unsigned fields when tables get converted to entities.\n- [DDC-2711](https://github.com/doctrine/orm/issues/3453)\n -[\\#803](https://github.com/doctrine/orm/pull/803) Appended\n newline to (newly) generated files for PSR2 compatibility\n- [DDC-2716](https://github.com/doctrine/orm/issues/3458)\n -[\\#808](https://github.com/doctrine/orm/pull/808) Second\n level cache\n- [DDC-2718](https://github.com/doctrine/orm/issues/3460)\n -[\\#809](https://github.com/doctrine/orm/pull/809) Fix\n DDC-1514 test\n- [DDC-2720](https://github.com/doctrine/orm/issues/3462)\n -[\\#811](https://github.com/doctrine/orm/pull/811) Update\n SingleScalarHydrator error message\n- [DDC-2722](https://github.com/doctrine/orm/issues/3464)\n -[\\#812](https://github.com/doctrine/orm/pull/812) [Doc] add\n direct links to dbal and dql documentation\n- [DDC-2728](https://github.com/doctrine/orm/issues/3470)\n -[\\#815](https://github.com/doctrine/orm/pull/815) Remove\n unused use statement\n- [DDC-2732](https://github.com/doctrine/orm/issues/3475)\n -[\\#816](https://github.com/doctrine/orm/pull/816) Options\n not respected for ID Fields in XML Mapping Driver\n- [DDC-2737](https://github.com/doctrine/orm/issues/3480)\n -[\\#817](https://github.com/doctrine/orm/pull/817) Removed\n \"minimum-stability\" : \"dev\" from composer.json\n- [DDC-2738](https://github.com/doctrine/orm/issues/3481)\n -[\\#818](https://github.com/doctrine/orm/pull/818) Clarified\n tutorial context in section introducing `orm:scehma-tool:*` commnads\n- [DDC-2740](https://github.com/doctrine/orm/issues/3484)\n -[\\#819](https://github.com/doctrine/orm/pull/819) Fixes a\n Fatal Error when using a subexpression in parenthesis\n- [DDC-2741](https://github.com/doctrine/orm/issues/3486)\n -[\\#820](https://github.com/doctrine/orm/pull/820) Added\n support for field options to FieldBuilder\n- [DDC-2750](https://github.com/doctrine/orm/issues/3495)\n -[\\#822](https://github.com/doctrine/orm/pull/822) DDC-2748\n DQL expression \"in\" not working with Collection\n- [DDC-2753](https://github.com/doctrine/orm/issues/3498)\n -[\\#824](https://github.com/doctrine/orm/pull/824)\n s/PostgreSQLPlatform/PostgreSqlPlatform/\n- [DDC-2757](https://github.com/doctrine/orm/issues/3502)\n -Manual transcation handling not possible when transaction fails,\n documentation gives wrong example\n- [DDC-2759](https://github.com/doctrine/orm/issues/3504)\n -ArrayHydration: Only first entity in OneToMany association is\n hydrated\n- [DDC-2760](https://github.com/doctrine/orm/issues/3506)\n -[\\#827](https://github.com/doctrine/orm/pull/827) Added a\n failing test case for DDC-2759.\n- [DDC-2764](https://github.com/doctrine/orm/issues/3510)\n -An orderBy on Criteria leads to DQL semantical error\n- [DDC-2765](https://github.com/doctrine/orm/issues/3511)\n -[\\#830](https://github.com/doctrine/orm/pull/830)\n [DDC-2764](https://github.com/doctrine/orm/issues/3510)\n Prefix criteria orderBy with rootAlias\n- [DDC-2769](https://github.com/doctrine/orm/issues/3515)\n -[\\#832](https://github.com/doctrine/orm/pull/832) Added\n \"readOnly: true\" to YAML reference\n- [DDC-2771](https://github.com/doctrine/orm/issues/3518)\n -[\\#834](https://github.com/doctrine/orm/pull/834) Add\n example use of repositoryClass in YAML\n- [DDC-2774](https://github.com/doctrine/orm/issues/3521)\n -[\\#836](https://github.com/doctrine/orm/pull/836) Update\n annotations-reference.rst\n- [DDC-2775](https://github.com/doctrine/orm/pull/837)\n -Bug with cascade remove\n- [DDC-2782](https://github.com/doctrine/orm/issues/3530)\n -[\\#842](https://github.com/doctrine/orm/pull/842) Added\n EntityManager query creation tests\n- [DDC-2790](https://github.com/doctrine/orm/issues/3539)\n -[\\#845](https://github.com/doctrine/orm/pull/845) Don't\n compute changeset for entities that are going to be deleted\n- [DDC-2792](https://github.com/doctrine/orm/issues/3541)\n -[\\#846](https://github.com/doctrine/orm/pull/846)\n joinColumn is not required in manyToMany\n- [DDC-2798](https://github.com/doctrine/orm/issues/3547)\n -[\\#849](https://github.com/doctrine/orm/pull/849) Error\n with Same Field, Multiple Values, Criteria and QueryBuilder\n- [DDC-2799](https://github.com/doctrine/orm/issues/3548)\n -[\\#850](https://github.com/doctrine/orm/pull/850) Event\n listener to programmatically attach entity listeners.\n- [DDC-2811](https://github.com/doctrine/orm/issues/3563)\n -[\\#854](https://github.com/doctrine/orm/pull/854) fix\n relative path to doctrine/common\n- [DDC-2812](https://github.com/doctrine/orm/issues/3564)\n -[\\#856](https://github.com/doctrine/orm/pull/856) Fix\n dependency for\n tests/Doctrine/Tests/ORM/Functional/ReferenceProxyTest.php\n- [DDC-2827](https://github.com/doctrine/orm/issues/3580)\n -[\\#864](https://github.com/doctrine/orm/pull/864) Updated\n parser to support aggegrate functions in null comparisons\n- [DDC-2831](https://github.com/doctrine/orm/issues/3584)\n -[\\#866](https://github.com/doctrine/orm/pull/866)\n Mentioning the 'refresh' cascading property in the documentation\n list\n- [DDC-2843](https://github.com/doctrine/orm/issues/3597)\n -SchemaTool update SQL always contains queries to set default value\n on columns, even if they haven't changed.\n- [DDC-2847](https://github.com/doctrine/orm/issues/3601)\n -[\\#871](https://github.com/doctrine/orm/pull/871) XCache\n cannot be flushed on the CLI -\\> for pretty much the same reason as\n APC\n- [DDC-2853](https://github.com/doctrine/orm/issues/3608)\n -[\\#873](https://github.com/doctrine/orm/pull/873) Try\n running unit tests on HHVM\n- [DDC-2855](https://github.com/doctrine/orm/issues/3610)\n -[\\#875](https://github.com/doctrine/orm/pull/875) Adding\n tests that confirm that DDC-2845 is fixed\n- [DDC-2856](https://github.com/doctrine/orm/issues/3611)\n -[\\#876](https://github.com/doctrine/orm/pull/876) Fixing\n wrong key for allowing HHVM failures\n- [DDC-2862](https://github.com/doctrine/orm/issues/3618)\n -When update cached entitiy, entity lost OneToOne relationship\n- [DDC-2866](https://github.com/doctrine/orm/issues/3622)\n -[\\#883](https://github.com/doctrine/orm/pull/883)\n [DDC-2862](https://github.com/doctrine/orm/issues/3618)\n Fix non initialized association proxy\n- [DDC-2867](https://github.com/doctrine/orm/issues/3623)\n -[\\#884](https://github.com/doctrine/orm/pull/884) [SLC] Fix\n cache misses using one-to-one inverse side\n- [DDC-2869](https://github.com/doctrine/orm/issues/3625)\n -[\\#886](https://github.com/doctrine/orm/pull/886)\n [DDC-1256](https://github.com/doctrine/orm/issues/1866)\n Fix applying ON/WITH conditions to first join in Class Table\n Inheritance\n- [DDC-2875](https://github.com/doctrine/orm/issues/3632)\n -[\\#890](https://github.com/doctrine/orm/pull/890)\n [DBAL-563] Add general IDENTITY generator type support for sequence\n emulating platforms\n- [DDC-2876](https://github.com/doctrine/orm/issues/3633)\n -[\\#891](https://github.com/doctrine/orm/pull/891) Allow to\n not generate extra use\n- [DDC-2878](https://github.com/doctrine/orm/issues/3635)\n -[\\#893](https://github.com/doctrine/orm/pull/893)\n autoGenerate arg from bool to int\n- [DDC-2880](https://github.com/doctrine/orm/issues/3638)\n -[\\#894](https://github.com/doctrine/orm/pull/894) Fix typos\n -QueryBuilder\n- [DDC-2884](https://github.com/doctrine/orm/issues/3641)\n -[\\#896](https://github.com/doctrine/orm/pull/896) Ensure\n elements preceed\n- [DDC-2885](https://github.com/doctrine/orm/issues/3642)\n -[\\#897](https://github.com/doctrine/orm/pull/897) Respected\n 'inheritanceType' at Entity level\n- [DDC-2889](https://github.com/doctrine/orm/issues/3646)\n -[\\#900](https://github.com/doctrine/orm/pull/900) Fix\n connection mock fetchColumn signature\n- [DDC-2890](https://github.com/doctrine/orm/issues/3648)\n -Paginator generates invalid sql for some dql with\n setUseOutputWalkers(false) and \\$fetchJoinCollection = true\n- [DDC-2903](https://github.com/doctrine/orm/issues/3662)\n -[\\#906](https://github.com/doctrine/orm/pull/906) removed\n erroneous tip\n- [DDC-2907](https://github.com/doctrine/orm/issues/3665)\n -[\\#907](https://github.com/doctrine/orm/pull/907)\n [DDC-1632](https://github.com/doctrine/orm/issues/2273)\n OneToMany Fetch eager\n- [DDC-2908](https://github.com/doctrine/orm/issues/3666)\n -[\\#908](https://github.com/doctrine/orm/pull/908)\n [DDC-2862](https://github.com/doctrine/orm/issues/3618)\n Fix lazy association load\n- [DDC-2913](https://github.com/doctrine/orm/issues/3672)\n -[\\#909](https://github.com/doctrine/orm/pull/909) Fix\n DatabaseDriverTest on SQL Server\n- [DDC-2914](https://github.com/doctrine/orm/issues/3673)\n -[\\#910](https://github.com/doctrine/orm/pull/910)\n [DDC-2310](https://github.com/doctrine/orm/issues/3014)\n Fix SQL generation on table lock hint capable platforms\n- [DDC-2916](https://github.com/doctrine/orm/issues/3675)\n -[\\#911](https://github.com/doctrine/orm/pull/911) fix\n foreach coding style\n- [DDC-2919](https://github.com/doctrine/orm/issues/3678)\n -LockMode::NONE evaluation inconsistencies in ORM\n- [DDC-2921](https://github.com/doctrine/orm/issues/3681)\n -[\\#912](https://github.com/doctrine/orm/pull/912) Avoid\n PersistentCollection::isEmpty() to fully load the collection.\n- [DDC-2931](https://github.com/doctrine/orm/issues/3692)\n -OneToOne self-referencing fails when loading referenced objects\n- [DDC-2933](https://github.com/doctrine/orm/issues/3694)\n -[\\#917](https://github.com/doctrine/orm/pull/917) DDC-2931\n- [DDC-2934](https://github.com/doctrine/orm/issues/3695)\n -[\\#918](https://github.com/doctrine/orm/pull/918) Fix use\n of function in OrderBy\n- [DDC-2935](https://github.com/doctrine/orm/issues/3696)\n -[\\#919](https://github.com/doctrine/orm/pull/919) tests for\n DDC-2890\n- [DDC-2937](https://github.com/doctrine/orm/issues/3700)\n -[\\#920](https://github.com/doctrine/orm/pull/920)\n SingleScalarHydrator reports ambiguous error.\n- [DDC-2943](https://github.com/doctrine/orm/issues/3705)\n -Paginator not work with second level cache in Doctrine 2.5\n- [DDC-2946](https://github.com/doctrine/orm/issues/3708)\n -[\\#926](https://github.com/doctrine/orm/pull/926)\n Feature/console em helper interface\n- [DDC-2947](https://github.com/doctrine/orm/issues/3709)\n -[\\#927](https://github.com/doctrine/orm/pull/927)\n s/EntityManager/EntityManagerInterface/ in a few places\n- [DDC-2948](https://github.com/doctrine/orm/issues/3710)\n -[\\#928](https://github.com/doctrine/orm/pull/928) Support\n PHPUnit 3.8+ Compatibility\n- [DDC-2952](https://github.com/doctrine/orm/issues/3715)\n -[\\#932](https://github.com/doctrine/orm/pull/932)\n [DDC-2919](https://github.com/doctrine/orm/issues/3678)\n Make lock mode usage consistent\n- [DDC-2956](https://github.com/doctrine/orm/issues/3719)\n -[\\#934](https://github.com/doctrine/orm/pull/934) faild\n test with multiple HINT\\_CUSTOM\\_TREE\\_WALKERS\n- [DDC-2957](https://github.com/doctrine/orm/issues/3720)\n -[\\#935](https://github.com/doctrine/orm/pull/935) Remove\n incorrect (outdated) validation for public fields in SchemaValidator\n- [DDC-2958](https://github.com/doctrine/orm/issues/3721)\n -[\\#936](https://github.com/doctrine/orm/pull/936) Making\n testing dependencies explicit\n- [DDC-2961](https://github.com/doctrine/orm/issues/3725)\n -[\\#938](https://github.com/doctrine/orm/pull/938) Missing\n join-tables added in example\n- [DDC-2967](https://github.com/doctrine/orm/issues/3731)\n -[\\#943](https://github.com/doctrine/orm/pull/943) Validate\n embeddables do not contain other embeddables.\n- [DDC-2968](https://github.com/doctrine/orm/issues/3732)\n -[\\#944](https://github.com/doctrine/orm/pull/944) Fixed\n InputOption modes\n- [DDC-2969](https://github.com/doctrine/orm/issues/3733)\n -[\\#945](https://github.com/doctrine/orm/pull/945) Fix CS\n- [DDC-2971](https://github.com/doctrine/orm/issues/3736)\n -[\\#947](https://github.com/doctrine/orm/pull/947) Cleaned\n up further unused imports.\n- [DDC-2974](https://github.com/doctrine/orm/issues/3739)\n -[\\#950](https://github.com/doctrine/orm/pull/950) Can cache\n empty collections\n- [DDC-2975](https://github.com/doctrine/orm/issues/3740)\n -[\\#951](https://github.com/doctrine/orm/pull/951) More\n informational entity not found exception\n- [DDC-2976](https://github.com/doctrine/orm/issues/3741)\n -[\\#952](https://github.com/doctrine/orm/pull/952) Add\n DB-level onDelete CASCADE example\n- [DDC-2989](https://github.com/doctrine/orm/issues/3753)\n -ORM should allow custom index names for foreign associations.\n- [DDC-2996](https://github.com/doctrine/orm/issues/3760)\n -UnitOfWork::recomputeSingleEntityChangeSet() will not add a new\n change set\n- [DDC-2997](https://github.com/doctrine/orm/issues/3761)\n -[\\#960](https://github.com/doctrine/orm/pull/960) allow\n passing EntityManagerInterface when creating a HelperSet\n- [DDC-2998](https://github.com/doctrine/orm/issues/3762)\n -[\\#961](https://github.com/doctrine/orm/pull/961)\n [DDC-2984](https://github.com/doctrine/orm/issues/3748)\n Provide TestCase to reproduce bug\n- [DDC-3002](https://github.com/doctrine/orm/issues/3769)\n -[\\#964](https://github.com/doctrine/orm/pull/964)\n [DDC-2943](https://github.com/doctrine/orm/issues/3705)\n [SLC] Disable slc for pagination queries\n- [DDC-3003](https://github.com/doctrine/orm/issues/3770)\n -[\\#965](https://github.com/doctrine/orm/pull/965) [SLC] Add\n support for criteria\n- [DDC-3008](https://github.com/doctrine/orm/issues/3774)\n -[\\#967](https://github.com/doctrine/orm/pull/967) [SLC] Add\n query builder options\n- [DDC-3009](https://github.com/doctrine/orm/issues/3775)\n -[\\#968](https://github.com/doctrine/orm/pull/968) Test: Add\n failing test\n- [DDC-3010](https://github.com/doctrine/orm/issues/3777)\n -[\\#969](https://github.com/doctrine/orm/pull/969) [Doc]\n added note about Criteria limits on PersistentCollection\n- [DDC-3012](https://github.com/doctrine/orm/issues/3779)\n -[\\#971](https://github.com/doctrine/orm/pull/971) [SLC] Fix\n query association proxy\n- [DDC-3013](https://github.com/doctrine/orm/issues/3780)\n -[\\#972](https://github.com/doctrine/orm/pull/972)\n Capitalize @GeneratedValue (annotations-reference.rst)\n- [DDC-3015](https://github.com/doctrine/orm/issues/3782)\n -[\\#974](https://github.com/doctrine/orm/pull/974) [SLC]\n Resolve association cache entry\n- [DDC-3018](https://github.com/doctrine/orm/issues/3786)\n -DQL \u201cNEW\u201d Operator and Literal type \"String\"\n- [DDC-3021](https://github.com/doctrine/orm/issues/3789)\n -[\\#976](https://github.com/doctrine/orm/pull/976) Add cache\n invalidation strategy to AbstractQuery\n- [DDC-3023](https://github.com/doctrine/orm/issues/3791)\n -[\\#977](https://github.com/doctrine/orm/pull/977) Fix wrong\n annotation\n- [DDC-3028](https://github.com/doctrine/orm/issues/3796)\n -[\\#978](https://github.com/doctrine/orm/pull/978)\n [DDC-2987](https://github.com/doctrine/orm/issues/3751)\n Enable empty prefixes for inlined embeddable\n- [DDC-3033](https://github.com/doctrine/orm/issues/3802)\n -Regression in computeChangeSets (ManyToMany relation)\n- [DDC-3038](https://github.com/doctrine/orm/issues/3807)\n -[\\#982](https://github.com/doctrine/orm/pull/982) Failing\n Test (since commit 53a5a48aed7d87aa1533c0bcbd72e41b686527d8)\n- [DDC-3041](https://github.com/doctrine/orm/issues/3811)\n -[\\#984](https://github.com/doctrine/orm/pull/984) Use\n boolean values for 'unique' attribute\n- [DDC-3042](https://github.com/doctrine/orm/issues/3812)\n -select issue field names with numbers\n- [DDC-3045](https://github.com/doctrine/orm/issues/3815)\n -SQL Injection in Persister API\n- [DDC-3047](https://github.com/doctrine/orm/issues/3817)\n -XML Exporter driver does not export association fetch-mode\n- [DDC-3049](https://github.com/doctrine/orm/issues/3819)\n -[\\#988](https://github.com/doctrine/orm/pull/988) Exporter\n support for association fetch modes\n- [DDC-3054](https://github.com/doctrine/orm/issues/3825)\n -[\\#991](https://github.com/doctrine/orm/pull/991) Ability\n to define custom functions with callback instead of class name\n- [DDC-3058](https://github.com/doctrine/orm/issues/3829)\n -[\\#993](https://github.com/doctrine/orm/pull/993) Update\n JoinColumn.php\n- [DDC-3060](https://github.com/doctrine/orm/issues/3832)\n -[\\#995](https://github.com/doctrine/orm/pull/995) Allow\n cascaded clearing of associated Entities\n- [DDC-3061](https://github.com/doctrine/orm/issues/3833)\n -[\\#996](https://github.com/doctrine/orm/pull/996)\n [DDC-3027](https://github.com/doctrine/orm/issues/3795)\n Embedded in MappedSuperclass\n- [DDC-3065](https://github.com/doctrine/orm/issues/3837)\n -Generated 'IN' clause doesn't handle 'null' values (needs to add\n 'IS NULL' check)\n- [DDC-3067](https://github.com/doctrine/orm/issues/3839)\n -[\\#999](https://github.com/doctrine/orm/pull/999) DDC-3065\n null value in in criteria support\n- [DDC-3069](https://github.com/doctrine/orm/issues/3841)\n -[\\#1000](https://github.com/doctrine/orm/pull/1000)\n [DDC-3068](https://github.com/doctrine/orm/issues/3840)\n EntityManager::find accept array of object as id\n- [DDC-3071](https://github.com/doctrine/orm/issues/3844)\n -[\\#1002](https://github.com/doctrine/orm/pull/1002) Fixed\n wrongly initialized property.\n- [DDC-3074](https://github.com/doctrine/orm/issues/3847)\n -[\\#1004](https://github.com/doctrine/orm/pull/1004) Removed\n all useless occurrence of require\\_once TestInit.php\n- [DDC-3075](https://github.com/doctrine/orm/issues/3848)\n -[\\#1005](https://github.com/doctrine/orm/pull/1005) Added\n support of the subselect expressions into NEW expressions\n- [DDC-3078](https://github.com/doctrine/orm/issues/3851)\n -Doctrine::\\_\\_construct is in an interface\n- [DDC-3080](https://github.com/doctrine/orm/issues/3854)\n -[\\#1008](https://github.com/doctrine/orm/pull/1008)\n DDC-3078 SLC Cache interface ctor removal\n- [DDC-3081](https://github.com/doctrine/orm/issues/3855)\n -[\\#1009](https://github.com/doctrine/orm/pull/1009) HHVM\n compatibility\n- [DDC-3082](https://github.com/doctrine/orm/issues/3856)\n -[\\#1010](https://github.com/doctrine/orm/pull/1010) Fixed\n validation message\n- [DDC-3085](https://github.com/doctrine/orm/issues/3859)\n -NULL comparison are not supported for result variables in the\n HAVING clause\n- [DDC-3092](https://github.com/doctrine/orm/issues/3867)\n -[\\#1012](https://github.com/doctrine/orm/pull/1012) Ddc\n 3078 slc cache interface ctor removal\n- [DDC-3093](https://github.com/doctrine/orm/issues/3868)\n -[\\#1013](https://github.com/doctrine/orm/pull/1013) Remove\n SimpleXmlElement hack\n- [DDC-3095](https://github.com/doctrine/orm/issues/3870)\n -[\\#1014](https://github.com/doctrine/orm/pull/1014) Update\n second level cache doc\n- [DDC-3100](https://github.com/doctrine/orm/issues/3876)\n -[\\#1018](https://github.com/doctrine/orm/pull/1018)\n DBAL-878 Wrong mapping type\n- [DDC-3103](https://github.com/doctrine/orm/issues/3879)\n -Is embedded class information in ClassMetadata is not stored when\n serializing.\n- [DDC-3106](https://github.com/doctrine/orm/issues/3882)\n -[\\#1023](https://github.com/doctrine/orm/pull/1023)\n [DDC-3027](https://github.com/doctrine/orm/issues/3795)\n Avoid duplicated mapping using Embedded in MappedSuperclass\n- [DDC-3107](https://github.com/doctrine/orm/issues/3883)\n -[\\#1024](https://github.com/doctrine/orm/pull/1024)\n [Persister] Remove the insertSql cache\n- [DDC-3108](https://github.com/doctrine/orm/issues/3884)\n -Criteria cannot reference a joined tables' fields when used with an\n ORM QueryBuilder\n- [DDC-3118](https://github.com/doctrine/orm/issues/3894)\n -[\\#1028](https://github.com/doctrine/orm/pull/1028) Add\n method getAssociationsByType to ClassMetadata\n- [DDC-3120](https://github.com/doctrine/orm/issues/3897)\n -Warning: Erroneous data format for unserializing PHP5.6+\n- [DDC-3123](https://github.com/doctrine/orm/issues/3898)\n -Extra updates are not cleaned after execution\n- [DDC-3124](https://github.com/doctrine/orm/issues/3901)\n -[\\#1030](https://github.com/doctrine/orm/pull/1030)\n DDC-3123 extra updates cleanup\n- [DDC-3129](https://github.com/doctrine/orm/issues/3906)\n -[\\#1032](https://github.com/doctrine/orm/pull/1032) Add\n support for optimized contains\n- [DDC-3143](https://github.com/doctrine/orm/issues/3922)\n -[\\#1041](https://github.com/doctrine/orm/pull/1041) Allow\n all EntityManagerInterface implementations\n- [DDC-3151](https://github.com/doctrine/orm/issues/3930)\n -[\\#1048](https://github.com/doctrine/orm/pull/1048) Fix\n typo in exception message\n- [DDC-3152](https://github.com/doctrine/orm/issues/3931)\n -Generating methods does not check for existing methods with\n different case\n- [DDC-3160](https://github.com/doctrine/orm/issues/3940)\n -Regression in reComputeSingleEntityChangeset\n- [DDC-3177](https://github.com/doctrine/orm/issues/3958)\n -[\\#1063](https://github.com/doctrine/orm/pull/1063)\n singularize variable name on add/remove methods for EntityGenerator\n- [DDC-3190](https://github.com/doctrine/orm/issues/3973)\n -[\\#1071](https://github.com/doctrine/orm/pull/1071)\n Setup::createConfiguration breaks Cache interface contract\n- [DDC-3191](https://github.com/doctrine/orm/issues/3974)\n -[\\#1072](https://github.com/doctrine/orm/pull/1072) Fix\n attempt of traversing bool in FileLockRegion\n- [DDC-3192](https://github.com/doctrine/orm/issues/3975)\n -Custom types do not get converted to PHP Value when result is\n gotten from custom query\n- [DDC-3198](https://github.com/doctrine/orm/issues/3981)\n -[\\#1075](https://github.com/doctrine/orm/pull/1075) Fixed\n query cache id generation: added platform to hash\n- [DDC-3199](https://github.com/doctrine/orm/issues/3982)\n -[\\#1076](https://github.com/doctrine/orm/pull/1076) Fix\n switch non-uniform syntax\n- [DDC-3210](https://github.com/doctrine/orm/issues/3996)\n -[\\#1080](https://github.com/doctrine/orm/pull/1080)\n possible fix for DDC-2021\n- [DDC-3214](https://github.com/doctrine/orm/issues/4000)\n -[\\#1082](https://github.com/doctrine/orm/pull/1082) added\n more informative error messages when invalid parameter count\n- [DDC-3223](https://github.com/doctrine/orm/issues/4010)\n -Failing test (get id return string type)\n- [DDC-3225](https://github.com/doctrine/orm/issues/4012)\n -[\\#1087](https://github.com/doctrine/orm/pull/1087) Remove\n the error control operator\n- [DDC-3227](https://github.com/doctrine/orm/issues/4014)\n -[\\#1088](https://github.com/doctrine/orm/pull/1088) Fix the\n composer autoload paths for the doctrine CLT\n- [DDC-3233](https://github.com/doctrine/orm/issues/4021)\n -[\\#1092](https://github.com/doctrine/orm/pull/1092)\n Arbitrary Join count walkers solution\n- [DDC-3237](https://github.com/doctrine/orm/issues/4025)\n -[\\#1096](https://github.com/doctrine/orm/pull/1096) Changes\n for grammar and clarity\n- [DDC-3239](https://github.com/doctrine/orm/pull/1097)\n -[\\#1097](https://github.com/doctrine/orm/pull/1097)\n `expandParameters`/`getType` in BasicEntityPersister seems to really\n cover just few cases\n- [DDC-3240](https://github.com/doctrine/orm/issues/4028)\n -[\\#1098](https://github.com/doctrine/orm/pull/1098)\n \\#DDC-1590: Fix Inheritance in Code-Generation\n- [DDC-3254](https://github.com/doctrine/orm/issues/4043)\n -[\\#1111](https://github.com/doctrine/orm/pull/1111) Fix\n inheritance hierarchy wrong exception message\n- [DDC-3269](https://github.com/doctrine/orm/issues/4058)\n -[\\#1120](https://github.com/doctrine/orm/pull/1120)\n [DDC-3205](https://github.com/doctrine/orm/issues/3990)\n Metadata info\n- [DDC-3272](https://github.com/doctrine/orm/issues/4062)\n -EntityGenerator writes 'MappedSuperClass' instead of\n 'MappedSuperclass'\n- [DDC-3278](https://github.com/doctrine/orm/issues/4068)\n -[\\#1123](https://github.com/doctrine/orm/pull/1123) Fixed\n the structure of the reverse-engineered mapping\n- [DDC-3283](https://github.com/doctrine/orm/issues/4074)\n -[\\#1125](https://github.com/doctrine/orm/pull/1125) Update\n improving-performance.rst\n- [DDC-3288](https://github.com/doctrine/orm/issues/4079)\n -[\\#1126](https://github.com/doctrine/orm/pull/1126) Fixed\n new line in docblock\n- [DDC-3293](https://github.com/doctrine/orm/issues/4085)\n -XML Mappings disallow disabling column prefix for embeddables\n- [DDC-3302](https://github.com/doctrine/orm/issues/4096)\n -[\\#1132](https://github.com/doctrine/orm/pull/1132)\n DDC-3272 entity generator mapped superclass casing\n- [DDC-3310](https://github.com/doctrine/orm/issues/4105)\n -[\\#1138](https://github.com/doctrine/orm/pull/1138) Join\n column index names\n- [DDC-3318](https://github.com/doctrine/orm/issues/4113)\n -[\\#1143](https://github.com/doctrine/orm/pull/1143) Fixed a\n bug so that a versioned entity with a oneToOne id can be created\n- [DDC-3322](https://github.com/doctrine/orm/issues/4118)\n -[\\#1146](https://github.com/doctrine/orm/pull/1146) Allow\n orderBy to reference associations\n- [DDC-3336](https://github.com/doctrine/orm/issues/4133)\n -Undefined property: Doctrine::\\$field\n- [DDC-3341](https://github.com/doctrine/orm/issues/4139)\n -SessionValidator gives an error message on orderBy association, but\n it is no error.\n- [DDC-3343](https://github.com/doctrine/orm/issues/4141)\n -`PersistentCollection::removeElement` schedules an entity for\n deletion when relationship is EXTRA\\_LAZY, with `orphanRemoval`\n false.\n- [DDC-3346](https://github.com/doctrine/orm/issues/4144)\n -findOneBy returns an object with partial collection for the\n properties with mapping oneToMany/Fetch Eager\n- [DDC-3350](https://github.com/doctrine/orm/issues/4149)\n -[\\#1160](https://github.com/doctrine/orm/pull/1160) \\#1159\n -multiple entity managers per repository factory should be supported\n- [DDC-3355](https://github.com/doctrine/orm/issues/4154)\n -[\\#1164](https://github.com/doctrine/orm/pull/1164)\n [QueryBuilder] Remove unused method parameters to run on HHVM/PHP7\n- [DDC-3358](https://github.com/doctrine/orm/issues/4157)\n -[\\#1166](https://github.com/doctrine/orm/pull/1166) Fixing\n HHVM+XSD validation tests as of documented HHVM inconsistencies\n- [DDC-3368](https://github.com/doctrine/orm/issues/4168)\n -[\\#1172](https://github.com/doctrine/orm/pull/1172) Don't\n initialize detached proxies when merging them.\n- [DDC-3370](https://github.com/doctrine/orm/issues/4171)\n -[\\#1173](https://github.com/doctrine/orm/pull/1173) Fix\n merging of entities with associations to identical entities.\n- [DDC-3378](https://github.com/doctrine/orm/issues/4179)\n -[\\#1176](https://github.com/doctrine/orm/pull/1176) Support\n merging entities with composite identities defined through to-one\n associations\n- [DDC-3379](https://github.com/doctrine/orm/issues/4180)\n -[\\#1177](https://github.com/doctrine/orm/pull/1177) Ensure\n metadata cache is not ArrayCache in production\n- [DDC-3380](https://github.com/doctrine/orm/issues/4182)\n -[\\#1178](https://github.com/doctrine/orm/pull/1178) Fixing\n associations using UUIDs\n- [DDC-3387](https://github.com/doctrine/orm/issues/4189)\n -[\\#1182](https://github.com/doctrine/orm/pull/1182) \\#1086\n identifier type in proxies\n- [DDC-3394](https://github.com/doctrine/orm/issues/4197)\n -UOW CreateEntity failure with zerofill columns\n- [DDC-3404](https://github.com/doctrine/orm/issues/4208)\n -[\\#1188](https://github.com/doctrine/orm/pull/1188) Fixed\n counting exception\n- [DDC-3419](https://github.com/doctrine/orm/issues/4224)\n -[\\#1196](https://github.com/doctrine/orm/pull/1196) Inherit\n indexes from mapped superclass\n- [DDC-3425](https://github.com/doctrine/orm/issues/4231)\n -[\\#1202](https://github.com/doctrine/orm/pull/1202) Checks\n key exists rather than isset\n- [DDC-3427](https://github.com/doctrine/orm/issues/4233)\n -Doctrineexplicitly accepts EntityManager\n- [DDC-3428](https://github.com/doctrine/orm/issues/4234)\n -[\\#1204](https://github.com/doctrine/orm/pull/1204) Fix\n sequence-generator in MetaData exporter for XML Driver.\n- [DDC-3429](https://github.com/doctrine/orm/issues/4235)\n -[\\#1205](https://github.com/doctrine/orm/pull/1205) Hotfix\n -\\#1200 symfony 2.7 deprecation fixes\n- [DDC-3430](https://github.com/doctrine/orm/issues/4237)\n -[\\#1206](https://github.com/doctrine/orm/pull/1206)\n matching should not change critera\n- [DDC-3431](https://github.com/doctrine/orm/issues/4238)\n -[\\#1207](https://github.com/doctrine/orm/pull/1207)\n Embedded classes reflection new instance creation with internal PHP\n classes\n- [DDC-3432](https://github.com/doctrine/orm/issues/4239)\n -[\\#1208](https://github.com/doctrine/orm/pull/1208)\n DDC-3427\n - class metadata factory should accept `EntityManagerInterface`\n instances\n- [DDC-3433](https://github.com/doctrine/orm/issues/4240)\n -[\\#1210](https://github.com/doctrine/orm/pull/1210)\n DDC-3336\n - undefined property with paginator walker and scalar expression in\n ORDER BY clause\n- [DDC-3434](https://github.com/doctrine/orm/issues/4241)\n -LimitSubqueryOutputWalker does not retain correct ORDER BY\n expression fields when dealing with HIDDEN sort fields\n- [DDC-3435](https://github.com/doctrine/orm/issues/4242)\n -[\\#1211](https://github.com/doctrine/orm/pull/1211)\n DDC-3434\n - paginator ignores `HIDDEN` fields in `ORDER BY` query\n- [DDC-3436](https://github.com/doctrine/orm/issues/4243)\n -[\\#1212](https://github.com/doctrine/orm/pull/1212)\n [DDC-3108](https://github.com/doctrine/orm/issues/3884)\n Fix regression where join aliases were no longer accessible in\n Criteria expressions\n- [DDC-3437](https://github.com/doctrine/orm/issues/4244)\n -[\\#1213](https://github.com/doctrine/orm/pull/1213) fix\n instantiation of embedded object in ReflectionEmbeddedProperty\n- [DDC-3439](https://github.com/doctrine/orm/issues/4246)\n -[\\#1216](https://github.com/doctrine/orm/pull/1216) test\n XML export driver, the field options, for \\#1214\n- [DDC-3452](https://github.com/doctrine/orm/issues/4261)\n -[\\#1222](https://github.com/doctrine/orm/pull/1222)\n Embeddables in metadata builder\n- [DDC-3454](https://github.com/doctrine/orm/issues/4263)\n -[\\#1224](https://github.com/doctrine/orm/pull/1224) Updated\n setParameters function for not replace all parameters\n- [DDC-3466](https://github.com/doctrine/orm/issues/4276)\n -[\\#1233](https://github.com/doctrine/orm/pull/1233) [Minor]\n Refactoring to avoid duplicate code\n- [DDC-3470](https://github.com/doctrine/orm/issues/4280)\n -[\\#1235](https://github.com/doctrine/orm/pull/1235)\n Consistent return type confirming with interface\n- [DDC-3478](https://github.com/doctrine/orm/issues/4288)\n -[\\#1239](https://github.com/doctrine/orm/pull/1239) Fix\n index duplication for unique association join columns\n- [DDC-3482](https://github.com/doctrine/orm/issues/4293)\n -[\\#1242](https://github.com/doctrine/orm/pull/1242)\n Attempting to lock a proxy object fails as UOW doesn't init proxy\n first\n- [DDC-3493](https://github.com/doctrine/orm/issues/4305)\n -New (PHP 5.5) \"class\" keyword - wrong parsing by EntityGenerator\n- [DDC-3494](https://github.com/doctrine/orm/issues/4306)\n -[\\#1250](https://github.com/doctrine/orm/pull/1250) Test\n case for \"class\" keyword\n- [DDC-3502](https://github.com/doctrine/orm/issues/4316)\n -[\\#1256](https://github.com/doctrine/orm/pull/1256)\n DDC-3493\n - fixed EntityGenerator parsing for php 5.5 \"::class\" syntax\n- [DDC-3506](https://github.com/doctrine/orm/issues/4320)\n -[\\#1259](https://github.com/doctrine/orm/pull/1259) Hotfix:\n Cache region should not mutate injected cache instance settings\n- [DDC-3513](https://github.com/doctrine/orm/issues/4327)\n -[\\#1262](https://github.com/doctrine/orm/pull/1262) Fixes\n the broken DQL command\n- [DDC-3517](https://github.com/doctrine/orm/issues/4331)\n -[\\#1265](https://github.com/doctrine/orm/pull/1265) Fix\n error undefined index \"targetEntity\" in persister\n- [DDC-3524](https://github.com/doctrine/orm/issues/4339)\n -[\\#1272](https://github.com/doctrine/orm/pull/1272)\n [DDC-2704](https://github.com/doctrine/orm/issues/3446)\n -merge inherited transient properties - merge properties into\n uninitialized proxies\n- [DDC-3534](https://github.com/doctrine/orm/issues/4352)\n -[\\#1280](https://github.com/doctrine/orm/pull/1280)\n [DDC-3346](https://github.com/doctrine/orm/issues/4144)\n \\#1277 find one with eager loads is failing\n- [DDC-3536](https://github.com/doctrine/orm/issues/4349)\n -[\\#1281](https://github.com/doctrine/orm/pull/1281)\n Hotfix/\\#1169 extra lazy one to many should not delete referenced\n entities\n- [DDC-3538](https://github.com/doctrine/orm/issues/4355)\n -[\\#1283](https://github.com/doctrine/orm/pull/1283) \\#1267\n -order by broken in pagination logic (reverts \\#1220)\n- [DDC-3544](https://github.com/doctrine/orm/issues/4361)\n -[\\#1288](https://github.com/doctrine/orm/pull/1288) Hotfix\n -\\#1169 - extra lazy one to many must be no-op when not doing orphan\n removal\n- [DDC-3551](https://github.com/doctrine/orm/issues/4369)\n -[\\#1294](https://github.com/doctrine/orm/pull/1294) Avoid\n Connection error when calling ClassMetadataFactor::getAllMetadata()\n- [DDC-3554](https://github.com/doctrine/orm/issues/4372)\n -[\\#1295](https://github.com/doctrine/orm/pull/1295) Fix\n join when recreation of query from parts.\n- [DDC-3564](https://github.com/doctrine/orm/issues/4383)\n -[\\#1301](https://github.com/doctrine/orm/pull/1301) Add\n failing test with ToOne SL2 association\n- [DDC-3566](https://github.com/doctrine/orm/issues/4385)\n -[\\#1302](https://github.com/doctrine/orm/pull/1302) Store\n column values of not cache-able associations\n- [DDC-3585](https://github.com/doctrine/orm/issues/4406)\n -[\\#1311](https://github.com/doctrine/orm/pull/1311)\n [DDC-3582](https://github.com/doctrine/orm/issues/4403)\n Wrong class is instantiated when using nested embeddables\n- [DDC-3586](https://github.com/doctrine/orm/issues/4407)\n -[\\#1312](https://github.com/doctrine/orm/pull/1312) Add\n proper pluralization into UpdateCommand\n- [DDC-3587](https://github.com/doctrine/orm/issues/4408)\n -[\\#1313](https://github.com/doctrine/orm/pull/1313) Added\n programmatical support to define indexBy on root aliases.\n- [DDC-3597](https://github.com/doctrine/orm/issues/4419)\n -[\\#1321](https://github.com/doctrine/orm/pull/1321)\n embeddedClasses support in mapped superclasses\n- [DDC-3606](https://github.com/doctrine/orm/issues/4430)\n -[\\#1325](https://github.com/doctrine/orm/pull/1325) fixed\n PostgreSQL and Oracle pagination issues\n- [DDC-3608](https://github.com/doctrine/orm/issues/4432)\n -[\\#1327](https://github.com/doctrine/orm/pull/1327)\n Properly generate default value from yml & xml mapping\n- [DDC-3616](https://github.com/doctrine/orm/issues/4441)\n -[\\#1333](https://github.com/doctrine/orm/pull/1333) Allow\n DateTimeImmutable as parameter value\n- [DDC-3619](https://github.com/doctrine/orm/issues/4444)\n -spl\\_object\\_hash collision\n- [DDC-3622](https://github.com/doctrine/orm/issues/4448)\n -[\\#1336](https://github.com/doctrine/orm/pull/1336) Fix UoW\n warning with custom id object types\n- [DDC-3623](https://github.com/doctrine/orm/issues/4449)\n -[\\#1337](https://github.com/doctrine/orm/pull/1337)\n Paginator OrderBy fix take 2\n- [DDC-3624](https://github.com/doctrine/orm/issues/4450)\n -[\\#1338](https://github.com/doctrine/orm/pull/1338)\n [DDC-3619](https://github.com/doctrine/orm/issues/4444)\n Update identityMap when entity gets managed again\n- [DDC-3625](https://github.com/doctrine/orm/issues/4451)\n -[\\#1339](https://github.com/doctrine/orm/pull/1339)\n [DDC-2224](https://github.com/doctrine/orm/issues/2922)\n Honor convertToDatabaseValueSQL() in DQL query parameters\n- [DDC-3629](https://github.com/doctrine/orm/issues/4455)\n -[\\#1342](https://github.com/doctrine/orm/pull/1342)\n Paginator functional tests\n- [DDC-3631](https://github.com/doctrine/orm/issues/4458)\n -[\\#1344](https://github.com/doctrine/orm/pull/1344) Fix\n tests for SLC console commands failing due to console output\n decoration\n- [DDC-3632](https://github.com/doctrine/orm/issues/4459)\n -[\\#1345](https://github.com/doctrine/orm/pull/1345) Fix\n crashes in ConvertMappingCommand and GenerateEntitiesCommand...\n- [DDC-3634](https://github.com/doctrine/orm/issues/4461)\n -[\\#1346](https://github.com/doctrine/orm/pull/1346) Fix:\n generated IDs are converted to integer\n- [DDC-3641](https://github.com/doctrine/orm/issues/4469)\n -[\\#1350](https://github.com/doctrine/orm/pull/1350)\n Assigned default value to array\n- [DDC-3643](https://github.com/doctrine/orm/issues/4471)\n -[\\#1352](https://github.com/doctrine/orm/pull/1352) fix\n EntityGenerator RegenerateEntityIfExists\n- [DDC-3645](https://github.com/doctrine/orm/issues/4473)\n -[\\#1353](https://github.com/doctrine/orm/pull/1353)\n Paginator fixes take3\n- [DDC-3650](https://github.com/doctrine/orm/issues/4479)\n -[\\#1357](https://github.com/doctrine/orm/pull/1357) Drop\n useless execution bit\n\nDocumentation\n-------------\n\n- [DDC-2510](https://github.com/doctrine/orm/issues/3233)\n -[\\#700](https://github.com/doctrine/orm/pull/700) Update\n getting-started.rst\n- [DDC-2511](https://github.com/doctrine/orm/issues/3234)\n -[\\#701](https://github.com/doctrine/orm/pull/701)\n list\\_bugs.php needs to call to getters for protected vars\n- [DDC-2549](https://github.com/doctrine/orm/issues/3274)\n -[\\#721](https://github.com/doctrine/orm/pull/721) Updated\n batch-processing link extension\n- [DDC-2553](https://github.com/doctrine/orm/issues/3280)\n -[\\#723](https://github.com/doctrine/orm/pull/723) Remove\n extra semicolon before -\\>setParameter() calls\n- [DDC-2571](https://github.com/doctrine/orm/issues/3299)\n -[\\#734](https://github.com/doctrine/orm/pull/734) Cleaned\n up documentation\n- [DDC-2620](https://github.com/doctrine/orm/issues/3353)\n -[\\#762](https://github.com/doctrine/orm/pull/762) YAML\n mapping documentation of uniqueConstraint\n- [DDC-2755](https://github.com/doctrine/orm/issues/3500)\n -[\\#825](https://github.com/doctrine/orm/pull/825) Spelling\n fix\n- [DDC-2777](https://github.com/doctrine/orm/issues/3524)\n -[\\#838](https://github.com/doctrine/orm/pull/838) Spelling\n fix\n- [DDC-2778](https://github.com/doctrine/orm/issues/3525)\n -[\\#839](https://github.com/doctrine/orm/pull/839) Spelling\n fix\n- [DDC-2801](https://github.com/doctrine/orm/issues/3552)\n -[\\#851](https://github.com/doctrine/orm/pull/851)\n Documentation about how to use INSTANCE OF in inheritance\n- [DDC-2819](https://github.com/doctrine/orm/issues/3571)\n -[\\#860](https://github.com/doctrine/orm/pull/860) Mention\n SQL Anywhere in basic mapping documentation\n- [DDC-2821](https://github.com/doctrine/orm/issues/3574)\n -[\\#862](https://github.com/doctrine/orm/pull/862) Added a\n note about changing the fetch mode for to-many relations\n- [DDC-2834](https://github.com/doctrine/orm/issues/3587)\n -[\\#868](https://github.com/doctrine/orm/pull/868) Added\n documentation section for Memcached\n- [DDC-2846](https://github.com/doctrine/orm/issues/3600)\n -[\\#870](https://github.com/doctrine/orm/pull/870)\n Documenting interface methods (based on entity manager)\n- [DDC-2848](https://github.com/doctrine/orm/issues/3602)\n -[\\#872](https://github.com/doctrine/orm/pull/872) Doctrine\n 2.4 now supports SQLite ALTER TABLE\n- [DDC-2873](https://github.com/doctrine/orm/issues/3630)\n -[\\#888](https://github.com/doctrine/orm/pull/888) Add an\n example to doc of YAML mapping\n- [DDC-2887](https://github.com/doctrine/orm/issues/3644)\n -[\\#898](https://github.com/doctrine/orm/pull/898) Added\n note to STI\n- [DDC-2925](https://github.com/doctrine/orm/issues/3685)\n -[\\#913](https://github.com/doctrine/orm/pull/913) Added\n exception class names\n- [DDC-2928](https://github.com/doctrine/orm/issues/3688)\n -[\\#915](https://github.com/doctrine/orm/pull/915) Improved\n DQL's \"new\" operator documentation\n- [DDC-2963](https://github.com/doctrine/orm/issues/3727)\n -[\\#940](https://github.com/doctrine/orm/pull/940) Fixed\n typo & horizontal scrolling\n- [DDC-2979](https://github.com/doctrine/orm/issues/3742)\n -[\\#953](https://github.com/doctrine/orm/pull/953) Update\n doc with latest news about extra lazy assoc\n- [DDC-2985](https://github.com/doctrine/orm/issues/3749)\n -[\\#955](https://github.com/doctrine/orm/pull/955) iteration\n risk note\n- [DDC-3019](https://github.com/doctrine/orm/issues/3785)\n -[\\#975](https://github.com/doctrine/orm/pull/975) Added\n info about automatic discriminator map\n- [DDC-3048](https://github.com/doctrine/orm/issues/3818)\n -[\\#987](https://github.com/doctrine/orm/pull/987) Fixes\n typo in dql-doctrine-query-language.rst\n- [DDC-3053](https://github.com/doctrine/orm/issues/3824)\n -[\\#990](https://github.com/doctrine/orm/pull/990) Typo in\n documentation\n- [DDC-3057](https://github.com/doctrine/orm/issues/3828)\n -[\\#992](https://github.com/doctrine/orm/pull/992) Fixed\n typos\n- [DDC-3059](https://github.com/doctrine/orm/issues/3830)\n -[\\#994](https://github.com/doctrine/orm/pull/994) Update\n EntityGenerator comment\n- [DDC-3073](https://github.com/doctrine/orm/issues/3846)\n -@Column options\n- [DDC-3077](https://github.com/doctrine/orm/issues/3850)\n -[\\#1007](https://github.com/doctrine/orm/pull/1007) Minor\n dockblock change\n- [DDC-3086](https://github.com/doctrine/orm/issues/3860)\n -[\\#1011](https://github.com/doctrine/orm/pull/1011) Single\n quotes can't nest\n- [DDC-3097](https://github.com/doctrine/orm/issues/3872)\n -[\\#1015](https://github.com/doctrine/orm/pull/1015) Add\n ExpressionBuilder::contains() to docs\n- [DDC-3111](https://github.com/doctrine/orm/issues/3888)\n -[\\#1025](https://github.com/doctrine/orm/pull/1025) Removed\n duplicate entry in documentation TOC.\n- [DDC-3127](https://github.com/doctrine/orm/issues/3904)\n -[\\#1031](https://github.com/doctrine/orm/pull/1031)\n Documentation for \\#991\n- [DDC-3131](https://github.com/doctrine/orm/issues/3909)\n -[\\#1034](https://github.com/doctrine/orm/pull/1034) Update\n caching.rst\n- [DDC-3139](https://github.com/doctrine/orm/issues/3917)\n -[\\#1038](https://github.com/doctrine/orm/pull/1038) Add\n documentation for the `HIDDEN` keyword in DQL\n- [DDC-3140](https://github.com/doctrine/orm/issues/3919)\n -[\\#1039](https://github.com/doctrine/orm/pull/1039) Add yml\n example to single table inheritance\n- [DDC-3144](https://github.com/doctrine/orm/issues/3924)\n -[\\#1042](https://github.com/doctrine/orm/pull/1042) Fix\n second level cache doc\n- [DDC-3145](https://github.com/doctrine/orm/issues/3923)\n -[\\#1044](https://github.com/doctrine/orm/pull/1044) Use of\n -\\>andWhere() whithout any -\\>where() before is valid\n- [DDC-3166](https://github.com/doctrine/orm/issues/3946)\n -[\\#1058](https://github.com/doctrine/orm/pull/1058) Drop\n Unicode character\n- [DDC-3168](https://github.com/doctrine/orm/issues/3948)\n -[\\#1059](https://github.com/doctrine/orm/pull/1059) fix\n spacing for yaml example\n- [DDC-3185](https://github.com/doctrine/orm/issues/3967)\n -[\\#1068](https://github.com/doctrine/orm/pull/1068) Fix\n typo in documentation\n- [DDC-3216](https://github.com/doctrine/orm/issues/4002)\n -[\\#1083](https://github.com/doctrine/orm/pull/1083)\n [DDC-3073](https://github.com/doctrine/orm/issues/3846)\n Add documentation about how to map column options\n- [DDC-3217](https://github.com/doctrine/orm/issues/4003)\n -[\\#1084](https://github.com/doctrine/orm/pull/1084) Update\n advanced-field-value-conversion-using-custom-mapping-types.rst\n- [DDC-3253](https://github.com/doctrine/orm/issues/4042)\n -[\\#1110](https://github.com/doctrine/orm/pull/1110) Changed\n table name to be more appropriate.\n- [DDC-3261](https://github.com/doctrine/orm/issues/4050)\n -Bad link in 34.3 Advanced Configuration - Connection Options\n- [DDC-3262](https://github.com/doctrine/orm/issues/4051)\n -[\\#1115](https://github.com/doctrine/orm/pull/1115) Fix\n wrong variable name\n- [DDC-3266](https://github.com/doctrine/orm/issues/4055)\n -[\\#1116](https://github.com/doctrine/orm/pull/1116)\n [DDC-3265](https://github.com/doctrine/orm/issues/4054)\n Fix DocBlock\n- [DDC-3292](https://github.com/doctrine/orm/issues/4084)\n -[\\#1127](https://github.com/doctrine/orm/pull/1127)\n Document embeddables column prefixing\n- [DDC-3324](https://github.com/doctrine/orm/issues/4120)\n -[\\#1147](https://github.com/doctrine/orm/pull/1147)\n Extended the docs for mapping attributes precision and scale\n- [DDC-3326](https://github.com/doctrine/orm/issues/4122)\n -[\\#1148](https://github.com/doctrine/orm/pull/1148)\n [DWEB-118] Fixed small typo in documentation about extra lazy\n associations\n- [DDC-3347](https://github.com/doctrine/orm/issues/4145)\n -[\\#1157](https://github.com/doctrine/orm/pull/1157) Fixing\n calls of schema-update tools\n- [DDC-3348](https://github.com/doctrine/orm/issues/4146)\n -[\\#1158](https://github.com/doctrine/orm/pull/1158) Update\n QueryBuilder reference documentation.\n- [DDC-3351](https://github.com/doctrine/orm/issues/4150)\n -[\\#1161](https://github.com/doctrine/orm/pull/1161) Fixing\n error with from() parameters in example\n- [DDC-3353](https://github.com/doctrine/orm/issues/4152)\n -[\\#1163](https://github.com/doctrine/orm/pull/1163) Update\n xml-mapping.rst\n- [DDC-3388](https://github.com/doctrine/orm/issues/4190)\n -[\\#1183](https://github.com/doctrine/orm/pull/1183) Update\n tools.rst\n- [DDC-3389](https://github.com/doctrine/orm/issues/4191)\n -[\\#1184](https://github.com/doctrine/orm/pull/1184)\n Postgres SERIAL is not a post-insert identifier generation strategy\n- [DDC-3408](https://github.com/doctrine/orm/issues/4212)\n -[\\#1190](https://github.com/doctrine/orm/pull/1190)\n Document that AUTOGENERATE\\_ constants are allowed\n- [DDC-3411](https://github.com/doctrine/orm/issues/4216)\n -[\\#1192](https://github.com/doctrine/orm/pull/1192) Fixed a\n very minor typo\n- [DDC-3417](https://github.com/doctrine/orm/issues/4222)\n -[\\#1195](https://github.com/doctrine/orm/pull/1195)\n Correction Events.rs - Entity Listeners Resolver\n- [DDC-3420](https://github.com/doctrine/orm/issues/4226)\n -[\\#1198](https://github.com/doctrine/orm/pull/1198) Tables\n for buttons.\n- [DDC-3421](https://github.com/doctrine/orm/issues/4227)\n -[\\#1199](https://github.com/doctrine/orm/pull/1199) minor\n typo\n- [DDC-3456](https://github.com/doctrine/orm/issues/4265)\n -[\\#1226](https://github.com/doctrine/orm/pull/1226) Update\n Travis badges to use the SVG version\n- [DDC-3465](https://github.com/doctrine/orm/issues/4275)\n -[\\#1232](https://github.com/doctrine/orm/pull/1232)\n Explicit example of partial indexes\n- [DDC-3471](https://github.com/doctrine/orm/issues/4281)\n -[\\#1236](https://github.com/doctrine/orm/pull/1236) Minor\n docs fix: missing word 'do'\n- [DDC-3484](https://github.com/doctrine/orm/issues/4295)\n -[\\#1244](https://github.com/doctrine/orm/pull/1244) Change\n \\$this return type to static in AbstractQuery\n- [DDC-3499](https://github.com/doctrine/orm/issues/4311)\n -[\\#1253](https://github.com/doctrine/orm/pull/1253) Fix\n dead link\n- [DDC-3516](https://github.com/doctrine/orm/issues/4330)\n -[\\#1264](https://github.com/doctrine/orm/pull/1264) Add\n Changelog/Migration to 2.5 documentation chapter.\n- [DDC-3523](https://github.com/doctrine/orm/issues/4338)\n -[\\#1271](https://github.com/doctrine/orm/pull/1271) Update\n migration\\_2\\_5.rst\n- [DDC-3526](https://github.com/doctrine/orm/issues/4341)\n -[\\#1273](https://github.com/doctrine/orm/pull/1273)\n Incorrect @throws doc. in getSingleScalarResult\n- [DDC-3533](https://github.com/doctrine/orm/issues/4351)\n -[\\#1279](https://github.com/doctrine/orm/pull/1279)\n [Doc][Reference][2nd level cache]\n- [DDC-3542](https://github.com/doctrine/orm/issues/4359)\n -[\\#1287](https://github.com/doctrine/orm/pull/1287) Typo\n fix\n- [DDC-3547](https://github.com/doctrine/orm/issues/4364)\n -[\\#1290](https://github.com/doctrine/orm/pull/1290) [Doc]\n [Reference] [Second Level Cache]\n- [DDC-3555](https://github.com/doctrine/orm/issues/4373)\n -[\\#1296](https://github.com/doctrine/orm/pull/1296) Flip\n key value in \\$namespaces array\n- [DDC-3556](https://github.com/doctrine/orm/issues/4374)\n -[\\#1297](https://github.com/doctrine/orm/pull/1297)\n [DDC-3480](https://github.com/doctrine/orm/issues/4291)\n Docs: Embeddable supported mappings\n- [DDC-3557](https://github.com/doctrine/orm/issues/4375)\n -[\\#1298](https://github.com/doctrine/orm/pull/1298) Docs:\n Remove empty pages from TOC\n- [DDC-3559](https://github.com/doctrine/orm/issues/4377)\n -[\\#1299](https://github.com/doctrine/orm/pull/1299) Fixed\n missing quote in one DQL example\n- [DDC-3570](https://github.com/doctrine/orm/issues/4390)\n -[\\#1305](https://github.com/doctrine/orm/pull/1305)\n Documentation : fix table prefix with STI\n- [DDC-3595](https://github.com/doctrine/orm/issues/4417)\n -[\\#1320](https://github.com/doctrine/orm/pull/1320) Fix\n 'entitiy' typo in Getting Started tutorial\n- [DDC-3599](https://github.com/doctrine/orm/issues/4421)\n -[\\#1322](https://github.com/doctrine/orm/pull/1322) Typo in\n documentation\n- [DDC-3611](https://github.com/doctrine/orm/issues/4435)\n -[\\#1329](https://github.com/doctrine/orm/pull/1329) Fix for\n inconsistent use of getSQLDeclaration\n- [DDC-3613](https://github.com/doctrine/orm/issues/4438)\n -[\\#1330](https://github.com/doctrine/orm/pull/1330) Fix\n @Column options sections in documentation\n- [DDC-3614](https://github.com/doctrine/orm/issues/4439)\n -[\\#1331](https://github.com/doctrine/orm/pull/1331) [DOCS]\n Fixed class name in aggregate fields example\n- [DDC-3617](https://github.com/doctrine/orm/issues/4442)\n -[\\#1334](https://github.com/doctrine/orm/pull/1334) Changed\n some wrong usage of the @internal phpdoc\n- [DDC-3620](https://github.com/doctrine/orm/issues/4446)\n -[\\#1335](https://github.com/doctrine/orm/pull/1335) Fix\n AbstractQuery::getParameter() documented return type\n- [DDC-3627](https://github.com/doctrine/orm/issues/4453)\n -[\\#1341](https://github.com/doctrine/orm/pull/1341) [doc]\n Minor fixes and typos\n- [DDC-3648](https://github.com/doctrine/orm/issues/4476)\n -[\\#1355](https://github.com/doctrine/orm/pull/1355) [Docs]\n TablePrefix example - Check for being the owning side\n- [DDC-3651](https://github.com/doctrine/orm/issues/4480)\n -[\\#1358](https://github.com/doctrine/orm/pull/1358) Update\n docs for clear-cache commands\n\nPlease report any issues you may have with the update on the mailing\nlist or on [JIRA](https://www.doctrine-project.org/jira/browse/DDC).\n", - "date": "2015-04-02 00:00:00" - }, - { - "url": "/2008/03/29/using-doctrine-zend-framework.html", - "slug": "using-doctrine-zend-framework", - "title": "Using Doctrine with Zend Framework", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today, \"rubenv\" pinged me in IRC and told me he has put together an\narticle on how to get started using Doctrine with the Zend Framework.\nThe article is very simple and does not get in to the detailed usage of\nDoctrine, but it shows you how you to integrate the two frameworks\ntogether and even shows a very simple web application. The article can\nbe found here.\n", - "date": "2008-03-29 00:00:00" - }, - { - "url": "/2008/08/06/master-and-slave-connections.html", - "slug": "master-and-slave-connections", - "title": "Master and Slave Connections", + "url": "/2009/07/27/doctrine-1-0-11-and-1-1-3-released.html", + "slug": "doctrine-1-0-11-and-1-1-3-released", + "title": "Doctrine 1.0.11 and 1.1.3 Released", "authorName": "jwage", "authorEmail": "", - "contents": "In this new cookbook recipe we demonstrate how you can setup multiple\nconnections and use them as master/slaves. All select statements are\nissued to the slaves and any insert/update/delete statements are issued\nto the master. This example accomplishes the functionality by extending\nDoctrine\\_Query and Doctrine\\_Record. This article is a perfect example\nof how you can extend and override functionality in Doctrine to\naccomplish your needs when Doctrine doesn't necessarily have a native\nsolution ready to go for you.\n", - "date": "2008-08-06 00:00:00" - }, - { - "url": "/2010/07/27/dbal2-beta3-released.html", - "slug": "dbal2-beta3-released", - "title": "Release of DBAL 2.0.0 Beta3", - "authorName": "beberlei", - "authorEmail": "", - "contents": "In preparation of the next ORM Beta Release in the next days we already\nreleased Doctrine DBAL 2.0.0BETA3 today. Noteworthy changes include:\n\n- BC Break: Changed behaviour of Postgres and Oracle DateTime now\n without Timezone (TIMESTAMP WITHOUT TIME ZONE instead of TIMESTAMP\n WITH TIME ZONE) See [Ticket\n DBAL-22](https://github.com/doctrine/dbal/issues/1394) for\n more details aswell as migration issues for PostgreSQL and Oracle.\n This will be re-announced for the ORM Beta 3 release, which is\n affected from this change.\n- SQL Loggers can now log execution times of queries\n [DBAL-11](https://github.com/doctrine/dbal/issues/1037)\n- Several Issue with AutoIncrement Detection in Doctrine\n\nA total of 13 issues on DBAL has been fixed.\n\nLinks:\n\n- [Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10066)\n- [Installation](https://www.doctrine-project.org/projects/dbal/2.0/download/2.0.0BETA3)\n\n > **NOTE** DBAL BETA 3 is not currently compatible with the ORM\n > master, we still have to make some changes. Please wait to use\n > DBAL Beta 3 with ORM until the ORM Beta 3 is released.\n\n\n", - "date": "2010-07-27 00:00:00" - }, - { - "url": "/2017/10/24/odm-1-2-0-and-1-1-7.html", - "slug": "odm-1-2-0-and-1-1-7", - "title": "Doctrine MongoDB ODM 1.2.0 and 1.1.7 Released", - "authorName": "Andreas Braun", - "authorEmail": "alcaeus@alcaeus.org", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM [1.2.0](https://github.com/doctrine/mongodb-odm/releases/tag/1.2.0)\nand [1.1.7](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.7).\n\nMongoDB ODM 1.1.7\n=================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/1.1.x/CHANGELOG-1.1.md#117-2017-10-23).\nA full list of issues and pull requests included in this release may be\nfound in the [1.1.7\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1.7).\n\nWhat is new in 1.2.0?\n=====================\n\nDoctrine MongoDB ODM 1.2.0 introduces the following new features:\n\n- The `readOnly` mapping option allows you to map immutable documents.\n- With `slaveOkay` being deprecated, you can now specify a\n `readPreference` for your documents. This `readPreference` will\n automatically be applied to all queries for those mapped documents.\n- With `dbRef` only offering limited support in aggregation pipeline\n queries, there's a new reference storage strategy called `ref` that\n stores references as objects (without \"\\$\"-prefixed field names),\n allowing you to use it with discriminators and aggregation pipeline\n queries.\n- When mapping inverse references, you may now specify fields that\n will be primed when the reference is resolved. This saves you from\n writing a dedicated repository method for the sole purpose of\n priming references.\n- The `odm:schema:validate` command validates the document mapping to\n help you spot mistakes.\n- A new builder for aggregation pipeline queries, including support\n for marshalling results into read-only documents.\n- Query result documents that can be used to hydrate results from an\n aggregation pipeline query. These documents cannot be written back\n to the database.\n\nUpgrading to 1.2.0\n==================\n\nThe new version requires PHP 5.6. Running on PHP 7+ requires the use of\na polyfill for the legacy driver, e.g.\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter). When\nrunning on PHP 5.6, MongoDB ODM requires version 1.6.7 or newer of the\nlegacy MongoDB driver.\n\nSeveral features have been deprecated in this release and will be\ndropped in the 2.0 release. To see this, please view the [UPGRADE\ndocument](https://github.com/doctrine/mongodb-odm/blob/1.2.x/UPGRADE-1.2.md).\n\nInstallation\n============\n\nYou can install the new version of MongoDB ODM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.2.0\"\n }\n}\n```\n\nStability and upcoming releases\n===============================\n\nAs of today, Doctrine MongoDB ODM `1.2.0` is the stable distribution.\nThere is no release schedule for an upcoming version yet.\n\n`1.1.7` is the last release of the `1.1.x` development line and will no\nlonger receive bug fixes. Instead, we will focus on developing MongoDB\nODM 2.0 with native support for the new MongoDB driver. This release\nwill require at least PHP 7.1 and contain several BC breaking changes.\nTo ease the migration process, we will release a `1.3.0` which will be\nbackwards compatible to the `1.2.x` line and only deprecate features to\nbe removed in 2.0. The `1.x` line of MongoDB ODM will not receive any\nnew features.\n", - "date": "2017-10-24 00:00:00" + "contents": "Today I am happy to introduce two new maintenance releases for Doctrine,\n1.0.11 and 1.1.3. As always these are regular maintenance releases and\ncontain dozens of bug fixes. Below you will find links to view the\nchangelogs for both releases.\n\n- [Doctrine 1.0.11\n Changelog](https://www.doctrine-project.org/change_log/1_0_11)\n- [Doctrine 1.1.3\n Changelog](https://www.doctrine-project.org/change_log/1_1_3)\n\nIt is recommended that you upgrade as soon as possible. You can download\nthe new versions from the\n[download](https://www.doctrine-project.org/download) page.\n", + "date": "2009-07-27 00:00:00" }, { - "url": "/2009/01/26/php-5-3-and-doctrine-2-0-teaser.html", - "slug": "php-5-3-and-doctrine-2-0-teaser", - "title": "PHP 5.3 and Doctrine 2.0 Teaser", + "url": "/2009/09/25/doctrine-1-0-12-and-1-1-4-released.html", + "slug": "doctrine-1-0-12-and-1-1-4-released", + "title": "Doctrine 1.0.12 and 1.1.4 Released", "authorName": "jwage", "authorEmail": "", - "contents": "We've been really busy around here as you may have noticed. Doctrine 1.1\nis about to be released, we just got some much needed new documentation,\nwe're going to be offering a printed version of the documentation soon!\nSomething we haven't talked to much about is Doctrine 2.0! Roman has\nbeen quietly working on the next major major version of Doctrine, 2.0.\nThis version will be taking a big leap by requiring PHP 5.3! The\nprogress this new version of PHP is so great and it lends itself very\nwell to the world of Object Relational Mappers.\n\nDoctrine 2.0 Teaser\n===================\n\nHere is an early teaser of what one of the class meta data drivers looks\nlike:\n\n~~~~ {.sourceCode .php}\n \\# | Seconds | Memory --- | --------- | ----------------- 1 | 24 |\n> 129170.648438 KB 2 | 23 | 129164.078125 KB 3 | 23 | 129176.851562 KB\n\nPHP 5.3.0alpha4-dev\n-------------------\n\n> \\# | Seconds | Memory --- | --------- | ----------------- 1 | 21 |\n> 89858.7421875 KB 2 | 20 | 89864.59765625 KB 3 | 21 | 89867.89453125 KB\n\nThe Doctrine test suite uses **31%** less memory and is **17%** faster\nwhen running under PHP 5.3!\n", - "date": "2009-01-26 00:00:00" + "contents": "Today I am happy to bring you two new maintenance releases for the 1.0\nand 1.1 versions of Doctrine. These are both standard maintenance\nreleases and only contain bug fixes.\n\n> **NOTE** **1.1 End of Life**\n>\n> This is the second to last maintenance release for the 1.1 version and\n> we are still scheduled to hit the end of life on **November 1, 2009**.\n> The good news is 1.2 will be a **LTS(long term support)** release and\n> will have **18** months of support from the date it is released.\n\nYou can view the change logs and download these releases on the\n[download](https://www.doctrine-project.org) page.\n", + "date": "2009-09-25 00:00:00" }, { - "url": "/2009/06/21/website-updates.html", - "slug": "website-updates", - "title": "Website Updates", + "url": "/2009/01/06/2nd-1-1-beta-released.html", + "slug": "2nd-1-1-beta-released", + "title": "2nd 1.1 Beta Released!", "authorName": "jwage", "authorEmail": "", - "contents": "Today I have deployed some updates to the Doctrine website. Some of the\nupdates all of you will enjoy, but another specific one might upset some\nof you.\n\nI have decided to remove the Doctrine Forum forever and consolidate the\nuser discussions in to the\n[doctrine-user](https://groups.google.com/forum/#!forum/doctrine-user) mailing\nlist which is hosted on Google Groups. I chose to do this for a few\nreasons.\n\n- Consolidate discussions in to one area so the community is not\n split.\n- phpBB is horrible and is proving to be a lot of work for me to\n maintain\n- I don't want to have to spend countless hours maintaining something\n that google groups can do for me, for free\n\nI know this will upset some of you, but I hope you understand and are\nhappy that the Doctrine developers will now be able to spend more\ntime...**developing Doctrine**..instead of maintaining the forum.\n\nSome other changes I have made/fixed.\n\n- Change Logs are now fixed from the move\n- The [blog](https://www.doctrine-project.org/blog) has been enhanced\n and tags fixed\n- [API\n Documentation](https://www.doctrine-project.org/Doctrine_Record/1_1)\n Enhanced to include browse code links so you can see the code for\n each class, function, etc.\n- A bunch of other small little things tweaked and fixed.\n\nIf you find anything wrong with the website or something you'd like to\nsee different please let me know via the comments below or by e-mail at\njonwage [at] gmail.com\n", - "date": "2009-06-21 00:00:00" - }, - { - "url": "/2011/07/04/doctrine-2-1.html", - "slug": "doctrine-2-1", - "title": "Doctrine 2.1 released", - "authorName": "beberlei", - "authorEmail": "", - "contents": "We finished all the outstanding work on the Doctrine 2.1 branch and\nreleased the first final version. Almost all of the code was kept\nbackwards compatible. There are only some slight changes that are\nexplained in the [UPGRADE\\_TO\\_2\\_1 file](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-21).\n\nThis release is packed with new features and optimizations:\n\n- **Indexed associations:** You can force Doctrine to hydrate\n collection elements by using a field of the target entity as key,\n for example the ID or any unique field. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/working-with-indexed-associations.html).\n- **Extra Lazy Collections:** Instead of always initializing the\n complete collection in memory you can now mark a collection as extra\n lazy, leading to special SQL executed for Collection\\#count(),\n Collection\\#contains() and Collection\\#slice(). This allows to\n implement efficient pagination on collections without having to use\n DQL. It also allows to save some memory for common use-cases with\n very large collections. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/extra-lazy-associations.html).\n- **Identity through Foreign Entities or derived entities:** You can\n now use a foreign key as identifier of an entity. This translates to\n using @Id on a @ManyToOne or @OneToOne association. You can read up\n on this [feature in the\n tutorial](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/composite-primary-keys.html#identity-through-foreign-entities).\n- **Persister Refactoring:** Instead of reimplementing hydration in\n the persisters we now use the hydration mechanism that is used by\n DQL aswell. Sadly this drops performance for hydration in the\n persisters by 5-25% for some use-cases. It starts with a drop of 5%\n for a few hydrations and increases in the number of different\n hydrations you are doing in a request. As a benefit we could remove\n tons of code and use several optimizations that actually increase\n performance when using fetch=\"EAGER\" in ManyToOne and OneToOne\n associations. Furthermore inverse OneToOne associations previously\n always executed an additional query, which is now replaced with a\n join.\n- **Temporary fetch mode in DQL** On a DQL Query you can now call\n \\`\\$query-\\>setFetchMode(\\$\\`className, \\$assocName, \\$fetchMode) to\n temporarily set the fetch mode to a value different from the one\n defined in the Association Mapping. If you set a ManyToOne or\n OneToOne association to eager fetching Doctrine will use a batch\n WHERE id IN (..) query to fetch all entities in a single query after\n the original query was completed.\n- **Binding Arrays to a Query:** Doctrine now implements low-level\n support for binding arrays to named or positional parameters. This\n is possible with the Doctrine::TYPE\\_INT\\_ARRAY and\n Doctrine::TYPE\\_STR\\_ARRAY parameters that you have to pass as types\n to a query you want to use this feature in. EntityRepository now\n supports passing arrays as values to a field and uses an IN query.\n- **EntityRepository Limit and OrderBy:** The method\n EntityRepository\\#findBy() now accepts additional parameters for\n ordering, limit and offset.\n- **ResultSetMapping Helper:** There is now a class that simplifies\n populating a ResultSetMapping based on an existing ClassMetadata\n instance.\n- **Zero Based Parameters in Queries:** You can now start with the\n parameter ?0 in DQL queries.\n- **Named DQL Queries in Metadata:** You can add dql queries in the\n mapping files using @NamedQueries(@NamedQuery(name=\"foo\",\n query=\"DQL\")) and access them through\n \\$em-\\>getRepository()-\\>getNamedQuery().\n- **Date related DQL functions:** Suport for DATE\\_ADD(), DATE\\_SUB()\n and DATE\\_DIFF() in DQL.\n- **New console command orm:info:** Gives details about all registered\n entities and if their mappings are valid or not.\n- **Read Only Entities:** You can set the attribute readOnly=true on\n an entity. This will only allow to persist new instances of this\n entity or removing them, they will never be considered for updating,\n thus allowing for performance optimizations where these entities are\n not considered in the UnitOfWork changeset computations.\n- **SQL Query Object:** There is now an SQL Query object in the\n Doctrine project. You can create an instance with\n \\$connection-\\>createQueryBuilder().\n- **Automatic Parameter Type Inference:** For certain parameters types\n such as integer and DateTime ORM Query::setParameter can now\n automatically infer the type instead of requiring manually passing\n the values as third parameter.\n- **AnnotationReader Refactoring** - The annotation reader is now much\n more powerful and also allows for giving you error advices if you\n configure it this way. See the\n [documentation](https://www.doctrine-project.org/docs/common/2.1/en/reference/annotations.html)\n on all the changes and how Annotations work in 2.1.\n\nSee the changelogs for a list of all changes:\n\n- [Doctrine ORM 2.1\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022)\n- [Doctrine DBAL 2.1\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10068)\n- [Doctrine Common 2.1\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10123)\n\nYou can grab the code from our [downloads\nsection](https://www.doctrine-project.org/projects) , from\n[PEAR](http://pear.doctrine-project.org) or directly from\n[Github](https://github.com/doctrine).\n\nI will announce winners of the backwards compatibility competition in\nthe next weeks and send out gifts. The team thanks all contributors and\nbug-reporters for helping making Doctrine 2.1 a stable release. The next\nrelease of Doctrine 2.2 is scheduled for December 2011. We havent quite\nmade up our mind on the roadmap yet, but expect a post on this issue\nsoon.\n", - "date": "2011-07-04 00:00:00" - }, - { - "url": "/2010/12/21/doctrine2-released.html", - "slug": "doctrine2-released", - "title": "Doctrine 2 First Stable Release", - "authorName": "beberlei", - "authorEmail": "", - "contents": "We are happy to announce the immediate release of the first stable\nDoctrine 2.0 version. This release marks the end of 2.5 years of\ndedicated development starting in early 2008 and ending as a christmas\npresent to our users. We wish everyone a merry christmas!\n\nDuring the last years a core team of five people contributed large parts\nof the code and many developers contributed small patches and features.\nIn the end the Doctrine 1 code was refactored beyond recognition,\nreplacing the original ActiveRecord Doctrine 1 with a new DataMapper\nimplementation. We want to thank all the contributors and early adopters\nfor all the feedback and discussions.\n\nWhat is new in Doctrine 2?\n==========================\n\n- DQL is now a real language inside Doctrine, based on an EBNF that is\n parsed and transformed to SQL. Benefits of this refactoring are\n readable error messages, the generation of an AST that allows us to\n support many different vendors and powerful hooks for developers to\n modify and extend the DQL language to their needs. DQL can either be\n written as a string or be generated using a powerful QueryBuilder\n object.\n- Your persistent objects (called entities in Doctrine 2) are not\n required to extend an abstract base class anymore. Doctrine 2 allows\n you to use Plain old PHP Objects.\n- The UnitOfWork is not an alibi-pattern as implemented in Doctrine 1.\n It is the most central pattern in Doctrine 2. Instead of calling\n `save()` or `delete()` methods on your `Doctrine_Record` instances\n you now pass objects to the data mapper object called\n `EntityManager` and it keeps track of all changes until you request\n a synchronisation between database and the current objects in\n memory. This process is very efficient and has consistent semantics.\n This is a significant improvement over Doctrine 1 in terms of\n performance and developer ease-of-use.\n- There are no code-generation steps from YAML to PHP involved in the\n library anymore. YAML, XML, PHP and Doc-Block Annotations are four\n first-class citizens for defining the metadata mapping between\n objects and database. A powerful caching layer allows Doctrine 2 to\n use runtime metadata without relying on code-generation.\n- A clean architecture and powerful algorithms make Doctrine 2\n magnitudes faster than Doctrine 1.\n- Doctrine 2 supports an API that allows you to transform an arbitrary\n SQL statements into an object-structure. This feature is used by the\n Doctrine Query Language itself and is a first-class citizen of the\n library. It essentially allows you to make use of powerful\n vendor-specific features and complex SQL statements without having\n to cirumvent the ORM completely.\n- Inheritance is not akward anymore. There are now three different\n types of inheritance to choose from: Mapped Superclasses,\n Single-Table- and Joined-Table-Inheritance.\n- Many more features, just see the reference guide on what is possible\n with Doctrine 2.\n\nWhy did we take so long to develop this new major release?\n==========================================================\n\nThere are several reasons:\n\nThe refactoring of the original Doctrine 1 code marks a paradigm shift\nin how we approach object persistence in PHP. Making use of PHP 5.3 only\nfeatures we could write an ORM whose internals are much more powerful\nthan the first version of Doctrine. This meant rewriting lots of\nfeatures from scratch and refactoring other code beyond recognition.\nMany features were carefully implemented and have been discussed for\nweeks or month in our team. We feel that not a single feature in this\nrelease can be called a hack or has negative architectural implications\nalong the road.\n\nAs a user an ORM means committing yourself to a library that you haven't\nwritten yourself and trust it to handle your most important code: The\nbusiness and domain logic. We wanted to release a high quality library\nand make sure it has no bugs when it is released. This explains why the\nfirst alpha was already released over a year ago and we have been fixing\nevery little bug that appeared for the last 14 months. When you download\nDoctrine 2 now we feel this code is more stable and much more\nmaintainable than Doctrine 1. The ORM itself has about 1000 tests where\nhalf of these are functional tests that successfully run against all the\nsupported database vendors MySQL, SQLite, PostgreSQL, Oracle and MSSQL.\nThe database access layer and common libraries come with an additional\n400 tests.\n\nWe wanted the release to ship with a complete and well-thought-out\ndocumentation. Writing such a documentation takes time. The current\ndocumentation is probably not perfect, but it contains a very detailed\nreference guide and a small tutorial to get started. Additionally there\nis a cookbook with several recipes that you can use with your Doctrine 2\nproject.\n\nWhile Doctrine 1 had pretty powerful SQL abstraction we felt there were\nbetter libraries out there that could be incoporated into Doctrine 2.\nThe new database abstraction layer of Doctrine 2 is much more powerful\nthan the Doctrine 1 DBAL and is powered by code from other great\nlibraries such as Zeta Components, Zend Framework and PEAR MDB2. On top\nof this it can also be used standalone, you can use the DBAL without\nhaving to use the ORM.\n\nDropping Features of Doctrine 1\n===============================\n\nBut Doctrine 2 is not only a new version of Doctrine 1. We also dropped\na lot of features that we find inappropriate for the core of an ORM\nlibrary:\n\n- Validators have been dropped. Use a framework library like Zend or\n Symfony for validator support, they ship much more powerful\n validators than Doctrine 1 ever had. If you don't like frameworks\n there is ext/filter to consider.\n- We killed the magic features: Doctrine 2 does not offer behaviors as\n a core feature anymore. We came to the conclusion that behaviors in\n the core lead to the big ball of mud called Doctrine\n 1. The code is nearly unmaintainable because of all the special\n logic and magic that works everywhere. That is why Doctrine 2\n focuses on being a consistent and extensible object-relational\n mapper only and behaviors should be released as extensions on top of\n Doctrine 2. While this approach was questioned by many of the\n Doctrine 1 users we think this is the right approach. We are already\n seeing third party libraries and extensions like Doctrator based on\n Doctrine 2 that implement these features.\n- Explicit multiple connection support has been dropped. Use multiple\n instances of `Doctrine\\DBAL\\Connection` or\n `Doctrine\\ORM\\EntityManager`. Doctrine 2 uses no global state that\n could affect the usage of multiple instances.\n\nIs Doctrine 2 backwards compatible?\n===================================\n\nNo it is not. Doctrine 1 and 2 have nothing in common. For what its\nworth they only share the same project name. You cannot simply move from\nyour Doctrine 1.2 to a Doctrine 2 project. Why didn't we release a\nbackwards compatible ORM? Because we think Doctrine 1 has architectural\nflaws that cannot be fixed.\n\nWhat is the plan for Doctrine 2 beyond this release?\n====================================================\n\nWith the core that is now Doctrine 2 we plan to keep the library\nbackwards compatible at all times. Not only for minor and mini-releases\nsuch as 2.0.1 or 2.1, even for potential releases of a Doctrine 3 or 4\nversion we plan to avoid public API refactorings as much as possible. If\nhowever we feel that there is overwhelming evidence that a public API\nrefactoring makes the ORM faster and leads to more maintainable code we\nwill not hesitate to break API for a 3.0 release.\n\nThis approach comes at costs that we are willing to pay. All new\nfeatures have to pass a requirements discussion and pros/cons are\ncarefully weighted against each other. That is also why we try to expose\nas little of our internals as possible. This certainly hurts\nextensibility of Doctrine 2, but with our expected quality level and\nreview process we hope to bring the costs of this approach down. You\nshould never be forced to extend Doctrine 2 just to fix bugs, which is\nthe most important reason for extensibility in other PHP libraries.\n\nWhere do I start?\n=================\n\nYou can download Doctrine 2 [from our downloads\nsection](https://www.doctrine-project.org/projects/orm/download) ,\n[install it via PEAR](http://pear.doctrine-project.org/) or find it in\nthe [Github repository](https://github.com/doctrine/orm). Symfony 2\nalso ships with a current version of Doctrine 2. After you installed\nDoctrine 2 you can [go to the\ndocumentation](https://www.doctrine-project.org/docs/orm/2.0/en/) and\nstart reading the reference guide or [the\ntutorial](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/getting-started-xml-edition.html).\n\nIf you find any bugs or have feature requests you should check our\n[Bug-Tracker and report bugs or feature\nrequests](https://www.doctrine-project.org/jira). If you want to discuss\nabout Doctrine 2 you can either [use the Google Group or join the\n\\#doctrine channel on the Freenode IRC\nNetwork](https://www.doctrine-project.org/community). Also make sure to\ncheck the current [Limitations and Known Issues\nsection](https://www.doctrine-project.org/docs/orm/2.0/en/reference/limitations-and-known-issues.html)\nin the docs. We are trying to be honest about what Doctrine 2 can and\ncan't do but might do in the future.\n", - "date": "2010-12-21 00:00:00" + "contents": "Today we are happy to introduce the 2nd beta version of the 1.1 branch.\nThis means we are getting very close to delivering a stable version to\nyou.\n\nDevelopment Highlights\n======================\n\n- [5311](http://trac.doctrine-project.org/changset/5311) - Fixed\n infinite loop problem with isValid()\n- [5336](http://trac.doctrine-project.org/changeset/5336) -Added\n \\$deep argument for isValid() and isModified() and defaulted it to\n false to maintain BC\n- [5337](http://trac.doctrine-project.org/changeset/5337) -Removes\n used of \\_identifiers in synchronizeWithArray()\n- [5339](http://trac.doctrine-project.org/changeset/5339) -Reverting\n [5084](http://trac.doctrine-project.org/changeset/5084) as it\n introduces some bugs which cannot be fixed until a later version\n- [5341](http://trac.doctrine-project.org/changeset/5341) -Fixed issue\n with named parameters\n- [5344](http://trac.doctrine-project.org/changeset/5344) -Added\n checking for obj.field IN :named to prevent possible issues of DQL\n- [5345](http://trac.doctrine-project.org/changeset/5345) -Fixed issue\n with temporary generated models not being cleaned up properly\n\nYou can also check out the [detailed\ndocumentation](https://www.doctrine-project.org/upgrade/1_1) of all the\nchanges that are contained in the 1.1 version of Doctrine as well as the\n[changelog](https://www.doctrine-project.org/change_log/1_1_0_BETA2) to\nhelp ease the upgrade process.\n", + "date": "2009-01-06 00:00:00" }, { "url": "/2008/06/29/1000th-ticket-closed.html", @@ -198,310 +108,301 @@ "date": "2008-06-29 00:00:00" }, { - "url": "/2012/09/20/doctrine-2-3-final.html", - "slug": "doctrine-2-3-final", - "title": "Doctrine 2.3 final relased", - "authorName": "Benjamin Eberlei", + "url": "/2015/04/15/cache-1-4-1.html", + "slug": "cache-1-4-1", + "title": "Cache 1.4.1 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine Cache\n1.4.1.\n\nThis release fixes a series of bugs related with `null`, `false` or\ntruncated data in the `SQLite3` and `Memcache` adapters\n([\\#62](https://github.com/doctrine/cache/pull/62),\n[\\#65](https://github.com/doctrine/cache/pull/65),\n[\\#67](https://github.com/doctrine/cache/pull/67)).\n\nImprovements have been made to reduce the `SQLite3` cache adapter memory\nusage ([\\#64](https://github.com/doctrine/cache/pull/64)).\n\nIf you use an opcode cache such as OPCache (available since PHP 5.5),\nyou will get major performance improvements in read operations in the\n`PhpFileCache`, which shouldn't cause any stat calls at all now\n([\\#69](https://github.com/doctrine/cache/pull/69)).\n\nMulti-get support was built into the `Redis` adapter\n([\\#60](https://github.com/doctrine/cache/pull/60)).\n\nA new `VoidCache` adapter has been introduced - useful for testing\n([\\#61](https://github.com/doctrine/cache/pull/61)).\n\nYou can find the complete changelog for this release in the [release\nnotes](https://github.com/doctrine/cache/releases/tag/v1.4.1).\n\nYou can install the Cache component using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"1.4.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-04-15 00:00:00" + }, + { + "url": "/2008/01/16/cleaning_up_the_mess.html", + "slug": "cleaning_up_the_mess", + "title": "Cleaning up the mess", + "authorName": "guilhermeblanco", "authorEmail": "", - "contents": "**20.9.2012**\n\nAfter a 2 month long phase of beta and release candidates we can finally\nannounce the release of Doctrine 2.3. This includes new versions for the\npackages Common, DBAL and ORM.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nCompared to previous versions there are no new blockbuster feature, but\nmany little optimizations:\n\n- Custom ID Generators\n- Naming Strategies (Camel-, Underscore Cased)\n- Collection Criteria API\n- @AssociationOverride and @AttributeOverride (useful for Trait and\n MappedSuperclass)\n- Arbitrary JOIN Syntax (FROM User u JOIN Comment c WITH c.user =\n u.id)\n- Named Native Queries\n\nThe complete changelogs are listed on JIRA:\n\n- [Common\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10183)\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10184)\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10185)\n\nWe will flesh out the documentation and information about all new\nfeatures in the coming month. If you want to contribute to the\ndocumentation of new features see the\n[DBAL](https://github.com/doctrine/dbal-documentation) and\n[ORM](https://github.com/doctrine/orm-documentation) documentation links\non Github.\n\nYou can install the final release through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0\"\n }\n }\n\nThe downloadable packages will be available later today.\n", - "date": "2012-09-20 00:00:00" + "contents": "Starting from last blog post, development team went under some general\ndiscussions to reach a commom sense regarding the project versions. We\nare finally organizing our project from a non-versioned stage to a\nversionable stage, which was causing a lot troubles to everyone.\nCurrently we are under heavy development to reach a stable version of\n1.0 release. Until here, we are under some internal refactorings and we\ndecided to create a branch which we named 1.0beta2. Since then, we got a\nfeature freeze version and without big refactorings. The trunk went\nunder big changes and we decided to not keep the 1.0beta2 as the branch\nname; we renamed it 0.10. We know it is a big impact for those that\nchecked-out the branch, but we think it is safer to do it now instead of\nhave to deal with versions confusion in a near future. It's the best\norganization we can reach and it's the last one (thanks God!). Now that\nwe have the branches 0.9 and 0.10, it is time to define minor versions.\nWe caught from our history what was the first release of 0.9 and we\ntagged it as 0.9.0. We also got the old 1.0beta2 release and tagged it\nas 0.10-beta2. So currently we have 2 commit-free tagged versions and 2\nbranches with feature freeze. We highly discourage users from using\ntrunk, since it is a very unstable environment and your code may not\nwork. Please update your repository locations. These are the changes we\ndid: tags/1.0beta1 =\\> tags/0.9.0 tags/1.0beta2 =\\> tags/0.10-beta2\nbranches/1.0beta2 =\\> branches/0.10 branches/0.9 =\\> no change We also\nschedule new tagged releases in a near future. The next releases will be\n0.9.1 and 0.10-rc1. You can join \\#doctrine channel (at\nirc.freenode.net) or group list to follow discussions regarding this\nsubject. We apologize the mess we caused to users until now and we hope\nto not have this problem again, specially because we didn't have much\nrelease management knowledge. Thanks.\n", + "date": "2008-01-16 00:00:00" }, { - "url": "/2013/05/11/doctrine-2-4-beta2.html", - "slug": "doctrine-2-4-beta2", - "title": "Doctrine 2.4 Beta2 released", + "url": "/2015/11/03/doctrine-mongodb-odm-release-1-0-3.html", + "slug": "doctrine-mongodb-odm-release-1-0-3", + "title": "Doctrine MongoDB ODM release 1.0.3", + "authorName": "Maciej Malarz", + "authorEmail": "malarzm@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.0.3](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.3).\n\nReusing embedded documents\n==========================\n\nUntil now, we have advised developers to deep clone embedded documents\nwhen changing owning documents; otherwise,\n[strange](https://github.com/doctrine/mongodb-odm/issues/1229)\n[things](https://github.com/doctrine/mongodb-odm/issues/1169)\n[could](https://github.com/doctrine/mongodb-odm/issues/478)\n[happen](https://www.youtube.com/watch?v=dQw4w9WgXcQ). The reason\nbeing was that in order for ODM to properly track changes, it would\nstore parent parent associations and manage the lifecycle of each\ndocument (top-level and embedded alike). It was therefore reasonable\nthat Doctrine require relocated objects to be distinct instances.\n\n*Manual cloning is no longer needed!*\n\nWith this relase, ODM will now do all the heavy lifting for you.\nDocuments found to have been reused during a `persist` or `flush`\nlifecycle event shall be cloned by `UnitOfWork` automatically and\nupdated on the parent document or collection.\n\nOther bug fixes\n===============\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#103-2015-11-03).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.3\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.3).\n\nWork on 1.1 is starting and it will require PHP 5.5+\n====================================================\n\nWe are happy to announce that work on 1.1 is commencing! While no\nrelease dates have been scheduled, you can take a look at the [1.1\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1)\nfor brief list of goodies that we intend to ship next. If you would like\nto suggest additional features or, better yet, help in with development,\nplease get in touch. Currently, we are looking forward to implementing\n[hydrated aggregation\nresults](https://github.com/doctrine/mongodb-odm/pull/1263), support\nespecially now that MongoDB announced [\\$lookup\noperator](https://www.mongodb.com/blog/post/revisiting-usdlookup),\navailable for everybody in 3.2 and [custom collection\nclasses](https://github.com/doctrine/mongodb-odm/pull/1219) for\n`EmbedMany` and `ReferenceMany` associations.\n\nThe current `master` branch will soon become development branch for 1.1\nand the *PHP requirement will be bumped to 5.5*. If you cannot upgrade\nyour PHP runtime, please continue to use the 1.0.x branch. If you are\ninterested in testing the latest bug fixes (before we tag them), you may\nwant to follow the [1.0.x\nbranch](https://github.com/doctrine/mongodb-odm/tree/1.0.x).\n", + "date": "2015-11-03 00:00:00" + }, + { + "url": "/2011/12/15/symfony-bundles-move.html", + "slug": "symfony-bundles-move", + "title": "Our Symfony Bundles move to Doctrine organization", "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "**11.05.2013**\n\nWe have released the second beta version of Doctrine 2.4. Some of the\nchanges are listed in [this\ntalk](https://speakerdeck.com/asm89/what-is-new-in-doctrine) by\nAlexander and me from Symfony Live Berlin last year.\n\nMost of the new functionality is already documented and marked with\n\"Since 2.4\". We will also prepare a blog post for the release that shows\nall the new functionality in one place.\n\nYou can find a list of changes on\n[Jira](https://www.doctrine-project.org/jira/issues/?jql=project%20in%20(DDC%2C%20DBAL%2C%20DCOM)%20AND%20fixVersion%20%3D%20%222.4%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20priority%20DESC).\n\nYou can install the release with [Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.4.0-beta2\",\n \"doctrine/dbal\": \"2.4.0-beta2\",\n \"doctrine/common\": \"2.4.0-rc2\"\n }\n }\n\nPlease test this release with your existing applications to allow us to\nfind BC breaks and remove them before the final release. This will be\nthe last beta before Release Candidates will be created. We expect to\nneed only one RC and that the final release will follow shortly.\n\nYou should make yourself familiar with the UPGRADE documents, as we had\nto make some backwards compatibility breaks to fix nasty bugs:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n\n", - "date": "2013-05-11 00:00:00" + "contents": "The Symfony2 Doctrine related Bundles move to the Doctrine organization.\nThe DoctrineBundle being in the core for the 2.0 release it is now\nmaintained in a more decoupled way from Symfony for several reasons:\n\n- No coupling of release cycles anymore.\n- Move code to the organization that actually maintains it.\n- Avoid Symfony suggesting Doctrine is the only way for persistence,\n Symfony wants to focus on providing View and Controller and not make\n suggestions about the model.\n\nThe DoctrineFixturesBundle, DoctrineMigrationsBundle and\nDoctrineMongoDBBundle are now maintained in the Doctrine organization,\nhowever forks have been created in the Symfony repository to make all\nthe 2.0 apps out there backwards compatible. You find the new\nrepositories here:\n\n- [https://github.com/doctrine/DoctrineBundle](https://github.com/doctrine/DoctrineBundle)\n- [https://github.com/doctrine/DoctrineMongoDBBundle](https://github.com/doctrine/DoctrineMongoDBBundle)\n- [https://github.com/doctrine/DoctrineFixturesBundle](https://github.com/doctrine/DoctrineFixturesBundle)\n- [https://github.com/doctrine/DoctrineMigrationsBundle](https://github.com/doctrine/DoctrineMigrationsBundle)\n\nWhat do you need to change in your code? Not very much. For the\nDoctrineBundle for example the following:\n\n- Update the deps file to include the DoctrineBundle\n\n > [empty]\n > [DoctrineBundle]\n > git=https://github.com/doctrine/DoctrineBundle.git\n > target=/bundles/Doctrine/Bundle/DoctrineBundle\n\n- Change the Bundle class\n\n- Change references to Registry\n\nThe \\`SymfonyBundleDoctrineBundleRegistry\\` class may be type-hinted in\nyour code. You have to change this code to point to\n\\`DoctrineBundleDoctrineBundleRegistry\\`.\n\nA full deps file for all Doctrine bundles now looks like:\n\n [empty]\n [data-fixtures]\n git=https://github.com/doctrine/data-fixtures.git\n\n [migrations]\n git=https://github.com/doctrine/migrations.git\n\n [DoctrineBundle]\n git=https://github.com/doctrine/DoctrineBundle.git\n target=/bundles/Doctrine/Bundle/DoctrineBundle\n\n [DoctrineMigrationsBundle]\n git=https://github.com/doctrine/DoctrineMigrationsBundle.git\n target=/bundles/Doctrine/Bundle/MigrationsBundle\n\n [DoctrineFixturesBundle]\n git=https://github.com/doctrine/DoctrineFixturesBundle.git\n target=/bundles/Doctrine/Bundle/FixturesBundle\n\nAnd the autoload.php:\n\n~~~~ {.sourceCode .php}\n$loader->registerNamespaces(array(\n 'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),\n 'Sensio' => __DIR__.'/../vendor/bundles',\n 'JMS' => __DIR__.'/../vendor/bundles',\n 'Doctrine\\\\Bundle' => __DIR__.'/../vendor/bundles',\n 'Doctrine\\\\DBAL\\\\Migrations' => __DIR__.'/../vendor/migrations/lib',\n 'Doctrine\\\\Common\\\\DataFixtures' => __DIR__.'/../vendor/data-fixtures/lib',\n 'Doctrine\\\\Common' => __DIR__.'/../vendor/doctrine-common/lib',\n 'Doctrine\\\\DBAL' => __DIR__.'/../vendor/doctrine-dbal/lib',\n 'Doctrine' => __DIR__.'/../vendor/doctrine/lib',\n 'Monolog' => __DIR__.'/../vendor/monolog/src',\n 'Assetic' => __DIR__.'/../vendor/assetic/src',\n 'Metadata' => __DIR__.'/../vendor/metadata/src',\n));\n~~~~\n\nAnd the Kernel:\n\n~~~~ {.sourceCode .php}\n$bundles = array(\n new Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle(),\n new Symfony\\Bundle\\SecurityBundle\\SecurityBundle(),\n new Symfony\\Bundle\\TwigBundle\\TwigBundle(),\n new Symfony\\Bundle\\MonologBundle\\MonologBundle(),\n new Symfony\\Bundle\\SwiftmailerBundle\\SwiftmailerBundle(),\n new Symfony\\Bundle\\AsseticBundle\\AsseticBundle(),\n new Sensio\\Bundle\\FrameworkExtraBundle\\SensioFrameworkExtraBundle(),\n new JMS\\SecurityExtraBundle\\JMSSecurityExtraBundle(),\n new Doctrine\\Bundle\\DoctrineBundle\\DoctrineBundle(),\n new Doctrine\\Bundle\\MigrationsBundle\\DoctrineMigrationsBundle(),\n new Doctrine\\Bundle\\FixturesBundle\\DoctrineFixturesBundle(),\n);\n~~~~\n", + "date": "2011-12-15 00:00:00" }, { - "url": "/2008/04/05/doctrine-frequently-asked-questions.html", - "slug": "doctrine-frequently-asked-questions", - "title": "Doctrine frequently asked questions", + "url": "/2008/09/18/doctrine-and-symfony-frameworks-collaborating.html", + "slug": "doctrine-and-symfony-frameworks-collaborating", + "title": "Doctrine and symfony frameworks collaborating", "authorName": "jwage", "authorEmail": "", - "contents": "We have compiled a new addition to the Doctrine website, Frequently\nAsked Questions. The purpose of this is to help the users of Doctrine\nidentify any common questions/problems when using Doctrine. I have added\nall the questions I have encountered multiple times over the last year+.\nIf you have any recommendations for this least please don't be shy and\nlet us know. Thanks.\n", - "date": "2008-04-05 00:00:00" + "contents": "

\n\nDoctrine has been used by many symfony developers for nearly two years\nas an externally maintained plugin. This week it became official and\nDoctrine will be bundled and supported by the symfony core team as of\nversion 1.2 which is slated for late Q4 2008. You can read the full blog\narticle on the symfony-project.org blog.\n\n

\n\n\n", + "date": "2008-09-18 00:00:00" }, { - "url": "/2009/10/06/doctrine-1-2-nearing-stable-release.html", - "slug": "doctrine-1-2-nearing-stable-release", - "title": "Doctrine 1.2 Nearing Stable Release", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today I am happy to release to you the second ALPHA release of Doctrine\n1.2. Honestly, we didn't receive many reports of regressions or problems\nwith the new things in Doctrine 1.2 and we know lots of people have\nupgraded and using it so we feel it is a pretty stable release already.\n\nYou can view what all changed in this release by checking the\n[changelog](https://www.doctrine-project.org/change_log/1_2_0_ALPHA2) and\nyou can snag it from the\n[download](https://www.doctrine-project.org/download) page.\n\nWe hope that everything goes fine from here and the next release will be\nBETA1 followed by an RC and stable release. Please give 1.2 a try and\nreport any regressions to us so that we can be sure to get them fixed\nbefore the final stable release.\n", - "date": "2009-10-06 00:00:00" + "url": "/2015/08/18/doctrine-mongodb-odm-release-1-0-0.html", + "slug": "doctrine-mongodb-odm-release-1-0-0", + "title": "Doctrine MongoDB ODM release 1.0.0", + "authorName": "Maciej Malarz", + "authorEmail": "malarzm@gmail.com", + "contents": "In observance of August 18th, the day that Jon Wage tagged Doctrine\nMongoDB ODM's [first BETA\nrelease](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.0BETA1),\nwe've come together for a big celebration. From humble beginnings as a\nweekend hack to port Doctrine 2's data mapper pattern to NoSQL, the ODM\nquickly became a beast of a project and cut its teeth on production\nservers early on as a core dependency of the very first Symfony2\nstartups. Today, after five years of adoption, improvements,\nrefactoring, and [countless\njokes](https://twitter.com/jmikola/status/583047759160336384?lang=en)\u2026\nwe are very happy to announce the immediate availability of Doctrine\nMongoDB ODM 1.0.0!\n\nWhat is new in 1.0.0?\n=====================\n\nFor our first stable release, we focused on fixing most known bugs (some\nof which were open for *years*), hardening existing features, and\nstraightening out ODM's behaviour and correctness where possible. In\nhopes of ensuring a pleasant upgrade experience, we have prepared a\n[checklist](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#100-2015-08-18)\nfor you, which highlights the most important changes that may require\nyour attention. A complete list of resolved issues and pull requests may\nbe found on GitHub under the [1.0.0\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.0).\n\nBehind the scenes: Doctrine MongoDB 1.2.0\n=========================================\n\nWe are also happy to announce the immediate availability of Doctrine\nMongoDB 1.2.0, which is the underlying driver abstraction layer employed\nby the ODM. In particular, this release sports a brand new [Aggregation\nBuilder](https://github.com/doctrine/mongodb/pull/213), along with\nimproved query builder support for [update\noperators](https://github.com/doctrine/mongodb/pull/212) and and\n[full-text search](https://github.com/doctrine/mongodb/pull/184)\nintroduced in MongoDB 2.6. For a full list of closed issues and pull\nrequests, please see the [release notes on\nGitHub](https://github.com/doctrine/mongodb/releases/tag/1.2.0).\n\nStop fooling around, I want my BETA back!\n=========================================\n\nWe apologize for any inconvenience, but Doctrine MongoDB ODM has\nofficially gone stable and we don't intend on shipping more BETAs\nanytime soon. Well, at least not until work begins on 2.0 :D\n", + "date": "2015-08-18 00:00:00" }, { - "url": "/2008/01/05/project_status.html", - "slug": "project_status", - "title": "Project Status", + "url": "/2008/04/01/doctrine-goes-pecl.html", + "slug": "doctrine-goes-pecl", + "title": "APRIL FOOLS! Doctrine goes PECL", "authorName": "jwage", "authorEmail": "", - "contents": "Here is a short update on the current project status. We're heavily\ndeveloping towards a 1.0 release that will bring lots of enhancements\nlike improved inheritance mapping and lots of other stuff. We're\nespecially keen on making this release as stable as possible and on\npolishing the documentation.\n\nUntil then we strongly encourage everyone to use the 0.9 branch that can\nbe found here:\n[http://svn.phpdoctrine.org/branches/0.9](http://svn.phpdoctrine.org/branches/0.9)\nIt's a feature-frozen branch that recieves bugfixes. There will be no\nchanges that break backwards compatibility in this branch.\n\nThe current trunk is under heavy development, so please don't use it\nunless you are developing on Doctrine's source code or you are just very\ncurious.\n\nWhen the time for the 1.0 release comes near we will provide a migration\nguide and do everything possible to help you take the leap from 0.9 to\n1.0.\n\nPS: At this point, the the whole Doctrine team wants to apologize for\nthe version mess you've gone through (and are still getting through). We\nreally messed up in terms of release management mainly due to the lack\nof experience in this area. This stops here. 0.9 will stay and it will\nstay for a while. We're not going to rush releases again.\n\nThank you very much.\n", - "date": "2008-01-05 00:00:00" - }, - { - "url": "/2011/06/28/doctrine-2-1-rc2.html", - "slug": "doctrine-2-1-rc2", - "title": "Doctrine 2.1 Release Candidate 2", - "authorName": "beberlei", - "authorEmail": "", - "contents": "RC2 of Doctrine 2.1 is packaged and can be grabbed from\n[PEAR](http://pear.doctrine-project.org) and the download section.\n\nWe fixed several inconsistencies, backwards compatibility breaks and\nsome bugs.\n\nPlease test this release as it will probably be the base of the final\nrelease due to be released later this week. The scheduled date is\nThursday 30th, but due to personal timetable this may become the\nweekend.\n", - "date": "2011-06-28 00:00:00" + "contents": "After many long debates and countless hours of development, Doctrine has\nbeen successfully ported to a PECL extension and will be maintained as a\nPECL extension from now on. The extension can be downloaded and\ninstalled via PEAR. As a PECL extension the ORM performs 4 times as fast\nand brings unbelievable results. Enjoy!\n", + "date": "2008-04-01 00:00:00" }, { - "url": "/2009/06/13/doctrine-visiting-conferences-around-the-world.html", - "slug": "doctrine-visiting-conferences-around-the-world", - "title": "Doctrine visiting conferences around the world", - "authorName": "jwage", - "authorEmail": "", - "contents": "This last month I have been present at a few events to speak about\nDoctrine. I visited Verona, Italy for the phpDay conference and this\nlast week I was present at the first Symfony conference in Paris,\nFrance. I also have given a few talks at some smaller local events such\nas the Nashville Enterprise LAMP group. Below are the links to the\npresentations on slideshare.\n\nWhat's new in Doctrine (symfony live)\n=====================================\n\n
\n\nWhat's new in Doctrine\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nWhat is Doctrine? (Nashville LAMP Group)\n========================================\n\n
\n\nWhat Is Doctrine?\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nWhat's new in Doctrine (phpDay 2009)\n====================================\n\n
\n\nWhat's New In Doctrine\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nIn addition to the Doctrine talks I have been talking a lot recently\nabout a new CMS built on top of Symfony and Doctrine called Sympal.\nBelow you can view those presentations as well if interested.\n\nSympal - The flexible Symfony CMS (symfony live)\n================================================\n\n
\n\nSympal - The flexible Symfony CMS\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\nSympal - The flexible Symfony CMS (phpDay 2009)\n===============================================\n\n
\n\nSympal - The Flexible Symfony Cms\n\n\n\n
\n\nView more Microsoft Word documents from jwage.\n\n
\n\n\n", - "date": "2009-06-13 00:00:00" + "url": "/2019/05/30/doctrine-webinars.html", + "slug": "doctrine-webinars", + "title": "Doctrine Webinars", + "authorName": "Jonathan H. Wage", + "authorEmail": "jonwage@gmail.com", + "contents": "As mentioned in the [Monetizing Open Source](/2019/05/21/monetizing-open-source.html) blog post,\nDoctrine will be regularly organizing online [webinars](/events.html) hosted with [Zoom](https://zoom.us/).\nYou can join from anywhere in the world with a laptop and an internet connection. We will\nhave topics presented by Doctrine core team members and members of the community.\n\nTo get things started we have a few webinars scheduled for the next few months:\n\n- [Doctrine for Beginners](/events/2/doctrine-for-beginners.html) on June 25th by Jonathan Wage\n- [Getting Started with Doctrine MongoDB ODM](/events/3/getting-started-with-doctrine-mongodb-odm.html) on July 16th by Andreas Braun\n- [PHP Internals for the Inquisitive Developer](/events/1/php-internals-for-the-inquisitive-developer.html) on September 10th by Jeremy Mikola\n\nDon't see something that you are interested in? [Suggest](https://www.doctrine-project.org/events/suggest.html) an event topic you would like to see and we will see what we can do. We will be publishing new events in the coming weeks so check back soon!\n", + "date": "2019-05-30 00:00:00" }, { - "url": "/2008/08/27/moving-quickly.html", - "slug": "moving-quickly", - "title": "Moving Quickly", + "url": "/2008/10/18/new-to-migrations-in-1-1.html", + "slug": "new-to-migrations-in-1-1", + "title": "New to Migrations in 1.1", "authorName": "jwage", "authorEmail": "", - "contents": "

\n\nRight out of the gate we're moving extremely fast. Only two days in to\nworking full-time on the project we've made some significant pushes\nforward. On Monday we made available the first 1.0 Release Candidate and\nthen immediately began working on the second and final release\ncandidate. This milestone is extremely significant as it already\ncontains over 70 closed tickets! It will be released either Wednesday or\nThursday and 1.0 Stable will follow after it on Monday September 1st.\nBelow are some other highlights on the progress made so far.\n\n

\n\nWebsite Updates\n\n

\n\nNew API Documentation Index\n\n

\n\n

\n\nNew Method Summary List\n\n

\n\n

\n\nRC2 Development Highlights\n\n

  • \n\nFixed Searchable behavior and added missing Documentation\n\n
  • \n\nAdded Database Reverse Engineering for MSSQL\n\n
  • \n\nDocumented Named Query Support\n\n
  • \n\nThe heavily anticipated orWhere() support has been introduced to\nDoctrine\\_Query\n\n
  • \n\nDozens of commits and over 70 closed tickets\n\n
\n\n\n", - "date": "2008-08-27 00:00:00" + "contents": "In Doctrine 1.1 migrations are much easier to work with. In addition to\nthe increased stability we have enhanced the migrations in a few ways to\nsimplify the use of them dramatically.\n\nWe have introduced the following features.\n\n- Diff Tool - Generate migration classes by simply changing your\n schema and generating the migrations.\n- Down Automation - Doctrine now has the ability to automate the down\n of of a migration call.\n\nGenerating Migrations\n=====================\n\nImagine you have the following starting schema.\n\n [yml]\n ---\n User:\n columns:\n username: string(255)\n password: string(255)\n\nBuild your initial models from the schema.\n\n $ ./doctrine generate-models-yaml\n\nNow we want to enhance our schema to add some new columns as well as a\nnew model with the following schema.\n\n [yml]\n ---\n User:\n columns:\n username: string(255)\n password: string(255)\n email_address: string(255)\n\n Phonenumber:\n columns:\n user_id: integer\n phonenumber: string(25)\n relations:\n User:\n onDelete: CASCADE\n foreignAlias: Phonenumbers\n\nNow by simply changing our schema we can generate the migrations\nrequired to upgrade our database.\n\n $ ./doctrine generate-migrations-diff\n\nNow in your migrations directory you will see 3 migration classes\ncreated for you.\n\n`1224273485_add_user.php`\n-------------------------\n\n~~~~ {.sourceCode .php}\ncreateTable('up', 'user', array('id' => array('type' => 'integer', 'length' => 8, 'autoincrement' => true, 'primary' => true), 'username' => array('type' => 'string', 'length' => 255), 'password' => array('type' => 'string', 'length' => 255)), array('indexes' => array(), 'primary' => array(0 => 'id')));\n }\n\n public function down()\n {\n $this->dropTable('up', 'user');\n }\n}\n~~~~\n\n`1224273485_version1.php`\n-------------------------\n\n~~~~ {.sourceCode .php}\ncreateTable('up', 'phonenumber', array('id' => array('type' => 'integer', 'length' => 8, 'autoincrement' => true, 'primary' => true), 'user_id' => array('type' => 'integer', 'length' => 8), 'phonenumber' => array('type' => 'string', 'length' => 25)), array('indexes' => array(), 'primary' => array(0 => 'id')));\n $this->addColumn('up', 'user', 'email_address', '255', 'string', array ());\n }\n\n public function down()\n {\n $this->dropTable('up', 'phonenumber');\n $this->removeColumn('up', 'user', 'email_address');\n }\n}\n~~~~\n\n`1224273486_version2.php`\n-------------------------\n\n~~~~ {.sourceCode .php}\naddIndex('up', 'phonenumber', 'phonenumber_user_id_user_id', array('fields' => array(0 => 'user_id')));\n $this->createForeignKey('up', 'phonenumber', array('name' => 'phonenumber_user_id_user_id_idx', 'local' => 'user_id', 'foreign' => 'id', 'foreignTable' => 'user', 'onUpdate' => NULL, 'onDelete' => 'CASCADE'));\n }\n\n public function down()\n {\n $this->removeIndex('up', 'phonenumber', 'phonenumber_user_id_user_id', array('fields' => array(0 => 'user_id')));\n $this->dropForeignKey('up', 'phonenumber', array('name' => 'phonenumber_user_id_user_id_idx', 'local' => 'user_id', 'foreign' => 'id', 'foreignTable' => 'user', 'onUpdate' => NULL, 'onDelete' => 'CASCADE'));\n }\n}\n~~~~\n\nDown Automation\n===============\n\nIn addition to Doctrine being able to generate migrations based on your\nschema changes, you can now easily automate the down of most methods.\nThe last migration class could be simplified a lot by doing the\nfollowing.\n\n~~~~ {.sourceCode .php}\naddIndex($direction, 'phonenumber', 'phonenumber_user_id_user_id', array('fields' => array(0 => 'user_id')));\n $this->createForeignKey($direction, 'phonenumber', array('name' => 'phonenumber_user_id_user_id_idx', 'local' => 'user_id', 'foreign' => 'id', 'foreignTable' => 'user', 'onUpdate' => NULL, 'onDelete' => 'CASCADE'));\n }\n}\n~~~~\n\nNotice that in this example we only have one method named migrate()\nwhich receives a direction. Most API methods are easy to automate the\nopposite down so when migrate is called with \\$direction = 'down' then\nthe index and foreign key will be dropped instead of added.\n", + "date": "2008-10-18 00:00:00" }, { - "url": "/2012/03/04/doctrine-2-2-1-released.html", - "slug": "doctrine-2-2-1-released", - "title": "Doctrine 2.2.1 released", + "url": "/2010/07/19/your-own-orm-doctrine2.html", + "slug": "your-own-orm-doctrine2", + "title": "Write your own ORM on top of Doctrine2", "authorName": "beberlei", "authorEmail": "", - "contents": "We released version 2.2.1 of the Doctrine ORM today, fixing a total of\n16 bugs.\n\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10194)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) , download from the website or\nthrough [Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.1\" }\n>\n> }\n", - "date": "2012-03-04 00:00:00" + "contents": "**NOTE**\n\n> The Doctrine ActiveEntity Extension is just an experiment, nothing\n> that will be developed much further from the Doctrine Dev Team. It is\n> only a show-case for what is possible with Doctrine2. Please feel free\n> to take the code and develop it further.\n\nDid you feel the urge to write your own Object-Relational Mapper after\nreading Martin Fowlers PoEAA? I am guilty to have tried implementing two\ndifferent ORMs on my own, both now safely dumped into the trash.\n\nIn isolation each ORM pattern is easy to describe, understand and even\nimplement. However the combination of a large set of patterns into a\nsingle implementation introduces a lot of hard to solve complexity in\nyour code. Even simple Object-Relational-Mappers require a lot of\npatterns to become useful: Metadata Mapping, Identity Map, Foreign Key\nMapping, Association Table Mapping and Query Object. Implementations\nwith more features at least need the UnitOfWork and probably many more,\nfor example handling inheritance, locking, value objects and such.\n\nDoctrine2 already solves a lot of the head aching problems in a\nconsistent approach. We have been working on this project for almost 2\nyears now, with all the experience we gained implementing Doctrine 1.\nAdditionally we make use of well-understood concepts from other ORM\nimplementations across various languages.\n\nWe as developers think that Doctrine2 responsibilities are very well\nseparated such that you can exchange larger parts of the Doctrine2 core\nwithout having to re-implement everything. So if you ever feel inspired\nto implement your own ORM, we would be happy to offer you Doctrine2 as a\nfoundation to build upon.\n\nThere are examples of other ORMs that have taken the re-use instead of\nre-implement road. For example the [Groovy Grails\nORM](http://www.grails.org/GORM) is an ActiveRecord implementation on\ntop of the popular Hibernate Java ORM. Since Groovy is a\njava-virtual-machine language it can safely use the Hibernate ORM as a\ndependent library.\n\nThis article will describe some possible extensions and show where you\ncan hook into the Doctrine2 core to implement your own ORM. The article\nwill be very code focused and also comes with a [Github\nproject](https://github.com/beberlei/Doctrine-ActiveEntity) where all the\ncode and some tests are hosted.\n\nDoctrine2 and ActiveRecord\n==========================\n\nDoctrine2 is implementing the DataMapper pattern, however many\nprogrammers think ActiveRecord is better for various reasons. For me\ndata-mappers are superiour to ActiveRecord, however I do understand why\nActiveRecord is so popular: Its very easy to get started and do cool\nstuff with it! If you want Doctrine2 to be ActiveRecord you can have it.\nActually it is very easy to turn it into a powerful ActiveRecord\nimplementation, keeping all the powerful features such as DQL.\n\nSome while ago Jonathan already released his approach, called the\n\"ActiveEntity\" extension. Its a single abstract php class that your\nentities have to implement, the code is still [in our SVN\nrepository](http://trac.doctrine-project.org/browser/extensions/ActiveEntity/branches/2.0-1.0/DoctrineExtensions/ActiveEntity.php).\nHowever a more recent version of this code is available as [a project on\nGithub](https://github.com/beberlei/Doctrine-ActiveEntity). I won't\nsupport this experiment any further, I hope somebody picks it up and\nstarts maintaining it.\n\nWith Jonathans old code, to allow active record entities, you have to\nbootstrap the ActiveEntity by passing a static EntityManager:\n\n~~~~ {.sourceCode .php}\n \"beberlei\"));\n$beberlei = User::findOneBy(array(\"name\" => \"beberlei\"));\n~~~~\n\nThe code to allow this functionality is very simple:\n\n~~~~ {.sourceCode .php}\ngetRepository(get_called_class()), $method), $arguments);\n}\n~~~~\n\nThere are also some additional methods on the `ActiveEntity` class that\nuse magic **get and**set and \\_\\_call methods to access the private\nproperties of an Entity (such as the User id and name shown above).\nAdditionally you can call save() or remove() on any instance.\n\nFor starters this offers a great ActiveRecord implementation with all\nthe powerful features that Doctrine2 offers, such as DQL and UnitOfWork.\nHowever we can still go much further:\n\n- Eliminate the need to define ActiveEntity properties by metadata\n mapping inference\n- Adding your own powerful Metadata Mapping Layer\n- Add a Doctrine 1.2 behaviour system using the PHP 5.3.99DEV Traits\n functionalitiy\n- Add validation to properties of an ActiveEntity\n\nLets begin with a simple introduction to the Doctrine Metadata Model to\nexplain how this is all possible.\n\nDoctrine2 Metadata Model\n========================\n\nYou probably already saw that Doctrine2 offers many different metadata\nconfiguration mechanisms: Annotations, YAML, XML and plain PHP. Any one\nof this implementations will transform into an instance of\n`Doctrine\\ORM\\ClassMetadata` which is then cached for subsequent web\nrequests. The `ClassMetadataFactory` is responsible for creating and\nmanaging those metadata instances.\n\nDoctrine2 uses the `ClassMetadata` instance internally for all runtime\naccess to your entities metadata, which means that you have to extend\nthis class such that it works exactly the same from the outside.\n\nIf you wanted to extend the inner workings of Doctrine2, this is indeed\nthe way to go. First extend the EntityManager to replace the\n`ClassMetadataFactory` used. This piece of code is the only hackish\nworkaround, everything else is rather nice :-)\n\n~~~~ {.sourceCode .php}\nsetCacheDriver($this->getConfiguration()->getMetadataCacheImpl());\n\n // now this is the only hack required to get it work:\n $reflProperty = new \\ReflectionProperty('Doctrine\\ORM\\EntityManager', 'metadataFactory');\n $reflProperty->setAccessible(true);\n $reflProperty->setValue($this, $metadataFactory);\n }\n\n public static function create($conn, Configuration $config, EventManager $eventManager = null)\n {\n // ... copy paste from EntityManager::create()\n\n return new ActiveEntityManager($conn, $config, $conn->getEventManager());\n }\n}\n~~~~\n\nAnd both the `ClassMetadataFactory` and `ClassMetadata`:\n\n~~~~ {.sourceCode .php}\nname, $name);\n }\n}\n\nclass ActiveEntityReflectionProperty\n{\n public $name = null;\n public $class = null;\n\n public function __construct($class, $name)\n {\n $this->class = $class;\n $this->name = $name;\n }\n\n public function setAccessible($flag) {}\n\n public function setValue($entity = null, $value = null)\n {\n $entity->set($this->name, $value);\n }\n\n public function getValue($entity = null)\n {\n return $entity->get($this->name);\n }\n}\n~~~~\n\nThis is about enough to exchange reflection transformation against a\nsimple ActiveRecord get/set approach. Now we need to replace the all the\ninstantiations of `ReflectionClass` relevant for runtime mapping with\nour implementation:\n\n~~~~ {.sourceCode .php}\nreflClass = new ActiveEntityReflectionClass($entityName);\n $this->namespace = $this->reflClass->getNamespaceName();\n $this->table['name'] = $this->reflClass->getShortName();\n }\n\n /**\n * Restores some state that can not be serialized/unserialized.\n *\n * @return void\n */\n public function __wakeup()\n {\n // lots of code here, see the Github Repository\n }\n}\n~~~~\n\nAgain, this is enough and our ActiveEntity Mapping now works. We can\nheavily modify the `ActiveEntity` now to loose the requirement to\nspecify properties for the defined metadata. We can rewrite the User\nentity to be:\n\n~~~~ {.sourceCode .php}\nsetMetadataDriverImpl(new \\Doctrine\\ORM\\Mapping\\Driver\\StaticPHPDriver());\n// ...\n~~~~\n\nThis allows to specify the metadata within the User class:\n\n~~~~ {.sourceCode .php}\nget('created');\n }\n\n public function updated()\n {\n return $this->get('updated');\n }\n\n /** will be a prePersist lifecycle hook */\n public function setCreated()\n {\n return $this->set('created', new \\DateTime(\"now\"));\n }\n\n /** will be a preUpdate lifecycle hook */\n public function setUpdated()\n {\n return $this->set('updated', new \\DateTime(\"now\"));\n }\n}\n\nclass User extends ActiveEntity use Timestampable\n{\n\n}\n~~~~\n\nWe now need an Event that modifies the `ActiveClassMetadata` as\nrequired:\n\n~~~~ {.sourceCode .php}\ngetClassMetadata();\n $traits = $classMetadata->reflClass->getTraitNames();\n if (!in_array(\"DoctrineExtensions\\ActiveEntity\\Behaviour\\Timestampable\", $traits)) {\n return;\n }\n\n $classMetadata->mapField(array(\n 'type' => 'datetime',\n 'fieldName' => 'created',\n ));\n $classMetadata->mapField(array(\n 'type' => 'datetime',\n 'fieldName' => 'updated',\n ));\n $classMetadata->addLifecycleCallback(\"prePersist\", \"setCreated\");\n $classMetadata->addLifecycleCallback(\"prePersist\", \"setUpdated\");\n $classMetadata->addLifecycleCallback(\"preUpdate\", \"setUpdated\");\n }\n}\n~~~~\n\nYou can now register this behaviour with your Entity Manager and just\nthe usage of the trait `Timestampable` adds two additional fields and\nupdates them accordingly.\n\n> **NOTE**\n>\n> Again, the trait code is untested. It should work, but I cannot\n> guarantee! :)\n\nConclusion\n==========\n\nWhat are you waiting for? This article showed a very deep modification\nof the Doctrine2 core to turn it into Active Record. The changes\nrequired some understanding of the inner workings of Doctrine2, however\nnot many changes were required in the end.\n\n[See the code on\nGitHub!](https://github.com/beberlei/Doctrine-ActiveEntity)\n", + "date": "2010-07-19 00:00:00" }, { - "url": "/2009/09/25/doctrine-1-0-12-and-1-1-4-released.html", - "slug": "doctrine-1-0-12-and-1-1-4-released", - "title": "Doctrine 1.0.12 and 1.1.4 Released", + "url": "/2008/03/16/4-000th-svn-commit-revision.html", + "slug": "4-000th-svn-commit-revision", + "title": "4,000th svn commit/revision", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am happy to bring you two new maintenance releases for the 1.0\nand 1.1 versions of Doctrine. These are both standard maintenance\nreleases and only contain bug fixes.\n\n> **NOTE** **1.1 End of Life**\n>\n> This is the second to last maintenance release for the 1.1 version and\n> we are still scheduled to hit the end of life on **November 1, 2009**.\n> The good news is 1.2 will be a **LTS(long term support)** release and\n> will have **18** months of support from the date it is released.\n\nYou can view the change logs and download these releases on the\n[download](https://www.doctrine-project.org) page.\n", - "date": "2009-09-25 00:00:00" + "contents": "This evening Doctrine reached a milestone of four thousand commits in\nsvn. Doctrine has maintained steady development for almost three years\nstrong, and we feel this milestone is very significant for the evolution\nof Doctrine. Today, we would like to announce that the first generation\nof Doctrine, also know as 0.10, will be the first real candidate for the\nfirst(second) stable 1.0 version. After 3 point releases of the 0.10\nbranch we have fixed over 100 tickets, and made huge steps towards the\nfirst stable release of Doctrine. Several months ago, we decided to make\na feature freeze as 0.9 branch, so that we could continue on going\nrefactorings to Doctrine while providing a stable branch for our users.\nNow, several months later, we have evolved to 0.10 and are beginning to\nbecome more and more stable. We have also decided that the developments\nin trunk are so significant that they deserve a title of Doctrine 2.0,\nthe second generation of Doctrine.\n\nNow, we need some help from our users. The 0.10 branch is down to one\nfailing test case(soon to be fixed). With over 100 unfixed tickets, and\n1 failing test case, this means we need some failing test case writing\ndone :) As I've said before, the best way to ensure your issue is fixed,\nis to create a failing test case replicating the issue. You can read\nabout how to write test cases for the 0.10 branch here.\n", + "date": "2008-03-16 00:00:00" }, { - "url": "/2008/07/20/doctrine-gets-its-first-employee.html", - "slug": "doctrine-gets-its-first-employee", - "title": "Doctrine gets its first employee", - "authorName": "jwage", - "authorEmail": "", - "contents": "

\n\nStarting in September 2008, I will begin working full-time on Doctrine!\nThis great opportunity has been allowed by Sensio, the creators of the\nsymfony MVC Framework. This arrangement will allow many great new things\nto happen for Doctrine. Below you will find a list of some of the things\nyou can look forward to:\n\n

  • \n\nCore Development\n\n
  • \n\nThe Doctrine Book\n\n
  • \n\nTravel to conferences\n\n
  • \n\nDoctrine Evangelism\n\n
  • \n\nCommercial/Paid Support\n\n
  • \n\nWorkshops\n\n
  • \n\nCertifications\n\n

\n\nThis is also good news for the symfony project as it is due to\nofficially support Doctrine as its primary ORM in future versions. I\nwill also be helping the core symfony team with the official integration\nof Doctrine with sfDoctrinePlugin.\n\n

\n\n\n", - "date": "2008-07-20 00:00:00" + "url": "/2022/01/22/sunsetting-dbal-2.html", + "slug": "sunsetting-dbal-2", + "title": "Sunsetting Doctrine DBAL 2", + "authorName": "Sergei Morozov", + "authorEmail": "morozov@tut.by", + "contents": "Since the release of [Doctrine DBAL 3.0.0 ](https://github.com/doctrine/dbal/releases/tag/3.0.0) in November 2020,\nthe 2.x release series effectively went into the maintenance mode. In the past year, we've been accepting mostly\nthe following types of patches for DBAL 2:\n\n1. Development dependency updates\n2. Security fixes\n3. Improvements to compatibility with PHP 8.1\n4. Improvements in the upgrade path to DBAL 3\n\nExcept for dependency updates, at the moment, there are no known issues in DBAL 2 that would fall into any of\nthe above categories.\n\nMany projects that depend on Doctrine DBAL depend on it indirectly via Doctrine ORM which until\n[release 2.10.0](https://github.com/doctrine/orm/releases/tag/2.10.0) didn't support DBAL 3.\nIt was one of the blockers of the DBAL 3 adoption which is no longer the case.\n\nWith all that said, the DBAL team announces the plan for sunsetting DBAL 2 in 6 months as of the ORM 2.10.0 release\nwhich is April 3, 2022. After that date, we plan to release DBAL 2 only to address security related\nand other critical issues for at most a year.\n\nAll Doctrine DBAL users are encouraged to upgrade to the latest stable version\nwhich is [3.3.0](https://github.com/doctrine/dbal/releases/tag/3.3.0) as of the time of this writing.\n\nFor migrating from DBAL 2 to 3, see our two blog posts on DBAL 2.13 Forward Compatibility Layer:\n\n- [New Release: Doctrine DBAL 2.13 with Deprecations and Forward Compatibility](https://www.doctrine-project.org/2021/03/29/dbal-2.13.html)\n- [New Release: Doctrine DBAL 2.13.1 and 3.1.0 with important Forward Compatibility fix](https://www.doctrine-project.org/2021/04/19/dbal-2.13.1-3.1.0.html)\n", + "date": "2022-01-22 00:00:00" }, { - "url": "/2009/12/01/more-doctrine-releases.html", - "slug": "more-doctrine-releases", - "title": "More Doctrine Releases", + "url": "/2009/05/11/doctrine-1-0-9-and-1-1-1-released.html", + "slug": "doctrine-1-0-9-and-1-1-1-released", + "title": "Doctrine 1.0.9 and 1.1.1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Only a few hours ago we released the stable version of Doctrine 1.2! Now\nwe bring you two maintenance releases for the 1.0 and 1.1 versions of\nDoctrine. The number of changes in these releases are small, but they\nare important bug fixes. It is recommended that you upgrade. Download\n[1.0.14](https://www.doctrine-project.org/download#1_0) and\n[1.1.6](https://www.doctrine-project.org/download#1_1) now and report any\nissues you discover in [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2009-12-01 00:00:00" + "contents": "Today I am very happy to make available two new releases of Doctrine for\nthe 1.0 and 1.1 code bases. These are both significant bug fix releases\nand it is recommended that you upgrade right away.\n\n- [1.1.1](https://www.doctrine-project.org/download/1_1_1/format/tgz)\n- [1.0.9](https://www.doctrine-project.org/download/1_0_9/format/tgz)\n\nYou can find more information about these releases as usual on the\n[download](https://www.doctrine-project.org/download) page.\n", + "date": "2009-05-11 00:00:00" }, { - "url": "/2008/10/18/new-to-migrations-in-1-1.html", - "slug": "new-to-migrations-in-1-1", - "title": "New to Migrations in 1.1", - "authorName": "jwage", + "url": "/2010/09/01/birthday-release-party.html", + "slug": "birthday-release-party", + "title": "Birthday Release Party", + "authorName": "romanb", "authorEmail": "", - "contents": "In Doctrine 1.1 migrations are much easier to work with. In addition to\nthe increased stability we have enhanced the migrations in a few ways to\nsimplify the use of them dramatically.\n\nWe have introduced the following features.\n\n- Diff Tool - Generate migration classes by simply changing your\n schema and generating the migrations.\n- Down Automation - Doctrine now has the ability to automate the down\n of of a migration call.\n\nGenerating Migrations\n=====================\n\nImagine you have the following starting schema.\n\n [yml]\n ---\n User:\n columns:\n username: string(255)\n password: string(255)\n\nBuild your initial models from the schema.\n\n $ ./doctrine generate-models-yaml\n\nNow we want to enhance our schema to add some new columns as well as a\nnew model with the following schema.\n\n [yml]\n ---\n User:\n columns:\n username: string(255)\n password: string(255)\n email_address: string(255)\n\n Phonenumber:\n columns:\n user_id: integer\n phonenumber: string(25)\n relations:\n User:\n onDelete: CASCADE\n foreignAlias: Phonenumbers\n\nNow by simply changing our schema we can generate the migrations\nrequired to upgrade our database.\n\n $ ./doctrine generate-migrations-diff\n\nNow in your migrations directory you will see 3 migration classes\ncreated for you.\n\n`1224273485_add_user.php`\n-------------------------\n\n~~~~ {.sourceCode .php}\ncreateTable('up', 'user', array('id' => array('type' => 'integer', 'length' => 8, 'autoincrement' => true, 'primary' => true), 'username' => array('type' => 'string', 'length' => 255), 'password' => array('type' => 'string', 'length' => 255)), array('indexes' => array(), 'primary' => array(0 => 'id')));\n }\n\n public function down()\n {\n $this->dropTable('up', 'user');\n }\n}\n~~~~\n\n`1224273485_version1.php`\n-------------------------\n\n~~~~ {.sourceCode .php}\ncreateTable('up', 'phonenumber', array('id' => array('type' => 'integer', 'length' => 8, 'autoincrement' => true, 'primary' => true), 'user_id' => array('type' => 'integer', 'length' => 8), 'phonenumber' => array('type' => 'string', 'length' => 25)), array('indexes' => array(), 'primary' => array(0 => 'id')));\n $this->addColumn('up', 'user', 'email_address', '255', 'string', array ());\n }\n\n public function down()\n {\n $this->dropTable('up', 'phonenumber');\n $this->removeColumn('up', 'user', 'email_address');\n }\n}\n~~~~\n\n`1224273486_version2.php`\n-------------------------\n\n~~~~ {.sourceCode .php}\naddIndex('up', 'phonenumber', 'phonenumber_user_id_user_id', array('fields' => array(0 => 'user_id')));\n $this->createForeignKey('up', 'phonenumber', array('name' => 'phonenumber_user_id_user_id_idx', 'local' => 'user_id', 'foreign' => 'id', 'foreignTable' => 'user', 'onUpdate' => NULL, 'onDelete' => 'CASCADE'));\n }\n\n public function down()\n {\n $this->removeIndex('up', 'phonenumber', 'phonenumber_user_id_user_id', array('fields' => array(0 => 'user_id')));\n $this->dropForeignKey('up', 'phonenumber', array('name' => 'phonenumber_user_id_user_id_idx', 'local' => 'user_id', 'foreign' => 'id', 'foreignTable' => 'user', 'onUpdate' => NULL, 'onDelete' => 'CASCADE'));\n }\n}\n~~~~\n\nDown Automation\n===============\n\nIn addition to Doctrine being able to generate migrations based on your\nschema changes, you can now easily automate the down of most methods.\nThe last migration class could be simplified a lot by doing the\nfollowing.\n\n~~~~ {.sourceCode .php}\naddIndex($direction, 'phonenumber', 'phonenumber_user_id_user_id', array('fields' => array(0 => 'user_id')));\n $this->createForeignKey($direction, 'phonenumber', array('name' => 'phonenumber_user_id_user_id_idx', 'local' => 'user_id', 'foreign' => 'id', 'foreignTable' => 'user', 'onUpdate' => NULL, 'onDelete' => 'CASCADE'));\n }\n}\n~~~~\n\nNotice that in this example we only have one method named migrate()\nwhich receives a direction. Most API methods are easy to automate the\nopposite down so when migrate is called with \\$direction = 'down' then\nthe index and foreign key will be dropped instead of added.\n", - "date": "2008-10-18 00:00:00" + "contents": "Today is Jonathan's birthday and in order to celebrate properly we're\nrolling out three new releases.\n\nDoctrine Common RC1\n===================\n\nThe first release candidate of the Doctrine Common project.\n\n- [Installation](https://www.doctrine-project.org/projects/common/2.0/download/2.0.0RC1)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10081)\n\nDoctrine DBAL BETA4\n===================\n\nThe last beta release of the Doctrine DBAL project.\n\n- [Installation](https://www.doctrine-project.org/projects/dbal/2.0/download/2.0.0BETA4)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10071)\n\nDoctrine ORM BETA4\n==================\n\nThe last beta release of the Doctrine ORM project.\n\n- [Installation](https://www.doctrine-project.org/projects/orm/2.0/download/2.0.0BETA4)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10072)\n\nAgain we want to thank everyone who participated in the ongoing\ndevelopment efforts, whether it was through bug reports, comments,\ncritique, praise and/or actual code contributions.\n\nWhat next\n=========\n\nSome might know that we originally planned to release 2.0 stable today\nbut we're simply not there yet. However, things are going quite well and\nwe're confident that the final releases of the 2.0 versions are close.\nThe ORM and DBAL now enter a final phase of bug-fixing to resolve any\nissues we find critical for the final releases and will then follow the\nCommon project into RC (release candidate) status.\n", + "date": "2010-09-01 00:00:00" }, { - "url": "/2009/03/16/doctrine-1-1-released.html", - "slug": "doctrine-1-1-released", - "title": "Doctrine 1.1 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today I am very pleased to bring news to you that Doctrine 1.1.0 stable\nis available. This is a significant release for the 1.x code base. It\ncontains dozens of new features and bug fixes. The 1.1 test suite now\nhas **0** fails in the test suite compared to 1.0 having **12**! We\nrecommend you upgrade your projects.\n\n> **NOTE** Some have asked whether 1.1 has all the same bug fixes that\n> are in 1.0. The answer is yes. We are committed to maintaining both\n> branches and will continue committing fixes to all branches when it\n> applies.\n\nHighlights\n==========\n\n- New hydration methods\n- New migration diff tool\n- Better custom accessor/mutator support and integration with\n fromArray() and toArray()\n- Improvements to getModified(), toArray(), fromArray(),\n synchronizeWithArray()\n- Improvements to core behaviors Searchable, SoftDelete, Versionable\n- Dozens of small improvements and additions across the api\n- Plenty of other bug fixes\n\nYou can read a detailed list of all the changes made in 1.1\n[here](https://www.doctrine-project.org/upgrade/1_1) in the upgrade file.\n\nDownload\n========\n\nAs always you can get Doctrine on the\n[download](https://www.doctrine-project.org/download) page or via pear.\n\n $ pear install pear.phpdoctrine.org/Doctrine-1.1.0\n\nYou can also check it out via svn.\n\n $ svn co http://svn.doctrine-project.org/tags/1.1.0/lib doctrine\n\nIf you find any problems with this release please report it on our\n[trac](http://trac.doctrine-project.org) or if you have any questions\nyou can send it to one of our [mailing\nlists](https://www.doctrine-project.org/community).\n", - "date": "2009-03-16 00:00:00" + "url": "/2022/01/11/orm-2.11.html", + "slug": "orm-2.11", + "title": "New Release: Doctrine ORM 2.11 with Enums, Virtual Columns, Read-Only Properties, Nested Attributes and more", + "authorName": "Benjamin Eberlei", + "authorEmail": "kontakt@beberlei.de", + "contents": "We have released a new minor version 2.11 of Doctrine ORM with several improvements\nand new features.\n\n[See all changes and contributors in the\nChangelog](https://github.com/doctrine/orm/releases/tag/2.11.0) on Github.\n\nThis blog post gives an overview over all the new features and improvements\nthat are user facing. Please see the changelog and UPGRADE notes for new\ndeprecations.\n\n## PHP 8.1 Enum Support\n\nWith PHP 8.1 the language has first class support for enumerations and Doctrine\nORM 2.11 supports the mapping of database values to [Backed\nEnums](https://www.php.net/manual/en/language.enumerations.backed.php).\n\nThe support is not integrated on DBAL Type level, but using a new mapping option\ncalled `enumType` on column/field declaration level:\n\n```php\nenum Suit: string {\n case Hearts = 'H';\n case Diamonds = 'D';\n case Clubs = 'C';\n case Spades = 'S';\n}\n\n#[Entity]\nclass Card\n{\n /** ... */\n\n #[Column(type: 'string', enumType: Suit::class)]\n public $suit;\n}\n```\n\n## Virtual and Generated Columns\n\nThere has been constant demand for this feature for a long time, to add support\nfor columns that are not insertable/updatable and might have their value\nupdated on the database side.\n\nWe have worked along the lines of Java Persistence API support of `insertable`,\n`updatable` and `generated` options for field mappings.\n\nThere are two major use cases for this:\n\n1. Map a column several times, for example with join columns:\n\n```php\n#[Entity]\nclass User\n{\n #[ManyToOne(targetEntity: Country:class), JoinColumn(name: \"country_code\", referencedColumnName: \"country_code\")]\n public $country;\n\n #[Column(type: \"string\", name: \"country_code\", insertable: false, updatable: false)]\n public $countryCode;\n}\n```\n\n2. Columns updated by the database\n\n```php\n#[Entity]\nclass Article\n{\n #[Column(type: \"datetime\",\n columnDefinition: \"TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\",\n insertable: false,\n updatable: false,\n generated: \"ALWAYS\")]\n public $created;\n}\n```\n\n## Support for Readonly Properties\n\nAnother PHP 8.1 feature is the new readonly keyword that prevents the value of\na property to be written again after it has been initialized in the constructor\nof an object.\n\nWith ORM 2.11 the support now works as you would expect with no additional\nmapping options necessary:\n\n```php\n#[Entity, Table(name: 'author')]\nclass Author\n{\n #[Column, Id, GeneratedValue]\n private readonly int $id;\n\n #[Column]\n private readonly string $name;\n}\n```\n\n## AssociationOverrides and AttributeOverrides in Attribute Driver\n\nThe new `AttributeDriver` for PHP 8 did not support the equivalent mapping\noptions for association and attribute overrides that are available for XML and\nAnnotation mapping, because in PHP 8.0 it was not possible to nest complex\nattributes. \n\nWith the support now available in PHP 8.1 we have added these attributes.\n\n```php\nsetSchemaIgnoreClasses([$fqcn]);\n$config->getSchemaIgnoreClasses();\n```\n", + "date": "2022-01-11 00:00:00" }, { - "url": "/2010/04/27/doctrine-2-0-0-beta1-released.html", - "slug": "doctrine-2-0-0-beta1-released", - "title": "Doctrine 2 BETA1 Released", - "authorName": "romanb", + "url": "/2010/03/15/what-to-expect-from-doctrine-1.html", + "slug": "what-to-expect-from-doctrine-1", + "title": "What to expect from Doctrine 1", + "authorName": "jwage", "authorEmail": "", - "contents": "Today we are pleased to announce the immediate release of the first beta\nversion of Doctrine 2. It comes with some delay which was caused partly\nby our move to git and github and the switch to the Symfony Console\ncomponent for the CLI. We had to confront the alpha users with quite\nsome backwards compatibility problems and we apologize for that.\nStarting with the beta period you can expect the amount of backwards\nincompatible changes to be much lower.\n\nSince the ALPHA4 release over 160 issues have been resolved. You can\nfind the full changelog\n[here](https://www.doctrine-project.org/jira/secure/ReleaseNote.jspa?projectId=10032&styleName=Html&version=10030).\n\nSome of the most important changes were the shift towards the Symfony\n(2) Console component for the CLI as well as the introduction of the\ninversedBy attribute for bidirectional associations, among others. For\nsome help with upgrading from ALPHA4 to BETA1, please consult [the\nupgrade page](https://www.doctrine-project.org/upgrade/2_0).\n\nYou can get the new release as usual from our [download\npage](https://www.doctrine-project.org/download) or [directly from\ngithub](https://github.com/doctrine/orm).\n\nWe would like to thank all the adopters of the early alpha releases. All\nyour issue reports, feature and enhancement requests and general\nfeedback and criticism have helped a lot to move the project forward.\n\nLooking forward, we will likely have at least 2 or 3 beta releases,\nabout every 1-2 months, before we go RC. Once that happens, the API is\nultimately frozen until the stable release.\n", - "date": "2010-04-27 00:00:00" + "contents": "As you all can obviously see, our focus around here these days has been\non Doctrine 2. While overall this is a great thing, we still have a\nstable Doctrine 1.2 version to maintain. This blog post will give you a\nlittle information about Doctrine 1.0, 1.1 and 1.2.\n\nDoctrine 1.0 and 1.1 End of Life\n================================\n\nYou may not have noticed, but the end of life for Doctrine 1.0 and 1.1\nhas come and gone earlier in the year. As of right now we will not be\ncommitting anymore bug fixes to these branches. All development\nresources will now focus on finishing Doctrine 2 and maintaining 1.2.\n\nDoctrine 1.2 Maintenance Releases\n=================================\n\nSince Doctrine 1.2 is the last stable version to be released for the\nDoctrine 1 series, we decided to open up the development a little bit\nfor the maintenance releases. Previously we were very strict with only\nallowing bug fixes, but we will now allow a little more flexibility to\nthe types of things we commit to these releases. They can now contain\nsmall enhancements and improvements as long as they do not break\nbackwards compatibility. Of course when adding things we cannot always\nbe 100% sure that something is BC, so we will announce each 1.2.x\nrelease one week prior to it's packaging and deployment in order to give\npeople time to test things in SVN.\n\nThe reasoning behind this move is because we want to still improve the\nsmall usability issues of the Doctrine 1 series without having to commit\nto entirely new major versions. This way we are not leaving the Doctrine\n1 code behind while we're focusing on the Doctrine 2 version. We hope\nthat you all are okay with this move. If you have any issues please let\nus know!\n", + "date": "2010-03-15 00:00:00" }, { - "url": "/2008/03/28/0-10-4-released-46-closed-tickets.html", - "slug": "0-10-4-released-46-closed-tickets", - "title": "0.10.4 Released - 46 Closed Tickets", + "url": "/2008/04/05/doctrine-frequently-asked-questions.html", + "slug": "doctrine-frequently-asked-questions", + "title": "Doctrine frequently asked questions", "authorName": "jwage", "authorEmail": "", - "contents": "Today we would like to announce the 0.10.4 release. This release\naddresses 46 tickets and is a major step in stabilizing the 1st\ngeneration of Doctrine for the 1.0 release. We will continue with bug\nfix only releases until we feel the 0.10 branch is ready for a 1.0\ntitle. Give it a try and give us some tickets and failing test cases to\nfix :)\n\nYou can checkout the change log for the 0.10.4 release as well as\nprevious releases here.\n", - "date": "2008-03-28 00:00:00" + "contents": "We have compiled a new addition to the Doctrine website, Frequently\nAsked Questions. The purpose of this is to help the users of Doctrine\nidentify any common questions/problems when using Doctrine. I have added\nall the questions I have encountered multiple times over the last year+.\nIf you have any recommendations for this least please don't be shy and\nlet us know. Thanks.\n", + "date": "2008-04-05 00:00:00" }, { - "url": "/2014/12/04/doctrine_dbal_2_5_release.html", - "slug": "doctrine_dbal_2_5_release", - "title": "Doctrine DBAL 2.5 Release", - "authorName": "Benjamin Eberlei", + "url": "/2012/08/29/doctrine-2-3-rc2.html", + "slug": "doctrine-2-3-rc2", + "title": "Doctrine 2.3.0 RC2 released", + "authorName": "beberlei", "authorEmail": "", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.5.0 Stable. This release is a landmark in making DBAL more consistent\nand stable than it ever was.\n\nStarting with 2.5 DBAL will have a new release-master, [Steve\nM\u00fcller](https://github.com/deeky666). Steve has been working on DBAL for\nthe last two years and contributed many of the big features that make up\nthis fantastic release. He will replace Benjamin Eberlei who was the\nrelease master since version 2.0.\n\nYou can install DBAL through Composer:\n\nThis version is mostly backwards compatible with only some minor breaks,\nwhen using PDO IBM, creating a custom platform or using non-default\nDateTime formats. You can see the breaks in the\n[UPGRADE.md](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\nfile. DBAL 2.5 is also compatible with ORM 2.4, there is no need to wait\nfor ORM 2.5 to be released.\n\nThe following list contains the major new features of DBAL:\n\n- Support for SAP Sybase SQL Anywhere versions 10, 11, 12 and 16\n (DBAL-475)\n- Support for auto-commit=NO on all drivers and platforms. (DBAL-81)\n- Refactor exceptions to use common error-codes and exception classes\n that derive from `Doctrine\\DBAL\\DBALException`. (DBAL-407)\n- Add support to retry connections with\n `Doctrine\\DBAL\\Connection#ping()` method. (DBAL-275)\n- Add INSERT support to QueryBuilder (DBAL-320)\n- Add Binary type for VARBINARY support (DBAL-714)\n- Add charset and SSL connection support to PostgreSQL (DBAL-567,\n DBAL-702)\n- Add options support for Myqli (DBAL-643)\n- Add support for using database uris with the `url` parameter in\n `DriverManager::getConnection()` which supports several forms used\n by PaaS providers out of the box (DBAL-1050).\n- Auto detection of platform to use based on database (DBAL-757)\n- Improved SQL Server LIMIT emulation support. (Multiple tickets)\n- Improvements to HHVM Support (no full support yet)\n\nSee all the changes for the 2.5.0 Release on Jira, an amazing total of\n316 issues:\n\n- [DBAL\n 2.5.0](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10523/)\n\nIf you find any problems or backwards compatibility breaks with this\nrelease please report them on JIRA or open up Pull Requests on Github.\n", - "date": "2014-12-04 00:00:00" + "contents": "**29.8.2012**\n\nWe released another release candidate of our upcoming Doctrine 2.3.0\nversion. This includes the Common, DBAL and ORM packages.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nSee the [2.3 Beta blog\npost](https://www.doctrine-project.org/2012/07/16/doctrine-2-3-beta.html) for\nsome information about changes in 2.3.\n\nYou can install the release candidate through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-RC2\"\n },\n \"minimum-stability\": \"dev\"\n }\n\nIf you find any problems with your applications please report them on\nour [bugtracker](https://www.doctrine-project.org/jira).\n\nWhen no blocking issues occur we will release the 2.3.0 final on next\nMonday.\n", + "date": "2012-08-29 00:00:00" }, { - "url": "/2008/09/11/doctrine-1-0-2-released.html", - "slug": "doctrine-1-0-2-released", - "title": "Doctrine 1.0.2 Released", + "url": "/2008/11/25/doctrine-1-0-4-released.html", + "slug": "doctrine-1-0-4-released", + "title": "Doctrine 1.0.4 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Due to a minor regression in 1.0.1 we are releasing 1.0.2 which\naddresses the issue discovered. The issue was reported and fixed\nimmediately. Big thanks to Adam Huttler for the detailed report which\nallowed us to fix the issue right away. You can download the new version\nhere or upgrade via pear as usual.\n", - "date": "2008-09-11 00:00:00" + "contents": "Today we are happy to introduce the immediate availability of Doctrine\n1.0.4. This is a major bug fix release for the 1.0 branch of Doctrine.\nIt contains over 75 bug fixes and it is recommended that you upgrade as\nsoon as possible. As always you can view the [change\nlog](https://www.doctrine-project.org/change_log/1_0_4) on the website\nand [download here](https://www.doctrine-project.org/download).\n", + "date": "2008-11-25 00:00:00" }, { - "url": "/2009/06/28/introducing-the-google-i18n-extension.html", - "slug": "introducing-the-google-i18n-extension", - "title": "Introducing the Google I18n Extension", + "url": "/2010/03/01/introduction-to-doctrine-2-webinar.html", + "slug": "introduction-to-doctrine-2-webinar", + "title": "Introduction to Doctrine 2 Webinar", "authorName": "jwage", "authorEmail": "", "contents": "", - "date": "2009-06-28 00:00:00" + "date": "2010-03-01 00:00:00" }, { - "url": "/2015/12/03/cache-1-5-2.html", - "slug": "cache-1-5-2", - "title": "Cache 1.5.2 Released", + "url": "/2014/09/23/orm-245.html", + "slug": "orm-245", + "title": "ORM 2.4.5 released", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Cache\n[1.5.2](https://github.com/doctrine/cache/releases/tag/v1.5.2).\n\nCache 1.5.2\n===========\n\nThis release corrects a few bugs:\n\nFetching `false` values from the cache via\n`` fetchMultiple` was causing incorrect misses (`#105 `_). Cache paths were exceeding the windows ``MAX\\_PATH`` length (`#107 `_). The ``MongoDBCache`` was not failing silently in case of DB-side exceptions (`#108 `_). You can find the complete changelog for this release in the `v1.5.2 release notes `_. Installation ~~~~~~~~~~~~ You can install the Cache component using the following ``composer.json\\`\\`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.5.2\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-12-03 00:00:00" - }, - { - "url": "/2008/06/24/0-11-0-stable-released.html", - "slug": "0-11-0-stable-released", - "title": "0.11.0 Stable Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "

\n\nToday, I would like to introduce the latest stable version of Doctrine,\n0.11.0. This release is a major release but it contains bug fixes only.\nIt contains a few BC enhancements that were required in order to fix\nsome bugs. We recommend everyone upgrade to 0.11. Below are some\nhighlights of this release.\n\n

  • \n\n131 Tickets Closed\n\n
  • \n\n[4433] Introduced preDql\\*() Hooks\n\n
  • \n\nIntroduced SoftDelete Behavior\n\n
  • \n\nIntroduced Application Level Cascading Deletes\n\n
  • \n\nMany fixes to Behavior system, primarily Nesting Behaviors.\n\n

\n\nAnother item worth mentioning about the 0.11 release is that the\nintegration between Doctrine and symfony has evolved quite well over the\nfirst quarter of 2008 as symfony 1.1 is coming out and 0.11 is released.\nThe integration between symfony 1.1 and Doctrine with sfDoctrinePlugin\nis now officially supported by the symfony core team and we will slowly\nbe introducing more documentation over the coming months.\n\n

\n\n\n", - "date": "2008-06-24 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.5, which fixes [an HHVM/PHP7 issue related with\nfunc\\_get\\_args()](https://3v4l.org/NIqRh).\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.5](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10722)\n - 1 issue fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.5\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2014-09-23 00:00:00" }, { - "url": "/2023/10/11/orm3-beta1-dbal4-rc1-future-plans.html", - "slug": "orm3-beta1-dbal4-rc1-future-plans", - "title": "ORM 3.0 Beta 1, DBAL 4 RC 1 and future plans", + "url": "/2020/11/17/dbal-3.0.0.html", + "slug": "dbal-3.0.0", + "title": "New Major Release: Doctrine DBAL 3.0", "authorName": "Benjamin Eberlei", "authorEmail": "kontakt@beberlei.de", - "contents": "We have released the [first beta of the long awaited Doctrine ORM\n3](https://github.com/doctrine/orm/releases/tag/3.0.0-beta1) and a [release\ncandidate of DBAL 4](https://github.com/doctrine/dbal/releases/tag/4.0.0-RC1). \n\nThe target audience for these releases are framework integration and extension\nlibrary authors. ORM 3 is not yet production ready and the APIs may change.\n\nOur goal is to release ORM 3.0 as soon as possible and to gather feedback from\ngreenfield project authors first. \n\nThis beta release is the result of a lot of work by many contributors,\nespecially Gr\u00e9goire, Alexander, Claudio and Matthias on ORM, Sergei and\nAlexander on DBAL. To iron out the final details, we met in D\u00fcsseldorf for a\nDoctrine Core Team meeting, generously funded by our sponsors through\nOpenCollective and GitHub. We also welcomed Matthias as the latest member of\nthe Doctrine Core Team.\n\n### Continued ORM 2 support and forward compatibility\n\nWe will maintain the latest branch of the 2 line in ORM for at least another 2\nyears, possibly longer, to give you enough time to upgrade and us more time to\nlearn from upgrader feedback and improve forward compatibility.\n\nThis means that we will be making ORM 2.x work with newer versions of PHP,\nfixing security bugs, and introducing layers and features that help with\nforward compatibility in the upgrade path to ORM 3. \n\nCurrent users of ORM 2 should note that there is no urgency right now to update\nto ORM 3, as we are still working on replacement APIs and forward\ncompatibility, and do not intend to ship them all with ORM 3.0, but with later\nversions.\n\n### ORM 2 users can already prepare for 3 by addressing deprecations\n\nBut there is already work to be done as an ORM 2 user: to help you find all the\nplaces where things may be deprecated or changing behaviour, we have created\n[the doctrine/deprecations\nlibrary](https://github.com/doctrine/deprecations#usage-from-consumer-perspective)\nand integrated it heavily into DBAL, ORM and other components.\n\nIt allows the use of deprecated behaviour to be logged at runtime with low\noverhead, automatic suppression of the same deprecation occurring multiple\ntimes, and a way to ignore selected deprecations for the time being. Each\ndeprecation message always links to a GitHub issue with more details.\n\nMany deprecated features have no replacement, such as Mapping Exporters,\nGenerate Mapping from Database, Named Queries. \n\nFor some of the deprecations in ORM, we are still planning replacement APIs,\nespecially:\n\n* There is currently no way to limit the number of entities that the flush\n operation considers changed. Flush will currently always calculate change\n sets on all entities that are not read-only. \n* As a replacement for removing PARTIAL object hydration, we are looking at\n making embeddable objects lazy, perhaps improving nesting of the new DTO\n expression in DQL. We are also looking to introduce subselect or batch\n loading for collections for more efficient multi-level hydration.\n\nThese will be released in 2.x as forward compatible APIs so that you can switch\nto using them before upgrading to ORM 3.\n", - "date": "2023-10-11 00:00:00" + "contents": "We have released a new major version of Doctrine DBAL, version 3.0.0. This new\nmajor version comes almost 10 years after DBAL 2.0 was released on December\n2010, then coupled into the ORM 2.0.\n\nToday Doctrine DBAL is released independent of the ORM, thanks to Composer and\nsees its new major version before the ORM.\n\nThis release was made possible foremost by\n[Sergei Morozov](https://twitter.com/srgmrzv), our primary DBAL maintainer, who has\nspent countless hours working on the package since 2016. Thank you!\n\nSee the [Release Notes](https://github.com/doctrine/dbal/releases/tag/3.0.0)\nfor a detailed list of changes.\n\nThis blog post covers a few of the major changes in a bit more detail to give\nyou an idea of what DBAL 3.0 looks like.\n\n### Decouple DBAL from PDO\n\nThe major theme of DBAL 3.0 is the decoupling from PDO. Instead of copying the\nAPI verbatim like DBAL 2.0 did, DBAL 3.0 grows it into a better, more usable\ndirection.\n\nWe extract all fetch-methods from the `Statement` class and moved them to a new\n`Result` class that is returned from `Statement::execute`.\n\nOld code:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$statement->bindParam(1, $value);\n$statement->execute();\n\nwhile ($row = $statement->fetch()) {\n}\n```\n\nNew Code:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$statement->bindParam(1, $value);\n$result = $statement->execute();\n\nwhile ($row = $result->fetchAssociative()) {\n}\n```\n\nThe Result Fetching API was improved to use more human-readable names:\n\n```php\n// Old\n$stmt->fetch();\n$stmt->fetch(PDO::FETCH_ARRAY);\n$stmt->fetchColumn();\n$stmt->fetchAll();\n\n// New\n$stmt->fetchAssociative();\n$stmt->fetchNumeric();\n$stmt->fetchOne();\n$stmt->fetchAllAssociative();\n```\n\nMany more changes have been made on the public API and also for the internals,\nbut these are the most visible ones.\n\n### Upgrading to DBAL 3 from 2\n\nDBAL 3 is a real new major release with significant changes to the public API. Depending\non your codebase a migration could require non-trivial work. However we do not intend\nto leave you hanging with DBAL 2 and a future migration:\n\n1. We intend to support DBAL 2.12 a while longer, including support for the\n upcoming PHP 8.0, so that there is no rush for you to upgrade to DBAL 3.\n\n2. DBAL 2.12 already includes forwards compatible API changes for all the new APIs,\n so that you can migrate your code step by step to the new APIs already.\n\n3. Deprecated methods in DBAL 2.12 are tagged with the `@deprecated` doc-block\n and static analysis tools such as Psalm, PHPStan and Phan can already help\n you detect using or calling this deprecated code in your application.\n\n4. We intend to release another version of DBAL 2 which includes\n optional triggering of deprecation messages at runtime similar to how Symfony\n deals with deprecations.\n\nAs you can see, with these approaches it will be possible for you to smoothly migrate\nyour application from DBAL 2 to 3.\n\nAs a note to libraries and frameworks that need to support multiple versions of\nDoctrine DBAL: We recommend you start out with DBAL 2.12 and migrate all usages\nof deprecated APIs to their newer counterparts. Then once you have managed\nthis, you can allow 3.0 and try to get your code working with both versions.\nUnfortunately this may not be possible for all cases, because we could not\nprovide replacement APIs for everything and some features have been dropped\nbetween DBAL 2 and 3.\n\n### Outlook\n\nDBAL 3 is a huge first step towards a modern database abstraction layer,\nindependent from the legacy of PHP and PDO API design. In the future we plan to\nimprove DBAL in other ways that we haven't gotten around yet, such as more API\nmodernization, increased safety with use of strict scalar types in the code\nbase, better error handling and more.\n", + "date": "2020-11-17 00:00:00" }, { - "url": "/2009/06/19/cross-database-joins.html", - "slug": "cross-database-joins", - "title": "Cross Database Joins", + "url": "/2009/01/28/cookbook-recipe-relation-dql-behavior.html", + "slug": "cookbook-recipe-relation-dql-behavior", + "title": "Cookbook Recipe: Relation DQL Behavior", "authorName": "jwage", "authorEmail": "", - "contents": "Cross Database Joins\n====================\n\nIn Doctrine, joining data across databases is not technically\n\"supported\" by a designed feature, but you can make it work by tricking\nDoctrine a little bit.\n\nIn this article I'll show you how you can setup a database schema that\nspecifies relationships across two databases and then issue a query\nwhich joins data from these two databases.\n\nI used the Doctrine sandbox to prepare this test so if you want to try\nit, you can use it too.\n\nDatabase Connections\n====================\n\nFirst lets setup our two database connections we'll use to query from.\nModify the `config.php` file included with the sandbox and replace the\ndefault single connection with the following code.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->leftJoin('u.Profile p');\n\necho $q->getSql();\n~~~~\n\nThe above code would output the following SQL query.\n\n [sql]\n SELECT d.id AS d__id, d.username AS d__username, d.password AS d__password, d2.id AS d2__id, d2.user_id AS d2__user_id, d2.first_name AS d2__first_name, d2.last_name AS d2__last_name FROM doctrine_test1.user d LEFT JOIN doctrine_test2.profile d2 ON d.id = d2.user_id\n\n **NOTE** Notice how in the above SQL that is generated it include\n the database name and the table name. So now the query is able to\n join across databases if your RDBMS supports it.\n\nNow lets execute the above query and look at the results.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->leftJoin('u.Profile p');\n\n$users = $q->fetchArray();\n\nprint_r($users);\n~~~~\n\nThe above would output just exactly what you'd expect.\n\n Array\n (\n [0] => Array\n (\n [id] => 1\n [username] => jwage\n [password] => changeme\n [Profile] => Array\n (\n [id] => 1\n [user_id] => 1\n [first_name] => string(255)\n [last_name] => string(255)\n )\n\n )\n\n )\n\nThe data from the `User` model came from one database, and the data from\nthe `Profile` model came from the other database.\n\n> **NOTE** This will only work if your database supports foreign keys\n> and joins across databases. I know MySQL does support this but I am\n> unsure about others. This same method can be used to query for data\n> across PostgreSQL schemas too.\n\nThat is it! Joining data from across different databases is no problem\nin Doctrine.\n\n> **CAUTION** This is not a designed feature of Doctrine and you may\n> experience edge cases that may not work as you'd expect. This is just\n> useful if you need to join data across databases and if you experience\n> edge cases you can work around them in your project.\n", - "date": "2009-06-19 00:00:00" + "contents": "Today I will teach you how to write a simple Doctrine behavior. You will\nlearn some of the basics of creating a behavior and you will gain some\npretty cool functionality for your relationships.\n\nWe will write a behavior called `RelationDql` which allows you to add\ndefault query parts that are automatically added to your queries when\nyou reference the specified relationships. So first we will get started\nby looking at an example schema we can apply this to.\n\nHere is an example schema where we have a `Site`, `BlogPost` and `Tag`\nmodel:\n\n [yml]\n Site:\n columns:\n name: string(255)\n\n BlogPost:\n actAs: [Timestampable]\n columns:\n title: \"string(255)\"\n body: clob\n site_id: integer\n relations:\n Site:\n foreignAlias: BlogPosts\n Tags:\n class: Tag\n refClass: BlogPostTag\n foreignAlias: BlogPosts\n\n Tag:\n columns:\n name: string(255)\n\n BlogPostTag:\n columns:\n blog_post_id:\n type: integer\n primary: true\n tag_id:\n type: integer\n primary: true\n relations:\n BlogPost:\n foreignAlias: BlogPostTags\n Tag:\n foreignAlias: BlogPostTags\n\nThis is a fairly simple schema as you can see, but what if we want to\nhave a relationship on the `Site` model to retrieve the latest five\n`BlogPost` records or order the `Tags` relationship alphabetically by\ndefault?\n\nLets modify our schema to take into account a new behavior that we will\nwrite in the next step. First modify the `Site` model and a relationship\nnamed `LatestBlogPosts`:\n\n [yml]\n Site:\n actAs:\n RelationDql:\n relations:\n LatestBlogPosts:\n orderBy: %s.created_at DESC\n limit: 5\n columns:\n name: string(255)\n relations:\n LatestBlogPosts:\n autoComplete: false\n class: BlogPost\n local: id\n foreign: site_id\n\n **TIP** The ``autoComplete`` option is set to ``false`` so that the\n relationship is not reflected and added to the opposite end,\n ``BlogPost`` automatically.\n\nNow lets modify the `BlogPost` model to change the `Tags` relationship\nso that it is ordered alphabetically by name by default:\n\n [yml]\n BlogPost:\n actAs:\n Timestampable:\n RelationDql:\n relations:\n Tags:\n orderBy: %s.name ASC\n columns:\n title: \"string(255)\"\n body: clob\n site_id: integer\n relations:\n Site:\n foreignAlias: BlogPosts\n Tags:\n class: Tag\n refClass: BlogPostTag\n foreignAlias: BlogPosts\n\n **TIP** The ``relations`` array is an array of changes to make to\n the DQL query. The key can be any valid function on the\n ``Doctrine_Query`` API and the value is of course the parameter to\n pass to the function.\n\nNow that we have our schemas modified to take into account the new\n`RelationDql` behavior we need to actually write the code:\n\n~~~~ {.sourceCode .php}\n_options = $options;\n }\n\n public function setTableDefinition()\n {\n $this->_table->addRecordListener(new RelationDqlListener($this->_options));\n }\n}\n~~~~\n\nThe template is very simple. It only attaches a record listener to the\ninvoking table. Their is where most of the magic happens. So now lets\ndefine the `RelationDqlListener` class:\n\n~~~~ {.sourceCode .php}\n array());\n\n public function __construct($options)\n {\n $this->_options = $options;\n }\n\n public function preDqlSelect(Doctrine_Event $event)\n {\n $query = $event->getQuery();\n\n if (empty($this->_options['relations']))\n {\n throw new Doctrine_Exception(\n 'You must specify at least one relationship to add DQL to'\n );\n }\n\n $relations = $this->_options['relations'];\n\n $components = $this->_getDqlCallbackComponents($query);\n foreach ($components as $alias => $component)\n {\n if (isset($component['relation']) && isset($relations[$component['relation']->getAlias()]))\n {\n $dqls = $relations[$component['relation']->getAlias()];\n foreach ($dqls as $func => $dql)\n {\n $dql = str_replace('%s', $alias, $dql);\n $query->$func($dql);\n }\n unset($relations[$component['relation']->getAlias()]);\n }\n }\n }\n\n protected function _getDqlCallbackComponents($query)\n {\n $params = $query->getParams();\n $componentsBefore = array();\n if ($query->isSubquery()) {\n $componentsBefore = $query->getQueryComponents();\n }\n\n $copy = $query->copy();\n $copy->getSqlQuery($params);\n $componentsAfter = $copy->getQueryComponents();\n\n if ($componentsBefore !== $componentsAfter) {\n return array_diff($componentsAfter, $componentsBefore);\n } else {\n return $componentsAfter;\n }\n }\n}\n~~~~\n\nSo now we have the behavior defined so lets look at some example DQL\nqueries and the SQL that is outputted:\n\n> **TIP** Remember, in order for the dql callbacks to be executed we\n> must enable an attribute first.\n\n~~~~ {.sourceCode .php}\nsetAttribute('use_dql_callbacks', true);\n~~~~\n\n~~~~ {.sourceCode .php}\nselect('s.name, p.title, p.created_at')\n ->from('Site s')\n ->leftJoin('s.LatestBlogPosts p');\n\necho $q->getSql();\n~~~~\n\nThe above would output the following SQL:\n\n [sql]\n SELECT s.id AS s__id, s.name AS s__name, b.id AS b__id, b.title AS b__title, b.created_at AS b__created_at FROM site s LEFT JOIN blog_post b ON s.id = b.site_id ORDER BY b.created_at DESC LIMIT 5\n\n **NOTE** Notice how the ``ORDER BY`` and ``LIMIT`` were added to\n the query.\n\nNow lets look at an example that involves the `BlogPost` tags:\n\n~~~~ {.sourceCode .php}\nfrom('BlogPost p')\n ->leftJoin('p.Tags t');\n\necho $q->getSql();\n~~~~\n\nThe above would output the following SQL query:\n\n [sql]\n SELECT b.id AS b__id, b.title AS b__title, b.body AS b__body, b.site_id AS b__site_id, b.created_at AS b__created_at, b.updated_at AS b__updated_at, t.id AS t__id, t.name AS t__name FROM blog_post b LEFT JOIN blog_post_tag b2 ON b.id = b2.blog_post_id LEFT JOIN tag t ON t.id = b2.tag_id ORDER BY t.name ASC\n\nAs you can see the `ORDER BY` clause to order the related tags by `name`\nwas added for us.\n\nPretty cool huh? You can use this in your projects to make your\nrelationships a little nicer.\n", + "date": "2009-01-28 00:00:00" }, { - "url": "/2009/08/04/help-write-tests-for-new-dql-parser.html", - "slug": "help-write-tests-for-new-dql-parser", - "title": "Help write tests for new DQL Parser", - "authorName": "guilhermeblanco", + "url": "/2008/04/30/0-11-0-release-candidate-2.html", + "slug": "0-11-0-release-candidate-2", + "title": "0.11.0 Release Candidate 2", + "authorName": "jwage", "authorEmail": "", - "contents": "As you all know, we're focusing most of our development time on Doctrine\n2.0 these days. To help speed things up, we would like to ask for help\nwriting tests from our users\n\nRecently I finished new [DQL parser for\n2.0](http://trac.doctrine-project.org/browser/trunk/lib/Doctrine/ORM/Query/Parser.php).\nMost of you may not be familiar with compiler's theory, but for those\nthat are, it's a top-down recursive descent parser for a context-free\ngrammar, usually known as LL(k).\n\nWe mapped the entire supported DQL into a document, which is an [EBNF\n(Extended Backus-Naur\nForm)](https://en.wikipedia.org/wiki/Extended_Backus\u2013Naur_Form) , which\nis a meta-syntax notation to express context-free grammars. This one is\nquite simple to be readable by humans. Yes, we are humans if you raise\nthe question! =)\n\nThe header of our EBNF describes some terms and conventions, but here is\na small subset of our grammar:\n\n FromClause ::= \"FROM\" IdentificationVariableDeclaration {\",\" IdentificationVariableDeclaration}*\n IdentificationVariableDeclaration ::= RangeVariableDeclaration [IndexBy] {JoinVariableDeclaration}*\n RangeVariableDeclaration ::= AbstractSchemaName [\"AS\"] AliasIdentificationVariable\n AbstractSchemaName ::= identifier\n AliasIdentificationVariable ::= identifier\n\nIt's not mentioned in this subset some pieces just for clarity.\nIdentifier is a terminal (no grammar rule to follow after that) and is a\nstring (ie. \"`name`\", \"`email`\").\n\nWhat does this subset do?\n=========================\n\nIt processes this pieces of DQL:\n\n FROM User u\n FROM User AS u, u.Group g\n\nHow does it do that?\n====================\n\nEach piece of DQL is converted to a series of tokens. Some tokens are\ndefined in our [Symbol Table](https://en.wikipedia.org/wiki/Symbol_table)\n, which is then validated and correctly typed into the right token type.\nFor example... when it finds the \"`FROM`\", it'll return for us\ninternally a token in an array format of:\n\n array(\n 'value' => 'FROM',\n 'type' => Lexer::T_FROM,\n 'position' => 0\n )\n\nValue is the actual string representation in DQL, type is the token type\nthat was brought by symbol table and position is the position of this\ntoken in the DQL string.\n\nThen token is validated in the DQL parser; if it is expected the\n`T_FROM`, just match and go to next token, if not raise a syntax error.\nImagine someone types this: \"`FROM User u, u.Group u`\". It is not valid\nDQL, because alias \"`u`\" is being used twice. That is the task of\nanother check, which inspects the requested DQL defined symbol table and\nreports for semantical errors. We removed the lexical errors since we\nuse them as identifiers, so there is no lexical error checks in DQL. Not\nthat it may open a hole in our structure, syntax and semantical checks\ndo all that we need.\n\nHow can I help?\n===============\n\nWe currently have a single test that checks for DQL recognition. We need\nto expand it to cover as much situations as possible. If you follow the\nEBNF grammar rules, you'll see that for example, IN condition supports\neither a series of Literals (which can be strings, booleans, etc), an\nInputParameter or a subselect. We need some people with free time to\ncover all possible situations; I mean that we needs something like these\nqueries:\n\n SELECT u FROM CmsUser u WHERE u.id IN (1, 2)\n\n SELECT u FROM CmsUser u WHERE u.id IN (?0)\n\n SELECT u FROM CmsUser u WHERE u.name IN ('guilhermeblanco', 'jwage', 'romanb')\n\n SELECT u FROM CmsUser u WHERE u.id IN (SELECT u2.id FROM CmsUser u2)\n\nBy doing (sometimes) stupid queries and complex queries, we cover all\npossibilities and then we can finally consider that we have a good\ncoverage in our DQL support.\n\nIf you load the\n[LanguageRecognitionTest](http://trac.doctrine-project.org/browser/trunk/tests/Doctrine/Tests/ORM/Query/LanguageRecognitionTest.php)\n, you'll find that we have already builtin 2 methods to help you\nasserting DQL support: `assertValidDql` and `assertInvalidDql`. Just\nfollow the EBNF, pick defined models under [Models/CMS\nfolder](http://trac.doctrine-project.org/browser/trunk/tests/Doctrine/Tests/Models/CMS)\nand start writing tests.\n\nRunning tests\n=============\n\nIt is not hard to execute new test suite. Once you have\n[PHPUnit](https://phpunit.de) and [XDebug](https://xdebug.org) installed,\ngo to tests folder of trunk, create the directory `_coverage` (CHMOD\n0777) and execute:\n\n phpunit --coverage-html=./_coverage Doctrine_Tests_AllTests\n\nThen you'll have coverage too, which means it'll be even better to see\nwhere it's missing tests in suite.\n\nOnce you write your tests, create a ticket in our trac and then upload\nthe patched file there. We'll review your tests and commit them.\n\nTo generate a patch file, just type:\n`svn diff > /path/to/path/file.diff` I hope you enjoy new structure and\ncontribute with lots of tests!\n", - "date": "2009-08-04 00:00:00" + "contents": "Quick! Come and get it! The second release candidate of the latest\nDoctrine version, 0.11.0, has just been released. This release includes\na few dozen fixed tickets and a few new features required in order to\naddress existing issues/tickets. The complete changelog as always can be\nfound in the CHANGELOG file included with the source or online here.\n", + "date": "2008-04-30 00:00:00" }, { - "url": "/2016/10/07/doctrine-mongodb-odm-release-1.1.2-and-1.0.8.html", - "slug": "doctrine-mongodb-odm-release-1.1.2-and-1.0.8", - "title": "Doctrine MongoDB ODM 1.1.2 and 1.0.8 released", - "authorName": "Andreas Braun", - "authorEmail": "alcaeus@alcaeus.org", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.1.2](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.2)\nand\n[1.0.8](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.8).\n\nMongoDB ODM 1.0.8\n=================\n\n- calling `dropCollections()` in the SchemaManager did not drop GridFS\ncollections. [\\#1468](https://github.com/doctrine/mongodb-odm/pull/1468)\n- calling `clear()` on an uninitialized collection with `orphanRemoval`\nenabled failed to remove orphaned documents.\n[\\#1500](https://github.com/doctrine/mongodb-odm/pull/1500) - Documents\nwith identifiers evaluating to `false` (e.g. empty string or 0) could\nnot be reference using `createDBRef()` in DocumentManager.\n[\\#1503](https://github.com/doctrine/mongodb-odm/pull/1503)\n\nMongoDB ODM 1.1.2\n=================\n\n- This release contains the bugfixes outlined for ODM 1.0.8 above\n\n- Querying for referenced objects in `findBy()` or `findOneBy()` did not\nwork properly due to incorrect preparation of the DBRef objects.\n[\\#1481](https://github.com/doctrine/mongodb-odm/pull/1481)\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.1.2\"\n }\n}\n```\n\nSupport for Doctrine ODM 1.0.x\n==============================\n\nAs outlined previously, support for MongoDB ODM 1.0.x will end on\nDecember 9th, 2016. If you have not upgraded to version 1.1 yet, please\ndo so to receive future bug fixes.\n", - "date": "2016-10-07 00:00:00" + "url": "/2009/01/15/documentation-updates.html", + "slug": "documentation-updates", + "title": "Documentation Updates", + "authorName": "jwage", + "authorEmail": "", + "contents": "Enhancements\n============\n\nOver the past few days I have rolled out some changes to the\ndocumentation which are mostly aesthetic. Overall the changes make the\ndocumentation much richer and easier to read.\n\nSome of the changes made to the documentation are listed below:\n\n- Added next and previous links to navigate between chapters\n- Adding syntax highlight to YAML examples\n- Added syntax highlighting to SQL/DQL examples\n- Enhanced PHP syntax highlighting colors\n- Added styled caption boxes for notes, tips, sidebars and cautions\n- Other miscellaneous styling enhancements\n\nWhy?\n====\n\nWhy are we making these enhancements? This is in preparation for a new\nversion of the manual which will be the first piece of documentation on\nDoctrine available in print! We will release more information about when\nthis will be available soon.\n", + "date": "2009-01-15 00:00:00" }, { - "url": "/2012/01/30/doctrine-2-1-6.html", - "slug": "doctrine-2-1-6", - "title": "DBAL/ORM 2.1.6 released", - "authorName": "Benjamin Eberlei", + "url": "/2008/05/11/road-to-doctrine-1-0.html", + "slug": "road-to-doctrine-1-0", + "title": "Road to Doctrine 1.0", + "authorName": "jwage", "authorEmail": "", - "contents": "We released a new round of maintenance releases for the 2.1 branch. DBAL\nand ORM are now in version 2.1.6 of their lifecycle. There have been 8\nbug fixes in ORM and 8 in DBAL. See the changelogs:\n\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10182)\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10181)\n\nAs usual code is available via Download, PEAR, Packagist/Composer or\nfrom Github.\n", - "date": "2012-01-30 00:00:00" + "contents": "First I would like to thank everyone who has adopted Doctrine and stuck\nwith us through the many long and difficult development iterations.\nThough we have many more, and potentially even more difficult iterations\nto get through for Doctrine 2.0, we now see the end of the tunnel for\nDoctrine 1.0. I have laid out the official roadmap for 1.0 and it can be\nviewed on trac here. The planned release date of Doctrine 1.0 is\nSeptember 1st 2008, which is also my 23rd birthday, and Doctrine 2.0\nwill follow it exactly one year later on September 1st 2009.\n", + "date": "2008-05-11 00:00:00" }, { - "url": "/2011/11/23/doctrine-orm-2-1-4-released.html", - "slug": "doctrine-orm-2-1-4-released", - "title": "Doctrine ORM 2.1.4 released", - "authorName": "Benjamin Eberlei", - "authorEmail": "", - "contents": "I just released Doctrine ORM 2.1.4. The Doctrine ORM 2.1.3 release has a\nregression in the EntityManager\\#merge() method, which is fixed in this\nrelease. See the\n[changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10165).\n\nGet the package from [PEAR](http://pear.doctrine-project.org) ,\n[Downloads](https://www.doctrine-project.org/projects) or from\n[Github](https://github.com/doctrine/orm).\n", - "date": "2011-11-23 00:00:00" + "url": "/2014/09/11/orm-244.html", + "slug": "orm-244", + "title": "ORM 2.4.4 released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.4, which fixes a minor regression introduced by\n[DDC-2996](https://github.com/doctrine/orm/issues/3760).\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.4](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10720)\n - 1 issue fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.4\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2014-09-11 00:00:00" }, { - "url": "/2008/05/31/0-11-0-rc3-released.html", - "slug": "0-11-0-rc3-released", - "title": "0.11.0-RC3 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "A little late, but the third release candidate of the 0.11.0 version of\nDoctrine has been released. This will be the last scheduled release\ncandidate before 0.11 becomes the latest stable version of Doctrine.\nThis release contains dozens of bug fixes and a few small enhancements.\nThe change log can be read here.\n", - "date": "2008-05-31 00:00:00" + "url": "/2015/01/15/cache-1-4-0.html", + "slug": "cache-1-4-0", + "title": "Cache 1.4.0 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine Cache\n1.4.0.\n\nThis release fixes a series of performance and compatibility issues in\nthe filesystem-based cache adapters\n([\\#16](https://github.com/doctrine/cache/pull/16),\n[\\#50](https://github.com/doctrine/cache/pull/50),\n[\\#55](https://github.com/doctrine/cache/pull/55)).\n\nNew cache adapters for `SQlite3`\n([\\#32](https://github.com/doctrine/cache/pull/32)) and `Predis`\n([\\#28](https://github.com/doctrine/cache/pull/28)) were implemented.\n\nA new `ChainCache` ([\\#52](https://github.com/doctrine/cache/pull/52))\nwas implemented, allowing multiple levels of caching, for performance\nand efficiency.\n\nNew interfaces were introduced, for better interface segregation and\nimproved performance:\n\n- `MultiGetCache` ([\\#29](https://github.com/doctrine/cache/pull/29))\n- `FlushableCache` ([\\#48](https://github.com/doctrine/cache/pull/48))\n- `ClearableCache` ([\\#48](https://github.com/doctrine/cache/pull/48))\n\nThis release also causes the filesystem-based caches to change directory\nstructure for saved files: please clear your file-based caches\ncompletely before upgrading.\n\nYou can find the complete changelog for this release in the [release\nnotes](https://github.com/doctrine/cache/releases/tag/v1.4.0).\n\nYou can install the Cache component using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"1.4.0\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-01-15 00:00:00" }, { - "url": "/2008/02/16/doctrine-0-9-1-0-10-1-released.html", - "slug": "doctrine-0-9-1-0-10-1-released", - "title": "Doctrine 0.9.1 / 0.10.1 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today the Doctrine team is proud to announce the release of Doctrine\n0.9.1 and 0.10.1. Both releases bring many fixes and a few minor\nadditions for missing features in each of the branches. The next release\nof 0.10.2 will replace the 0.9 branch and all users will be recommended\nto upgrade as the 0.9 branch will no longer be supported and maintained\nby the core dev team. We except that 0.10.2 is due in two to three\nweeks. Please upgrade your existing projects from 0.9 to 0.10 and let us\nknow what issues you come across when switching so we can ensure a\nsmooth migration from 0.9 to 0.10 for all of our users.\n\nOn a side note, many new changes have been made to the website. A few\nvisual things and a few functional things. You will now find on the\nDownload page you can now get Doctrine in either zip or tgz format. We\nalso have our very own PEAR server so you are able to install Doctrine\nvia the pear command line interface. Our channel is located at\npear.phpdoctrine.org and can be discovered by running 'pear\nchannel-discover pear.phpdoctrine.org'\n", - "date": "2008-02-16 00:00:00" + "url": "/2015/12/25/common-2-5-3-and-2-6-1.html", + "slug": "common-2-5-3-and-2-6-1", + "title": "Common 2.5.3 and 2.6.1 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine Common\n[2.5.3](https://github.com/doctrine/common/releases/tag/v2.5.3) and\n[2.6.1](https://github.com/doctrine/common/releases/tag/v2.6.1).\n\nCommon 2.5.3\n============\n\nThis release corrects an issue with the precedence of namespaces being\nmatched by the `SymfonyFileLocator`\n[\\#367](https://github.com/doctrine/common/pull/367).\n\nCommon 2.6.1\n============\n\nThis release includes all of the fixes reported above for 2.5.3.\n\nInstallation\n============\n\nYou can install the Common component using Composer and one of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.5.3\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.6.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/common/issues).\n", + "date": "2015-12-25 00:00:00" }, { - "url": "/2009/09/18/doctrine-1-2-0-alpha-released.html", - "slug": "doctrine-1-2-0-alpha-released", - "title": "Doctrine 1.2.0-ALPHA Released", - "authorName": "jwage", + "url": "/2013/05/11/doctrine-2-4-beta2.html", + "slug": "doctrine-2-4-beta2", + "title": "Doctrine 2.4 Beta2 released", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "Today I am happy to announce the immediate availability of Doctrine\n1.2.0 ALPHA1. As you all may already know, 1.2 will most likely be the\nlast 1.x version and is a LTS(long term support) release. We will post\nthe official support schedule once 1.2 is stable and released.\n\nYou can download Doctrine 1.2.0-ALPHA1 on the\n[download](https://www.doctrine-project.org/download) page just like\nnormal.\n\nThis release contains many changes, bug fixes and enhancements. Some of\nthem are highlighted below.\n\n- Removed string support from attributes system for performance\n increase\n- Cleaned up and removed deprecated code\n- Added ability to configure base Table, Query and Collection classes\n- Added ability to register custom hydrator and connection drivers\n- Enhanced Table magic finders to include conditions\n- Introduced Doctrine Extensions Repository\n- On Demand Hydration for better performance and less memory usage\n- Other various bug fixes, convenience enhancements and other minor\n performance improvements\n\nYou can view the full details of all the changes in the [upgrade\nfile](https://www.doctrine-project.org/upgrade/1_2). We use this to\ndocument all major changes so that upgrading is easier for you.\n", - "date": "2009-09-18 00:00:00" + "contents": "**11.05.2013**\n\nWe have released the second beta version of Doctrine 2.4. Some of the\nchanges are listed in [this\ntalk](https://speakerdeck.com/asm89/what-is-new-in-doctrine) by\nAlexander and me from Symfony Live Berlin last year.\n\nMost of the new functionality is already documented and marked with\n\"Since 2.4\". We will also prepare a blog post for the release that shows\nall the new functionality in one place.\n\nYou can find a list of changes on\n[Jira](https://www.doctrine-project.org/jira/issues/?jql=project%20in%20(DDC%2C%20DBAL%2C%20DCOM)%20AND%20fixVersion%20%3D%20%222.4%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20priority%20DESC).\n\nYou can install the release with [Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.4.0-beta2\",\n \"doctrine/dbal\": \"2.4.0-beta2\",\n \"doctrine/common\": \"2.4.0-rc2\"\n }\n }\n\nPlease test this release with your existing applications to allow us to\nfind BC breaks and remove them before the final release. This will be\nthe last beta before Release Candidates will be created. We expect to\nneed only one RC and that the final release will follow shortly.\n\nYou should make yourself familiar with the UPGRADE documents, as we had\nto make some backwards compatibility breaks to fix nasty bugs:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n\n", + "date": "2013-05-11 00:00:00" }, { - "url": "/2008/09/09/doctrine-1-0-1-released.html", - "slug": "doctrine-1-0-1-released", - "title": "Doctrine 1.0.1 Released", + "url": "/2009/06/24/thank-you-servergrove.html", + "slug": "thank-you-servergrove", + "title": "Thank you ServerGrove", "authorName": "jwage", "authorEmail": "", - "contents": "Today we would like to announce the immediate availability of the first\nmaintenance release of the Doctrine 1.0 branch. This release contains\nseveral important bug fixes and we recommend that you upgrade as soon as\npossible. You can upgrade via pear or download the package here.\n", - "date": "2008-09-09 00:00:00" + "contents": "As you all may know, we recently\n[moved](https://www.doctrine-project.org/2009/06/16/doctrine-changing-homes.html)\nthe Doctrine infrastructure to a brand new home. This is all thanks to\n[ServerGrove](http://www.servergrove.net/). I contacted them a few\nmonths ago about potentially sponsoring us and they did not hesitate one\nbit. They were more than willing to setup a dedicated community server\nfor us, free of charge. Within 48 hours of my e-mail I had a dedicated\nserver ready to go. I had the server for about a month before I was able\nto make the move. They simply moved faster then I expected and have gone\nabove and beyond anything I could have imagined.\n\nIf you all need proper hosting support for your Symfony or Doctrine\nprojects, I would highly recommend them.\n", + "date": "2009-06-24 00:00:00" }, { - "url": "/2009/01/05/doctrine-1-0-6-released.html", - "slug": "doctrine-1-0-6-released", - "title": "Doctrine 1.0.6 Released", - "authorName": "jwage", + "url": "/2011/08/29/dbal-security-2011-1.html", + "slug": "dbal-security-2011-1", + "title": "Security releases 2.0.8 and 2.1.2", + "authorName": "beberlei", "authorEmail": "", - "contents": "Welcome Back\n============\n\nDon't worry! Doctrine is alive :) It has been a bit quiet around here\ndue to the holidays. I was able to take a week long vacation and it was\nvery nice being away from everything for the first time in almost three\nyears. I hope everyone enjoyed the holidays as much as I did.\n\n1.0.6 Released\n==============\n\nAnyways, on my first day back I am happy to introduce the freshly\npackaged Doctrine 1.0.6 bug fix release. This release contains dozens of\nfixes and the change log can be read\n[here](https://www.doctrine-project.org/change_log/1_0_6). It is strongly\nencouraged that you upgrade as soon as possible.\n\nDoctrine 1.1\n============\n\nOn a side note, we will be releasing the 2nd beta of 1.1 later this week\nand we have a few other surprises that will be a part of the 1.1 stable\nrelease. So, you will have to stick around to see what we have planned.\nYou can check out what is new in 1.1 by reading the\n[upgrade](https://www.doctrine-project.org/upgrade/1_1) file.\n", - "date": "2009-01-05 00:00:00" - }, - { - "url": "/2015/04/16/doctrine-module-release-0-8-1.html", - "slug": "doctrine-module-release-0-8-1", - "title": "Doctrine Module release 0.8.1", - "authorName": "Gianluca Arbezzano", - "authorEmail": "gianarb92@gmail.com", - "contents": "The **Zend Framework Integration Team** is happy to announce the new\nrelease of **DoctrineModule**. DoctrineModule `0.8.1` will be the last\nbugfix, it is the last version that will support PHP 5.3. Further\nversions of the `0.8.*` series may still be released in case of security\nissues.\n\nFollowing issues were solved in this release:\n: - [[\\#376] Bumping PHP and ZF2 dependencies, branch alias for\n master](https://github.com/doctrine/DoctrineModule/pull/376)\n - [[\\#378] I think this is a small PSR rule\n violation.](https://github.com/doctrine/DoctrineModule/pull/378)\n - [[\\#381] Update\n validator.md](https://github.com/doctrine/DoctrineModule/pull/381)\n - [[\\#388] Added exception for missing required parameter for\n find\\_method option\n as](https://github.com/doctrine/DoctrineModule/pull/388)\n - [[\\#390] Clarified how to pass sort\n information.](https://github.com/doctrine/DoctrineModule/pull/390)\n - [[\\#395] Issue with objects being cast to array in\n validators](https://github.com/doctrine/DoctrineModule/pull/395)\n - [[\\#397] Enhancement: use exit code from\n run()](https://github.com/doctrine/DoctrineModule/pull/397)\n - [[\\#401] Reading\n Inconsistency](https://github.com/doctrine/DoctrineModule/pull/401)\n - [[\\#391] UniqueObject Validator \\* allowing composite\n identifiers from context or\n not](https://github.com/doctrine/DoctrineModule/pull/391)\n - [[\\#400] let zf2 console return exit\n status](https://github.com/doctrine/DoctrineModule/pull/400)\n - [[\\#404] Fix form\n elements](https://github.com/doctrine/DoctrineModule/pull/404)\n - [[\\#406] Fix context\n unique](https://github.com/doctrine/DoctrineModule/pull/406)\n - [[\\#421] Make DoctrineObject use AbstractHydrator s\n namingStrategy](https://github.com/doctrine/DoctrineModule/pull/421)\n - [[\\#426] update year in\n license](https://github.com/doctrine/DoctrineModule/pull/426)\n - [[\\#436] Fixing typo and updating paginator link to ZF\n 2.3](https://github.com/doctrine/DoctrineModule/pull/436)\n - [[\\#450] minor cs\n fix](https://github.com/doctrine/DoctrineModule/pull/450)\n - [[\\#458] Update\n doctrine\\*module.php](https://github.com/doctrine/DoctrineModule/pull/458)\n - [[\\#462] Adding custom Doctrine\\*Cli\n Commands](https://github.com/doctrine/DoctrineModule/pull/462)\n - [[\\#465] Re*enable scrutinizer*ci code\n coverage](https://github.com/doctrine/DoctrineModule/pull/465)\n - [[\\#453] phpdoc\n fixes](https://github.com/doctrine/DoctrineModule/pull/453)\n\nTo install this version, simply update your \\`composer.json\\`:\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-module\": \"0.8.1\"\n }\n}\n```\n", - "date": "2015-04-16 00:00:00" + "contents": "It was brought to our attention that identifier quoting in Doctrine DBAL\nhas a potential security problem when user-input is passed into this\nfunction, making the security aspect of this functionality obsolete. We\nfixed as soon as we realized it and apologize for to our users for this\nerror.\n\nWe released versions 2.1.2 and 2.0.8 of DBAL that both contain a fix for\nthe problem. You can grab the code from\n[PEAR](http://pear.doctrine-project.org) ,\n[Github](https://github.com/doctrine/dbal) or the [Downloads\nsection](https://www.doctrine-project.org/projects/dbal/download).\n\nIf you make use of AbstractPlatform::quoteIdentifier() or\nDoctrine::quoteIdentifier() please upgrade immediately. The ORM itself\ndoes not use identifier quoting in combination with user-input, however\nwe still urge everyone to update to the latest version of DBAL.\n", + "date": "2011-08-29 00:00:00" }, { - "url": "/2013/05/11/doctrine-2-3-4.html", - "slug": "doctrine-2-3-4", - "title": "Doctrine 2.3.4 released", - "authorName": "Benjamin Eberlei", + "url": "/2009/12/01/more-doctrine-releases.html", + "slug": "more-doctrine-releases", + "title": "More Doctrine Releases", + "authorName": "jwage", "authorEmail": "", - "contents": "**11.05.2013**\n\nWe have released version 2.3.4 of Doctrine ORM and DBAL. We fixed as\nmuch as 18 DBAL tickets and 12 ORM tickets.\n\nSee a Changelog of both components:\n\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10421)\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10420)\n\nYou can install the release with\n[PEAR](http://pear.doctrine-project.org) or with\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.4\",\n \"doctrine/dbal\": \"2.3.4\"\n }\n }\n", - "date": "2013-05-11 00:00:00" + "contents": "Only a few hours ago we released the stable version of Doctrine 1.2! Now\nwe bring you two maintenance releases for the 1.0 and 1.1 versions of\nDoctrine. The number of changes in these releases are small, but they\nare important bug fixes. It is recommended that you upgrade. Download\n[1.0.14](https://www.doctrine-project.org/download#1_0) and\n[1.1.6](https://www.doctrine-project.org/download#1_1) now and report any\nissues you discover in [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2009-12-01 00:00:00" }, { "url": "/2021/03/29/dbal-2.13.html", @@ -513,301 +414,220 @@ "date": "2021-03-29 00:00:00" }, { - "url": "/2009/03/02/doctrine-1-0-8-and-1-1-0-rc2-released.html", - "slug": "doctrine-1-0-8-and-1-1-0-rc2-released", - "title": "Doctrine 1.0.8 and 1.1.0-RC2 Released", + "url": "/2010/08/24/doctrine-orm-version-1-2-3-released.html", + "slug": "doctrine-orm-version-1-2-3-released", + "title": "Doctrine ORM Version 1.2.3 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am happy to tell you that we have two new versions of Doctrine\navailable for you to use. The first is the monthly maintenance release\nfor Doctrine 1.0 and the second is another release candidate for the\nnewest major version of Doctrine, 1.1. As always you can grab them from\nthe [downloads](https://www.doctrine-project.org/download) page.\n\n1.0.8 Highlights\n================\n\n- Backported a few fixes from 1.1\n- Several fixes and optimizations to Doctrine\\_Query::count()\n- Dozens and dozens of other small fixes\n\nYou can read the full change log for the 1.0.8 release\n[here](https://www.doctrine-project.org/change_log/1_0_8).\n\n1.1.0-RC2 Highlights\n====================\n\n- Fixed issue with migration diff not paying attention to table\n options\n- Made the SoftDelete behavior backwards compatible with 1.0\n- Several fixes and optimizations to Doctrine\\_Query::count()\n- Fixed duplicated params when using LIMIT/OFFSET under MySQL\n- Fixed issue with new utf8 search analyzer\n- Fixed issue with prefixes causing invalid results in the migration\n diff tool\n- Fixed issues that arrise when re-using query objects with DQL\n callbacks enabled.\n\nYou can read the full change log for the 1.1.0-RC2 release\n[here](https://www.doctrine-project.org/change_log/1_1_0_RC2).\n\n
\n\nI realize we are a little late on the 1.1.0 release but we had some\nregressions reported that were a bit tricky and time consuming to fix.\nAll is well now and we were able to make hopefully the last release\ncandidate for the 1.1 version of Doctrine.\n", - "date": "2009-03-02 00:00:00" + "contents": "", + "date": "2010-08-24 00:00:00" }, { - "url": "/2008/10/02/first-symfony-1-1-workshop-in-atlanta-usa.html", - "slug": "first-symfony-1-1-workshop-in-atlanta-usa", - "title": "First symfony 1.1 workshop in Atlanta, USA", + "url": "/2007/12/08/new_design.html", + "slug": "new_design", + "title": "New Design", "authorName": "jwage", "authorEmail": "", - "contents": "

\n\nThree years after the launch of symfony as an Open-Source project,\nSensio Labs is very proud to announce its new offices in the USA.\n\n

\n\nTo celebrate, we organize our first symfony training in Atlanta between\nOctober 29th and 31th. The training will be based on the latest symfony\n1.1 and will be held in Atlanta (at the \"1230 Peachtree St N.E.\nPromenade II\").\n\n

\n\nThis symfony workshop will be given by a symfony expert coming from\nFrance and Jonathan Wage, the Doctrine lead developer, and a seasoned\nsymfony developer.??A symfony workshop is an interactive training\nsession during which you will learn how to develop high-quality web\napplications fast and efficiently with symfony. After three days of\nsymfony immersion, guided by Sensio experts sharing their knowledge and\nexperience, you will know enough techniques and methodology to become\nfluent in agile web development with symfony. You can find more\ninformation and subscribe online on our website.\n\n

\n\nIf you want more information, feel free to contact Nicolas Blin at\nNicolas.blin [at] sensio.com.Sensio Labs\n\n

\n\nSensio Labs helps its customers with their Internet strategy and\ndevelops their applications around the best Open-Source frameworks.\n\n

\n\nSensio Labs created symfony a Web application framework in PHP. Sensio\nLabs plays a major role in the Open-Source world. The company has 10\nyears of experience in development of high value web applications with\nmore than 500 projects for key accounts in many countries.\n\n

\n\n\n", - "date": "2008-10-02 00:00:00" - }, - { - "url": "/2019/09/30/mongodb-odm-1.3.0-and-2.0.0-RC2.html", - "slug": "mongodb-odm-1.3.0-and-2.0.0-RC2", - "title": "Doctrine MongoDB ODM 1.3.0 and 2.0.0-RC2 released", - "authorName": "Andreas Braun", - "authorEmail": "alcaeus@doctrine-project.org", - "contents": "The Doctrine team is proud to announce that MongoDB ODM 1.3.0 and 2.0.0-RC2 have\nbeen released. These releases are the culmination of a long effort to migrate\nthe ODM away from the legacy `mongo` extension to the new MongoDB driver\n(`mongodb` extension and PHP library). This results in a number of BC breaks for\nusers, but will enable us to add many new features in future releases, among\nthem support for multi-document transactions.\n\nMongoDB ODM 1.3.0 is a compatibility release targeted for users of the legacy\nextension that want to migrate to MongoDB ODM 2.0. It helps identify BC breaks\nby throwing deprecation notices and offering a forward compatibility layer where\npossible. To efficiently find usages of deprecated code, you can use the PHPUnit\nbridge developed by Symfony\n([symfony/phpunit-bridge](https://github.com/symfony/phpunit-bridge)) which logs\nall deprecation notices encountered during a run of PHPUnit. You can read more\nabout this component in the\n[Symfony documentation](https://symfony.com/doc/current/components/phpunit_bridge.html).\n\nMongoDB ODM 2.0.0RC-2 is the recommended package to use for those starting new\nprojects with MongoDB ODM. It ensures that you use the modern API for ODM\nwithout having to worry about deprecations. While this is still a release\ncandidate, it is planned to make this version the next stable MongoDB ODM\nrelease.\n\nWhat\u2019s new in MongoDB ODM 2.0?\n==============================\n\nMost importantly, this version no longer uses the legacy `mongo` extension. That\nextension is no longer maintained and does not support server versions beyond\nMongoDB 3.0. The new MongoDB driver ensures that MongoDB ODM can leverage\nfeatures and improvements contained in newer MongoDB versions, such as support\nfor multi-document transactions, retryable reads, retryable writes, change\nstreams, and much more.\n\nChanging the driver also means significant changes to some APIs. Most\nimportantly, the GridFS API has been rewritten from scratch to conform with\nMongoDB\u2019s GridFS spec for drivers. If you\u2019ve used GridFS before, this will be a\nbig change for you, but the new API is much simpler and cleaner to use. Check\nout the\n[GridFS documentation](https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/storing-files-with-mongogridfs.html#storing-files-with-gridfs)\nto find out how to use the new API. Unfortunately, we cannot provide a forward\ncompatibility layer for this, as re-implementing this API atop the legacy driver\nis not feasible.\n\nLazy reference support has been changed completely and no longer uses proxy\nobjects from the deprecated doctrine/common library. Instead, it builds on\n`ocramius/proxy-manager`, which gives us access to more advanced features like\npartial proxy loading, which we will start leveraging in future releases.\n\nIn 2.0 we dropped support for the YAML mapping of documents. This step was\nnecessary to both reduce the complexity of the code base and lower the burden of\nmaintaining multiple mapping drivers. If you are currently using YAML mappings,\nwe provide a console command to migrate YAML mappings to the XML format. We are\ncurrently working on an alternative that allows for a more flexible mapping\nconfiguration system, but this is not ready yet and will only be provided in a\nfuture 2.x release.\n\nMigrating to MongoDB ODM 2.0\n============================\n\nIf you are using MongoDB ODM 1.x, the upgrade consists of multiple steps. First,\nensure that you are fulfilling the necessary requisites for MongoDB ODM 2.0:\n* PHP version 7.2 or newer\n* ext-mongodb 1.5.0 or newer\n* mongodb/mongodb library 1.4.0 or newer\n* MongoDB 3.0 or newer\n\nIf you are already running PHP 7, you will most likely already be running\next-mongodb as the legacy extension is not available for PHP 7. If you are still\nrunning PHP 5.x, it is recommended that you migrate to PHP 7 before attempting\nto use a newer ODM version. You can do so by following the instructions on\nrunning ODM 1.x on PHP 7.\n\nOnce you fulfill all dependencies, the first step is updating to the latest 1.3\nrelease of MongoDB ODM. If you are using Symfony, you also need to upgrade the\nODM bundle to its latest\n[3.6 version](https://github.com/doctrine/DoctrineMongoDBBundle/releases/tag/3.6.0).\nOnce this is done, you can start fixing any deprecation notices that you find.\nThis should be a familiar process for any existing Symfony users. We tried to\nprovide compatibility layers where possible; unfortunately, we could not do so\nin all cases.\n\nThe next step is upgrading to ODM 2.0 directly. For many users, this step\nshouldn\u2019t be a problem thanks to the compatibility layer in 1.x. There may be\nsome necessary changes depending on the features you use (e.g. GridFS).\n\nWhat\u2019s next for MongoDB ODM\n===========================\n\nDuring the past few years, we focussed our limited development time almost\nexclusively on the driver migration, which came at the expense of supporting new\nfeatures in MongoDB. We plan to add support for many of those features in future\nreleases. You can get an overview of what\u2019s planned by checking the roadmap. If\nyou are looking for a specific feature, please let us know in the issue tracker.\n\nWhile not exhaustive or guaranteed, these are some of the features we plan to\nimplement in future releases:\n* Support for multi-document transactions (on-demand and implicit while flushing\n the Document Manager)\n* Support for new aggregation pipeline stages and operators\n* Support for the $expr query operator\n* Support for aggregation pipelines in update operations\n* Support for reading documents from views instead of collections\n* Atomic updates for collections using new array update operators\n\nSupport timeline\n================\n\nWith these releases, we\u2019re also introducing our new support timeline. Along with\nthe two releases announced above, we are also releasing the end-of-life release\nfor MongoDB ODM 1.2. We will not support MongoDB ODM 1.2 any more and encourage\nusers to upgrade to 1.3. Since 1.3 has no additional requirements over 1.2,\nupgrading should be possible for all users of ODM 1.2.\n\nMongoDB ODM 1.3 will be supported for at least 6 months after the first stable\nrelease of ODM 2.0. We will communicate this date when releasing ODM 2.0. After\nthose 6 months, we will either drop support for ODM 1.3 or extend it for another\n3 months, depending on the adoption rate of ODM 2.0. We are aware that the\nnumber and kind of BC breaks for 2.0 pose a significant challenge for many\nusers, which is why we don\u2019t want to force people to rush into this update.\n\nDuring the support phase for MongoDB ODM 1.3, we will also continue to provide\nbug fixes to the MongoDB Abstraction Layer that is used by MongoDB ODM 1.x. This\nproject will reach end-of-life at the same time as MongoDB ODM 1.3, and will no\nlonger be supported beyond that. We encourage users that depend on this library\nto switch to using the MongoDB PHP Library, which is part of the official\nMongoDB driver for PHP.\n\nContributing to MongoDB ODM\n===========================\n\nWe are currently looking for contributors. This doesn\u2019t necessarily mean\nimplementing new features or merging pull requests. Reporting or triaging\nissues, requesting features, and reporting bugs are all extremely important and\nhelps us deliver better software!\n\nGetting help\n============\n\nThe documentation can be found on the website:\nhttps://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/index.html.\nTo get support, contact us via the #mongodb-odm channel within the Doctrine\nSlack. If you believe you have found a bug, please file a bug report on GitHub.\n", - "date": "2019-09-30 00:00:00" + "contents": "Thanks to Phuson we have a brand new design that is absolutely\nspectacular. Now we have a design that is on the same level of Doctrine\nitself. We all owe him a big thanks.\n", + "date": "2007-12-08 00:00:00" }, { - "url": "/2010/08/07/dc2-experimental-associations-id-fields.html", - "slug": "dc2-experimental-associations-id-fields", - "title": "Experimental Doctrine 2 Feature: Associated Entities as Id Fields", - "authorName": "beberlei", + "url": "/2009/11/23/new-doctrine-core-team-member.html", + "slug": "new-doctrine-core-team-member", + "title": "New Doctrine Core Team Member", + "authorName": "jwage", "authorEmail": "", - "contents": "Doctrine 2 supports composite keys of primitive types from the\nbeginning, however we realized early that a very common use-case is a\ncomposite key with one or more elements being associated entities. For\nexample think of a CMS System which allows Article Translations. A\ncommon SQL schema for this case would be:\n\n [sql]\n CREATE TABLE article (id INT PRIMARY KEY, title VARCHAR(255), body LONGTEXT);\n\n CREATE TABLE article_translations (article_id INT, language CHAR(3), title VARCHAR(255), body LONGTEXT, PRIMARY KEY (article_id, language));\n\nThis sort of schema cannot be mapped with Doctrine 2 currently, it would\nbe required to add another column `id` on the article\\_translations\ntable and enforce a unique constraint on article\\_id + language.\n\nUnder the umbrella of\n[DDC-117](https://github.com/doctrine/orm/issues/1772) and some\nrelated tickets there were discussions about adding a feature that would\nhelp solve this problem: Allowing to add @Id to @ManyToOne or @OneToOne\nmappings. I committed this feature into an experimental Git branch today\nand we ask you to test this with as many crazy scenarios and use-cases\nas possible.\n\nThis feature can potentially be uber-powerful, however we want to be\nsure that it works correctly and does not have to many problematic\nedge-cases. Therefore we need your feedback.\n\n- Go to\n [[https://github.com/doctrine/orm/commits/DDC-117](https://github.com/doctrine/orm/commits/DDC-117)](https://github.com/doctrine/orm/commits/DDC-117)\n to see the code\n- [Have a look at the functional\n tests](https://github.com/doctrine/orm/blob/master/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC117Test.php)\n to see the synatx\n- Checkout the Git Repository and switch to the experimental branch\n `git checkout DDC-117`\n- Do crazy testing against this branch!\n\nPersonally I want this feature in core very much, however composite keys\nare very tricky. We want to find as many problematic cases with this\nfeature as possible. That would enable us to evaluate if this approach\nwill be merged into Doctrine 2.1 or not.\n\n> **NOTE**\n>\n> This feature currently only works with Annotations Mapping Driver. XML\n> and YAML will follow later.\n\nBy the way, the previous example is actually one of the functional\ntest-cases for this feature:\n\n~~~~ {.sourceCode .php}\ntitle = $title;\n $this->translations = new \\Doctrine\\Common\\Collections\\ArrayCollection();\n }\n}\n\n/**\n * @Entity\n */\nclass DDC117Translation\n{\n /**\n * @Id @ManyToOne(targetEntity=\"DDC117Article\")\n */\n private $article;\n\n /**\n * @Id @column(type=\"string\")\n */\n private $language;\n\n /**\n * @column(type=\"string\")\n */\n private $title;\n\n public function __construct($article, $language, $title)\n {\n $this->article = $article;\n $this->language = $language;\n $this->title = $title;\n }\n}\n\n$article = new DDC117Article(\"foo\");\n$em->persist($article);\n$em->flush();\n\n$translation = new DDC117Translation($article, \"en\", \"Bar\");\n$em->persist($translation);\n$em->flush();\n~~~~\n", - "date": "2010-08-07 00:00:00" + "contents": "Today I am very excited to announce to you all that we have officially\ninvited Benjamin Eberlei, also known as beberlei in IRC, to join the\ncore Doctrine team. He has steadily contributed to Doctrine 2 and has\nbeen very helpful. We are confident that he will be a great new addition\nto the team.\n\nBenjamin is a contributor to the Zend Framework as well so he will be\nresponsible for leading the integration between the projects. You can\nread a little more about Benjamin on his [about\npage](https://www.doctrine-project.org/contributor/beberlei).\n", + "date": "2009-11-23 00:00:00" }, { - "url": "/2011/08/26/doctrine2-1-1.html", - "slug": "doctrine2-1-1", - "title": "DBAL and ORM 2.1.1 maintenance releases", - "authorName": "beberlei", + "url": "/2014/12/04/doctrine_dbal_2_5_release.html", + "slug": "doctrine_dbal_2_5_release", + "title": "Doctrine DBAL 2.5 Release", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "We released the DBAL and ORM 2.1.1 maintenance versions today that\nseveral issues with both packages. You can see the changelog of both\npackages on Jira:\n\n- [ORM Changelog (22 issues\n fixed)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10153)\n- [DBAL Changelog (4 issues\n fixed)](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10156)\n\nPlease report any problems with these packages to the Jira tracker or\nthe mailing list.\n\nYou can download the packages through PEAR or our download sections\nwithin each project.\n", - "date": "2011-08-26 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.5.0 Stable. This release is a landmark in making DBAL more consistent\nand stable than it ever was.\n\nStarting with 2.5 DBAL will have a new release-master, [Steve\nM\u00fcller](https://github.com/deeky666). Steve has been working on DBAL for\nthe last two years and contributed many of the big features that make up\nthis fantastic release. He will replace Benjamin Eberlei who was the\nrelease master since version 2.0.\n\nYou can install DBAL through Composer:\n\nThis version is mostly backwards compatible with only some minor breaks,\nwhen using PDO IBM, creating a custom platform or using non-default\nDateTime formats. You can see the breaks in the\n[UPGRADE.md](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\nfile. DBAL 2.5 is also compatible with ORM 2.4, there is no need to wait\nfor ORM 2.5 to be released.\n\nThe following list contains the major new features of DBAL:\n\n- Support for SAP Sybase SQL Anywhere versions 10, 11, 12 and 16\n (DBAL-475)\n- Support for auto-commit=NO on all drivers and platforms. (DBAL-81)\n- Refactor exceptions to use common error-codes and exception classes\n that derive from `Doctrine\\DBAL\\DBALException`. (DBAL-407)\n- Add support to retry connections with\n `Doctrine\\DBAL\\Connection#ping()` method. (DBAL-275)\n- Add INSERT support to QueryBuilder (DBAL-320)\n- Add Binary type for VARBINARY support (DBAL-714)\n- Add charset and SSL connection support to PostgreSQL (DBAL-567,\n DBAL-702)\n- Add options support for Myqli (DBAL-643)\n- Add support for using database uris with the `url` parameter in\n `DriverManager::getConnection()` which supports several forms used\n by PaaS providers out of the box (DBAL-1050).\n- Auto detection of platform to use based on database (DBAL-757)\n- Improved SQL Server LIMIT emulation support. (Multiple tickets)\n- Improvements to HHVM Support (no full support yet)\n\nSee all the changes for the 2.5.0 Release on Jira, an amazing total of\n316 issues:\n\n- [DBAL\n 2.5.0](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10523/)\n\nIf you find any problems or backwards compatibility breaks with this\nrelease please report them on JIRA or open up Pull Requests on Github.\n", + "date": "2014-12-04 00:00:00" }, { - "url": "/2008/09/23/doctrine-at-latino-ware-2008.html", - "slug": "doctrine-at-latino-ware-2008", - "title": "Doctrine at LatinoWare 2008", - "authorName": "guilhermeblanco", + "url": "/2008/10/26/symfony-doctrine-schema-manager.html", + "slug": "symfony-doctrine-schema-manager", + "title": "symfony Doctrine Schema Manager", + "authorName": "jwage", "authorEmail": "", - "contents": "", - "date": "2008-09-23 00:00:00" + "contents": "As you all probably know, Doctrine has been tightly integrated with [a\nfew](http://trac.doctrine-project.org/wiki/integrate) different PHP\nframeworks. Since symfony was my choice of framework a few years back, I\nhave dedicated a lot of time towards working on the integration between\nthe two.\n\nSomething I've always thought would be fun to build and has been one of\nthe most requested items by users is a nice web based interface for\nmanaging your schema and generate your models from it. With the [new\nform\nframework](https://symfony.com/blog/spice-up-your-forms-with-some-nice-widgets-and-validators)\nas of [symfony\n1.1](https://symfony.com/blog/the-wait-is-over-symfony-1-1-released)\n, you can build rich forms with a nice OOP interface. This made it\nextremely easy to make the schema manager feature of the\n[sfDoctrineManagerPlugin](http://www.symfony-project.com/plugins/sfDoctrineManagerPlugin).\nIt was as simple as automatically generating a set of forms from the\nschema information data structure inside of Doctrine.\n\n[![sfDoctrineManagerPlugin](http://www.symfony-project.org/uploads/plugins/5e25c2c7775a8ed169e2d9a6de8e2d1d98ffd110.png)](http://www.symfony-project.com/plugins/sfDoctrineManagerPlugin)\n\nThis symfony plugin allows you to manage all your schema information\nfrom a nice web based interface. You can create new schemas or load your\nexisting schemas to edit. More information about it as well as screen\nshots can be found\n[here](http://www.symfony-project.com/plugins/sfDoctrineManagerPlugin).\n", + "date": "2008-10-26 00:00:00" }, { - "url": "/2016/01/05/orm-2-5-4.html", - "slug": "orm-2-5-4", - "title": "Doctrine ORM 2.5.4 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n[2.5.4](https://github.com/doctrine/orm/releases/tag/v2.5.4).\n\nThis release fixes an issue with how identifiers are used when building\nsecond level cache entries during hydration.\n[\\#1568](https://github.com/doctrine/orm/pull/1568)\n\nInstallation\n============\n\nYou can install the ORM component using Composer:\n\n```bash\ncomposer require doctrine/orm:~2.5.4\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/orm/issues).\n", - "date": "2016-01-05 00:00:00" + "url": "/2012/01/30/doctrine-2-1-6.html", + "slug": "doctrine-2-1-6", + "title": "DBAL/ORM 2.1.6 released", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "We released a new round of maintenance releases for the 2.1 branch. DBAL\nand ORM are now in version 2.1.6 of their lifecycle. There have been 8\nbug fixes in ORM and 8 in DBAL. See the changelogs:\n\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10182)\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10181)\n\nAs usual code is available via Download, PEAR, Packagist/Composer or\nfrom Github.\n", + "date": "2012-01-30 00:00:00" }, { - "url": "/2015/10/28/cache-1-4-3_and-1-5-0.html", - "slug": "cache-1-4-3_and-1-5-0", - "title": "Cache 1.4.3 and 1.5.0 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Cache\n[1.4.3](https://github.com/doctrine/cache/releases/tag/v1.4.3) and\n[1.5.0](https://github.com/doctrine/cache/releases/tag/v1.5.0).\n\nCache 1.4.3\n===========\n\nThis release fixes some minor issues that prevented various cache\nadapters from correctly reporting success or failure in case of cache\nkey deletion ([\\#95](https://github.com/doctrine/cache/pull/95)).\n\nAnother issue being fixed is related to `CacheProvider#fetchMultiple()`,\nwhich was failing to operate when an empty list was given to it\n([\\#90](https://github.com/doctrine/cache/pull/90)).\n\nAlso, the `CacheProvider` does not store version information internally\nunless `CacheProvider#deleteAll()` was called at least once\n([\\#91](https://github.com/doctrine/cache/pull/91)).\n\nYou can find the complete changelog for this release in the [v1.4.3\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.4.3).\n\nCache 1.5.0\n===========\n\nThis release includes all the changes released with version 1.4.3, as\nwell as further bug fixes and improvements that will require you to\nclean your caches (if file-based) during the upgrade.\n\nPHP7 support is now guaranteed\n([\\#92](https://github.com/doctrine/cache/pull/92)).\n\nFile based caches now use a much lower number of directories\n([\\#94](https://github.com/doctrine/cache/pull/94)).\n\nProper support for wincache multi-get was added\n([\\#97](https://github.com/doctrine/cache/pull/97)).\n\nPredis cache adapter now relies on the `Predis\\ClientInterface`\n([\\#87](https://github.com/doctrine/cache/pull/87)).\n\nYou can find the complete changelog for this release in the [v1.5.0\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.5.0).\n\nCredits\n=======\n\nWe would like to thank all contributors that patiently supported us in\nfixing the file-based cache directory structure long-standing issues,\nand especially:\n\n> - Tobias [Tobion](https://github.com/Tobion) Schultze\n> - Krzysztof [Crozin](https://github.com/Crozin) \u0141abu\u015b\n> - Steve [kamermans](https://github.com/kamermans) Kamerman\n\nInstallation\n============\n\nYou can install the Cache component using Composer either of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.4.1\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.5.0\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-10-28 00:00:00" + "url": "/2010/11/18/doctrine2-behavioral-extensions.html", + "slug": "doctrine2-behavioral-extensions", + "title": "Doctrine2 Behavioral Extensions", + "authorName": "gmorkevicius", + "authorEmail": "", + "contents": "These behavioral extensions will give you another view on Doctrine2\ncapabilities handling behaviors through the EventListeners. These\nextensions operate like some of the most commonly used behaviors,\nleaving the domain objects as clean as possible. Annotations makes it\neasy to understand an intended behavior of properties on your Entities.\n\n
\n
\n

\n\nHi, my name is Gediminas Morkevicius, I have 4 year experience in C++\nand PHP 5 and I'm very keen on new technologies and Doctrine2 is one of\nthem. Development is not only a job for me, but it is my lifestyle and\nI'm pleased to give some love back to Doctrine2.\n\n

\n

\n\nI would like to thank Doctrine2 and Symfony2 teams for these wonderful\nprojects. They have great potential.\n\n

\n
\n
\n\n **NOTE** This blog entry relates to Doctrine2 Beta4 ORM version and\n could possibly be outdated depending on what the current version of\n Doctrine2 is at the time of you reading this post. Then integrating\n these extensions on your project it is recommended to use latest\n Doctrine2 library packages, because where are most recent updates\n used on extensions for metadata caching and annotations.\n\n
\n\nContent:\n\n- Introduction on behavioral extensions\n- Setup and autoloading\n- Translatable extension\n- Tree extension\n- Sluggable extension\n- Timestampable extension\n- All nested together\n\nFirst of all, this post intends to give an example on how \"behaviors\"\ncan be implemented through the Doctrine2 EventListeners. All these\nbehavioral extensions can be nested and support flush operation which\ncan include lots of update, insert and remove actions. This is the most\ncommon issue when behavior development process is started.\n\nFurthermore, all extensions are mapped by annotations consequently\nleaving domain objects clean from interfaces and their methods. Plus,\nthe performance speed is even greater if cache driver is used, because\nmetadata for single Entity is mapped and validated only once.\n\nBefore we begin exploring the extensions, I\\`m glad to mention that\nthese extensions are already available on Symfony2 Bundle ported by\nChristophe Coevoet.\n\n\\#\\# Setting up the autoloader and listeners\n\nFirst of all, download this library from public github repository and\nsetup the autoloading for extensions:\n\n~~~~ {.sourceCode .php}\nregister();\n~~~~\n\nTranslatable behavior will need additional annotation driver for\nTranslation Entity metadata. The example below illustrates the chain\ndriver implementation:\n\n~~~~ {.sourceCode .php}\nnewDefaultAnnotationDriver(\n '/path/to/library/DoctrineExtensions/lib/Gedmo/Translatable/Entity'\n);\n$chainDriverImpl->addDriver($yourDefaultDriverImpl, 'Entity');\n$chainDriverImpl->addDriver($translatableDriverImpl, 'Gedmo\\Translatable');\n$doctrineOrmConfig->setMetadataDriverImpl($chainDriverImpl);\n~~~~\n\nAttaching the Event Listeners on the event manager\n==================================================\n\n~~~~ {.sourceCode .php}\naddEventSubscriber(new \\Gedmo\\Timestampable\\TimestampableListener());\n// sluggable\n$evm->addEventSubscriber(new \\Gedmo\\Sluggable\\SluggableListener());\n// tree\n$evm->addEventSubscriber(new \\Gedmo\\Tree\\TreeListener());\n// translatable\n$translationListener = new \\Gedmo\\Translatable\\TranslationListener();\n$translationListener->setTranslatableLocale('en_us');\n// in real world app the locale should be loaded from session, example:\n// Session::getInstance()->read('locale');\n$evm->addEventSubscriber($translationListener);\n// now this event manager should be passed to entity manager constructor\n\n**NOTE** It is recommended to attach TranslationListener as the\nlast whereas sluggable extension must create a slug before\ntranslating it.\n~~~~\n\n\\#\\# Translatable\n\nTranslatable behavior offers a very handy solution for translating\nspecific record fields into different languages. Furthermore, it loads\nthe translations automatically for the currently used locale. Locale can\nbe set by TranslationListener during it's initialization or later. It\nalso leaves the possibility to force a specific locale directly on the\nEntity itself.\n\nFeature list:\n\n- Translates all records automatically when object hydration is used\n- Supports a separate translation table for each Entity\n- There can be a default locale specified, which would force entity to\n leave its original translation in default locale.\n\nTranslatable annotations:\n=========================\n\n- @gedmo:Translatable indicates that the column is translatable\n- @gedmo:TranslationEntity(class=\"my\") this class annotation tells to\n use specified Entity to store translations\n- @gedmo:Locale or @gedmo:Language indicates that the column must not\n be mapped and that it may be used to override TranslationListener\\`s\n locale\n\nTranslatable Entity example:\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setContent($content)\n {\n $this->content = $content;\n }\n\n public function getContent()\n {\n return $this->content;\n }\n\n public function setTranslatableLocale($locale)\n {\n $this->locale = $locale;\n }\n}\n~~~~\n\nThere is no need for any additional operations while working with\nTranslatable Entities. All processing is done by event listener, just\nlike in good old behaviors. Except that in Doctrine2 the code is simpler\nand easy to understand and you may inspect it and customize if you see\nany point in doing that.\n\nHere are standard usage examples, the locale was set to \"en\\_us\" on\nlistener:\n\n~~~~ {.sourceCode .php}\nsetTitle('my title in en');\n$article->setContent('my content in en');\n$em->persist($article);\n$em->flush();\n~~~~\n\nThis inserted an article and populated the translations for it in\n\"en\\_us\" locale. Now lets translate it into another language:\n\n~~~~ {.sourceCode .php}\nfind('Entity\\Article', 1 /*article id*/);\n$article->setTitle('my title in de');\n$article->setContent('my content in de');\n$article->setTranslatableLocale('de_de'); // change locale\n$em->persist($article);\n$em->flush();\n~~~~\n\nThis updated an article and inserted the translations for it in \"de\\_de\"\nlocale. The TranslationRepository gives some handy methods on retrieving\nall translations:\n\n~~~~ {.sourceCode .php}\nclear(); // ensure the cache is clean\n$article = $em->find('Entity\\Article', 1 /*article id*/);\n$repository = $em->getRepository('Gedmo\\Translatable\\Entity\\Translation');\n$translations = $repository->findTranslations($article);\n/* $translations contains:\nArray (\n [de_de] => Array\n (\n [title] => my title in de\n [content] => my content in de\n )\n\n [en_us] => Array\n (\n [title] => my title in en\n [content] => my content in en\n )\n)*/\n// the locale now is \"en_us\" and current article::title in db is \"my title in de\"\necho $article->getTitle();\n// prints: \"my title in en\" because it loads the translation automatically\n~~~~\n\nUsing the \"default locale\":\n===========================\n\nIn some cases we need the default translation as a fallback if record\ndoes not have a translation on globally used locale. In that case\nTranslationListener uses the current value of Entity. But there is a way\nto specify a default locale which would force Entity to keep\nit`s field value on default locale. And if record has already been translated in this locale, the record will not update it`s\nvalue, only insert a new translation into translation table. You can\nspecify the default locale on TranslationListener\\`s initialization:\n\n~~~~ {.sourceCode .php}\nsetDefaultLocale('en_us');\n~~~~\n\nUsing a diferent Translation Entity for translation storage:\n============================================================\n\nIn some cases when there are thousands of records we would like to have\na single table for translations of this Entity in order to increase the\nperformance on translation loading speed. The example below will show\nhow to specify a diferent Entity for your translations by extending the\ntranslation mapped superclass. Thanks to Christophe Coevoet for the idea\non translation abstraction.\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setParent(Category $parent)\n {\n $this->parent = $parent;\n }\n\n public function getParent()\n {\n return $this->parent;\n }\n}\n~~~~\n\nBasic usage example:\n\n~~~~ {.sourceCode .php}\nsetTitle('Food');\n\n$fruits = new Entity\\Category();\n$fruits->setTitle('Fruits');\n$fruits->setParent($food);\n\n$vegetables = new Entity\\Category();\n$vegetables->setTitle('Vegetables');\n$vegetables->setParent($food);\n\n$carrots = new Entity\\Category();\n$carrots->setTitle('Carrots');\n$carrots->setParent($vegetables);\n\n$em->persist($food);\n$em->persist($fruits);\n$em->persist($vegetables);\n$em->persist($carrots);\n$em->flush();\n~~~~\n\nThe result after flush will generate the tree of food chain :)\n\n /food (1-8)\n /fruits (2-3)\n /vegetables (4-7)\n /carrots (5-6)\n\nUsing TreeNodeRepository functions:\n===================================\n\n~~~~ {.sourceCode .php}\ngetRepository('Entity\\Category');\n\n$food = $repo->findOneByTitle('Food');\necho $repo->childCount($food);\n// prints: 3\necho $repo->childCount($food, true/*direct*/);\n// prints: 2\n$children = $repo->children($food);\n// $children contains:\n// 3 nodes\n$children = $repo->children($food, false, 'title');\n// will sort the children by title\n$carrots = $repo->findOneByTitle('Carrots');\n$path = $repo->getPath($carrots);\n/* $path contains:\n 0 => Food\n 1 => Vegetables\n 2 => Carrots\n*/\n\n// verification and recovery of tree\n$repo->verify();\n$em->clear(); // ensures cache clean\n// can return TRUE if tree is valid, or array of errors found on tree\n$repo->recover();\n$em->clear(); // ensures cache clean\n// if tree has errors it will try to fix all tree nodes\n\n// single node removal\n$vegies = $repo->findOneByTitle('Vegitables');\n$repo->removeFromTree($vegies);\n// it will remove this node from tree and reparent all children\n\n// reordering the tree\n$repo->reorder(null/*reorder starting from parent*/, 'title');\n$em->clear(); // ensures cache clean\n// it will reorder all tree node left-right values by the title\n\n// moving up and down the nodes, by changing their (left, right) values\n$carrots = $repo->findOneByTitle('Carrots');\n$repo->moveUp($carrots, 1/*by one position*/);\n// carrots now should be at the top in it`s level\n$repo->moveDown($carrots, true/*to bottom*/);\n// carrots now should be at the bottom in it`s level\n~~~~\n\nAfter using such Tree operations like: reorder, recover, verify it is\nrecommended to clear the EntityManager cache since it may have cached\nnodes with old left and right values. This would be an issue if you plan\non using nodes during the same request after mentioned operations. And\nif you need some custom functions on your Node repository - simply\nextend the TreeNodeRepository.\n\n\\#\\# Sluggable\n\nSluggable behavior will build the slug from annotated fields on a chosen\nslug field which should store the generated slug. Slugs can be unique\nand styled. Currently this extension does not support unique constraint\non slug field in cases when there are many inserts on a single flush\noperation, because it cannot issue a query to ensure uniqueness. Use a\nsimple index instead.\n\nSluggable annotations:\n======================\n\n- @gedmo:Sluggable all columns identified by this annotation will be\n included in a slug\n- @gedmo:Slug this column will be used to store the generated slug\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setCode($code)\n {\n $this->code = $code;\n }\n\n public function getCode()\n {\n return $this->code;\n }\n\n public function getSlug()\n {\n return $this->slug;\n }\n}\n~~~~\n\nBasic usage example:\n\n~~~~ {.sourceCode .php}\nsetTitle('the title');\n$article->setCode('my code');\n$em->persist($article);\n$em->flush();\n\necho $article->getSlug();\n// prints: the-title-my-code\n~~~~\n\n\\#\\#\\# Some other configuration options:\n\n- updatable (optional, default=true) - true to update the slug on\n sluggable field changes, false - otherwise\n- unique (optional, default=true) - true if slug should be unique and\n if identical it will be prefixed, false - otherwise\n- separator (optional, default=\"-\") - separator which will separate\n words in slug\n- style (optional, default=\"default\") - \"default\" all letters will be\n lowercase, \"camel\" - first letter will be uppercase\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function getCreated()\n {\n return $this->created;\n }\n\n public function getUpdated()\n {\n return $this->updated;\n }\n}\n~~~~\n\n\\#\\# All nested together\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setParent(Category $parent)\n {\n $this->parent = $parent;\n }\n\n public function getParent()\n {\n return $this->parent;\n }\n\n public function getCreated()\n {\n return $this->created;\n }\n\n public function getUpdated()\n {\n return $this->updated;\n }\n\n public function getSlug()\n {\n return $this->slug;\n }\n}\n~~~~\n\nAfter running some inserts you will get the expected result. Don\\`t be\nafraid to use concurrent flush with many inserts and updates or even\nremove operations, everything is meant to work fine.\n\nSome of you may think that using no interface takes longer to check\nEntities on events. In fact, it takes only a single 'if' statement and a\ncache check on first request. This way the process is much cleaner.\n\nMaybe these extensions will help some of you realize how clean domain\nobjects can be and how well the model represents itself. It's much more\nconvenient than Active Record - browsing several extended classes, going\nthrough magic methods of those classes. While here you see everything in\none grasp.\n\nThere will be updates on my blog page and new articles which may\ninterest some of you. You can give some love back by forking a\nrepository and creating an ODM Document support on extensions or\nsuggesting me an idea of improvements or maybe an issue which you have\ndetected.\n", + "date": "2010-11-18 00:00:00" }, { - "url": "/2010/03/13/doctrine2-validations.html", - "slug": "doctrine2-validations", - "title": "Validation of Doctrine 2 Entities", - "authorName": "beberlei", + "url": "/2008/12/11/double-dose-of-doctrine.html", + "slug": "double-dose-of-doctrine", + "title": "Double Dose of Doctrine", + "authorName": "jwage", "authorEmail": "", - "contents": "While Doctrine 1 had validation nested inside the `Doctrine_Record`\ninstance this is not the case in Doctrine 2 anymore. We won't ship\nDoctrine 2 with any validators, the reason being that we think all the\nframeworks out there already ship with quite decents ones that can be\nintegrated into your Domain easily. Besides us being ORM experts not\nwanting to maintain yet another validation library, moving the\nresponsibility of validation into the domain layer also allows you to\nintegrate it much easier into frameworks form libraries for example.\n\nWhat we do offer are hooks to execute any kind of validation inside the\nDoctrine ORM.\n\nEntities can register lifecycle event methods with Doctrine that are\ncalled on different occasions. For validation we would need to hook into\nthe events called before persisting and updating. Even though we don't\nsupport validation out of the box, the implementation is even simpler\nthan in Doctrine 1 and you will get the additional benefit of being able\nto re-use your validation in any other part of your domain.\n\nSay we have an `Order` with several `OrderLine` instances. We never want\nto allow any customer to order for a larger sum than he is allowed to:\n\n~~~~ {.sourceCode .php}\ncustomer->getOrderLimit();\n\n $amount = 0;\n foreach ($this->orderLines AS $line) {\n $amount += $line->getAmount();\n }\n\n if ($amount > $orderLimit) {\n throw new CustomerOrderLimitExceededException();\n }\n }\n}\n~~~~\n\nNow this is some pretty important piece of business logic in your code,\nenforcing it at any time is important so that customers with a unknown\nreputation don't owe your business too much money.\n\nWe can enforce this constraint in any of the metadata drivers. First\nAnnotations:\n\n~~~~ {.sourceCode .php}\n\n \n \n \n \n \n \n \n\nYAML needs some little change yet, to allow multiple lifecycle events\nfor one method, this will happen before Beta 1 though.\n\nNow validation is performed whenever you call\n`EntityManager#persist($order)` or when you call `EntityManager#flush()`\nand an order is about to be updated. Any Exception that happens in the\nlifecycle callbacks will be catched by the EntityManager and the current\ntransaction is rolled back.\n\nOf course you can do any type of primitive checks, not null,\nemail-validation, string size, integer and date ranges in your\nvalidation callbacks.\n\n~~~~ {.sourceCode .php}\nplannedShipDate instanceof DateTime)) {\n throw new ValidateException();\n }\n\n if ($this->plannedShipDate->format('U') < time()) {\n throw new ValidateException();\n }\n\n if ($this->customer == null) {\n throw new OrderRequiresCustomerException();\n }\n }\n}\n~~~~\n\nWhat is nice about lifecycle events is, you can also re-use the methods\nat other places in your domain, for example in combination with your\nform library. Additionally there is no limitation in the number of\nmethods you register on one particular event, i.e. you can register\nmultiple methods for validation in \"PrePersist\" or \"PreUpdate\" or mix\nand share them in any combinations between those two events.\n\nThere is no limit to what you can and can't validate in \"PrePersist\" and\n\"PreUpdate\" aslong as you don't create new entity instances. This was\nalready discussed in the previous blog post on the Versionable\nextension, which requires another type of event called \"onFlush\".\n\nAlso read:\n\n- [Doctrine 2 Manual:\n Events](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/events.html#lifecycle-events)\n- [Doctrine 2 Blog: A reusable Versionable\n Behaviour](https://www.doctrine-project.org/2010/02/24/doctrine2-versionable.html)\n\n", - "date": "2010-03-13 00:00:00" + "contents": "Today I am happy to introduce two new versions of Doctrine! We have made\navailable yet another maintenance release for the 1.0 version,\n[1.0.5](https://www.doctrine-project.org/download). This release contains\ndozens of fixes that are logged\n[here](https://www.doctrine-project.org/change_log/1_0_5). In addition to\nthe monthly 1.0.x maintenance release, we have made available the [first\nbeta of the 1.1](https://www.doctrine-project.org/download) development\nbranch of Doctrine.\n\nThis is exciting news because this means we are very close to releasing\na stable version. We just need to work out the last final kinks and we\nneed your help to do it. You can read about what has changed in the\n[upgrade to 1.1\nfile](http://svn.doctrine-project.org/branches/1.1/UPGRADE_TO_1_1).\n", + "date": "2008-12-11 00:00:00" }, { - "url": "/2008/02/18/doctrine-orm-sandbox.html", - "slug": "doctrine-orm-sandbox", - "title": "Doctrine ORM Sandbox", + "url": "/2008/06/13/php-net-style-api-documentation-lookups.html", + "slug": "php-net-style-api-documentation-lookups", + "title": "Php.net style API documentation lookups", "authorName": "jwage", "authorEmail": "", - "contents": "Today I would like to announce the official introduction of the Doctrine\nsandbox package. The Doctrine sandbox was first introduced in SVN a few\nmonths ago, but is now available as a downloaded package. Every major\nrelease of Doctrine has a sandbox available for it. The sandbox is a\nsample implementation of Doctrine that is ready to be used with zero\nconfiguration. It comes configured with a sqlite database so it requires\nthat you have pdo sqlite enabled on your server. The packages can be\ndownloaded here. I have also put together a small wiki page on how you\ncan get started using the sandbox to easily play with Doctrine. The wiki\npage can be found here.\n", - "date": "2008-02-18 00:00:00" + "contents": "

\n\nI have been using php.net style API lookups ever since I can remember.\nIt is very nice being able to simply go to https://secure.php.net/array\\_walk\nand have it pull up that function in the PHP API Documentation. So,\ntonight i have implemented this functionality in to the Doctrine\nwebsite. Below are some examples of how you can quickly access the API\ndocs for a specific function or class.\n\n

  • \n\n[http://www.phpdoctrine.org/Doctrine](http://www.phpdoctrine.org/Doctrine)\n- Single class\n\n
  • \n\n[http://www.phpdoctrine.org/Doctrine::getTable](http://www.phpdoctrine.org/Doctrine::getTable)\n- Single class function\n\n
  • \n\n[http://www.phpdoctrine.org/getParams](http://www.phpdoctrine.org/getParams)\n- Single function that exists in multiple classes\u00a0\n\n
\n\n\n", + "date": "2008-06-13 00:00:00" }, { - "url": "/2010/03/15/what-to-expect-from-doctrine-1.html", - "slug": "what-to-expect-from-doctrine-1", - "title": "What to expect from Doctrine 1", + "url": "/2009/01/23/introducing-doctrine-orm-for-php.html", + "slug": "introducing-doctrine-orm-for-php", + "title": "Introducing: Doctrine ORM for PHP", "authorName": "jwage", "authorEmail": "", - "contents": "As you all can obviously see, our focus around here these days has been\non Doctrine 2. While overall this is a great thing, we still have a\nstable Doctrine 1.2 version to maintain. This blog post will give you a\nlittle information about Doctrine 1.0, 1.1 and 1.2.\n\nDoctrine 1.0 and 1.1 End of Life\n================================\n\nYou may not have noticed, but the end of life for Doctrine 1.0 and 1.1\nhas come and gone earlier in the year. As of right now we will not be\ncommitting anymore bug fixes to these branches. All development\nresources will now focus on finishing Doctrine 2 and maintaining 1.2.\n\nDoctrine 1.2 Maintenance Releases\n=================================\n\nSince Doctrine 1.2 is the last stable version to be released for the\nDoctrine 1 series, we decided to open up the development a little bit\nfor the maintenance releases. Previously we were very strict with only\nallowing bug fixes, but we will now allow a little more flexibility to\nthe types of things we commit to these releases. They can now contain\nsmall enhancements and improvements as long as they do not break\nbackwards compatibility. Of course when adding things we cannot always\nbe 100% sure that something is BC, so we will announce each 1.2.x\nrelease one week prior to it's packaging and deployment in order to give\npeople time to test things in SVN.\n\nThe reasoning behind this move is because we want to still improve the\nsmall usability issues of the Doctrine 1 series without having to commit\nto entirely new major versions. This way we are not leaving the Doctrine\n1 code behind while we're focusing on the Doctrine 2 version. We hope\nthat you all are okay with this move. If you have any issues please let\nus know!\n", - "date": "2010-03-15 00:00:00" + "contents": "Today I am very happy to announce that we have a first draft available\nof the new main Doctrine documentation which is titled, \"[Doctrine ORM\nfor PHP](https://www.doctrine-project.org/documentation/manual/1_0/en)\".\nThe content of this documentation was re-organized and completely\nre-written from the \"Old Manual\". The order of the chapters and sections\nhave been re-thought and we've tried to put them in a more logical\norder. Now you can follow along in the chapters with code exercises and\nactually play with Doctrine as you read!\n\nMain Highlights\n===============\n\n- Almost 100% re-written.\n- Chapters renamed and reorganized.\n- Chapters split a part in to multiple to ease reading and flow.\n- Added sample Doctrine implementation for executing exercise code as\n you read.\n- Lots of aesthetic improvements: SQL highlighting, YAML highlighting\n and better PHP highlighting colors.\n\n > **NOTE** We also added a few new markups that get rendered as\n > boxes that standout with a representative icon. The three\n > different boxes are: note, tip and caution.\n\nTo Do\n=====\n\nWith this announcement we have a few more things left to do and we need\nyour help!\n\nPerform Week of Revisions\n-------------------------\n\nFirst we need to spend about a week or so proof-reading the the new\ndocumentation. This is where the community can really be helpful. Go\nahead and [create a trac\naccount](http://trac.doctrine-project.org/register) if you don't already\nhave one. This way when you're reading and you spot a problem or have an\nidea how something could be better you can [create a\nticket](http://trac.doctrine-project.org/newticket) easily.\n\n> **NOTE** The goal here is to get the 1.0 version tightened up and\n> polished with a nice shine! Then we can branch the new documentation\n> for 1.1.\n\nProvide Exercise Code for Download\n----------------------------------\n\nAt the end of each chapter we will provide a tagged copy of the state of\nthe exercise code so you can check your work against ours or if you get\nbehind you can get caught back up by downloading the code.\n\nRelease Doctrine 1.1\n--------------------\n\nWe have a few more bugs to fix in the 1.1 version then we will release\nthe second stable version of Doctrine, 1.1. Right before we release\nDoctrine 1.1(which will hopefully also be in a week or so), we will\nbranch the new documentation for 1.1 and make all the necessary updates\nbased on [what's changed](https://www.doctrine-project.org/upgrade/1_0).\nThen we will release and open it to your suggestions.\n\nPrinted Book: \"Doctrine ORM for PHP\"\n------------------------------------\n\nOnce the new documentation has a bit of time to gather some user\nfeedback and typos weeded out we will offer the documentation in a\nphysical printed format through [lulu](http://www.lulu.com). Don't worry\nwe will still offer all the documentation for free on the website. Even\nif you've already read the documentation on the web you can show your\nappreciation for the project and support it by purchasing a copy.\n\n> **TIP** If you want to print a rich text version of the Book yourself\n> instead of using the PDF or ordering a copy, we have implemented a\n> print stylesheet so when you access the documentation\n> [here](https://www.doctrine-project.org/documentation/manual/1_0/en/one-page/print)\n> you will get the version styled for printing.\n\n* * * * *\n\nNow go ahead and check out [Doctrine ORM for PHP - Guide to Doctrine for\nPHP](https://www.doctrine-project.org/documentation/manual/1_0/en) and\nbring me some feedback. :)\n", + "date": "2009-01-23 00:00:00" }, { - "url": "/2009/11/23/doctrine-1-2-0-rc1-released.html", - "slug": "doctrine-1-2-0-rc1-released", - "title": "Doctrine 1.2.0-RC1 Released", + "url": "/2010/07/30/doctrine-mongodb-odm-1-0-0alpha2-released.html", + "slug": "doctrine-mongodb-odm-1-0-0alpha2-released", + "title": "Doctrine MongoDB ODM 1.0.0ALPHA2 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Today the first release candidate for the 1.2 version of Doctrine is\navailable for [download](https://www.doctrine-project.org/download#1_2).\nWe addressed around 20 or so issues in\n[Jira](https://www.doctrine-project.org/jira) for this release and we\nhope to have a stable release by the end of November. Please test this\nlatest release and report any issues you discover in\n[Jira](https://www.doctrine-project.org/jira).\n\nView the full [change\nlog](https://www.doctrine-project.org/change_log/1_2_0_RC1) for this\nrelease and [download RC1](https://www.doctrine-project.org/download#1_2)\nnow!\n", - "date": "2009-11-23 00:00:00" + "contents": "Today I am happy to bring you the second alpha release of the brand new\nDoctrine MongoDB Object Document Mapper (ODM). The release contains\nseveral bug fixes and a few enhancements. You now have the ability to\nmix types of documents in references and embedded documents. You can\nread the [blog\npost](https://www.doctrine-project.org/2010/07/20/mixing-types-of-documents.html)\nabout mixing types of documents to learn more.\n\n

\n\nBug\n\n

\n
    \n
  • \n\n[MODM-12] - Undefined variable error\n\n
  • \n
  • \n\n[MODM-13] - Problems with merge()\n\n
  • \n
  • \n\n[MODM-14] - Default database when @Document annotation does not contain\na db attribute.\n\n
  • \n
  • \n\n[MODM-16] - loadById failing on custom ids\n\n
  • \n
  • \n\n[MODM-17] - Multiple array / object with same content/properties do not\nget persisted\n\n
  • \n
  • \n\n[MODM-19] - Field annotation missing \"name\" support\n\n
  • \n
  • \n\n[MODM-20] - SINGLE\\_COLLECTION inheritance does not work\n\n
  • \n
  • \n\n[MODM-21] - AnnotationDriver doesn't allow custom types\n\n
  • \n
  • \n\n[MODM-22] - Document incorrectly scheduled for update\n\n
  • \n
  • \n\n[MODM-25] - AnnotationDriver.php Line 175\n\n
  • \n
  • \n\n[MODM-28] - xml mapping : embedded-document node is ignored, can't\npersist\n\n
  • \n
\n\n

\n\nImprovement\n\n

\n
    \n
  • \n\n[MODM-24] - Hydratation of extra fields\n\n
  • \n
  • \n\n[MODM-26] - MongoCursor doesn't implement Countable interface\n\n
  • \n
\n\nDownload\n========\n\nYou can directly download the PEAR package file\n[here](https://www.doctrine-project.org/downloads/DoctrineMongoDBODM-1.0.0ALPHA2.tgz).\nYou can manually extract the code or you can install the PEAR package\nfile locally.\n\n $ pear install /path/to/DoctrineMongoDBODM-1.0.0ALPHA2.tgz\n\nOr you can checkout from github:\n\n $ git clone git://github.com/doctrine/mongodb-odm.git mongodb_odm\n $ cd mongodb_odm\n $ git checkout 1.0.0ALPHA2\n\nAnd you can also install via PEAR:\n\n $ pear install pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0ALPHA2\n", + "date": "2010-07-30 00:00:00" }, { - "url": "/2008/08/08/creating-a-unit-of-work-using-doctrine.html", - "slug": "creating-a-unit-of-work-using-doctrine", - "title": "Creating a Unit of Work Using Doctrine", - "authorName": "jwage", + "url": "/2011/06/18/doctrine-2-1-rc1.html", + "slug": "doctrine-2-1-rc1", + "title": "Doctrine 2.1 Release Candidate 1", + "authorName": "beberlei", "authorEmail": "", - "contents": "I am happy to introduce the latest contribution to the 1.0 cookbook,\nCreating a Unit of Work Using Doctrine by Jon Lebensold. Big thanks to\nhim, he reached out to me wanting to contribute something to the project\nso he offered to add this great recipe to the cookbook. It properly\ndemonstrates the unit of work pattern for saving and deleting Doctrine\nobjects. If you are interested in contributing to Doctrine, adding\nsomething to the cookbook is a great way to help out by only giving 1\nhour of your time. Contact me at jonwage [at] gmail.com if you are\ninterested in contributing.\n", - "date": "2008-08-08 00:00:00" + "contents": "Doctrine 2.1 is feature complete and we packaged up the first release\ncandidate to celebrate this day. So far we got exactly one backwards\ncompability complaint that was immediately fixed. You only have about 10\ndays to verify that this release candidate is working with your existing\n2.0 code-bases. If you find some problems please report a bug on\n[Jira](https://www.doctrine-project.org). We will provide everyone with\nmugs/tshirts who is finding incompatible changes.\n\nWe plan to release only 1-2 bugfix releases of the 2.0.x branch, which\nshould give you lots of motivation to try out 2.1 with your projects.\n\nWe integrated a pretty substantial Annotation Reader refactoring just\ntoday. Please test if this still works with your code-base using\nannotations. See the [UPGRADE\\_TO\\_2\\_1 file](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-21)\nfor some information. You might need to adjust your bootstrapping code\nto get it working.\n\nThe task now until the final release on june 30th will be to update the\ndocumentation with all the changes that have landed in Doctrine 2.1. We\nalready created a 2.0.x branch of the docs that will freeze the current\nstate for those staying on 2.0. Additionally we will squash all the last\nbugs that we find.\n\nGrab the new code in the downloads section or on our [PEAR\nchannel](http://pear.doctrine-project.org)\n", + "date": "2011-06-18 00:00:00" }, { - "url": "/2014/12/16/orm-247.html", - "slug": "orm-247", - "title": "ORM 2.4.7 released", - "authorName": "Marco Pivetta", + "url": "/2015/03/18/orm-2-5-0-beta-1.html", + "slug": "orm-2-5-0-beta-1", + "title": "Doctrine ORM 2.5.0 BETA 1 Released", + "authorName": "Benjamin Eberlei, Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.7.\n\nThe release includes a fix for `null` values in column mapping options\nsupport:\n[DDC-3425](https://github.com/doctrine/orm/issues/4231) We also\nfixed various `Paginator` tool issues: - allowing DQL queries that have\n`HIDDEN` selected fields appearing both in the `SELECT` and the\n`ORDER BY` clauses:\n[DDC-3434](https://github.com/doctrine/orm/issues/4241) -\nallowing DQL queries that have `SELECT` clauses containing parameters:\n[DDC-3336](https://github.com/doctrine/orm/issues/4133)\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.7](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10724)\n - 2 issues fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.7\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2014-12-16 00:00:00" + "contents": "We are happy to announce the immediate availability Doctrine ORM\n`2.5.0-beta1`.\n\nDue to day-job related responsibilities, we are a month behind our\nschedule. Please bear with us as we prepare this new release.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the ORM.\n\nWe encourage all of our users to help us by trying out this beta\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nStarting from this release, no more new features or breaking changes\nwill be allowed into the repository until \\`2.6.x\\` development starts.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n> - `2.5.0-RC1` on `2015-03-25`\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-beta1\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-alpha2\n==========================\n\nThis is a list of issues solved in `2.5.0-beta1` since `2.5.0-alpha2`:\n\n- [[DDC-3452](https://github.com/doctrine/orm/issues/4261)]\n Embeddables Support for ClassMetadataBuilder\n- [[DDC-3551](https://github.com/doctrine/orm/issues/4369)]\n Load platform lazily in ClassMetadataFactory to avoid database\n connections.\n- [[DDC-3258](https://github.com/doctrine/orm/issues/4047)]\n Improve suport for composite primary keys and associations as keys.\n- [[DDC-3554](https://github.com/doctrine/orm/issues/4372)]\n Allow to recreate DQL QueryBuilder from parts.\n- [[DDC-3461](https://github.com/doctrine/orm/issues/4271)]\n Allow setting association as primary key in ClassMetadataBuilder API\n with `makePrimaryKey()`.\n- [[DDC-3587](https://github.com/doctrine/orm/issues/4408)]\n Added programmatical support to define indexBy on root aliases.\n- [[DDC-3588](https://github.com/doctrine/orm/issues/4409)]\n Add support for seconds in `DATE_ADD` DQL function.\n- [[DDC-3585](https://github.com/doctrine/orm/issues/4406)]\n Fix instantiation of nested embeddables.\n- [[DDC-3607](https://github.com/doctrine/orm/issues/4431)]\n Add support for orphan removal in\n ClassMetadataBuilder/AssocationBuilder\n- [[DDC-3597](https://github.com/doctrine/orm/issues/4419)]\n Add support for embeddables in MappedSuperclasses.\n- [[DDC-3616](https://github.com/doctrine/orm/issues/4441)]\n Add support for DateTimeImmutable in Query parameter detection.\n- [[DDC-3622](https://github.com/doctrine/orm/issues/4448)]\n Improve support for objects as primary key by casting to string in\n UnitOfWork.\n- [[DDC-3619](https://github.com/doctrine/orm/issues/4444)]\n Update IdentityMap when entity gets managed again fixing\n `spl_object_hash` collision.\n- [[DDC-3608](https://github.com/doctrine/orm/issues/4432)]\n Fix bug in EntityGenerator to XML/YML with default values.\n- [[DDC-3590](https://github.com/doctrine/orm/issues/4412)]\n Fix bug in PostgreSQL with naming strategy of non-default schema\n tables.\n- [[DDC-3566](https://github.com/doctrine/orm/issues/4385)]\n Fix bug in Second-Level Cache with association identifiers.\n- [[DDC-3528](https://github.com/doctrine/orm/issues/4343)]\n Have `PersistentCollection` implement `AbstractLazyCollection` from\n [doctrine/collections](https://github.com/doctrine/collections).\n- [[DDC-3567](https://github.com/doctrine/orm/issues/4386)]\n Allow access to all aliases for a QueryBuilder.\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", + "date": "2015-03-18 00:00:00" }, { - "url": "/2008/07/12/doctrine-0-11-1-and-1-0.html", - "slug": "doctrine-0-11-1-and-1-0", - "title": "Doctrine 0.11.1 and 1.0", - "authorName": "jwage", - "authorEmail": "", - "contents": "

\n\nToday we have released a new version, 0.11.1. As with all point releases\nit is a bug fix only release. With over 81 tickets closed, this is\ndefinetly a significant release for Doctrine towards 1.0. We recommend\nthat you upgrade.\n\n

\n\nWe have also created the 1.0 branch and will begin actively working on\nit. We have hit the final straight away towards 1.0! This was originally\nslated to be the 0.12 branch but we feel it is ready and we will spend\nthe next 2 months furiously working on tickets before we release it on\nSeptember 1st. We will have some short intermediate BETA and RC releases\nbefore then but these will primarily be bug fix releases only. Make some\nhype please, thanks. ;)\n\n

\n\n\n", - "date": "2008-07-12 00:00:00" - }, - { - "url": "/2010/08/18/mongodb-odm-1-0-0beta1-released.html", - "slug": "mongodb-odm-1-0-0beta1-released", - "title": "MongoDB ODM 1.0.0BETA1 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today I am happy to tell you we have released the first beta version of\nthe MongoDB Object Document Mapper. It contains many fixes and general\nimprovements across the code.\n\nWe fixed lots of things reported by our users in Jira but also made lots\nof other improvements like improving the use of atomic operators. Read\non for a complete list of the issues fixed in Jira:\n\nFixed Jira Issues\n=================\n\n
    \n
  • \n\n[MODM-32] - dbref \\$id persisted as string instead of objectid\n\n
  • \n
  • \n\n[MODM-33] - Class-level annotations are ignored if set on\nMappedSuperclass\n\n
  • \n
  • \n\n[MODM-34] - Custom Id always gets sent with changeset\n\n
  • \n
  • \n\n[MODM-35] - Proxy item gets reset on persistent collection load if that\nitem was in the collection\n\n
  • \n
  • \n\n[MODM-36] - Embedded relations are not persisted after a flush()\n\n
  • \n
  • \n\n[MODM-37] - Problems with EmbedMany and discrimatorMap and\ndiscriminatorField\n\n
  • \n
  • \n\n[MODM-38] - Using YAML description with embedMany causes PHP notice\nerror\n\n
  • \n
  • \n\n[MODM-41] - Hydration down not work for annotation \"@ReferenceMany\"\n\n
  • \n
  • \n\n[MODM-42] - PersistentCollection fails when working with MongoGridFs\n\n
  • \n
  • \n\n[MODM-45] - Doctrine doesn't persist empty objects\n\n
  • \n
  • \n\n[MODM-46] - @AlsoLoad annotation causes exception when used together\nwith Embed/Reference annotations\n\n
  • \n
  • \n\n[MODM-47] - @AlsoLoad annotation, used on method causes fatal error\n\n
  • \n
  • \n\n[MODM-48] - Embedded document changes are ignored if it was empty before\n\n
  • \n
  • \n\n[MODM-49] - Getting PHP notice and warning with empty persistent\ncollection\n\n
  • \n
  • \n\n[MODM-50] - GridFs file classes don't support inheritance\n\n
  • \n
  • \n\n[MODM-43] - Explicit schema migration\n\n
  • \n
  • \n\n[MODM-40] - Move value scalarization and comparison to Unit Of Work\n\n
  • \n
\n\nDownload\n========\n\nYou can directly download the PEAR package file\n[here](https://www.doctrine-project.org/downloads/DoctrineMongoDBODM-1.0.0BETA1.tgz).\nYou can manually extract the code or you can install the PEAR package\nfile locally.\n\n $ pear install /path/to/DoctrineMongoDBODM-1.0.0BETA1.tgz\n\nCheckout from github\n--------------------\n\n $ git clone git://github.com/doctrine/mongodb-odm.git mongodb_odm\n $ cd mongodb_odm\n $ git checkout 1.0.0BETA1\n\nInstall via PEAR\n----------------\n\n $ pear install pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0BETA1\n", - "date": "2010-08-18 00:00:00" - }, - { - "url": "/2012/07/16/doctrine-2-3-beta.html", - "slug": "doctrine-2-3-beta", - "title": "Doctrine 2.3 Beta", - "authorName": "Benjamin Eberlei", - "authorEmail": "", - "contents": "**16.7.2012**\n\nWe tagged the Doctrine 2.3 BETA1 release today. This includes tags for\nthe Common, DBAL and ORM projects.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nThis new release contains not single blockbuster feature, but very many\nlittle ones:\n\n- Custom ID Generators\n- Naming Strategies\n- Collection Criteria API\n- @AssociationOverride and @AttributeOverride (useful for Trait and\n MappedSuperclass)\n- Arbitrary JOIN Syntax (FROM User u JOIN Comment c WITH c.user =\n u.id)\n- Named Native Queries\n\nWe will flesh out the documentation and information about all new\nfeatures in the coming beta phase. We hope to release the final version\nof Doctrine 2.3 just before the upcoming Symfony 2.1 release.\n\nPlease test this release with your applications and provide us with\nfeedback about issues that you find.\n\nYou can install the Beta through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-BETA1\"\n }\n }\n", - "date": "2012-07-16 00:00:00" - }, - { - "url": "/2009/11/03/a-doctrine-triple-play.html", - "slug": "a-doctrine-triple-play", - "title": "A Doctrine Triple Play", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today I am happy to bring you three new versions of Doctrine:\n\nDoctrine 1.0.13\n===============\n\nThis is a regular maintenance release for the Doctrine 1.0 branch and\ncontains several bug fixes. Check out the [change\nlog](https://www.doctrine-project.org/change_log/1_0_13) for the changes\ncontained in this release.\n\nDoctrine 1.1.5\n==============\n\nThis is a regular maintenance release for the Doctrine 1.1 branch. This\nwill be the one of the last maintenance release for the Doctrine 1.1\nbranch as the scheduled support for this version has technically ended\non November 1st. We will have a few more maintenance releases for 1.1\nsince Doctrine 1.2 is not out yet. We'll give a few months of overlap to\ngive people some time to upgrade to Doctrine 1.2. Check out the [change\nlog](https://www.doctrine-project.org/change_log/1_1_5) for the changes\ncontained in this release.\n\nDoctrine 1.2.0-BETA1\n====================\n\nThis is the first BETA of the Doctrine 1.2 branch. This release is a\nvery exciting one as it will be a LTS(long term support) version and it\ncontains lots of new features and bug fixes. Check out the [change\nlog](https://www.doctrine-project.org/change_log/1_2_0_BETA1) for the\nchanges contained in this release. You can also see documentation for\neverything that has changed or is new in Doctrine 1.2 on the [What's\nNew](https://www.doctrine-project.org/upgrade/1_2) page.\n\nLike always, you can grab the package for these new versions on the\n[download](https://www.doctrine-project.org/download) page.\n", - "date": "2009-11-03 00:00:00" - }, - { - "url": "/2015/04/01/indoctrinator-0-0-1-alpha-1.html", - "slug": "indoctrinator-0-0-1-alpha-1", - "title": "Indoctrinator 0.0.1-alpha1", + "url": "/2015/11/23/orm-2-5-2.html", + "slug": "orm-2-5-2", + "title": "Doctrine ORM 2.5.2 Release", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the start of development on a new project\ncalled **the indoctrinator**.\n\nWhat is Indoctrinator?\n======================\n\nFor various months, we tried to implement a way to validate the correct\nusage of the Doctrine Project mapping tools. This sort of validation\nlogic includes:\n\n- immutability checks/suggestions\n- number of generated DB queries/hits reduction\n- memory impact control\n- hydration profiling\n- code generator avoidance\n- DDD (Domain Driven Development) entity class/method naming\n conventions\n- ... and much more!\n\nWe decided to put these validation rules into a project.\n\nHow does Indoctrinator work?\n============================\n\nIndoctrinator is currently only working with `doctrine/orm` version\n`2.5.x-dev`, but the general working concept is as following:\n\n```php\n$indoctrinator = new Doctrine\\Indoctrinator();\n\n$indoctrinator->registerWithManager(new Doctrine\\Indoctrinator\\ManagerWrapper($entityManager));\n```\n\nWithout going into much details, Indoctrinator hooks into common APIs\nused in ORM internals, and by using AOP (Aspect Oriented Programming),\nit catches common mistakes and issues and produces exceptions or log\nmessages that \"indoctrinate\" the user on correct toolchain usage.\n\nRelease RoadMap\n===============\n\nIndoctrinator is still in early development, but our plan is to release\nit with bindings for major editors and IDEs used in the PHP community.\n\nThe current version is `0.0.1-alpha1`, and is released as a `phar`\narchive for now.\n\nDevelopment will likely take 6 or more months, while we stabilize the\nAPI and make the various mapper projects compatible with it.\n\nHow to get Indoctrinator?\n=========================\n\nIndoctrinator has its own dedicated [documentation section in the\ndoctrine\nwebsite](https://www.doctrine-project.org/projects/indoctrinator.html).\n\nReporting Issues\n================\n\nPlease report any issues you may have with the project on the mailing\nlist or on [JIRA](https://www.doctrine-project.org/jira/browse/).\n", - "date": "2015-04-01 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.2`.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"~2.5.2\"\n }\n}\n```\n\nChanges since 2.5.1\n===================\n\nThis is a list of issues resolved in `2.5.2` since `2.5.1`:\n\nBug Fixes\n---------\n\n- [DDC-3677](https://github.com/doctrine/orm/issues/4508)\n [GH-1375](https://github.com/doctrine/orm/pull/3677) DDC-3671\n prevent duplicate unique index\n- [DDC-3899](https://github.com/doctrine/orm/issues/4754)\n [GH-1375](https://github.com/doctrine/orm/pull/3899) Fixed\n wrong property name\n- [DDC-3908](https://github.com/doctrine/orm/issues/4765)\n [GH-1375](https://github.com/doctrine/orm/pull/3908) Fix cache\n storage related test issues (due to doctrine/cache 1.5.0 changes)\n- [DDC-3911](https://github.com/doctrine/orm/issues/4769)\n [GH-1375](https://github.com/doctrine/orm/pull/3911) Backport\n of \"LimitSubqueryOutputWalker: fix aliasing of property in OrderBy\n from MappedSuperclass\"\n- [DDC-3973](https://github.com/doctrine/orm/issues/4832)\n [GH-1375](https://github.com/doctrine/orm/pull/3973)\n [[DDC-3711](https://github.com/doctrine/orm/issues/4547)]\n Correct Error on manyToMany with composite primary key + add Tests\n\nImprovements\n------------\n\n- [DDC-3978](https://github.com/doctrine/orm/issues/4837)\n [GH-1375](https://github.com/doctrine/orm/pull/3978) Allow\n symfony 3.0 components on 2.5\n\nDocumentation\n-------------\n\n- [DDC-3938](https://github.com/doctrine/orm/issues/4798)\n [GH-1375](https://github.com/doctrine/orm/pull/3938) Update\n Upgrade.md after minor bc break in 2.5.1\n\nPlease report any issues you may have with the update on the mailing\nlist or on [JIRA](https://www.doctrine-project.org/jira/browse/DDC).\n", + "date": "2015-11-23 00:00:00" }, { - "url": "/2008/10/13/doctrine-1-0-3-released.html", - "slug": "doctrine-1-0-3-released", - "title": "Doctrine 1.0.3 Released!", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today I am happy to introduce another important maintenance release for\nthe increasingly stable Doctrine 1.0. This release contains over 60\nclosed tickets and 80 changesets. It is recommended that you upgrade\nyour project right away. You can view the 1.0.3 changelog here.\n", - "date": "2008-10-13 00:00:00" + "url": "/2014/12/20/annotations-123.html", + "slug": "annotations-123", + "title": "Annotations 1.2.3 released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of\n`doctrine/annotations` 1.2.3.\n\nThe release includes fixes for regressions that were introduced by some\nbug-fixes in version 1.2.2:\n\n- [49: \\#46 - applying correct chmod() to generated cache\n file](https://github.com/doctrine/annotations/pull/49)\n- [50: Hotfix: match escaped quotes (revert\n \\#44)](https://github.com/doctrine/annotations/pull/50)\n\nYou can install the Annotations library using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/annotations\": \"1.2.3\"\n }\n}\n~~~~\n", + "date": "2014-12-20 00:00:00" }, { - "url": "/2010/11/18/common-rc2-dbal-rc2-release.html", - "slug": "common-rc2-dbal-rc2-release", - "title": "Common RC2 and DBAL RC3 released", + "url": "/2010/07/07/implementing-aggregate-fields.html", + "slug": "implementing-aggregate-fields", + "title": "Implementing Aggregate Fields with Doctrine 2", "authorName": "beberlei", "authorEmail": "", - "contents": "Today we are happy to announce the second release candidate of Doctrine\nCommon and the first, second and third release candidate (yes, all in\none!) of DBAL.\n\nIn the Common package 3 bugs have been fixed, in the DBAL package 9 bugs\nhave been fixed. See the changelogs for details:\n\n- [Common RC1\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10093)\n- [DBAL RC3\n Changelogt](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10094)\n\nWe are especially thankful for the support Microsoft has been giving us\nto integrate PDO Sqlsrv. Juozas was invited to [Jumpin\nCamp](http://www.jumpincamp.com) and had time to finish full support for\nthe SQL Server.\n\nThe release of the first release candidate of the ORM package is not far\naway. We will be waiting some days to get some early feedback on the\nlatest updates (updated Common and DBAL dependencies). Expect the first\nrelease candidate for someday next week.\n", - "date": "2010-11-18 00:00:00" - }, - { - "url": "/2008/03/16/4-000th-svn-commit-revision.html", - "slug": "4-000th-svn-commit-revision", - "title": "4,000th svn commit/revision", - "authorName": "jwage", - "authorEmail": "", - "contents": "This evening Doctrine reached a milestone of four thousand commits in\nsvn. Doctrine has maintained steady development for almost three years\nstrong, and we feel this milestone is very significant for the evolution\nof Doctrine. Today, we would like to announce that the first generation\nof Doctrine, also know as 0.10, will be the first real candidate for the\nfirst(second) stable 1.0 version. After 3 point releases of the 0.10\nbranch we have fixed over 100 tickets, and made huge steps towards the\nfirst stable release of Doctrine. Several months ago, we decided to make\na feature freeze as 0.9 branch, so that we could continue on going\nrefactorings to Doctrine while providing a stable branch for our users.\nNow, several months later, we have evolved to 0.10 and are beginning to\nbecome more and more stable. We have also decided that the developments\nin trunk are so significant that they deserve a title of Doctrine 2.0,\nthe second generation of Doctrine.\n\nNow, we need some help from our users. The 0.10 branch is down to one\nfailing test case(soon to be fixed). With over 100 unfixed tickets, and\n1 failing test case, this means we need some failing test case writing\ndone :) As I've said before, the best way to ensure your issue is fixed,\nis to create a failing test case replicating the issue. You can read\nabout how to write test cases for the 0.10 branch here.\n", - "date": "2008-03-16 00:00:00" - }, - { - "url": "/2022/01/22/sunsetting-dbal-2.html", - "slug": "sunsetting-dbal-2", - "title": "Sunsetting Doctrine DBAL 2", - "authorName": "Sergei Morozov", - "authorEmail": "morozov@tut.by", - "contents": "Since the release of [Doctrine DBAL 3.0.0 ](https://github.com/doctrine/dbal/releases/tag/3.0.0) in November 2020,\nthe 2.x release series effectively went into the maintenance mode. In the past year, we've been accepting mostly\nthe following types of patches for DBAL 2:\n\n1. Development dependency updates\n2. Security fixes\n3. Improvements to compatibility with PHP 8.1\n4. Improvements in the upgrade path to DBAL 3\n\nExcept for dependency updates, at the moment, there are no known issues in DBAL 2 that would fall into any of\nthe above categories.\n\nMany projects that depend on Doctrine DBAL depend on it indirectly via Doctrine ORM which until\n[release 2.10.0](https://github.com/doctrine/orm/releases/tag/2.10.0) didn't support DBAL 3.\nIt was one of the blockers of the DBAL 3 adoption which is no longer the case.\n\nWith all that said, the DBAL team announces the plan for sunsetting DBAL 2 in 6 months as of the ORM 2.10.0 release\nwhich is April 3, 2022. After that date, we plan to release DBAL 2 only to address security related\nand other critical issues for at most a year.\n\nAll Doctrine DBAL users are encouraged to upgrade to the latest stable version\nwhich is [3.3.0](https://github.com/doctrine/dbal/releases/tag/3.3.0) as of the time of this writing.\n\nFor migrating from DBAL 2 to 3, see our two blog posts on DBAL 2.13 Forward Compatibility Layer:\n\n- [New Release: Doctrine DBAL 2.13 with Deprecations and Forward Compatibility](https://www.doctrine-project.org/2021/03/29/dbal-2.13.html)\n- [New Release: Doctrine DBAL 2.13.1 and 3.1.0 with important Forward Compatibility fix](https://www.doctrine-project.org/2021/04/19/dbal-2.13.1-3.1.0.html)\n", - "date": "2022-01-22 00:00:00" - }, - { - "url": "/2009/11/11/doctrine-2-0-0-alpha3-released.html", - "slug": "doctrine-2-0-0-alpha3-released", - "title": "Doctrine 2.0.0-ALPHA3 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today I am happy to bring you the third alpha version of Doctrine 2!\nThis release contains over 60 fixes and the code is starting to\nstabilize.\n\nHighlights\n==========\n\n- [r6441] Added functionality to convert a Doctrine 1 schema to\n Doctrine 2 to help users with upgrading.\n- [r6442] Work on mapping drivers, exporter drivers and reverse\n engineering of database schemas.\n- [r6551] Refactorings to reduce duplicated code and increase\n efficiency.\n- [r6554] Refactored cache drivers to allow more control over\n deleting, added namespacing to cache drivers and implemented\n clear-cache task.\n\nView the complete [change\nlog](https://www.doctrine-project.org/change_log/2_0_0_ALPHA3) to see a\ndetailed list of every change contained in this release. You can\n[download](https://www.doctrine-project.org/download#2_0) this release\nand report any issues you find in\n[Jira](https://www.doctrine-project.org/jira).\n\nWhat is Next?\n=============\n\nWe will have one more alpha release on December 11th, 2009 and our first\nbeta on January 8th, 2010. The schedule after that has not yet been\ndetermined.\n", - "date": "2009-11-11 00:00:00" + "contents": "You will often come across the requirement to display aggregate values\nof data that can be computed by using the MIN, MAX, COUNT or SUM SQL\nfunctions. For any ORM this is a tricky issue traditionally. Doctrine 2\noffers several ways to get access to these values and this article will\ndescribe all of them from different perspectives.\n\nYou will see that aggregate fields can become very explicit features in\nyour domain model and how this potentially complex business rules can be\neasily tested.\n\nAn example model\n================\n\nSay you want to model a bank account and all their entries. Entries into\nthe account can either be of positive or negative money values. Each\naccount has a credit limit and the account is never allowed to have a\nbalance below that value.\n\nFor simplicity we live in a world were money is composed of integers\nonly. Also we omit the receiver/sender name, stated reason for transfer\nand the execution date. These all would have to be added on the `Entry`\nobject.\n\nOur entities look like:\n\n~~~~ {.sourceCode .php}\nno = $no;\n $this->maxCredit = $maxCredit;\n $this->entries = new \\Doctrine\\Common\\Collections\\ArrayCollection();\n }\n}\n\n/**\n * @Entity\n */\nclass Entry\n{\n /** @Id @GeneratedValue @Column(type=\"integer\") */\n private $id;\n\n /**\n * @ManyToOne(targetEntity=\"Account\", inversedBy=\"entries\")\n */\n private $account;\n\n /**\n * @Column(type=\"integer\")\n */\n private $amount;\n\n public function __construct($account, $amount)\n {\n $this->account = $account;\n $this->amount = $amount;\n // more stuff here, from/to whom, stated reason, execution date and such\n }\n\n public function getAmount()\n {\n return $this->amount;\n }\n}\n~~~~\n\nUsing DQL\n=========\n\nThe Doctrine Query Language allows you to select for aggregate values\ncomputed from fields of your Domain Model. You can select the current\nbalance of your account by calling:\n\n~~~~ {.sourceCode .php}\ncreateQuery($dql)\n ->setParameter(1, $myAccountId)\n ->getSingleScalarResult();\n~~~~\n\nThe `$em` variable in this (and forthcoming) example holds the Doctrine\n`EntityManager`. We create a query for the SUM of all amounts (negative\namounts are withdraws) and retrieve them as a single scalar result,\nessentially return only the first column of the first row.\n\nThis approach is simple and powerful, however it has a serious drawback.\nWe have to execute a specific query for the balance whenever we need it.\n\nTo implement a powerful domain model we would rather have access to the\nbalance from our `Account` entity during all times (even if the Account\nwas not persisted in the database before!).\n\nAlso an additional requirement is the max credit per `Account` rule.\n\nWe cannot reliably enforce this rule in our `Account` entity with the\nDQL retrieval of the balance. There are many different ways to retrieve\naccounts. We cannot guarantee that we can execute the aggregation query\nfor all these use-cases, let alone that a userland programmer checks\nthis balance against newly added entries.\n\nUsing your Domain Model\n=======================\n\n`Account` and all the `Entry` instances are connected through a\ncollection, which means we can compute this value at runtime:\n\n~~~~ {.sourceCode .php}\nentries AS $entry) {\n $balance += $entry->getAmount();\n }\n return $balance;\n }\n}\n~~~~\n\nNow we can always call `Account::getBalance()` to access the current\naccount balance.\n\nTo enforce the max credit rule we have to implement the \"Aggregate Root\"\npattern as described in Eric Evans book on Domain Driven Design.\nDescribed with one sentence, an aggregate root controls the instance\ncreation, access and manipulation of its children.\n\nIn our case we want to enforce that new entries can only added to the\n`Account` by using a designated method. The `Account` is the aggregate\nroot of this relation. We can also enforce the correctness of the\nbi-directional `Account` \\<-\\> `Entry` relation with this method:\n\n~~~~ {.sourceCode .php}\nassertAcceptEntryAllowed($amount);\n\n $e = new Entry($this, $amount);\n $this->entries[] = $e;\n return $e;\n }\n}\n~~~~\n\nNow look at the following test-code for our entities:\n\n~~~~ {.sourceCode .php}\nassertEquals(0, $account->getBalance());\n\n $account->addEntry(500);\n $this->assertEquals(500, $account->getBalance());\n\n $account->addEntry(-700);\n $this->assertEquals(-200, $account->getBalance());\n }\n\n public function testExceedMaxLimit()\n {\n $account = new Account(\"123456\", $maxCredit = 200);\n\n $this->setExpectedException(\"Exception\");\n $account->addEntry(-1000);\n }\n}\n~~~~\n\nTo enforce our rule we can now implement the assertion in\n`Account::addEntry`:\n\n~~~~ {.sourceCode .php}\ngetBalance() + $amount;\n $allowedMinimalBalance = ($this->maxCredit * -1);\n if ($futureBalance < $allowedMinimalBalance) {\n throw new Exception(\"Credit Limit exceeded, entry is not allowed!\");\n }\n }\n}\n~~~~\n\nWe haven't talked to the entity manager for persistence of our account\nexample before. You can call `EntityManager::persist($account)` and then\n`EntityManager::flush()` at any point to save the account to the\ndatabase. All the nested `Entry` objects are automatically flushed to\nthe database also.\n\n~~~~ {.sourceCode .php}\naddEntry(500);\n$account->addEntry(-200);\n$em->persist($account);\n$em->flush();\n~~~~\n\nThe current implementation has a considerable drawback. To get the\nbalance, we have to initialize the complete `Account::$entries`\ncollection, possibly a very large one. This can considerably hurt the\nperformance of your application.\n\nUsing an Aggregate Field\n========================\n\nTo overcome the previously mentioned issue (initializing the whole\nentries collection) we want to add an aggregate field called \"balance\"\non the Account and adjust the code in `Account::getBalance()` and\n`Account:addEntry()`:\n\n~~~~ {.sourceCode .php}\nbalance;\n }\n\n public function addEntry($amount)\n {\n $this->assertAcceptEntryAllowed($amount);\n\n $e = new Entry($this, $amount);\n $this->entries[] = $e;\n $this->balance += $amount;\n return $e;\n }\n}\n~~~~\n\nThis is a very simple change, but all the tests still pass. Our account\nentities return the correct balance. Now calling the\n`Account::getBalance()` method will not occour the overhead of loading\nall entries anymore. Adding a new Entry to the `Account::$entities` will\nalso not initialize the collection internally.\n\nAdding a new entry is therefore very performant and explictly hooked\ninto the domain model. It will only update the account with the current\nbalance and insert the new entry into the database.\n\nTackling Race Conditions with Aggregate Fields\n==============================================\n\nWhenever you denormalize your database schema race-conditions can\npotentially lead to inconsistent state. See this example:\n\n~~~~ {.sourceCode .php}\nfind('Bank\\Entities\\Account', $accId);\n\n// request 2 account\n$account2 = $em->find('Bank\\Entities\\Account', $accId);\n\n$account1->addEntry(-200);\n$account2->addEntry(-200);\n\n// now request 1 and 2 both flush the changes.\n~~~~\n\nThe aggregate field `Account::$balance` is now -200, however the SUM\nover all entries amounts yields -400. A violation of our max credit\nrule.\n\nYou can use both optimistic or pessimistic locking to save-guard your\naggregate fields against this kind of race-conditions. Reading Eric\nEvans DDD carefully he mentions that the \"Aggregate Root\" (Account in\nour example) needs a locking mechanism.\n\nOptimistic locking is as easy as adding a version column:\n\n~~~~ {.sourceCode .php}\nfind('Bank\\Entities\\Account', $accId, LockMode::PESSIMISTIC_READ);\n~~~~\n\nKeeping Updates and Deletes in Sync\n===================================\n\nThe example shown in this article does not allow changes to the value in\n`Entry`, which considerably simplifies the effort to keep\n`Account::$balance` in sync. If your use-case allows fields to be\nupdated or related entities to be removed you have to encapsulate this\nlogic in your \"Aggregate Root\" entity and adjust the aggregate field\naccordingly.\n\nConclusion\n==========\n\nThis article described how to obtain aggregate values using DQL or your\ndomain model. It showed how you can easily add an aggregate field that\noffers serious performance benefits over iterating all the related\nobjects that make up an aggregate value. Finally I showed how you can\nensure that your aggregate fields do not get out of sync due to\nrace-conditions and concurrent access.\n", + "date": "2010-07-07 00:00:00" }, { - "url": "/2008/09/01/doctrine-1-0-released.html", - "slug": "doctrine-1-0-released", - "title": "Doctrine 1.0 Released", - "authorName": "jwage", + "url": "/2014/02/21/security_in_doctrine.html", + "slug": "security_in_doctrine", + "title": "Security in Doctrine", + "authorName": "default", "authorEmail": "", - "contents": "

\n\nToday I am extremely happy to introduce the first stable version of\nDoctrine, 1.0.0. If you've been around for a while, then you know this\nis a long time coming. We've been hard at work on Doctrine for nearly 3\nyears and it is finally time to release a version we will support with\nbug fix releases every month. This 1.0 release will be maintained until\nMarch 1st 2010. Now we have 1.0, what is next? Below are some highlights\nof what to expect in the future of Doctrine.\n\n

  • \n\nDoctrine 2.0 - We've been working in trunk on Doctrine 2.0 for quite\nsometime now and this is the next really big milestone for the project.\nAs we work on 2.0 we will backport things for intermediate major\nversions(1.1, 1.2, etc.)\n\n
  • \n\nThe Doctrine Company? - We'll be working on a new side to the Doctrine\nproject for organizing commercial support contracts, trainings,\nseminars, certifications, training material and much more.\n\n
  • \n\nDoctrine supported by symfony 1.2 - We will be contributing to the\nintegration process of Doctrine with sfDoctrinePlugin. 1.2 will be the\nfirst symfony release to bundle Doctrine and support it.\n\n
  • \n\nMore and Better Documentation - Expect updated documentation as well as\nsome new pieces introduced. Doctrine Book?\n\n

\n\nWhat are you waiting for? Download Doctrine 1.0 now and give it a try.\nCheck out the Cookbook and Manual to help you get started. The My First\nProject Tutorial is good for just getting started and getting your feet\nwet.\n\n

\n\n\n", - "date": "2008-09-01 00:00:00" + "contents": "When using Doctrine in a project it is always a security critical\ncomponent because it talks directly to your database. As such security\nis very important to us. In security however, context is important and\nproviding you with query capabilities we have to expose you to the risk\nof SQL injections.\n\nDoctrine cannot prevent you from building SQL injections into your\napplications and so can no other DBAL, because it would require hiding\nSQL completely. But hiding SQL completely is not wanted, because it is\nsuch a powerful language.\n\nTherefore it is still your responsibility to make sure that you are\nusing Doctrine correctly when working with SQL.\n\nBut how would you know how to do so? Until now we had some small bits\nabout security here and there in the documentation, mostly in the\nchapters about Query objects. We came to the conclusion that this is not\nenough.\n\nThat conclusion sinked in with a security issue we became aware of last\nmonth, where one Doctrine user reported that one of the core\n`Doctrine\\DBAL\\Connection` APIs is supposedly vulnerable to SQL\ninjection. When you use `$connection->insert($tableName, $values)`, then\nboth the table name and the keys (columns) of the `$values` array are\nnot escaped, because we assume they are never user input.\n\nWe evaluated this issue together with [Padraic\nBrady](http://blog.astrumfutura.com/) (a known PHP security researcher)\nand came to the conclusion that this is not a security issue for us.\nWhy? Because we don't think this part of the API can be secured and\ntrying will make our users feel safe, when they are not. Using the DBAL\nAPIs directly always posed a much higher risk than using just the ORM.\n\nYou might think we are nuts by just claiming a non issue, but consider\nthe assumptions we make about tables and columns and our reasoning:\n\n- Quoting identifiers is bad, because it changes them from\n case-insensitive to case-sensitive. Even more weird, Oracle unquoted\n identifiers are uppercased, PostgreSQL unquoted identifiers are\n lowercased. MySQL casing is based on a config option. Doctrine 1.\\*\n had various unfixable bugs because of identifier quoting, which is\n why we decided that Doctrine will not use automatic identifier\n quoting.\n\n- The APIs of `Connection#insert()`, `Connection#update()` and\n `Connection#delete()` therefore accept both quoted and unquoted\n table/column identifiers, because quoting is the users choice.\n\n- A mechanism to detect SQL injection in strings that can be either\n quoted or unquoted is impossible to write completely secure. There\n are too many edge cases to consider and there is a realistic chance\n to miss one of them.\n\n- If you provide an API that is just secure in 99.999% of all cases,\n then you should not claim it is secure at all.\n\nAt this point you can still think we are wrong releasing insecure\nsoftware, however let me ask back: Isn't PHP shipping insecure software\nby providing PDO? SQL injection is possible by using PDO wrong. I can\nenumerate lots of libraries where security is the developers\nresponsibility: Template engines, authentication libraries and so on.\n\nA proper secured system requires knowledge about the context. That is\nwhy any kind of database abstraction layers can never fully protect you\nfrom SQL injection, because it does not know the context you are using\nit in.\n\nTo avoid secret knowledge about our security assumptions we are now\nstarting to be completely explicit about these issues. Both DBAL and ORM\nnow contain a \\`SECURITY.md\\` file, which contains basic information\nabout security and links to much more detailed documentation chapters on\nDoctrine security.\n\nWe have made an effort to list all the functions and operations that are\nsafe from SQL injection. There are not very many of them in the DBAL,\nbecause it is such a low level library. The ORM however is pretty\nsecure, except when concatenating user input into DQL and SQL queries.\n\nRead all the information about Security in Doctrine in the\ndocumentation.\n\n- [DBAL\n Security](https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/security.html)\n- [ORM\n Security](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/security.html)\n\n", + "date": "2014-02-21 00:00:00" }, { - "url": "/2008/10/19/the-bleeding-edge-website-upgraded.html", - "slug": "the-bleeding-edge-website-upgraded", - "title": "The Bleeding Edge: Website Upgraded", + "url": "/2008/03/28/0-10-4-released-46-closed-tickets.html", + "slug": "0-10-4-released-46-closed-tickets", + "title": "0.10.4 Released - 46 Closed Tickets", "authorName": "jwage", "authorEmail": "", - "contents": "This weekend I decided it was time to completely dive in to the\nawesomeness that is [symfony](http://www.symfony-project.com) 1.2. I\nupgraded the Doctrine website to 1.2 as well as Doctrine 1.1. I had\nseveral schema changes that I migrated to production with the new\n[Migrations\nfeatures](https://www.doctrine-project.org/2008/10/18/new-to-migrations-in-1-1.html)\nthat were mentioned previously on the blog. It made the upgrade of the\nwebsite much easier. The primary motivation for diving in to this was a\nblog post made on\n[10/18/2008](https://symfony.com/blog/spice-up-your-forms-with-some-nice-widgets-and-validators)\nand\n[10/14/2008](https://symfony.com/blog/new-in-symfony-1-2-make-your-choice)\nwhere Fabien talks about forms in symfony 1.2.\n\nBelow is an overview of some of the changes made.\n\n- Upgraded to symfony 1.2\n- Upgraded to Doctrine 1.1\n- New backend control panel for administering the content of the\n website\n- Single Sign-On(SSO) - We now have partial SSO. Trac and the main\n website authentication are shared now. The forum will be integrated\n soon.\n- New groundwork started for several new website features, new\n documentation, user contributed documentation, user contributed\n packages! and more.\n\nHere are some screen shots of the backend magic that was generated by\nsymfony. I didn't have to do much and in one evening we have a new\ncontent management system backend for the website.\n\nDoctrine Releases\n=================\n\nThe style and custom icons in this list of the available Doctrine\nreleases were added thanks to my custom theme built specifically for the\nDoctrine backend.\n\n![Doctrine Releases\n](https://www.doctrine-project.com/uploads/assets/api_release_list.png)\n\nEdit User SVN Access\n====================\n\nThanks to the symfony form framework I was able to easily add a custom\nwidget for editing the website users svn access for all the different\nDoctrine versions.\n\n![Edit User SVN Access\n](https://www.doctrine-project.com/uploads/assets/edit_user_svn_access.png)\n\nDoctrine Release Points\n=======================\n\nList of all the Doctrine sub-release points.\n\n![Doctrine Release Points\n](https://www.doctrine-project.com/uploads/assets/api_release_points_list.png)\n\nEdit Doctrine Release\n=====================\n\nEdit a Doctrine release and control its stability as well as other\ninformation.\n\n![Edit Doctrine Release\n](https://www.doctrine-project.com/uploads/assets/edit_api_release.png)\n\nEdit Blog Post\n==============\n\nEdit a blog post entry using markdown syntax.\n\n![Edit Blog\nPost](https://www.doctrine-project.com/uploads/assets/edit_blog_post.png)\n", - "date": "2008-10-19 00:00:00" + "contents": "Today we would like to announce the 0.10.4 release. This release\naddresses 46 tickets and is a major step in stabilizing the 1st\ngeneration of Doctrine for the 1.0 release. We will continue with bug\nfix only releases until we feel the 0.10 branch is ready for a 1.0\ntitle. Give it a try and give us some tickets and failing test cases to\nfix :)\n\nYou can checkout the change log for the 0.10.4 release as well as\nprevious releases here.\n", + "date": "2008-03-28 00:00:00" }, { - "url": "/2011/03/20/doctrine-security-fix.html", - "slug": "doctrine-security-fix", - "title": "Security Fix: Upgrade to 1.2.4 and 2.0.3 immediately", + "url": "/2010/12/12/doctrine2-orm-rc2-released.html", + "slug": "doctrine2-orm-rc2-released", + "title": "Doctrine DBAL RC5 and ORM RC2 released", "authorName": "beberlei", "authorEmail": "", - "contents": "Because of a SQL injection possibility we urge users of Doctrine 1.2 and\n2 to the newly released versions of both libraries immediately. Both\nversions only include the security fix and no other changes to their\nprevious versions 1.2.3 and 2.0.2.\n\nAffected versions are:\n\n- 1.2.3 and earlier for PostgreSQL and DB2 Dialects\n- 2.0.2 and earlier\n\nThe security hole was found today and affects the\n`Doctrine\\DBAL\\Platforms\\AbstractPlatform::modifyLimitQuery()` function\nwhich does not cast input values for limit and offset to integer and\nallows malicious SQL to be executed if these parameters are passed into\nDoctrine 2 directly from request variables without previous cast to\ninteger. Functionality building on top using limit queries in the ORM\nsuch as `Doctrine\\ORM\\Query::setFirstResult()` and\n`Doctrine\\ORM\\Query::setMaxResults()` are also affected by this security\nhole.\n\nYou can grab the packages from PEAR, Archive or Github, see the\nrespective links more details:\n\n- [ORM](https://www.doctrine-project.org/projects/orm/download)\n- [DBAL](https://www.doctrine-project.org/projects/dbal/download)\n\nThe fix for this security hole breaks backwards compatibility for\ndevelopers that extend the\n`Doctrine\\DBAL\\Platforms\\AbstractPlatform::modifyLimitQuery()` method,\nbecause it is now marked as final. Please overwrite the\n`Doctrine\\DBAL\\Platforms\\AbstractPlatform::doModifyLimitQuery()` method\ninstead.\n", - "date": "2011-03-20 00:00:00" - }, - { - "url": "/2008/04/01/doctrine-goes-pecl.html", - "slug": "doctrine-goes-pecl", - "title": "APRIL FOOLS! Doctrine goes PECL", - "authorName": "jwage", - "authorEmail": "", - "contents": "After many long debates and countless hours of development, Doctrine has\nbeen successfully ported to a PECL extension and will be maintained as a\nPECL extension from now on. The extension can be downloaded and\ninstalled via PEAR. As a PECL extension the ORM performs 4 times as fast\nand brings unbelievable results. Enjoy!\n", - "date": "2008-04-01 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine DBAL RC5\nand Doctrine ORM RC2. There have been almost only minor bugfixes in both\npackages that came up in the last week.\n\nThere is one notable change in ORM: If you execute a DQL Query before\nRC2 a flush would be issued on the EntityManager if there were pending\ninsertions. This flush has now been removed. It was never documented to\nbe executed, so we don't think this will cause major pain to anyone.\nJust make sure to call flush explicitly whenever you need it.\n\nSee the changelogs for both projects:\n\n- [DBAL RC5\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10113)\n- [ORM RC2\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10112)\n\nBoth DBAL and ORM are essentially bug-free. All the still open bug\nreports are either:\n\n- Improvement/feature requests (only marked as bug)\n- Minor and will be fixed in 2.1, because they need some refactorings.\n We will make sure that they appear in the Known Issues section\n before the final release.\n- Some trivial bugs in Tools/Console namespace that don't affect the\n core of the ORM. We are waiting for more feedback on those issues.\n\nExpect these Release Candidates to be tagged as final if no critical or\nmajor issues are discovered in the next week.\n\nYou can grab the code from our [downloads\nsection](https://www.doctrine-project.org/projects) or [directly from\nGithub](https://github.com/doctrine/orm/commits/2.0.0RC2).\n\nIn these last days before the final release we will focus on the\ndocumentation. As you might have noticed we already switched the ORM\ndocumentation to be rendered with Sphinx and ReStructured Text. You are\nnow able to search the docs. We will update the layout to be more\nDoctrine friendly and migrate the other packages to Sphinx/ReST in the\nnext days.\n", + "date": "2010-12-12 00:00:00" }, { - "url": "/2011/09/25/doctrine-maintenance-sep2011.html", - "slug": "doctrine-maintenance-sep2011", - "title": "Maintenance 2.1 Releases for Common, DBAL and ORM and DBAL 2.0.9", - "authorName": "beberlei", + "url": "/2013/05/11/doctrine-2-3-4.html", + "slug": "doctrine-2-3-4", + "title": "Doctrine 2.3.4 released", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "We have released the maintenance versions Common 2.1.2, DBAL 2.1.3 and\nORM 2.1.2.\n\n- [Common 2.1.2\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10161)\n- [DBAL 2.1.3\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10162)\n- [ORM 2.1.2\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10154)\n\nA total of 20 bugs have been fixed in all 3 components. The DBAL release\ncontains a security fix for the Oracle driver fixing [a possible SQL\ninjection issue](https://github.com/doctrine/dbal/issues/1321).\nIf you are using Oracle please update immediately. This security fix was\nbackported to 2.0 and a new 2.0.9 version was released.\n", - "date": "2011-09-25 00:00:00" + "contents": "**11.05.2013**\n\nWe have released version 2.3.4 of Doctrine ORM and DBAL. We fixed as\nmuch as 18 DBAL tickets and 12 ORM tickets.\n\nSee a Changelog of both components:\n\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10421)\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10420)\n\nYou can install the release with\n[PEAR](http://pear.doctrine-project.org) or with\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.4\",\n \"doctrine/dbal\": \"2.3.4\"\n }\n }\n", + "date": "2013-05-11 00:00:00" }, { - "url": "/2007/11/02/beta-2.html", - "slug": "beta-2", - "title": "Beta 2", + "url": "/2008/06/16/getting-started-with-doctrine-and-symfony-1-1.html", + "slug": "getting-started-with-doctrine-and-symfony-1-1", + "title": "Getting started with Doctrine and symfony 1.1", "authorName": "jwage", "authorEmail": "", - "contents": "The Doctrine team is proud to announce that we have scheduled the\nrelease of the second beta snapshot for November 31st, 2007. This is\nvery exciting news for the Doctrine team and community.\n\nThis means Doctrine is nearing a real release candidate :) As you all\nknow, we had a RC1 that was released a little while back, but it was a\nmistake to call it an RC since we planned on still making many changes\nthat would break BC. We have corrected ourselves and renamed it Beta1.\nWe will continue with beta releases until we are comfortable with\nreleasing a true RC1.\n", - "date": "2007-11-02 00:00:00" + "contents": "Today, over on the symfony-project blog. A short tutorial on how to get\nstarted using Doctrine and symfony 1.1 has been published. As of symfony\n1.1, Doctrine is officially supported by symfony and this is the first\nstep of many to make Doctrine the default ORM in symfony. Over the\ncoming months, much of the symfony + Propel documentation will be ported\nto work with Doctrine. The tutorial can be read here.\n", + "date": "2008-06-16 00:00:00" }, { - "url": "/2013/12/23/our-hhvm-roadmap.html", - "slug": "our-hhvm-roadmap", - "title": "Our HHVM Roadmap", - "authorName": "Benjamin Eberlei", + "url": "/2009/11/16/doctrine-1-2-0-beta3-released.html", + "slug": "doctrine-1-2-0-beta3-released", + "title": "Doctrine 1.2.0 BETA3 Released", + "authorName": "jwage", "authorEmail": "", - "contents": "Facebook has been [pushing HHVM alot\nlately](https://hhvm.com/blog/2813/we-are-the-98-5-and-the-16) ,\nhelping open source projects to get their test-suite running 100%. For\nDoctrine HHVM is particularly interesting, because of the performance\ngains that the complex PHP algorithms inside ORM would probably get.\nFrom my current feeling Doctrine will be the PHP open-source project\ngetting the most gain from running on HHVM. However with the tests not\nyet passing on the ORM, we can only imagine how big that performance\nimprovement will be.\n\nOne roadblock for us to investigate HHVM in more detail was missing CI\nsupport. But then Travis CI [announced support for\nHHVM](https://blog.travis-ci.com/2013-12-16-test-php-code-with-the-hiphop-vm)\nlast week. With automated testing support available we think it is time\nto announce our official HHVM roadmap.\n\nOne of our goals for 2014 is running DBAL and ORM on HHVM with 100% of\nthe testsuites passing. Every Doctrine subproject targeting to support\nHHVM will start running the tests against HHVM with `allow_failure`\nenabled on Travis CI. Whenever a Doctrine subproject passes all its\ntests on HHVM, we will remove the `allow_failure` and the project will\nbe officially supporting HHVM from that version on.\n\nSo far we have been working on the Common projects to run on HHVM for\nseveral months now and Guilherme and Alexander are contributing to HHVM\nitself to get some missing APIs working. We are happy to announce that\nthe following Common projects currently have full HHVM support from us:\n\n- [Collections](https://travis-ci.org/doctrine/collections)\n- [Inflector](https://travis-ci.org/doctrine/inflector)\n- [Lexer](https://travis-ci.org/doctrine/lexer)\n\nGuilherme is working on getting\n[Annotations](https://travis-ci.org/doctrine/annotations) and\n[Cache](https://travis-ci.org/doctrine/cache) working and the\n[Common](https://travis-ci.org/doctrine/common) mainproject will be\nevaluated shortly after all the common projects succeed.\n[DBAL](https://travis-ci.org/doctrine/dbal) and\n[ORM](https://travis-ci.org/doctrine/orm) will be much more work,\nbut we are very confident to achieve this goal.\n\nIf you want to help us with this goal, you can check the current Travis\nfailure reports of the projects and come up with ideas how to fix them\nin the Doctrine code or with bug reports for HHVM. We are glad to\ndiscuss these issues on Freenode IRC in channel \"\\#doctrine-dev\".\n\nWith this announcement we hope that other PHP projects, frameworks and\nlibraries will follow to make HHVM an official build target in the\nfuture.\n", - "date": "2013-12-23 00:00:00" + "contents": "We're getting very close to a stable Doctrine 1.2 with the latest BETA3\nbeing released today. This will most likely be the last beta release\nbefore our first release candidate next week. If everything goes as\nplanned we will have a stable release hopefully a little before the end\nof November.\n\nYou can view the [change\nlog](https://www.doctrine-project.org/change_log/1_2_0_BETA3) or\n[download](https://www.doctrine-project.org/download#1_2) this release\nnow. If you find any issues please open tickets in\n[Jira](https://www.doctrine-project.org/jira).\n", + "date": "2009-11-16 00:00:00" }, { - "url": "/2009/06/15/doctrine-1-0-10-and-1-1-2-released.html", - "slug": "doctrine-1-0-10-and-1-1-2-released", - "title": "Doctrine 1.0.10 and 1.1.2 Released", - "authorName": "jwage", + "url": "/2012/12/28/doctrine-orientdb-odm.html", + "slug": "doctrine-orientdb-odm", + "title": "Doctrine OrientDB Object Document Mapper", + "authorName": "odino", "authorEmail": "", - "contents": "Today I am happy to release two new maintenance releases for Doctrine.\nAs usual we have a new version for the 1.0 branch and a new version for\nthe 1.1 branch. The new versions can be gotten on the\n[Download](https://www.doctrine-project.org/download) page.\n\nYou can review the changelogs for\n[1.0.10](https://www.doctrine-project.org/change_log/1_0_10) and\n[1.1.2](https://www.doctrine-project.org/change_log/1_1_2) to see what\nall issues have been addressed in these releases.\n\nOn a side note, development on the Doctrine 1.2 version will begin very\nsoon so if you have any ideas or features you'd like to see in this\nversion please bring them to our attention and we may be able to address\nthem in this version. We plan for the 1.2 version to concentrate on bug\nfixes, performance fixes and small features to make the use of the 1.x\nversion of Doctrine more enjoyable without any major BC breaks.\n", - "date": "2009-06-15 00:00:00" + "contents": "\"2012 is the year of graph databases\" was the sentence that a lot of\npeople were hearing at the end of 2011, especially after the explosion\nof Big Data associated with social networks.\n\nAt the beginning of this year, a really promising GraphDB,\n[OrientDB](https://orientdb.org) , saw its first stable release (1.0.0)\nwhich finally gave to the world a stable toy pretty different from the\ntraditional RDBMS that we're used to see and from the document-based DBs\nlike MongoDB or CouchDB: OrientDB integrates document capabilities with\na graph layer, thus it sounded very, very interesting.\n\nEven before going stable, there were some companies already using\nOrientDB, thanks to the language-specific drivers created by the\ncommunity surrounding this GraphDB: one of them, for PHP, was\n[Orient](https://github.com/congow/Orient) , a bunch of classes that\nwrapped PHP's native cURL functions to make queries against OrientDB's\nvia the HTTP protocol.\n\nDay after day, the guys behind Orient, this PHP library, decided to add\n- mostly inspired by the doctrine 1 query builder and the Doctrine2 ODMs\n- abstraction and layers over that bunch of classes, finally having 3\ndifferent pieces of software to interact with OrientDB from PHP: the\nHTTP binding, which does HTTP calls to the OrientDB server, the Query\nBuilder, which provides an object-oriented synthax to write SQL+\n(OrientDB's SQL) queries and the Data Mapper, which is still unfinished.\n\nTrying to adhere to the Doctrine2 ODMs standards, the code looks pretty\nsimilar:\n\n~~~~ {.sourceCode .php}\ngetRepository('My\\Entity');\n\n// creating SQL+ queries\n$query = new Query();\n$query->from(array('users'))->where('username = ?', \"admin\");\n\n// mapping POPOs\nnamespace Domain;\n\nuse Doctrine\\ODM\\OrientDB\\Mapper\\Annotations as ODM;\n\n/**\n* @ODM\\Document(class=\"Address\")\n*/\nclass Address\n{\n /**\n * @ODM\\Property(type=\"string\")\n */\n public $street;\n}\n\n// finding a record\n$record = $manager->find($id);\n~~~~\n\nThe work done so far was interesting enough to think about an OrientDB\nODM inside the Doctrine organization, thing that eventually happened\ntoday when the old repository has been moved to the [doctrine\norganization](https://github.com/doctrine/orientdb-odm) on Github.\n\nMore news are going to come in the next weeks, as the target is to\nrelease a stable version of the OrientDB ODM this year: you can already\n[use it](https://packagist.org/packages/doctrine/orientdb-odm) or even\n[fork it](https://github.com/doctrine/orientdb-odm) if you want to\ncontribute or propose a patch.\n\nFor further informations you can subscribe to the doctrine-dev google\ngroup or join the IRC channel \\#doctrine-dev on Freenode.\n", + "date": "2012-12-28 00:00:00" }, { - "url": "/2009/08/15/doctrine2-native-queries.html", - "slug": "doctrine2-native-queries", - "title": "Doctrine 2 Native Queries", - "authorName": "romanb", - "authorEmail": "", - "contents": "If you are familar with Doctrine\\_RawSql from Doctrine 1.x you probably\nknow that it is somewhat broken by design since it requires a special\nsyntax in the select clause that makes a lot of SQL constructs in the\nselect clause impossible.\n\nDoctrine 2 introduces a facility called \"native queries\", represented by\nthe `Doctrine\\ORM\\NativeQuery` class that replaces Doctrine\\_RawSql. The\nclue about NativeQuery is that it allows the usage of real native SQL\nyet the result can be transformed into all the different formats that\nare supported by DQL.\n\nThis is achieved through having a generic description of how an SQL\nresult maps to a Doctrine result in form of a\n`Doctrine\\ORM\\Query\\ResultSetMapping`.\n\nEnough of the introductory talk, lets look at a (primitive) example from\nour test suite:\n\n~~~~ {.sourceCode .php}\naddEntityResult('Doctrine\\Tests\\Models\\CMS\\CmsUser', 'u');\n$rsm->addFieldResult('u', 'id', 'id'); // ($alias, $columnName, $fieldName)\n$rsm->addFieldResult('u', 'name', 'name'); // // ($alias, $columnName, $fieldName)\n\n$query = $this->_em->createNativeQuery('SELECT id, name FROM cms_users WHERE username = ?', $rsm);\n$query->setParameter(1, 'romanb');\n\n$users = $query->getResult();\n\n$this->assertEquals(1, count($users));\n$this->assertTrue($users[0] instanceof CmsUser);\n$this->assertEquals('Roman', $users[0]->getName());\n~~~~\n\nThe SQL that is passed to createNativeQuery is not touched by Doctrine\nin any way. The NativeQuery and ResultSetMapping combination are\nextremely powerful. It might not surprise you that Doctrine 2 creates a\nResultSetMapping internally when it transforms DQL to SQL.\n\nGranted, this was a very trivial example that can easily be expressed in\na short DQL 1-liner but it was just for demonstration purposes (and I am\nbad at making up complex ad-hoc SQL examples that make sense).\n\nSo when is this useful? While DQL has been heavily improved in Doctrine\n2 and has many new powerful features which we will cover in future blog\nposts, it is sometimes necessary to use native SQL. NativeQuery gives\nyou the ability to do that while still retrieving the results in the\nconvenient Doctrine formats you are familar with. NativeQuery is also an\nobvious choice when starting to migrate a pure SQL project to Doctrine\nwithout going into all the DQL details from the start.\n\nMore on NativeQuery and ResultSetMapping can be found in the new\ndocumentation under:\n\n[Documentation - Native\nSql](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/native-sql.html#native-sql)\n", - "date": "2009-08-15 00:00:00" + "url": "/2015/12/02/doctrine-module-0-10-0.html", + "slug": "doctrine-module-0-10-0", + "title": "DoctrineModule 0.10.0 Release", + "authorName": "Gianluca Arbezzano", + "authorEmail": "gianarb92@gmail.com", + "contents": "We are happy to announce DoctrineModule `0.10.0`.\n\nInstallation\n============\n\nYou can install this version of the DoctrineModule by using Composer and\nthe:\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-module\": \"~0.10.0\"\n }\n}\n```\n\nChanges since 0.9.0\n===================\n\nThis is a list of issues resolved in `2.5.2` since `2.4.1`:\n\n- [[\\#521]](https://github.com/doctrine/DoctrineModule/pull/521):\n Fixed php\\_codesniffer dependency\n- [[\\#534]](https://github.com/doctrine/DoctrineModule/pull/534):\n Fixed wrong Predis Mock\n- [[\\#537]](https://github.com/doctrine/DoctrineModule/pull/537):\n Update hydrator.md\n- [[\\#520]](https://github.com/doctrine/DoctrineModule/pull/520): Fix\n for issue \\#230 and fixes for \\#234\n- [[\\#539]](https://github.com/doctrine/DoctrineModule/pull/539):\n Better support for snake\\_case field names\n- [[\\#535]](https://github.com/doctrine/DoctrineModule/pull/535): Adds\n additional processing for DoctrineObject::toMany\n\nPlease report any issues you may have with the update on the mailing\nlist or on\n[GitHub](https://github.com/doctrine/DoctrineModule/issues).\n", + "date": "2015-12-02 00:00:00" }, { "url": "/2014/09/15/dbal-235.html", @@ -819,58 +639,49 @@ "date": "2014-09-15 00:00:00" }, { - "url": "/2008/06/13/php-net-style-api-documentation-lookups.html", - "slug": "php-net-style-api-documentation-lookups", - "title": "Php.net style API documentation lookups", - "authorName": "jwage", - "authorEmail": "", - "contents": "

\n\nI have been using php.net style API lookups ever since I can remember.\nIt is very nice being able to simply go to https://secure.php.net/array\\_walk\nand have it pull up that function in the PHP API Documentation. So,\ntonight i have implemented this functionality in to the Doctrine\nwebsite. Below are some examples of how you can quickly access the API\ndocs for a specific function or class.\n\n

  • \n\n[http://www.phpdoctrine.org/Doctrine](http://www.phpdoctrine.org/Doctrine)\n- Single class\n\n
  • \n\n[http://www.phpdoctrine.org/Doctrine::getTable](http://www.phpdoctrine.org/Doctrine::getTable)\n- Single class function\n\n
  • \n\n[http://www.phpdoctrine.org/getParams](http://www.phpdoctrine.org/getParams)\n- Single function that exists in multiple classes\u00a0\n\n
\n\n\n", - "date": "2008-06-13 00:00:00" + "url": "/2016/01/05/dbal-2-5-4-and-2-4-5.html", + "slug": "dbal-2-5-4-and-2-4-5", + "title": "Doctrine DBAL 2.5.4 and 2.4.5 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n[2.5.4](https://github.com/doctrine/dbal/releases/tag/v2.5.4) and\n[2.4.5](https://github.com/doctrine/dbal/releases/tag/v2.4.5).\n\nDBAL 2.5.4\n==========\n\nSQLite types weren't correctly identified when whitespace was present in\nthe table definitions: the DBAL now correctly recognizes that, and\nignores the whitespace.\n[\\#2272](https://github.com/doctrine/dbal/issues/2272)\n\nconstant `PDO::PGSQL_ATTR_DISABLE_PREPARES` is only defined when PGSQL\nsupport for PHP is enabled with PDO. The DBAL now checks whether the\nconstant is available before relying on it.\n[\\#2249](https://github.com/doctrine/dbal/issues/2249)\n\nDBAL 2.4.5\n==========\n\nThis release backports a number of fixes that were already present in\nDBAL 2.5.3.\n\nSpecifically, following issues were solved:\n\n- SQLite offset with no limit support\n [\\#1069](https://github.com/doctrine/dbal/issues/1069)\n- Fix removing autoincrement column from a primary key\n [\\#1074](https://github.com/doctrine/dbal/issues/1074)\n- Infinite recursion on non-unique table/join alias in QueryBuilder\n [\\#1079](https://github.com/doctrine/dbal/issues/1079)\n- Fix for bad profiling data, showing an indefinitely long query\n [\\#1124](https://github.com/doctrine/dbal/issues/1124)\n- Fix incorrect ordering of columns in clustered indexes on sql server\n [\\#1129](https://github.com/doctrine/dbal/issues/1129)\n- Avoid fatal error in `array_merge` while generating the table\n creation SQL [\\#1141](https://github.com/doctrine/dbal/issues/1141)\n- `template1` as default database for PostgreSQL\n [\\#1162](https://github.com/doctrine/dbal/issues/1162)\n\nPlease be advised that this is the last 2.4.x release, and except for\nsecurity releases, no further patches will be provided for DBAL 2.4:\nplease upgrade to 2.5 as soon as possible.\n\nInstallation\n============\n\nYou can install the DBAL component using Composer:\n\n```bash\ncomposer require doctrine/dbal:~2.5.4\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/dbal/issues).\n", + "date": "2016-01-05 00:00:00" }, { - "url": "/2009/11/04/doctrine-1-2-documentation-available.html", - "slug": "doctrine-1-2-documentation-available", - "title": "Doctrine 1.2 Documentation Available", - "authorName": "jwage", - "authorEmail": "", - "contents": "I am happy to announce that [Doctrine 1.2\ndocumentation](https://www.doctrine-project.org/documentation/manual/1_2/en)\nis now available and up to date. It might still need some work but for\nthe most part it is updated with all the new features and changes in\n1.2.\n\nNew Chapters\n============\n\n- [Data\n Hydrators](https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/data-hydrators.html)\n- [Extensions](https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/extensions.html)\n\nPlease read over it and create\n[Jira](https://www.doctrine-project.org/jira) issues for any problems or\ncorrections you find.\n", - "date": "2009-11-04 00:00:00" + "url": "/2015/01/12/dbal-244-251.html", + "slug": "dbal-244-251", + "title": "DBAL 2.4.4 and 2.5.1 released", + "authorName": "Steve M\u00fcller", + "authorEmail": "deeky666@googlemail.com", + "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.4.4 and 2.5.1. Various bugs that prevented users from upgrading to\nDBAL 2.5.x have been fixed in DBAL 2.5.1, along with some others. DBAL\n2.4.4 only contains backported bug fixes addressed since the release of\nDBAL 2.5.0.\n\nThe index renaming feature introduced in DBAL 2.5.0 caused trouble for\nsome MySQL users utilizing ORM's schema tool to upgrade their schemas\nwhere the schema tool was generating invalid `DROP INDEX` /\n`CREATE INDEX` SQL. Fixing this issue was only possible by introducing a\nminor BC break (change in behaviour), please see `UPGRADE.md` for more\ninformation (we know that this is a patch release but we are actually\nreverting a BC break here). MariaDB users had problems upgrading to DBAL\n2.5.0 because of the new platform detection feature not taking MariaDB\nbackends into account. Additionally, some minor bugs around schema\ncreation / introspection and DDL in various platforms were fixed.\n\nPlease note that this release does `not yet` include a fix for users\nhaving problems with the DBAL connection not being lazy anymore since\nDBAL 2.5.0 when retrieving the underlying platform. Unfortunately we did\nnot find a good solution for this issue yet. Until the issue is fixed\nplease directly set the platform version as a workaround by using the\n`serverVersion` configuration option described in the\n[documentation](https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/configuration.html#automatic-platform-version-detection)\nif you are encountering any problems.\n\nYou can find all the changes on JIRA:\n\n- [DBAL\n 2.4.4](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10725)\n - 9 issues fixed\n- [DBAL\n 2.5.1](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10727)\n - 24 issues fixed\n\nYou can install the DBAL using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/dbal\": \"2.4.4\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-01-12 00:00:00" }, { - "url": "/2013/01/08/doctrine-2-3-2.html", - "slug": "doctrine-2-3-2", - "title": "Doctrine 2.3.2 released", + "url": "/2011/11/21/doctrine-maintenance-nov2011.html", + "slug": "doctrine-maintenance-nov2011", + "title": "Doctrine Common 2.1.3, DBAL 2.1.5 and ORM 2.1.3 Releases", "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "**08.01.2013**\n\nWe have released the second mini release in the 2.3 cycle.\n\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10326)\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10324)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) , download, PEAR or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.1\"\n }\n }\n", - "date": "2013-01-08 00:00:00" + "contents": "The bugfix release is three weeks overdue, here is it now:\n\n- [ORM 2.1.3 with 24 bugfixes and 1 security\n fix](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10164)\n- [DBAL 2.1.5 with 6\n bugfixes](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10167)\n- [Common 2.1.3 with 1\n bugfix](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10166)\n\nThe security fix concerns usage of the ASC/DESC orientation parameters\nin `$repository->findBy($criteria, $orderBy)`, which is subject to SQL\ninjection when user-input is allowed into this method.\n\nYou can grab the downloads from the [project\npage](https://www.doctrine-project.org/projects) , via\n[PEAR](http://pear.doctrine-project.org) or\n[Git](https://github.com/doctrine)\n\nPlease update your installations.\n", + "date": "2011-11-21 00:00:00" }, { - "url": "/2014/01/01/dbal-242-252beta1.html", - "slug": "dbal-242-252beta1", - "title": "DBAL 2.4.2 and 2.5.0 BETA1 released", + "url": "/2021/11/11/dbal3-vulnerability-fixed.html", + "slug": "dbal3-vulnerability-fixed", + "title": "DBAL 3 SQL Injection Security Vulnerability fixed (CVE-2021-43608)", "authorName": "Benjamin Eberlei", - "authorEmail": "", - "contents": "*Published: 01.01.2014*\n\nWe are happy to announce the immediate availability of Doctrine DBAL\n2.4.2 and 2.5.0 BETA1.\n\nThe new stable version 2.4.2 had 20 bugs fixed. You can install this\nversion using Composer and the following `composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.4.2\"\n }\n}\n~~~~\n\nYou can see all the changes on Jira:\n\n- [DBAL\n 2.4.2](https://github.com/doctrine/dbal/releases/tag/v2.4.2)\n\nIn the first 10 month of 2013 we watched the number of open issues cross\n100 and peak at 250 in mid November, unable to do much about it due to\ntime constraints. During the last two months however we have worked hard\nto lower the number of open pull-requests on DBAL from 50 to only 7 and\npush the number of open issues on DBAL+ORM down to 188 from 250. This\nhas been a tremendous effort and it would not have been possible without\nour two new core team members [deeky666](https://github.com/deeky666)\nand [kimhemsoe](https://github.com/kimhemsoe).\n\nWith the number of open bugs at 22 and open pull requests at 7 I am\nexcited to say that DBAL 2.5 will be the most stable and complete\nversion so far. It is mostly backwards compatible with only some minor\nchanges necessary, when using PDO IBM, creating a custom platform or\nusing non-default DateTime formats. You can see the breaks in the\n[UPGRADE.md](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\nfile.\n\nThere is also a nice list of new features:\n\n- Support for SAP Sybase SQL Anywhere versions 10, 11, 12 and 16\n (DBAL-475)\n- Support for auto-commit=NO on all drivers and platforms. (DBAL-81)\n- Refactor exceptions to use common error-codes and exception classes\n that derive from `Doctrine\\DBAL\\DBALException`. (DBAL-407)\n- Add support to retry connections with\n `Doctrine\\DBAL\\Connection#ping()` method. (DBAL-275)\n- Add INSERT support to QueryBuilder (DBAL-320)\n- Add Binary type for VARBINARY support (DBAL-714)\n- Add charset and SSL connection support to PostgreSQL (DBAL-567,\n DBAL-702)\n- Add options support for Myqli (DBAL-643)\n\nSee all the changes for the 2.5.0 BETA1 on Jira:\n\n- [DBAL 2.5.0\n BETA1](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10523)\n\nYou can install the BETA using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.0-BETA1\"\n }\n}\n~~~~\n", - "date": "2014-01-01 00:00:00" + "authorEmail": "kontakt@beberlei.de", + "contents": "We have released a new version Doctrine DBAL 3.1.4 that fixes a critical SQL\ninjection vulnerability in the LIMIT clause generation API provided by the\nPlatform abstraction.\n\nWe advise everyone using Doctrine DBAL 3.0.0 up to 3.1.3 to upgrade to 3.1.4\nimmediately. \n\nThe vulnerability can happen when unsanitized input is passed to many APIs in\nDoctrine DBAL and ORM that ultimately end up calling\n`AbstractPlatform::modifyLimitQuery`.\n\nAs a workaround you can cast all limit and offset parameters to integers before\npassing them to Doctrine APIs.\n\nThis vulnerability has been assigned\n[CVE-2021-43608](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43608).\n", + "date": "2021-11-11 00:00:00" }, { - "url": "/2014/12/20/inflector-101.html", - "slug": "inflector-101", - "title": "Inflector 1.0.1 released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of\n`doctrine/inflector` 1.0.1.\n\nThe release includes minor fixes since the first 1.0.0 release, and also\nstabilizes and enforces support for HHVM.\n\n- [49: \\#46 - applying correct chmod() to generated cache\n file](https://github.com/doctrine/annotations/pull/49)\n- [50: Hotfix: match escaped quotes (revert\n \\#44)](https://github.com/doctrine/annotations/pull/50)\n\n- [1: Corrected keyword\n spelling](https://github.com/doctrine/inflector/pull/1)\n- [2: Documentation\n fixes](https://github.com/doctrine/inflector/pull/2)\n- [3: Added the branch alias for\n master](https://github.com/doctrine/inflector/pull/3)\n- [4: Fixed typo](https://github.com/doctrine/inflector/pull/4)\n- [5: exclude word 'staff' from inflectable\n ones](https://github.com/doctrine/inflector/pull/5)\n- [6: add LICENSE file](https://github.com/doctrine/inflector/pull/6)\n- [7: HHVM is not allowed to fail anymore. Inflector should work as\n expected](https://github.com/doctrine/inflector/pull/7)\n- [10: Added the local phpunit config to the ignore\n list](https://github.com/doctrine/inflector/pull/10)\n- [12: Adding 'human' to the irregular\n array](https://github.com/doctrine/inflector/pull/12)\n- [14: Add testing on PHP 5.6 on\n Travis](https://github.com/doctrine/inflector/pull/14)\n\nYou can install the Inflector library using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/inflector\": \"1.0.1\"\n }\n}\n~~~~\n", - "date": "2014-12-20 00:00:00" - }, - { - "url": "/2009/06/26/what-s-new-in-doctrine-1-2.html", - "slug": "what-s-new-in-doctrine-1-2", - "title": "What's new in Doctrine 1.2", - "authorName": "jwage", - "authorEmail": "", - "contents": "This week I have been working on the next major version of Doctrine,\n1.2. This version will possibly be the last 1.x version before we really\nbegin to push 2.0 hard.\n\nThe 1.2 release should be a decent release for you all and I think it\nhas some interesting features that should really spark some growth in\nthe community around Doctrine. Here are some highlights.\n\nHighlights\n==========\n\n- Major cleanup, removing deprecated methods, removed accessor string\n support for performance fix\n- Option to disable cascading saves by default for performance\n improvement\n- Changes to migrations to better handle migrating multiple databases\n- More configuration options\n- Configure a child `Doctrine_Query` class to use\n- Configure a child `Doctrine_Collection` class to use\n- Refactored hydration implementation to be completely driver based\n- Write your own hydration drivers to process query statements\n- Refactored Doctrine connections to be completely driver based\n- Write your own connection drivers for Doctrine\n- Other small changes and improvements across the code base\n\nDoctrine Extensions\n===================\n\nAll the above changes lend themselves well to creating extensions and\nbehaviors for Doctrine. This has led to the creation of the Doctrine\n[extensions](https://www.doctrine-project.org/extensions) repository.\n\nYou can now write standalone code bundled as a Doctrine extension that\ncan be dropped in to an extensions folder and loaded by Doctrine. So now\nwhen you all write custom behaviors and custom extensions you can make\nthem available for other people to use and drop in to projects.\n\nI have started the repository by committing the\n[Sortable](https://www.doctrine-project.org/extension/Sortable/1_2-1_0)\nbehavior which was contributed by a Doctrine user on our trac. So\nwhoever you are, if you would like to maintain this extension please\ncontact me.\n\nFollow 1.2 Development\n======================\n\nIf you want to know more about Doctrine 1.2 you can read the [What's new\nin Doctrine 1.2](https://www.doctrine-project.org/upgrade/1_2) document\nwhich will be kept up to date as we develop and change things in 1.2!\n\n> **CAUTION** Some of the implemented features in 1.2 are still being\n> discussed and debated so they may change or be completely removed if\n> decided so. If you have any input or suggestions on the provided\n> features, let us know ASAP.\n", - "date": "2009-06-26 00:00:00" + "url": "/2009/06/21/doctrine-future-roadmap.html", + "slug": "doctrine-future-roadmap", + "title": "Doctrine Future Roadmap", + "authorName": "jwage", + "authorEmail": "", + "contents": "So, lately we've been discussing and getting a lot of questions about\nthe future roadmap of Doctrine, specifically 2.0. If you are following\nPHP 5.3 you will have noticed that PHP 5.3 RC4 was released last week.\nThis means that the stable release of 5.3 is very near.\n\nBelow you will find a schedule of the roadmap we have planned for the\nupcoming months/years.\n\n| Date | Item | | -------------- |\n------------------------------------------------ | | 06/22/2009 | Branch\nDoctrine 1.2 | | 06/24/2009 | PHP 5.3.0 Stable Release (YES!!!) | |\n09/2009 | Begin 1.2 release cycle. Alpha, Beta, RC, Stable | | 09/2009 |\nFinal 6 months of 1.0 Support | | 09/2009 | Launch 2.0 Alpha 1 | |\n11/2009 | Launch 1.2.0 with Long Term Support (18 months) | | 11/2009 |\nSymfony 1.3 + Doctrine 1.2 | | 11/2009 | End Doctrine 1.1 Support | |\n03/2010 | End Doctrine 1.0 Support | | 03/2010 | Continue 2.0 release\ncycle | | ??/2010 | Release 2.0.0 with Long Term Support (18 months) | |\n06/2011 | End Doctrine 1.2 Support |\n\nWe hope that the above timeline gives PHP 5.3 plenty of time to be\nadopted before we officially stop support for the Doctrine 1.x series.\nWe think it will be plenty of time but depending how things play out, we\ncan always add more time to the support life cycle of the 1.x series,\nbut we hope to not have to. So, this Wednesday when PHP 5.3 is released,\nplease switch to it if you can and help with the adoption.\n", + "date": "2009-06-21 00:00:00" }, { "url": "/2008/09/05/doctrine-at-symfony-camp2008.html", @@ -882,166 +693,166 @@ "date": "2008-09-05 00:00:00" }, { - "url": "/2015/04/02/common-2-5-0.html", - "slug": "common-2-5-0", - "title": "Doctrine Common 2.5.0 Release", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Common\n\\`2.5.0\\`.\n\nInstallation\n============\n\nYou can install this version of Doctrine Common by using Composer and\nthe following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"2.5.0\"\n }\n}\n```\n\nChanges since 2.4.x\n===================\n\nThis is a list of issues solved in `2.5.0` since `2.4.x`:\n\nBug\n---\n\n- [[DCOM-129](https://github.com/doctrine/common/issues/428)] -\n Annotation parser matches colon after annotation\n- [[DCOM-151](https://github.com/doctrine/common/issues/452)] -\n [[GH-233](https://github.com/doctrine/common/pull/233)] [DocParser]\n Fix trying include classes if its must be ignored.\n- [[DCOM-162](https://github.com/doctrine/common/issues/463)] -\n [[GH-244](https://github.com/doctrine/common/pull/244)] return\n parameter for debug method\n- [[DCOM-168](https://github.com/doctrine/common/issues/469)] -\n ignoredAnnotationNames doesn't work in Annotation loop\n- [[DCOM-175](https://github.com/doctrine/common/issues/477)] -\n Proxies return private properties in \\_\\_sleep, which is not\n supported by PHP.\n- [[DCOM-191](https://github.com/doctrine/common/issues/493)] -\n Wrong inflection for \"identity\"\n- [[DCOM-212](https://github.com/doctrine/common/issues/518)] -\n [[GH-296](https://github.com/doctrine/common/pull/296)] Proxies\n shouldn't serialize static properties in \\_\\_sleep()\n- [[DCOM-216](https://github.com/doctrine/common/issues/522)] -\n [[GH-298](https://github.com/doctrine/common/pull/298)] Silence\n E\\_NOTICE warning: \"Undefined index\".\n- [[DCOM-220](https://github.com/doctrine/common/issues/527)] -\n [[GH-304](https://github.com/doctrine/common/pull/304)] fix typo\n- [[DCOM-223](https://github.com/doctrine/common/issues/530)] -\n [[GH-308](https://github.com/doctrine/common/pull/308)] fix the\n optimize regex and adapt the tests to actually test classAnnotat...\n- [[DCOM-228](https://github.com/doctrine/common/issues/535)] -\n [[GH-312](https://github.com/doctrine/common/pull/312)] Improve\n UnexpectedValueException error message\n- [[DCOM-261](https://github.com/doctrine/common/issues/571)] -\n [[GH-344](https://github.com/doctrine/common/pull/344)] Fix fatal\n error when classexist tries to call the protected loader\n- [[DCOM-270](https://github.com/doctrine/common/issues/581)] -\n [[GH-351](https://github.com/doctrine/common/pull/351)] Added\n validation where allowed QCNs with \":\" NS separator\n- [[DCOM-272](https://github.com/doctrine/common/issues/583)] -\n Proxy generator doesn't understand splat operator (PHP 5.6 argument\n unpacking)\n\nDocumentation\n-------------\n\n- [[DCOM-237](https://github.com/doctrine/common/issues/545)] -\n [[GH-318](https://github.com/doctrine/common/pull/318)] Fixed link\n to Documentation\n- [[DCOM-280](https://github.com/doctrine/common/issues/592)] -\n [[GH-359](https://github.com/doctrine/common/pull/359)] Fixed\n missing / incorrect docblocks\n\nImprovement\n-----------\n\n- [[DCOM-246](https://github.com/doctrine/common/issues/554)] -\n [[GH-328](https://github.com/doctrine/common/pull/328)] Optimized\n imports\n- [[DCOM-247](https://github.com/doctrine/common/issues/555)] -\n [[GH-329](https://github.com/doctrine/common/pull/329)] Remove dead\n config\n- [[DCOM-263](https://github.com/doctrine/common/issues/573)] -\n [[GH-347](https://github.com/doctrine/common/pull/347)] Class\n loader: skip non-existing files and files not containing the\n requested class\n- [[DCOM-278](https://github.com/doctrine/common/issues/589)] -\n [[GH-358](https://github.com/doctrine/common/pull/358)] travis: PHP\n 7.0 nightly added, allowed failure\n\nNew Feature\n-----------\n\n- [[DCOM-257](https://github.com/doctrine/common/issues/566)] -\n [[GH-342](https://github.com/doctrine/common/pull/342)] Class\n metadata loading fallback hook in AbstractClassMetadataFactory\n- [[DCOM-277](https://github.com/doctrine/common/issues/588)] -\n [[GH-357](https://github.com/doctrine/common/pull/357)] Custom\n namespace separators for SymfonyFileLocator\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DCOM).\n", - "date": "2015-04-02 00:00:00" + "url": "/2008/06/11/one-more-0-11-release-candidate.html", + "slug": "one-more-0-11-release-candidate", + "title": "One more 0.11 Release Candidate", + "authorName": "jwage", + "authorEmail": "", + "contents": "Well, we discovered some bugs in the last RC of 0.11 so we have decided\nto have another release candidate to make sure the 0.11 branch is a\nsolid major release of Doctrine. As always the changelog can be read in\nthe CHANGELOG in svn or on the website. Hopefully this will really be\nthe last release candidate of 0.11 and we will release a stable version.\nOnce 0.11 is released we plan to immediately begin working on 0.11.1 bug\nfix release as well as a new 0.12 branch which will bring some new\nfeatures as well as dozens of bug fixes. Thanks for all the\ncontributions from the core developers and community for this release.\n", + "date": "2008-06-11 00:00:00" }, { - "url": "/2011/03/05/doctrine-maintenance-mar05.html", - "slug": "doctrine-maintenance-mar05", - "title": "Maintenance Releases 2.0.2 DBAL and ORM", + "url": "/2011/06/28/doctrine-2-1-rc2.html", + "slug": "doctrine-2-1-rc2", + "title": "Doctrine 2.1 Release Candidate 2", "authorName": "beberlei", "authorEmail": "", - "contents": "Slightly delayed but here are the releases of DBAL and ORM versions\n2.0.2:\n\n- [ORM 2.0.2\n Changeset](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10116)\n- [DBAL 2.0.2\n Changeset](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10118)\n\nA total of 22 issues was fixed.\n\nThere was one big change in the build mechanism. Symfony YAML and\nConsole dependencies are now converted to git submodules and are also\nshipped as their own PEAR packages (DoctrineSymfonyYaml and\nDoctrineSymfonyConsole).\n", - "date": "2011-03-05 00:00:00" - }, - { - "url": "/2015/11/03/doctrine-mongodb-odm-release-1-0-3.html", - "slug": "doctrine-mongodb-odm-release-1-0-3", - "title": "Doctrine MongoDB ODM release 1.0.3", - "authorName": "Maciej Malarz", - "authorEmail": "malarzm@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.0.3](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.3).\n\nReusing embedded documents\n==========================\n\nUntil now, we have advised developers to deep clone embedded documents\nwhen changing owning documents; otherwise,\n[strange](https://github.com/doctrine/mongodb-odm/issues/1229)\n[things](https://github.com/doctrine/mongodb-odm/issues/1169)\n[could](https://github.com/doctrine/mongodb-odm/issues/478)\n[happen](https://www.youtube.com/watch?v=dQw4w9WgXcQ). The reason\nbeing was that in order for ODM to properly track changes, it would\nstore parent parent associations and manage the lifecycle of each\ndocument (top-level and embedded alike). It was therefore reasonable\nthat Doctrine require relocated objects to be distinct instances.\n\n*Manual cloning is no longer needed!*\n\nWith this relase, ODM will now do all the heavy lifting for you.\nDocuments found to have been reused during a `persist` or `flush`\nlifecycle event shall be cloned by `UnitOfWork` automatically and\nupdated on the parent document or collection.\n\nOther bug fixes\n===============\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#103-2015-11-03).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.3\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.3).\n\nWork on 1.1 is starting and it will require PHP 5.5+\n====================================================\n\nWe are happy to announce that work on 1.1 is commencing! While no\nrelease dates have been scheduled, you can take a look at the [1.1\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1)\nfor brief list of goodies that we intend to ship next. If you would like\nto suggest additional features or, better yet, help in with development,\nplease get in touch. Currently, we are looking forward to implementing\n[hydrated aggregation\nresults](https://github.com/doctrine/mongodb-odm/pull/1263), support\nespecially now that MongoDB announced [\\$lookup\noperator](https://www.mongodb.com/blog/post/revisiting-usdlookup),\navailable for everybody in 3.2 and [custom collection\nclasses](https://github.com/doctrine/mongodb-odm/pull/1219) for\n`EmbedMany` and `ReferenceMany` associations.\n\nThe current `master` branch will soon become development branch for 1.1\nand the *PHP requirement will be bumped to 5.5*. If you cannot upgrade\nyour PHP runtime, please continue to use the 1.0.x branch. If you are\ninterested in testing the latest bug fixes (before we tag them), you may\nwant to follow the [1.0.x\nbranch](https://github.com/doctrine/mongodb-odm/tree/1.0.x).\n", - "date": "2015-11-03 00:00:00" + "contents": "RC2 of Doctrine 2.1 is packaged and can be grabbed from\n[PEAR](http://pear.doctrine-project.org) and the download section.\n\nWe fixed several inconsistencies, backwards compatibility breaks and\nsome bugs.\n\nPlease test this release as it will probably be the base of the final\nrelease due to be released later this week. The scheduled date is\nThursday 30th, but due to personal timetable this may become the\nweekend.\n", + "date": "2011-06-28 00:00:00" }, { - "url": "/2008/01/29/using-doctrine-with-codeigniter.html", - "slug": "using-doctrine-with-codeigniter", - "title": "Using Doctrine with CodeIgniter", + "url": "/2009/11/03/a-doctrine-triple-play.html", + "slug": "a-doctrine-triple-play", + "title": "A Doctrine Triple Play", "authorName": "jwage", "authorEmail": "", - "contents": "If you use the PHP MVC framework, CodeIgniter, and want to use Doctrine,\nhere is a tutorial on how to integrate Doctrine with your CodeIgniter\napplications. It was fairly simple and took me about 15 minutes to\nfigure out a nice and clean implementation. The wiki page can be found\nhere.\n", - "date": "2008-01-29 00:00:00" + "contents": "Today I am happy to bring you three new versions of Doctrine:\n\nDoctrine 1.0.13\n===============\n\nThis is a regular maintenance release for the Doctrine 1.0 branch and\ncontains several bug fixes. Check out the [change\nlog](https://www.doctrine-project.org/change_log/1_0_13) for the changes\ncontained in this release.\n\nDoctrine 1.1.5\n==============\n\nThis is a regular maintenance release for the Doctrine 1.1 branch. This\nwill be the one of the last maintenance release for the Doctrine 1.1\nbranch as the scheduled support for this version has technically ended\non November 1st. We will have a few more maintenance releases for 1.1\nsince Doctrine 1.2 is not out yet. We'll give a few months of overlap to\ngive people some time to upgrade to Doctrine 1.2. Check out the [change\nlog](https://www.doctrine-project.org/change_log/1_1_5) for the changes\ncontained in this release.\n\nDoctrine 1.2.0-BETA1\n====================\n\nThis is the first BETA of the Doctrine 1.2 branch. This release is a\nvery exciting one as it will be a LTS(long term support) version and it\ncontains lots of new features and bug fixes. Check out the [change\nlog](https://www.doctrine-project.org/change_log/1_2_0_BETA1) for the\nchanges contained in this release. You can also see documentation for\neverything that has changed or is new in Doctrine 1.2 on the [What's\nNew](https://www.doctrine-project.org/upgrade/1_2) page.\n\nLike always, you can grab the package for these new versions on the\n[download](https://www.doctrine-project.org/download) page.\n", + "date": "2009-11-03 00:00:00" }, { - "url": "/2014/12/18/annotations-122.html", - "slug": "annotations-122", - "title": "Annotations 1.2.2 released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of\n`doctrine/annotations` 1.2.2.\n\nThe release includes following fixes:\n\n- [43: Exclude files from distribution via\n .gitattributes](https://github.com/doctrine/annotations/pull/43)\n- [44: Prevent stack overflows in \"preg\\_split\" in the\n lexer](https://github.com/doctrine/annotations/pull/44)\n- [46: Fixed race conditions in FileCacheReader by improving I/O\n operations\n atomicity](https://github.com/doctrine/annotations/pull/46)\n- [48: Deprecating the FileCacheReader in 1.2.2: will be removed in\n 2.0.0](https://github.com/doctrine/annotations/pull/48)\n\nYou can install the Annotations library using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/annotations\": \"1.2.2\"\n }\n}\n~~~~\n", - "date": "2014-12-18 00:00:00" + "url": "/2015/09/16/doctrine_dbal_2_5_2_released.html", + "slug": "doctrine_dbal_2_5_2_released", + "title": "Doctrine DBAL 2.5.2 released", + "authorName": "Steve M\u00fcller", + "authorEmail": "deeky666@googlemail.com", + "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.5.2.\n\nThis version fixes a regression where dropping a database on PostgreSQL\ndidn't work properly anymore as well as several other issues.\n\nYou can find all the changes on JIRA:\n\n- [DBAL\n 2.5.2](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10731)\n - 24 issues fixed\n\nYou can install the DBAL using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.2\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-09-16 00:00:00" }, { - "url": "/2015/12/04/common-2-5-2-and-2-6-0.html", - "slug": "common-2-5-2-and-2-6-0", - "title": "Common 2.5.2 and 2.6.0 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Common\n[2.5.2](https://github.com/doctrine/common/releases/tag/v2.5.2) and\n[2.6.0](https://github.com/doctrine/common/releases/tag/v2.6.0).\n\nCommon 2.5.2\n============\n\n`chmod()` warnings caused by proxy generation are now silenced\n[\\#383](https://github.com/doctrine/common/pull/383)\n[DCOM-299](https://github.com/doctrine/common/issues/611).\n\n`SymfonyFileLocator#getAllClassNames()` was dropping some classes: now\nfixed [\\#384](https://github.com/doctrine/common/pull/384)\n[DCOM-301](https://github.com/doctrine/common/issues/615).\n\nCorrected fatal error triggered by\n`AbstractManagerRegistry#getManagerForClass()` when no parent class is\nfound for a proxy [\\#387](https://github.com/doctrine/common/pull/387)\n[DCOM-303](https://github.com/doctrine/common/issues/617).\n\nYou can find the complete changelog for this release in the [v2.5.2\nrelease\nnotes](https://www.doctrine-project.org/jira/projects/DCOM/versions/10820).\n\nCommon 2.6.0\n============\n\nThis release includes all of the fixes reported above for 2.5.2, as well\nas following changes:\n\nProxy generation now supports PHP 7.0+ scalar type hints and return\ntypes [\\#376](https://github.com/doctrine/common/pull/376)\n[DCOM-294](https://github.com/doctrine/common/issues/606).\n\nSwitched autoloading to PSR-4\n[\\#389](https://github.com/doctrine/common/pull/389)\n[DCOM-305](https://github.com/doctrine/common/issues/619).\n\nAdded a `.gitattributes` to the repositories, reducing the size of the\npackage that is installed by composer\n[\\#380](https://github.com/doctrine/common/pull/380)\n[DCOM-296](https://github.com/doctrine/common/issues/608).\n\nYou can find the complete changelog for this release in the [v2.6.0\nrelease\nnotes](https://www.doctrine-project.org/jira/projects/DCOM/versions/10735).\n\nInstallation\n============\n\nYou can install the Common component using Composer and one of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.5.2\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.6.01\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-12-04 00:00:00" + "url": "/2009/08/07/doctrine2-batch-processing.html", + "slug": "doctrine2-batch-processing", + "title": "Doctrine 2 Batch Processing", + "authorName": "romanb", + "authorEmail": "", + "contents": "**TIP** Disclaimer: In general, an ORM is surely not the best tool\n: for the job for mass data movements, however, it can be a convenient\n alternative if the performance is sufficient. Every RDBMS has its\n own highly efficient commands for such operations. For maximum\n efficiency you should consult the manual of your RDBMS.\n\n **NOTE** The hardware used for the following tests: MBP, Intel Core\n 2 Duo 2.53 Ghz, 4GB DDR3 RAM, 7200rpm HDD.\n\nA lot of people have encountered the infamous \"memory exhausted\" errors\nwhen using Doctrine for bulk operations or in long-running scripts. This\nis a problem that is the result of 2 things:\n\n- The often unnecessarily intertwined architecture of Doctrine 1.x.\n- The simple garbage collector of PHP \\< 5.3.\n\n > **NOTE** If you did not know it yet, basically every circular\n > reference between objects (and that is every bidirectional\n > relationship!) is a potential memory leak in PHP \\< 5.3.\n\nNow, the PHP team did their homework and introduced a new garbage\ncollector in PHP 5.3 (that is enabled by default, thank god!) that is\ncapable of properly detecting cyclic references that are not referenced\nany longer from the outside.\n\nIn Doctrine 2 we did our part of the homework to address this issue and\nredesigned the Doctrine core from scratch. The result is a much better\nuser experience, as I will demonstrate with some examples.\n\nMass inserts\n============\n\nThe first thing we will look at is mass inserts. In Doctrine 2 there is\na special pattern that can be used for mass inserts that looks as\nfollows:\n\n~~~~ {.sourceCode .php}\nsetFoo('...');\n // ... set more data\n $em->persist($obj);\n if (($i % $batchSize) == 0) {\n $em->flush();\n $em->clear();\n }\n}\n~~~~\n\nI used this pattern to create a little demonstration that looks like\nthis in a PHPUnit test:\n\n~~~~ {.sourceCode .php}\n_em created in setUp()\necho \"Memory usage before: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n$s = microtime(true);\n$batchSize = 20;\nfor ($i=1; $i<=10000; ++$i) {\n $user = new CmsUser;\n $user->status = 'user';\n $user->username = 'user' . $i;\n $user->name = 'Mr.Smith-' . $i;\n $this->_em->persist($user);\n if (($i % $batchSize) == 0) {\n $this->_em->flush();\n $this->_em->clear();\n }\n}\n\n//gc_collect_cycles(); // explained later!\necho \"Memory usage after: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n\n$e = microtime(true);\necho ' Inserted 10000 objects in ' . ($e - $s) . ' seconds' . PHP_EOL;\n~~~~\n\nAs you can see, we insert a total of 10000 objects. On running this code\nthrough PHPUnit, using an SQLite in-memory database, I got the following\noutput:\n\n Memory usage before: 5034.03515625 KB\n Memory usage after: 6726.3515625 KB\n Inserted 10000 objects in 3.165983915329 seconds\n\nWe can see the following:\n\n- The insertion of 10000 objects through Doctrine into an SQLite\n in-memory database took roughly 3 seconds, not too bad.\n- Memory usage increased by roughly 1.7MB, not too bad either.\n\nIf you are now still not satisfied and wonder where the 1.7MB are going,\nhere is the answer: A small part of that is occupied by objects that\nwere created on-demand internally by Doctrine, these will stay pretty\nconstant, however. But the majority of this 1.7MB has simply not yet\nbeen reclaimed (but is eliglible for garbage collection for the new\ngarbage collector!). To prove that, I can just uncomment the\ngc\\_collect\\_cycles() function call. Here's the result:\n\n Memory usage before: 5034.3828125 KB\n Memory usage after: 5502.21484375 KB\n Inserted 10000 objects in 3.1807188987732 seconds\n\nMuch better! And to prove that the \\~500KB occupied by Doctrine are\nconstant, I simply made it 20000 objects. Here is the result:\n\n Memory usage before: 5034.3828125 KB\n Memory usage after: 5502.21484375 KB\n Inserted 20000 objects in 6.6149919033051 seconds\n\nWe can see the following things:\n\n- Memory usage is constant, the second batch of 10000 objects did not\n result in additional memory usage.\n- The mass insertion strategy scales almost linearly. 10k objects took\n \\~3.2 seconds and 20k objects took \\~6.6 seconds.\n\nNote: You do not really need to call gc\\_collect\\_cycles(). This should\njust demonstrate that the memory can be reclaimed. PHP would reclaim\nthat memory anyway when it needs to.\n\nEven better, when testing the peak memory usage\n(memory\\_get\\_peak\\_usage()) it turned out that the memory usage never\ngrew beyond \\~10MB in between. If you choose a larger batch size the\npeak memory usage will be higher and vice versa.\n\nMass object processing\n======================\n\nNow we take a look at mass-processing objects, which means loading 10000\nobjects from the database and doing something with each of them. The\nclue here is the new support for iterative (step-by-step) hydration in\nDoctrine 2. The pattern for these kinds of tasks looks as follows:\n\n~~~~ {.sourceCode .php}\n_em->createQuery(\"\");\n$iterableResult = $q->iterate();\nwhile (($row = $iterableResult->next()) !== false) {\n // do stuff with the data in the row, $row[0] is always the object\n $this->_em->detach($row[0]); // detach from Doctrine, so that it can be GC'd immediately\n }\n~~~~\n\nSo instead of using `$q->execute()` or `$q->getResult()` or similar, we\nuse `$q->iterate()` which returns an instance of `IterableResult` that\nallows us to iterate over the result step by step. The important part\nfor not running out of memory is the line where the created object is\ndetached from Doctrine, which results in Doctrine removing any internal\nreferences to that object, Doctrine no longer \"knows\" about that object.\n\nI used this pattern to iterate through the just inserted 10000 objects\nas follows:\n\n~~~~ {.sourceCode .php}\n_em->createQuery(\"select u from Doctrine\\Tests\\Models\\CMS\\CmsUser u\");\n$iterableResult = $q->iterate();\n\necho \"Memory usage before: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n\nwhile (($row = $iterableResult->next()) !== false) {\n // ... I could do some stuff here\n $this->_em->detach($row[0]);\n}\n\necho \"Memory usage after: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n~~~~\n\nThe following is the result:\n\n Memory usage before: 6578.58984375 KB\n Memory usage after: 6581.71875 KB\n\nThe result is pretty acceptable. Here is the same again, this time for\n20000 objects, again to prove that the small memory increase is\nconstant:\n\n Memory usage before: 6578.23828125 KB\n Memory usage after: 6581.359375 KB\n\nGood stuff!\n\n> **NOTE** If you're thinking that I waited ages until the 10k or 20k\n> objects were hydrated, that was not the case. 10k or 20k objects\n> (without associations) are hydrated in seconds.\n\nMore information on bulk operations with Doctrine 2 can be found in the\n(very new) online manual that is still a work in progress:\n\nhttps://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/batch-processing.html#batch-processing\n\nUPDATE\n======\n\nSome people seem to be wondering why Doctrine does not use multi-inserts\n(insert into (...) values (...), (...), (...), ...\n\nFirst of all, this syntax is only supported on mysql and newer\npostgresql versions. Secondly, there is no easy way to get hold of all\nthe generated identifiers in such a multi-insert when using\nAUTO\\_INCREMENT or SERIAL and an ORM needs the identifiers for identity\nmanagement of the objects. Lastly, insert performance is rarely the\nbottleneck of an ORM. Normal inserts are more than fast enough for most\nsituations and if you really want to do fast bulk inserts, then a\nmulti-insert is not the best way anyway, i.e. Postgres COPY or Mysql\nLOAD DATA INFILE are several orders of magnitude faster.\n\nThese are the reasons why it is not worth the effort to implement an\nabstraction that performs multi-inserts on mysql and postgresql in an\nORM.\n\nI hope that clears up some questionmarks.\n", + "date": "2009-08-07 00:00:00" }, { - "url": "/2009/01/06/2nd-1-1-beta-released.html", - "slug": "2nd-1-1-beta-released", - "title": "2nd 1.1 Beta Released!", - "authorName": "jwage", + "url": "/2015/08/31/security_misconfiguration_vulnerability_in_various_doctrine_projects.html", + "slug": "security_misconfiguration_vulnerability_in_various_doctrine_projects", + "title": "Security Misconfiguration Vulnerability in various Doctrine projects", + "authorName": "default", "authorEmail": "", - "contents": "Today we are happy to introduce the 2nd beta version of the 1.1 branch.\nThis means we are getting very close to delivering a stable version to\nyou.\n\nDevelopment Highlights\n======================\n\n- [5311](http://trac.doctrine-project.org/changset/5311) - Fixed\n infinite loop problem with isValid()\n- [5336](http://trac.doctrine-project.org/changeset/5336) -Added\n \\$deep argument for isValid() and isModified() and defaulted it to\n false to maintain BC\n- [5337](http://trac.doctrine-project.org/changeset/5337) -Removes\n used of \\_identifiers in synchronizeWithArray()\n- [5339](http://trac.doctrine-project.org/changeset/5339) -Reverting\n [5084](http://trac.doctrine-project.org/changeset/5084) as it\n introduces some bugs which cannot be fixed until a later version\n- [5341](http://trac.doctrine-project.org/changeset/5341) -Fixed issue\n with named parameters\n- [5344](http://trac.doctrine-project.org/changeset/5344) -Added\n checking for obj.field IN :named to prevent possible issues of DQL\n- [5345](http://trac.doctrine-project.org/changeset/5345) -Fixed issue\n with temporary generated models not being cleaned up properly\n\nYou can also check out the [detailed\ndocumentation](https://www.doctrine-project.org/upgrade/1_1) of all the\nchanges that are contained in the 1.1 version of Doctrine as well as the\n[changelog](https://www.doctrine-project.org/change_log/1_1_0_BETA2) to\nhelp ease the upgrade process.\n", - "date": "2009-01-06 00:00:00" + "contents": "We are releasing new versions of Doctrine Cache, Annotations, ORM and\nMongoDB ODM today that fix a security misconfiguration vulnerability.\nThis vulnerability was assigned CVE-2015-5723. It requires an attacker\nto have direct access to a user of the server to be exploitable. We\nconsider exploitability to be low to medium.\n\nExploiting this vulnerability can allow attackers to perform local\narbitrary code execution with privileges of other users (privilege\nescalation).\n\n**You are only affected by this vulnerability, if your application runs\nwith a umask of 0.**\n\nPlease update:\n\n- Annotations to 1.2.7\n- Cache to 1.4.2 or 1.3.2\n- Common to 2.5.1 or 2.4.3\n- ORM to 2.5.1 or 2.4.8\n- MongoDB ODM to 1.0.2\n- MongoDB ODM Bundle to 3.0.1\n\nIf you want to check the fix or apply patch manually, we [provide a Gist\nwith all\npatches](https://gist.github.com/beberlei/dc6e4b018988cba7e211).\n\nIf you cannot upgrade, see our notes below how to mitigate the problem\nwithout having to patch the code.\n\nWe want to thank [Ryan Lane](https://twitter.com/squiddlane) for finding\nthe vulnerability, [Jonathan Eskew](https://github.com/jeskew) from the\nAWS team to pass this security vulnerability to us and [Anthony\nFerrara](https://twitter.com/ircmaxell) for helping us discuss and find\nsolutions to the problem.\n\nDetails\n=======\n\nDoctrine uses different kinds of caches and some of them read the cached\nentries using `require` or `include` to make use of APC or Opcache. In\ncase of proxy generation we actually need to execute the code to make a\nnew auto-generated class part of the code-base.\n\nDoctrine always uses `mkdir($cacheDirectory, 0777);` on many of those\ncaches directories. If your application is running with `umask(0)`, this\nallows an attacker to write arbitrary code into the cache directory\nwhich can be executed with the user privileges of the webserver.\n\nRunning your application with `umask(0)` is not generally a good idea,\nbut is sometimes recommended as simple solution to solve filesystem\naccess problems when a console and a web user both write to a common\ncache directory. In combination with a cache that executes the cache\nentries as code, this can allow local arbitrary code execution.\n\nThe patches released today change all caches that execute code to always\nuse a default mask of `0775` instead of `0777`.\n\n- In case of Cache and Annotations we solve this by implementing a\n userland configurable umask that defaults to `0002`. We apply this\n to every mkdir and chmod so that you can reconfigure to another mask\n if you must.\n- In all the other cases its a hardcoded change to `0775` for\n directories and `0664` for files.\n\nWe are aware that if you depend on `umask(0)`, this is a very\ninconvenient change, because your code will break when different users\nwrite to the same cache directory.\n\n**We feel it is not safe to make developers and operations responsible\nto know how to secure our cache implementations. They are often third\nparty libraries to other open-source systems, we want them to be safe no\nmatter how users configure their system.**\n\nAm I vulnerable?\n================\n\nYour application must run with `umask(0)` for this vulnerability to be\nexploitable. This must not necessarily be an explicit call to the PHP\nfunction, it can also happen if you misconfigured your shell or\nwebserver to run with umask 0 by default.\n\nYou can easily check this by calling `echo umask();` from both the shell\nand your webserver. It will return 0, if you are potentially vulnerable.\n\nSecond, you must be using using Doctrine with the Annotations FileCache\nor the PhpFileCache Cache implementation or one of the ORM or ODM\nProxyGenerators. Of course this vulnerability can also be present in any\nother library or your own application, when you dynamically generate PHP\ncode into a directory with world writable permissions.\n\nDo you provide fixes for all branches of all affected components?\n=================================================================\n\nNo, fixes are only applied to the most recent versions of Doctrine\ncomponents.\n\nIf you are running older components and don't want to or cannot upgrade,\nyou should look into the sections about immediate and proper fixes\nbelow, that show solutions that don't require upgrading your code.\n\nIf your system and application are correctly setup, it is also likely\nthat you are not vulnerable. See the next section for information about\nthat.\n\nIs there an immediate fix when I can't upgrade?\n===============================================\n\nYes, as an immediate fix just make sure that your application runs with\na non-zero umask all the time. Call `umask(umask() | 0002);` early in\nyour code to prevent PHP from ever creating world writeable files and\ndirectories.\n\nWarning: It can break your application if it relies on running with\n`umask(0);`.\n\nThis is not sufficient though, because the call to umask is not thread\nsafe and a call to this function later in the code can reset the umask\nfor all requests currently running. That means you must identify all\ncode that calls `umask(0);` and change it.\n\nWhen you are unsure if your generated cache is clean, you can regenerate\nall files after you have changed the umask of your application.\n\nIs there a proper fix or security best-practive to avoid this issue?\n====================================================================\n\nYes, the best way to fix this problem is to always execute PHP code for\na single application with the same user, independent of being called\nfrom the webserver, php-fpm or the shell. In this case you can always\ncreate directories with the default permissions of `0775` and files with\n`0664`:\n\n```php\n\n
  • \n\n[r6834] Fixing issue with relationship ordering\n\n
  • \n
  • \n\n[r6835] Fixes issue with oracle adapter statement using wrong constant\n\n
  • \n
  • \n\n[r6836] Fixing issue with sfYaml autoload not returning true\n\n
  • \n
  • \n\n[r6839] Fixes issue with array cache driver and deleting\n\n
  • \n
  • \n\n[r6840] Fixed thrown Exceptions to be package-level\n\n
  • \n
  • \n\n[r6842] Fixes issue with \\$length in migrations addColumn\n\n
  • \n
  • \n\n[r6859] Fixed misplaced param when parsing join condition\n\n
  • \n
  • \n\n[r6883] Added empty init() method implementation to avoid method does\nnot exist error\n\n
  • \n
  • \n\n[r6889] Fixing issue with nested set createRoot() method and string root\ncolumn\n\n
  • \n
  • \n\n[r6893] Adding \\_cleanup() call to start of migrations diff to make sure\ndirectory is clean\n\n
  • \n\n\nYou can view the full [change\nlog](https://www.doctrine-project.org/change_log/1_2_1) and\n[download](https://www.doctrine-project.org/download#1_2) now! If you\nencounter any issues please report them in\n[Jira](https://www.doctrine-project.org/jira).\n", - "date": "2009-12-07 00:00:00" + "contents": "Did you know?\n=============\n\nDid you know that in Doctrine if you don't specifically select a\nproperty or join a relationship in your DQL query, you can lazily load\nthat data? Here is a simple example to demonstrate.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->select('u.id, u.username')\n ->where('u.username = ?', 'jwage');\n\n$user = $q->fetchOne();\n~~~~\n\nNotice how I only selected the `id` and `username`, but we have an\nadditional column named `email_address`. If I were to access that\nproperty it would lazily load the data.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->where('u.username = ?', 'jwage');\n\n$user = $q->fetchOne();\n~~~~\n\nBut then I wanted to retrieve the `Profile` for that `User` I could do\nso by simply accessing the `Profile` property on `User`.\n\n~~~~ {.sourceCode .php}\nProfile;\n~~~~\n\nThe above code would result in an additional query to the database that\nloads the `Profile` record for the `User` in question. Now if I were to\nbe rendering a list of twenty `User` objects and I lazily load the\nprofile of each user that means I would have 21 queries total! That is\ntoo many! In that case it would be smart to `leftJoin()` the `Profile`\nobject like the following.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->leftJoin('u.Profile p');\n\n$users = $q->execute();\n~~~~\n\nNow when I access the `Profile` relationship of an individual object the\ndata would already be present and no lazy loading would be required.\n\nWhy?\n====\n\nI made this blog post because I noticed this feature being abused and\noverly used just because it makes things easier. The goal is to make you\naware of what is happening so that you can effectively use lazy loading\nand not end up having applications with very high query counts per page.\n\nI've seen this many times and the blame is often put on Doctrine but\nreally it is the tool not being used properly. So, be aware of when you\nare lazy loading properties and the total number of queries you execute\nper page. Make sure you always join required relationships and only\nselect the properties you need to access. It doesn't make sense to load\ndata if you're not going to be using it.\n\nHow?\n====\n\nIf you need help with keeping track of how many queries you have per\npage, frameworks like\n[Symfony](https://symfony.com/legacy/doc/gentle-introduction/1_4/en/16-Application-Management-Tools#chapter_16_sub_web_debug_toolbar)\nand [Zend Framework](https://framework.zend.com/) give you debug tools to\nshow you how many queries you have per page. Or of course you can always\nuse the\n[Profiling](https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/component-overview.html#profiler)\ntool built in to Doctrine to log the queries in your application and\nkeep track of it that way.\n", + "date": "2009-05-29 00:00:00" }, { - "url": "/2015/08/31/doctrine_orm_2_5_1_and_2_4_8_released.html", - "slug": "doctrine_orm_2_5_1_and_2_4_8_released", - "title": "Doctrine ORM 2.5.1 and 2.4.8 released", - "authorName": "default", + "url": "/2013/03/24/doctrine-2-3-3.html", + "slug": "doctrine-2-3-3", + "title": "Doctrine 2.3.3 released", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.5.1 and 2.4.8.\n\nThis versions include a fix for the [Security Misconfiguration\nVulnerability](https://www.doctrine-project.org/2015/08/31/security_misconfiguration_vulnerability_in_various_doctrine_projects.html)\ndescribed in an earlier blog post today.\n\nHere are the changelogs:\n\nChangelog 2.5.1\n===============\n\n- DCOM-293: Fix for Security Misconfiguration Vulnerability\n- DDC-3831: Fixed issue when paginator orders by a subselect\n expression\n- DDC-3699: Fix bug in EntityManager\\#merge: Skipping properties if\n they are listed after a not loaded relation\n- DDC-3684: Fix bug ClassMetadata\\#wakeupReflection when used with\n embeddables and Static Reflection\n- DDC-3683: SecondLevelCache: Fix bug in\n DefaultCacheFactory\\#buildCollectionHydrator()\n- DDC-3667: PersistentCollection: Fix BC break when creating empty\n Array/PersistentCollections\n\nChangelog 2.4.8\n===============\n\nThis release contains several fixes that have been in 2.5.0 already and\nare just backported to 2.4 for convenience. This is the last release in\nthe 2.4 branch and you should upgrade to 2.5.\n\n- DCOM-293: Fix for Security Misconfiguration Vulnerability\n- DDC-3551: Fix difference between DBAL 2.4 and 2.5 concerning\n platform initialization and version detection.\n- DDC-3240: EntityGenerator: Fix inheritance in Code-Generation\n- DDC-3502: EntityGenerator: Fixed parsing for php 5.5 \"::class\"\n syntax\n- DDC-3500: Joined Table Inheritance: Fix applying ON/WITH conditions\n to first join in Class Table Inheritance\n- DDC-3343: Entities should not be deleted when using EXTRA\\_LAZY and\n one-to-many\n- DDC-3619: Bugfix: Prevent Identity Map Garbage Collection that can\n cause spl\\_object\\_hash collisions\n- DDC-3608: EntityGenerator: Properly generate default value from yml\n & xml mapping\n- DDC-3643: EntityGenerator: Fix EntityGenerator\n RegenerateEntityIfExists not working correctly.\n\nAs usual you can grab the latest versions from Composer.\n", - "date": "2015-08-31 00:00:00" + "contents": "**24.03.2013**\n\nWe have released a mini version 2.3.3 of ORM and DBAL. See the list of\n[18\ntickets](https://www.doctrine-project.org/jira/issues/?jql=project%20in%20(DDC%2C%20DBAL%2C%20DCOM)%20AND%20fixVersion%20%3D%20%222.3.3%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20priority%20DESC)\nwe fixed.\n\nYou can install the release with [Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.3\",\n \"doctrine/dbal\": \"2.3.3\"\n }\n }\n", + "date": "2013-03-24 00:00:00" }, { - "url": "/2008/03/18/0-10-3-released.html", - "slug": "0-10-3-released", - "title": "0.10.3 Released", - "authorName": "jwage", + "url": "/2014/10/06/orm-246.html", + "slug": "orm-246", + "title": "ORM 2.4.6 released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.6.\n\nWe fixed a PHP 5.6 compatibility issue which prevented usage of entities\nextending from internal PHP classes or implementing the `Serializable`\ninterface with the ORM:\n[DDC-3120](https://github.com/doctrine/orm/issues/3897).\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.6](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10723)\n - 2 issues fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.6\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2014-10-06 00:00:00" + }, + { + "url": "/2010/02/24/doctrine2-versionable.html", + "slug": "doctrine2-versionable", + "title": "A re-usable Versionable Behavior for Doctrine 2", + "authorName": "beberlei", "authorEmail": "", - "contents": "A few days late, but the 0.10.3 release has been packaged and released.\nThis release contains nearly 40 closed tickets, and is a huge step\ntowards bringing the 1st generation of Doctrine to a stable release. We\nhave already begun development on the 0.10.4 release, and have a few\ndozen tickets associated to it already. If you have a ticket associated\nto the 0.10.4 milestone or any other release then it is likely their is\nnot a failing test case for it, as the 0.10 branch now only has 1\nfailing test case. Make our job easier and provide a failing test case\nfor your issues. Thanks.\n", - "date": "2008-03-18 00:00:00" + "contents": "**NOTE** This blog entry relates to an outdated Doctrine 2 Alpha\n: version. Please see the documentation for the most up to date\n behavior. A test-implementation for this behavior is on\n github.com/beberlei/DoctrineExtensions\n\nMy previous post on behaviors in Doctrine 2 generated quite some\ndiscussion about the difference on behaviours that are re-usable across\nmodels and the trivial specific implementations I have shown.\n\nIn this post I will show a re-usable versionable (audit-log) behavior.\nFor this we will need the following ingredients:\n\n- An interface `DoctrineExtensions\\Versionable\\Versionable`\n- A class `DoctrineExtensions\\Versionable\\VersionManager`\n- An event listener `DoctrineExtensions\\Versionable\\VersionListener`\n- A generic entity `DoctrineExtensions\\Versionable\\ResourceVersion`\n\n > **NOTE** The Event API is currently in the central focus of our\n > efforts so the API shown here may change before the first Beta\n > release.\n\nThe workflow is as follows, each Entity that is supposed to be\nversionable has to implement the interface `Versionable` which looks\nlike this:\n\n~~~~ {.sourceCode .php}\nresourceName = get_class($resource);\n $this->resourceId = $resource->getResourceId();\n $this->versionedData = $resource->getVersionedData();\n $this->version = $resource->getCurrentVersion();\n $this->snapshotDate = new \\DateTime(\"now\");\n }\n\n // getters\n}\n~~~~\n\nNow we need to solve the problem of generating the `ResourceVersion`\nwhenever an `Versionable` entity is persisted or updated. This can be\ndone by using the [Doctrine EventManager\nAPI](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/events.html).\nWe will implement the `EventSubscriber` interface and hook into the\n\"onFlush\" event.\n\n~~~~ {.sourceCode .php}\ngetEntityManager();\n $uow = $em->getUnitOfWork();\n\n foreach ($uow->getScheduledEntityInsertions() AS $entity) {\n if ($entity instanceof Versionable) {\n $this->_makeSnapshot($entity);\n }\n }\n\n foreach ($uow->getScheduledEntityUpdates() AS $entity) {\n if ($entity instanceof Versionable) {\n $this->_makeSnapshot($entity);\n }\n }\n }\n\n private function _makeSnapshot($entity)\n {\n $resourceVersion = new ResourceVersion($entity);\n $class = $this->_em->getClassMetadata(get_class($resourceVersion));\n\n $this->_em->persist( $resourceVersion );\n $this->_em->getUnitOfWork()->computeChangeSet($class, $resourceVersion);\n }\n}\n~~~~\n\nHow do we hook this `VersionListener` into the EntityManager? We will\nwrap the VersionManager around it that handles registration and offers\nsome convenience methods to retrieve the versions of a resource.\n\n~~~~ {.sourceCode .php}\n_em = $em;\n $this->_em->getEventManager()->addEventSubscriber(\n new VersionListener()\n );\n }\n\n public function getVersions(Versionable $resource)\n {\n $query = $this->_em->createQuery(\n \"SELECT v FROM DoctrineExtensions\\Versionable\\ResourceVersion v INDEX BY v.version \".\n \"WHERE v.resourceName = ?1 AND v.resourceId = ?2 ORDER BY v.version DESC\");\n $query->setParameter(1, get_class($resource));\n $query->setParameter(2, $resource->getResourceId());\n\n return $query->getResult();\n }\n}\n~~~~\n\nNow using this to retrieve all the versions of a given entity that is\nversionable you would go and:\n\n~~~~ {.sourceCode .php}\ngetVersions($blogPost);\n\necho \"Old Title: \".$versions[$oldVersionNum]->getVersionedData('title');\n\n// Create a new version\n$blogPost->setTitle(\"My very new title\");\n$em->flush();\n~~~~\n\nThis is a first example of how to use the powerful Doctrine 2 Event API.\nIt is certainly not easy to use, as you need to understand the inner\nworkings of the UnitOfWork and the different steps it is in during the\nflush process. However you can generate huge benefits in reusability.\n\nThe versionable behaviour could be extended by the following features:\n\n- Create a new interface `Revertable` that extends `Versionable` and\n add a method `revert(Revertable $resource, $toVersion)` to the\n `VersionManager` that handles the retrieval, invoking of revert and\n such.\n- Create a new interface Diffable with a method diff(\\$aVersion,\n \\$bVersion) and new method diff(Diffable \\$resource, \\$aId, \\$bId)\n to the VersionManager that handles the delegation of a difference\n computation between two versions to the Diffable implementor.\n\nAnother approach would be not to save the complete state of an entity\nduring the flush operation, but only the fields that changed. This is\ngenerally called an *AuditLog*. We could add an `Auditable` interface\nmuch in the same manner than the `Versionable` and retrieve the\nChangeSets of each entity during flush using the following event\nlistener:\n\n~~~~ {.sourceCode .php}\ngetEntityManager();\n $uow = $em->getUnitOfWork();\n\n $changeDate = new DateTime(\"now\");\n $class = $em->getClassMetadata('DoctrineExtensions\\Auditable\\AuditEntry');\n\n foreach ($uow->getScheduledEntityUpdates() AS $entity) {\n if ($entity instanceof Auditable) {\n $changeSet = $uow->getEntityChangeSet($entity);\n\n foreach ($changeSet AS $field => $vals) {\n list($oldValue, $newValue) = $vals;\n $audit = new AuditEntry(\n $entity->getResourceName(),\n $entity->getId(),\n $oldValue,\n $newValue,\n $changeDate\n );\n\n $em->persist($audit);\n $em->getUnitOfWork()\n ->computeChangeSet($class, $audit);\n }\n }\n }\n }\n}\n~~~~\n\nThis approach can also be re-used or combined with several similiar\nbehaviours, like Taggable, Blamable, Commentable.\n", + "date": "2010-02-24 00:00:00" }, { - "url": "/2010/03/15/doctrine-2-at-confoo-2010.html", - "slug": "doctrine-2-at-confoo-2010", - "title": "Doctrine 2 at ConFoo 2010", + "url": "/2009/03/16/doctrine-1-1-released.html", + "slug": "doctrine-1-1-released", + "title": "Doctrine 1.1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "This past week I was lucky enough to get to travel to Montreal for the\nannual ConFoo conference, previously known as PHP Quebec. I presented on\nthe latest and greatest version of Doctrine, 2.0 for the PHP Trac. You\ncan find the slides on SlideShare.com\n[here](https://www.slideshare.net/jwage/doctrine-2-enterprise-persistence-layer-for-php-3402070)\nor view the presentation embedded below:\n\n
    \n\nDoctrine 2 - Enterprise Persistence Layer For PHP\n\n\n\n
    \n\nView more presentations from Jonathan Wage.\n\n
    \n\n\n", - "date": "2010-03-15 00:00:00" + "contents": "Today I am very pleased to bring news to you that Doctrine 1.1.0 stable\nis available. This is a significant release for the 1.x code base. It\ncontains dozens of new features and bug fixes. The 1.1 test suite now\nhas **0** fails in the test suite compared to 1.0 having **12**! We\nrecommend you upgrade your projects.\n\n> **NOTE** Some have asked whether 1.1 has all the same bug fixes that\n> are in 1.0. The answer is yes. We are committed to maintaining both\n> branches and will continue committing fixes to all branches when it\n> applies.\n\nHighlights\n==========\n\n- New hydration methods\n- New migration diff tool\n- Better custom accessor/mutator support and integration with\n fromArray() and toArray()\n- Improvements to getModified(), toArray(), fromArray(),\n synchronizeWithArray()\n- Improvements to core behaviors Searchable, SoftDelete, Versionable\n- Dozens of small improvements and additions across the api\n- Plenty of other bug fixes\n\nYou can read a detailed list of all the changes made in 1.1\n[here](https://www.doctrine-project.org/upgrade/1_1) in the upgrade file.\n\nDownload\n========\n\nAs always you can get Doctrine on the\n[download](https://www.doctrine-project.org/download) page or via pear.\n\n $ pear install pear.phpdoctrine.org/Doctrine-1.1.0\n\nYou can also check it out via svn.\n\n $ svn co http://svn.doctrine-project.org/tags/1.1.0/lib doctrine\n\nIf you find any problems with this release please report it on our\n[trac](http://trac.doctrine-project.org) or if you have any questions\nyou can send it to one of our [mailing\nlists](https://www.doctrine-project.org/community).\n", + "date": "2009-03-16 00:00:00" }, { - "url": "/2016/02/16/doctrine-mongodb-odm-release-1.0.5.html", - "slug": "doctrine-mongodb-odm-release-1.0.5", - "title": "Doctrine MongoDB ODM release 1.0.5", - "authorName": "Maciej Malarz", - "authorEmail": "malarzm@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.0.5](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.5).\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#105-2016-02-16).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.5\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.5).\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0.5\"\n }\n}\n```\n\nDoctrine MongoDB ODM and PHP 7\n==============================\n\nWhile ODM still relies on legacy MongoDB driver ([i.e.\next-mongo](https://pecl.php.net/package/mongo)) and no dates are\nscheduled for the 2.0 release, it is possible to run ODM's development\nbranch with the new MongoDB driver (i.e.\n[ext-mongodb](https://secure.php.net/manual/en/mongodb.installation.php)) on\nPHP 7 and HHVM! [(see: this\ntweet)](https://twitter.com/alcaeus/status/697659616172359680) The new\ndriver should be properly supported once we release versions 1.1 and 1.3\nof the ODM and underlying [Doctrine\nMongoDB](https://github.com/doctrine/mongodb) library, respectively.\nThis is all possible thanks to our Andreas Braun's\n([@alcaeus](https://twitter.com/alcaeus)) work on\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter)\nwhich implements `ext-mongo's` API atop `ext-mongodb` and\n[mongodb-php-library](https://github.com/mongodb/mongo-php-library).\"\nIf you can't wait to give ODM a test flight on PHP 7, now is the time!\nAlso, if you happen to meet Andreas be sure to buy him a beer :)\n", - "date": "2016-02-16 00:00:00" + "url": "/2019/01/09/migrations-2-0-stable.html", + "slug": "migrations-2-0-stable", + "title": "Migrations 2.0 Stable Released", + "authorName": "Jonathan H. Wage", + "authorEmail": "jonwage@gmail.com", + "contents": "Today we are very excited to announce the stable release of Doctrine Migrations 2.0.\nAlmost 10 years ago on Mar 23, 2010, the [first commit](https://github.com/doctrine/migrations/commit/8f198ef623051a5eeb21d93bfc7a8a49efbe9d63) of the 1.0 codebase was created.\nThe history of the Doctrine Migrations project actually even goes back further to the\ndays of Doctrine1 ORM but this was before the days of GitHub, Composer, etc and I think\nsome of that history has been lost. It is amazing to look back over the last decade at\nhow much the PHP eco-system has changed. It makes us appreciate all the great tools we\nhave, even with all their flaws.\n\n## What is in 2.0?\n\nThe 2.0 release should be a relatively easy upgrade for most people. The primary goal of the\n2.0 release was to modernize the codebase according to Doctrine Coding Standards, PHPStan and\nall of the other standardized Doctrine project infrastructure that has evolved over the last\nfew years. This will ensure the project is alive and relevant for another decade.\n\nIn addition to upgrading the infrastructure of the project, it came with a few new nice features:\n\n - [724: Allow migrations in sub namespace to be loaded if the migration is in the namespace configured.](https://github.com/doctrine/migrations/pull/724) thanks to @jwage\n - [693: Allow Migration Classes to be in Multiple Namespaces](https://github.com/doctrine/migrations/pull/693) thanks to @chrisguitarguy and @liquorvicar\n - [683: Implement all or nothing transaction strategy for migrations.](https://github.com/doctrine/migrations/pull/683) thanks to @jwage and @stof\n\nYou can view the full changelog in the release on [GitHub](https://github.com/doctrine/migrations/releases/tag/v2.0.0).\n\nThis release contains **36** resolved issues with **71** pull requests coming from **18** different\ncontributors. Thanks to the following people for their help with this release:\n\n- [@jwage](https://github.com/jwage)\n- [@theofidry](https://github.com/theofidry)\n- [@localheinz](https://github.com/localheinz)\n- [@Majkl578](https://github.com/Majkl578)\n- [@greg0ire](https://github.com/greg0ire)\n- [@lcobucci](https://github.com/lcobucci)\n- [@emodric](https://github.com/emodric)\n- [@PowerKiKi](https://github.com/PowerKiKi)\n- [@MasterOdin](https://github.com/MasterOdin)\n- [@Piskvor](https://github.com/Piskvor)\n- [@aik099](https://github.com/aik099)\n- [@chrisguitarguy](https://github.com/chrisguitarguy)\n- [@stof](https://github.com/stof)\n- [@bostjan](https://github.com/bostjan)\n- [@weaverryan](https://github.com/weaverryan)\n- [@SlvrEagle23](https://github.com/SlvrEagle23)\n- [@jaikdean](https://github.com/jaikdean)\n- [@liquorvicar](https://github.com/liquorvicar)\n", + "date": "2019-01-09 00:00:00" }, { - "url": "/2009/08/24/doctrine-2-0-quality-assurance.html", - "slug": "doctrine-2-0-quality-assurance", - "title": "Doctrine 2.0 Quality Assurance", - "authorName": "guilhermeblanco", + "url": "/2010/07/22/mongodb-for-ecommerce.html", + "slug": "mongodb-for-ecommerce", + "title": "MongoDB ODM: MongoDB for eCommerce", + "authorName": "avalanche123", "authorEmail": "", - "contents": "Greetings folks!\n\nToday I'd like to talk about Quality Assurance in PHP projects.\nCurrently, PHP lacks good tools for QA, but thanks to a special PHP\nuser, [Sebastian Bergmann](https://sebastian-bergmann.de/) , this is\nchanging gradually. If you don't know him, you can visit his blog and\ncheck about projects he's on. For lazy people, he's the author of\n[PHPUnit](https://www.phpunit.de) , a de-facto Unit Test suite in PHP.\n\nDoctrine 2.0 uses PHPUnit as our Unit Test suite. It relies on PEAR to\nbe installed, but you can also install it via SVN.\n\nThe main initiative of QA in PHP projects is the website\n[[http://qualityassuranceinphpprojects.com](http://qualityassuranceinphpprojects.com)](http://qualityassuranceinphpprojects.com).\nThere you can find available tools to measure, for example, how complex\nis your project and possible semantical issues.\n\nI have applied some of these tests against [Doctrine\n2.0](http://trac.doctrine-project.org/browser/trunk) to see how complex\nit is and if it can be optimized more. The first test I run is a trace\nabout how complex our code base is. The tool I used is\n[phploc](https://github.com/sebastianbergmann/phploc/tree/master). Check\nout the results:\n\n [bash]\n MacBlanco:bin guilhermeblanco$ ./phploc /Users/guilhermeblanco/www/doctrine/trunk/lib\n phploc 1.1.1 by Sebastian Bergmann.\n\n Directories: 31\n Files: 210\n\n Lines of Code (LOC): 38826\n Comment Lines of Code (CLOC): 17004\n Non-Comment Lines of Code (NCLOC): 21822\n\n Interfaces: 11\n Classes: 229\n Non-Static Methods: 1699\n Static Methods: 106\n Functions: 95\n\nOf course it still misses a couple of code to implement (CLI Tasks,\nLocking strategies, ID Generators), but now we know how big Doctrine 2.0\nis. Then, I decided to check duplicated code (possible optimization\nlocations). The tool\n[phpcpd](https://github.com/sebastianbergmann/phpcpd/tree/master) gave me\nthis feedback:\n\n [bash]\n MacBlanco:bin guilhermeblanco$ ./phpcpd /Users/guilhermeblanco/www/doctrine/trunk/lib\n phpcpd 1.1.1 by Sebastian Bergmann.\n\n Found 1 exact clones with 15 duplicated lines in 2 files:\n\n - ./Doctrine/DBAL/Platforms/MsSqlPlatform.php:126-141\n ./Doctrine/DBAL/Platforms/MySqlPlatform.php:633-648\n\n 0.04% duplicated lines out of 38826 total lines of code.\n\nI asked myself: It must be a method that could be moved to\n`AbstractPlatform.php`! So I opened both files and... no! It's a piece\nof code that cannot be optimized. So, consider Doctrine 2.0 extremely\noptimized, because there is no duplicated code internally!\n\nNow Unit Test suite. Doctrine 2.0 has a steadily growing set of Unit\nTests, and we are regularly analyzing the code coverage analysis to find\nparts that need more tests. Here is how such a coverage report is\ngenerated:\n\n [bash]\n MacBlanco:tests guilhermeblanco$ phpunit --coverage-html=./_coverage Doctrine_Tests_AllTests\n PHPUnit 3.3.17 by Sebastian Bergmann.\n\n .....................................S.S.................... 60 / 562\n ............................................................ 120 / 562\n .....................................................SSSSSSS 180 / 562\n SSSSSSSSSSSSSSSS............................................ 240 / 562\n ............................................................ 300 / 562\n ............................................................ 360 / 562\n ............................................................ 420 / 562\n ............................................................ 480 / 562\n ............................................................ 540 / 562\n ...SS.................\n\n Time: 18 seconds\n\n OK, but incomplete or skipped tests!\n Tests: 562, Assertions: 1420, Skipped: 27.\n\n Generating code coverage report, this may take a moment.\n\nThe generated coverage can be seen in the following picture.\n\nFinally, some metrics are good to inspect how stable is our code. I\napplied [pdepend](http://pdepend.org) , and it gave me these results:\n\n![jdepend chart\n](https://www.doctrine-project.org/blog-images/doctrine-2-0-qa/picture2.png)\n\n![pyramid overview\n](https://www.doctrine-project.org/blog-images/doctrine-2-0-qa/picture3.png)\n\nThe command I ran was:\n\n [bash]\n MacBlanco:bin guilhermeblanco$ ./pdepend --summary-xml=/Users/guilhermeblanco/summary.xml --jdepend-chart=/Users/guilhermeblanco/jdepend.svg --overview-pyramid=/Users/guilhermeblanco/pyramid.svg /Users/guilhermeblanco/www/doctrine/trunk/lib\n\nHere is the generated summary. If you have any other ideas/tools that we\nshould apply in our codebase to generate other metrics, please drop us a\nmessage!\n", - "date": "2009-08-24 00:00:00" + "contents": "
    \n
    \n

    \n\nHi, my name is Bulat S. (my last name won't make it any easier, but in\ncase you were wondering it's Shakirzyanov), I joined OpenSky in August\n2009 (It's been almost a year since then, but it feels like ages). My\nofficial title in the company is Hacker, which also says a lot about me\n(that I don't like corporate titles for one).\n\n

    \n

    \n\nThe last 6 weeks were truly amazing for me. Not only was I able to learn\na new technology, I also managed to contribute back to the community.\nBut let's go over everything step by step.\n\n

    \n
    \n
    \n\nBuilding an eCommerce system is not easy, and building a platform is\neven harder. When it comes to data in eCommerce, there is nothing\ndefinite, no real structure you could stick to, and no final\nrequirements. Something as obvious as the \"item you add to cart\" could\nbe overly complicated when it comes to data.\n\nThere is a good example of how to model the database for handling\nvariable product attributes; [Magento](https://magento.com/)\nis one of the most advanced open source eCommerce solutions available\ntoday. It uses [EAV (Entity Attribute\nValue)](https://en.wikipedia.org/wiki/Entity-attribute-value_model) ,\nwhich solves the problem of variable attributes by sacrificing database\nlevel integrity and application performance. The amount of queries you\nneed to perform to select one entity will grow with every attribute data\ntype you introduce; however, it still is a viable solution.\n\nA document store on the other hand lets you save two absolutely\ndifferent documents in the same collection. Because of its schema-less\nstructure it is also possible to add or remove a document's properties\nafter saving - it's a database that adapts to your data structure on the\nfly.\n\nAt [OpenSky](https://www.theopenskyproject.com/) , we decided to use\n[MongoDB](https://www.mongodb.com/) for storage of products and use\nrelational databases for order-related data since\n[MongoDB](https://www.mongodb.com/) doesn't support transactions.\n\nSo what is the benefit of using [MongoDB](https://www.mongodb.com/) over\nMySQL, or any other RDBMS, for storing variable attribute data.\nPerformance. This is the pseudo-query we would have to write to select\none product, with id 1, and all of its attributes in a typical [EAV\nmodel](https://en.wikipedia.org/wiki/Entity-attribute-value_model):\n\n
    \n\n
    \n\n [txt]\n SELECT * FROM `product` WHERE id = 1;\n SELECT * FROM `product_attributes` = WHERE product_id = 1;\n SELECT * FROM `product_values_int` WHERE product_id = 1;\n SELECT * FROM `product_values_varchar` WHERE product_id = 1;\n SELECT * FROM `product_values_datetime` WHERE product_id = 1;\n SELECT * FROM `product_values_text` WHERE product_id = 1;\n SELECT * FROM `product_values_float` WHERE product_id = 1;\n\nAfter the above queries are run, there would be a huge step of data\nhydration into the product object, which\n[Magento](https://magento.com/) handles quite well, albeit\nslowly. Contrast this with what we would do in\n[MongoDB](https://www.mongodb.com/):\n\n [javascript]\n db.products.find({'_id': '1'});\n\nNot only is the selection simpler, but it also returns a JSON object,\nwhich can easily be hydrated into a native PHP object. And here is how a\nconfigurable product could be represented in\n[MongoDB](https://www.mongodb.com/):\n\n [javascript]\n {\n \"_id\": ObjectId(\"4bffd798fdc2120019040000\")\n \"name\": \"Configurable T-Shirt\"\n \"options\": [\n {\n \"name\": \"small\",\n \"price\": 12.99\n },\n {\n \"name\": \"medium\",\n \"price\": 15.99\n },\n {\n \"name\": \"large\",\n \"price\": 17.99\n }\n ]\n }\n\n **NOTE** There is no need for joins, as product options are a\n collection of embedded objects. Object references (akin foreign key\n relationships in RDBMSs) are also possible, but they are generally\n only necessary if you need to access the object independently. For\n instance, if I needed a page to list all product options across all\n products, I would probably put options into their own collection\n and reference them from the product document.\n\nOf course, there are [plenty of ORM\nlibraries](https://docs.mongodb.com/ecosystem/drivers/php/#PHPLanguageCenter-LibraryandFrameworkTools)\nfor [MongoDB](https://www.mongodb.com/) , which were either\nhard-to-extract parts of frameworks, not quite ORMs or used the\n[ActiveRecord\npattern](https://martinfowler.com/eaaCatalog/activeRecord.html) (which\nafter using\n[DataMapper](https://martinfowler.com/eaaCatalog/dataMapper.html) for\nquite some time, I wouldn't want to go back to). The very same day I\nstarted writing an object document mapper (ODM) to use at\n[OpenSky](https://www.theopenskyproject.com/) , [Jon\nWage](https://www.twitter.com/jwage) (developer for the Doctrine project)\nreleased a proof-of-concept [MongoDB\nODM](https://www.doctrine-project.org/projects/mongodb_odm) , which you\ncan [find on github](https://github.com/doctrine/mongodb-odm). After\ncontacting Jon and giving his library a couple of tries and\n[tests](https://www.phpunit.de/) , I decided to use it for\n[OpenSky](https://www.theopenskyproject.com/)'s products domain layer.\n\nI started to submit patches and [unit tests](https://www.phpunit.de/) to\nthe project and soon joined the core team for [MongoDB\nODM](https://www.doctrine-project.org/projects/mongodb_odm). Today, we\nare past first alpha release of the project, and this is my first post\non the Doctrine blog (yay!).\n\nGetting back to our example, this is how the product and embedded option\nclasses for the aforementioned data structure could look:\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setName($name)\n {\n $this->name = $name;\n }\n\n public function getName()\n {\n return $this->name;\n }\n\n public function addOption(Product\\Option $option)\n {\n $this->options[] = $option\n }\n\n //...\n}\n~~~~\n\nAnd the Product class:\n\n~~~~ {.sourceCode .php}\nname = $name;\n }\n\n public function getName()\n {\n return $this->name;\n }\n\n public function setPrice($price)\n {\n $this->price = $price;\n }\n\n public function getPrice()\n {\n return $this->price;\n }\n\n //...\n}\n~~~~\n\nUsing the DocumentManager instance, we could easily persist the product\nwith:\n\n~~~~ {.sourceCode .php}\nsetName('Configurable T-Shirt');\n\n$small = new Product\\Option();\n$small->setName('small');\n$small->setPrice(12.99);\n$product->addOption($small);\n\n$medium = new Product\\Option();\n$medium->setName('medium');\n$medium->setPrice(15.99);\n$product->addOption($medium);\n\n$large = new Product\\Option();\n$large->setName('large');\n$large->setPrice(15.99);\n$product->addOption($large);\n\n$documentManager->persist($product);\n$documentManager->flush();\n\n**NOTE** MongoDB ODM intelligently uses\n`atomic operators `_\nto update data, which makes it really fast. It also supports\ninheritance (collection-per-class and single-collection\ninheritances), which is similar to table inheritance design\npatterns for ORMs. Check out the official Mongo ODM\n`project documentation `_\nfor more information and examples. Complete instructions on how to\nsetup your DocumentManager instance\n`can be found here `_.\n~~~~\n\nThe above code would store the product object as a document in\n[MongoDB](https://www.mongodb.com/).\n\nThere is much more to talk about in terms or technologies, techniques\nand practices we adopt and use at\n[OpenSky](https://www.theopenskyproject.com/) , so this post is\ndefinitely not the last one.\n", + "date": "2010-07-22 00:00:00" }, { - "url": "/2008/03/04/doctrine-cheat-sheet.html", - "slug": "doctrine-cheat-sheet", - "title": "Doctrine Cheat Sheet", + "url": "/2009/06/16/doctrine-changing-homes.html", + "slug": "doctrine-changing-homes", + "title": "Doctrine changing homes", "authorName": "jwage", "authorEmail": "", - "contents": "I have put together a cheat sheet for all the day to day usage syntaxes\nof Doctrine. The cheat sheet can be found here. This is the first draft\nof the document so any comments and feedback would be very useful.\n", - "date": "2008-03-04 00:00:00" + "contents": "You all may have noticed the stability of the website going up and down\nrecently. Up until now we have been lucky to have our good friend Ian\nChristian(pookey in IRC) host all the Doctrine infrastructure for over 3\nwhole years! With Doctrine continuing to grow and move forward, it is\ntime to move on to greener pastures to a dedicated home.\n\nTonight we will try to begin the migration to our new home. Hopefully\nthis transition will be fairly seamless but we expect at least a little\ndowntime. We are moving the website, Trac and SVN all at once to avoid\nthe migration lasting over a long period of time. Thanks for your\npatience while we work through these issues.\n", + "date": "2009-06-16 00:00:00" }, { - "url": "/2011/03/06/doctrine-oxm-intro.html", - "slug": "doctrine-oxm-intro", - "title": "A Doctrine OXM Introduction", - "authorName": "richardfullmer", + "url": "/2010/03/15/doctrine-2-at-confoo-2010.html", + "slug": "doctrine-2-at-confoo-2010", + "title": "Doctrine 2 at ConFoo 2010", + "authorName": "jwage", "authorEmail": "", - "contents": "Greetings programmers!\n\nSome of you may have noticed a new project being hosted by Doctrine's\n[github](https://github.com/doctrine) named [Object XML\nMapper(OXM)](https://github.com/doctrine/oxm). The OXM is the newest\nmember of the Doctrine family, and serves as persistence and marshalling\nframework for PHP objects to XML, and back again. I'd like to take a\nmoment to introduce myself, the company I work for, and the pain points\nbehind the project's inception.\n\nWe at [Opensoft](http://www.opensoftdev.com/) have always been fans of\nopen source software, and love to give back to the community. I recently\nwas required to implement some vendor specific XML within a corporate\nPHP application. The XML itself had the following requirements and pain\npoints:\n\n- 900+ page specification... over 600 unique XML elements.\n- The XML is used as a workflow. Lots of pull xml, alter it slightly,\n and save it back\n- The XML must be available to the end user upon request.\n- Some of the XML had to be able to be sent via POST to other\n services, and parse responses back\n\nWorking with objects is so much better than working with such complex\nXML.\n\nAs a PHP enthusiest and fan of Doctrine, I created a small project that\nwas capable of marshalling, unmarshalling, and persisting PHP objects to\nXML using [Doctrine Common](https://github.com/doctrine/common) package\nas a base, and many ideas from the ORM, and ODM projects. The Java\n[Castor](http://www.castor.org) project also brought a lot of ideas to\ngive a high degree of control to the developer during the\n(un)marshalling process. ClassMetadata is collected for each @XmlEntity\nclass and used to perform the mapping from PHP objects to native XML.\n\nRight now, the API is still quite unstable, but we're working to change\nthat. Currently Doctrine users should find a lot of familiarity between\nOXM and other Doctrine initiatives. We've tried to stay as close to the\nDoctrine ways of doing things as possible. If you feel like this project\ncould help you make working with XML better, please send me a line, fork\nthe project, and send some pull requests!\n\nEnjoy!\n", - "date": "2011-03-06 00:00:00" + "contents": "This past week I was lucky enough to get to travel to Montreal for the\nannual ConFoo conference, previously known as PHP Quebec. I presented on\nthe latest and greatest version of Doctrine, 2.0 for the PHP Trac. You\ncan find the slides on SlideShare.com\n[here](https://www.slideshare.net/jwage/doctrine-2-enterprise-persistence-layer-for-php-3402070)\nor view the presentation embedded below:\n\n
    \n\nDoctrine 2 - Enterprise Persistence Layer For PHP\n\n\n\n
    \n\nView more presentations from Jonathan Wage.\n\n
    \n\n\n", + "date": "2010-03-15 00:00:00" }, { - "url": "/2012/01/03/doctrine2-2-beta2.html", - "slug": "doctrine2-2-beta2", - "title": "Doctrine 2.2 Beta 2", - "authorName": "Benjamin Eberlei", + "url": "/2009/06/19/using-views-with-doctrine.html", + "slug": "using-views-with-doctrine", + "title": "Using Views with Doctrine", + "authorName": "jwage", "authorEmail": "", - "contents": "Sadly we did not manage to hold our schedule with a 2.2 release in 2011,\nwe had to do some larger changes before the final release. This means we\nare releasing another Beta of Doctrine DBAL and ORM. The final release\nis rescheduled to 19th January.\n\n- DBAL Changelog\n \\<[https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10189](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10189)\\>\\`\\_\n- ORM Changelog\n \\<[https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10188](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10188)\\>\\`\\_\n\nPlease try and test this code with your production applications and\nreport any backwards compatibility breaks to the [Bug\nTracker](https://www.doctrine-project.org/jira) or the Mailing List. See\nthe\n[UPGRADE\\_2\\_2](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-22)\nfile to see backwards incompatible changes.\n\nYou can install the Beta through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) by download or through\n[Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.0-BETA2\" }\n>\n> }\n", - "date": "2012-01-03 00:00:00" + "contents": "I've seen a few requests recently on how you can use a view with\nDoctrine. This is very easy and I've also learned a few neat tricks that\nyou can do to accomplish abnormal things while writing this article.\n\nCreating the View\n=================\n\nFirst I will demonstrate how you can turn a normal `Doctrine_Query`\ninstance in to a view. This is just as easy as creating an instance of\n`Doctrine_View` and setting a reference between the query and the view.\n\n~~~~ {.sourceCode .php}\ncreateQuery('p')\n ->select('p.*, COUNT(c.id) as num_comments')\n ->leftJoin('p.Comments c')\n ->orderBy('p.id DESC')\n ->groupBy('p.id');\n\n$view = new Doctrine_View($q, 'test_view');\n~~~~\n\nTo create the view in the database you can call the\n`Doctrine_View::create()` method.\n\n~~~~ {.sourceCode .php}\ncreate();\n\n**TIP** You can drop the view just the same by calling the\n``Doctrine_View::drop()`` method.\n~~~~\n\n~~~~ {.sourceCode .php}\ndrop();\n~~~~\n\nExecuting the View\n==================\n\nNow when the `Doctrine_Query` instance above is executed, it will\nexecute the SQL for the view instead of parsing the DQL, generating the\nSQL and executing it.\n\n~~~~ {.sourceCode .php}\nexecute();\n~~~~\n\nExecuting the above would execute the following SQL query.\n\n [sql]\n SELECT * FROM test_view\n\nTweaking the View\n=================\n\nNow here is where things get interesting. Say we wanted to take the SQL\nthat the above `Doctrine_Query` generates, and modify it slightly with\nsome custom SQL that otherwise could not make it through the DQL parser.\n\nWe can get the SQL from the query, modify it, then manually create the\nview in our database.\n\n~~~~ {.sourceCode .php}\ngetSql();\n~~~~\n\nThe above would output the following SQL.\n\n [sql]\n SELECT b.id AS b__id, b.title AS b__title, b.excerpt AS b__excerpt, b.body AS b__body, COUNT(c.id) AS c__0 FROM blog_post b LEFT JOIN comment c ON b.id = c.blog_post_id GROUP BY b.id ORDER BY b.id DESC\n\nNow lets say we wanted to add something to the SQL that is proprietary\nto your DBMS, or is some complex SQL that won't make it through the DQL\nparser. We can modify the above SQL then re-create the view with that\nSQL manually. Let's make a simple change and add the `USE INDEX` keyword\nto force MySQL to use a certain index for the query.\n\n> **NOTE** The example I have chosen is a very simple one only to\n> demonstrate the capabilities. This example may not be a real world\n> scenario for you. The only purpose of me showing this is to open a\n> door for you to solve potential problems for you in the future.\n\n [sql]\n SELECT b.id AS b__id, b.title AS b__title, b.excerpt AS b__excerpt, b.body AS b__body, COUNT(c.id) AS c__0 FROM blog_post b LEFT JOIN comment c USE INDEX (blog_post_id_idx) ON b.id = c.blog_post_id GROUP BY b.id ORDER BY b.id DESC;\n\nNow lets take this query and manually create the view with it.\n\n> **NOTE** We must first drop the view as we already created it once in\n> a previous step. This is just as easy as issuing the DROP VIEW command\n> to MySQL. Afterward, re-create the view again with the modified SQL.\n\n [sql]\n DROP VIEW test_view;\n CREATE VIEW test_view AS SELECT b.id AS b__id, b.title AS b__title, b.excerpt AS b__excerpt, b.body AS b__body, COUNT(c.id) AS c__0 FROM blog_post b LEFT JOIN comment c USE INDEX (blog_post_id_idx) ON b.id = c.blog_post_id GROUP BY b.id ORDER BY b.id DESC;\n\nNow when we execute the code in the first part of this article it will\nexecute the view which contains the customized SQL.\n\n~~~~ {.sourceCode .php}\nexecute();\n\n**CAUTION** If you customize the SQL, it must maintain the same\nstructure, aliases, etc. in order for Doctrine to be able to\nhydrate the data in to the object graph.\n~~~~\n\nThat is it! Now you can easily use some custom SQL in your queries as\nviews. The benefit of using a view is that it is easily reusable and it\nis much faster than executing a normal query in most cases.\n", + "date": "2009-06-19 00:00:00" }, { - "url": "/2015/03/22/migrations-1-0-0-alpha-3.html", - "slug": "migrations-1-0-0-alpha-3", - "title": "Doctrine Migrations 1.0.0-alpha3 Pre-Release", - "authorName": "Michael Simonson", + "url": "/2009/03/02/doctrine-1-0-8-and-1-1-0-rc2-released.html", + "slug": "doctrine-1-0-8-and-1-1-0-rc2-released", + "title": "Doctrine 1.0.8 and 1.1.0-RC2 Released", + "authorName": "jwage", "authorEmail": "", - "contents": "We are happy to announce the immediate availability Doctrine Migrations\n`1.0.0-alpha3`.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the migrations.\n\nWe encourage all of our users to help us by trying out this alpha\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nWhat is new in 1.0.x?\n=====================\n\nYou can find the current state of the 1.0.0 changes overview in [the\nupgrade\nnotes](https://github.com/doctrine/migrations/blob/master/UPGRADE-1.0.MD).\n\nPlease report any issues you may have with the update on\n[Github](https://github.com/doctrine/migrations/issues).\n", - "date": "2015-03-22 00:00:00" + "contents": "Today I am happy to tell you that we have two new versions of Doctrine\navailable for you to use. The first is the monthly maintenance release\nfor Doctrine 1.0 and the second is another release candidate for the\nnewest major version of Doctrine, 1.1. As always you can grab them from\nthe [downloads](https://www.doctrine-project.org/download) page.\n\n1.0.8 Highlights\n================\n\n- Backported a few fixes from 1.1\n- Several fixes and optimizations to Doctrine\\_Query::count()\n- Dozens and dozens of other small fixes\n\nYou can read the full change log for the 1.0.8 release\n[here](https://www.doctrine-project.org/change_log/1_0_8).\n\n1.1.0-RC2 Highlights\n====================\n\n- Fixed issue with migration diff not paying attention to table\n options\n- Made the SoftDelete behavior backwards compatible with 1.0\n- Several fixes and optimizations to Doctrine\\_Query::count()\n- Fixed duplicated params when using LIMIT/OFFSET under MySQL\n- Fixed issue with new utf8 search analyzer\n- Fixed issue with prefixes causing invalid results in the migration\n diff tool\n- Fixed issues that arrise when re-using query objects with DQL\n callbacks enabled.\n\nYou can read the full change log for the 1.1.0-RC2 release\n[here](https://www.doctrine-project.org/change_log/1_1_0_RC2).\n\n
    \n\nI realize we are a little late on the 1.1.0 release but we had some\nregressions reported that were a bit tricky and time consuming to fix.\nAll is well now and we were able to make hopefully the last release\ncandidate for the 1.1 version of Doctrine.\n", + "date": "2009-03-02 00:00:00" }, { - "url": "/2009/11/18/php-benchmarking-mythbusters.html", - "slug": "php-benchmarking-mythbusters", - "title": "PHP Benchmarking Mythbusters", - "authorName": "romanb", + "url": "/2009/08/04/help-write-tests-for-new-dql-parser.html", + "slug": "help-write-tests-for-new-dql-parser", + "title": "Help write tests for new DQL Parser", + "authorName": "guilhermeblanco", "authorEmail": "", - "contents": "First of, this blog post sucks. I thought I would never write such a\nsenseless apples and oranges comparison with artificial and meaningless\nbenchmarks, but I was just a bit astonished by the results that I would\nlike to share.\n\nI use object-relational mapping tools in many different languages, from\nJava to C\\# to PHP. One of the many supposedly lightweight alternatives\nin PHP to Doctrine is Outlet. After stumbling upon this comment on a\n[stackoverflow.com\npost](http://stackoverflow.com/questions/185358/simple-php-orm):\n**\"Gotta second Outlet. Doctrine is comically bloated - it is WAY too\nbig to be a sensible choice for anything but the lightest of server\nloads.\"** I thought I take a look at Outlet. This ORM seems to consist\nof only 9 classes! It can't get any more lightweight right? I assumed it\nwould blow Doctrine out of the water performance-wise in all situations.\n\nSo I downloaded Outlet 0.7 and created a simple test database with just\n1 table. Then I wrote a small script that bootstraps Outlet, inserts 500\nobjects into the database and reads them out afterwards (Yes, it's\nstupid, just like most other artificial benchmarks).\n\nEnvironment is PHP 5.3.0 with APC.\n\n~~~~ {.sourceCode .php}\n array(\n 'dsn' => 'mysql:host=localhost;dbname=outletbenchmark',\n 'username' => $mysqlUsername,\n 'password' => $mysqlPassword,\n 'dialect' => 'mysql'\n ),\n 'classes' => array(\n 'Bug' => array(\n 'table' => 'bugs',\n 'props' => array(\n 'ID' => array('ID', 'int', array('pk' => true, 'autoIncrement' => true)),\n 'Title' => array('Title', 'varchar'),\n 'Description' => array('Description', 'varchar')\n )\n )\n )\n);\nOutlet::init($config);\n$outlet = Outlet::getInstance();\n$outlet->createProxies();\n\n$s = microtime(true);\n$outlet->getConnection()->beginTransaction();\nfor ($i = 0; $i < 500; ++$i) {\n $bug = new Bug;\n $bug->Title = 'This is a test bug';\n $bug->Description = 'Hey there!';\n\n $outlet->save($bug);\n}\n$outlet->getConnection()->commit();\n\n$e = microtime(true);\necho \"\\nInsert:\" . ($e - $s) . \"\\n\";\n\n$outlet->clearCache();\n\n$s = microtime(true);\n$bugs = $outlet->select('Bug');\n$e = microtime(true);\n\n$outlet->clearCache();\n\necho \"\\nQuery:\" . ($e - $s) . \"\\n\";\n\necho \"\\n\" . (memory_get_usage() / 1024) . ' KB ' . PHP_EOL;\n\n**CAUTION** First off, ini\\_set('error\\_reporting', E\\_ALL); was\nnecessary to silence the following E\\_STRICT warnings coming from\nOutlet:\n\n::\n\n Strict Standards: Non-static method OutletMapper::get() should not be called statically,\n assuming $this from incompatible context in /Users/robo/dev/php/outlet/outlet-0.7/classes\n /outlet/Outlet.php on line 184\n\n Strict Standards: Only variables should be passed by reference in /Users/robo/dev\n /php/outlet/outlet-0.7/classes/outlet/OutletMapper.php on line 546\n\nDoes not really look good (and does not speak for Outlet very\nwell), but anyway.\n~~~~\n\nI did the same for Doctrine 2.0, *without setting up a metadata or query\ncache*.\n\n~~~~ {.sourceCode .php}\nsetBasePath(__DIR__ . '/doctrine');\n$classLoader->register();\n\n$config = new \\Doctrine\\ORM\\Configuration;\n\n$config->setProxyDir(__DIR__ . '/Proxies');\n$config->setProxyNamespace('Proxies');\n$connectionOptions = array(\n 'driver' => 'pdo_mysql',\n 'user' => $mysqlUsername,\n 'password' => $mysqlPassword,\n 'host' => 'localhost',\n 'dbname' => 'doctrine2benchmark'\n);\n\n$em = \\Doctrine\\ORM\\EntityManager::create($connectionOptions, $config);\n\n$s = microtime(true);\nfor ($i = 0; $i < 500; ++$i) {\n $bug = new Bug;\n $bug->Title = 'BBug';\n $bug->Description = 'Hello there!';\n\n $em->persist($bug);\n}\n$em->flush();\n\n$e = microtime(true);\necho \"\\nInsert:\" . ($e - $s) . \"\\n\";\n\n$em->clear();\n\n$s = microtime(true);\n$bugs = $em->getRepository('Bug')->findAll();\n$e = microtime(true);\n\n$em->clear();\n\necho \"\\nQuery:\" . ($e - $s) . \"\\n\";\n\necho \"\\n\" . (memory_get_usage() / 1024) . ' KB ' . PHP_EOL;\n~~~~\n\nHere are my results.\n\n1st Run\n=======\n\n| Measurement | | Outlet | | Doctrine | | ------------ | |\n----------------- | | ------------------- | | Insert Time | |\n0.23142600059509 | | 0.11601996421814 | | Query Time | |\n0.070523977279663 | | 0.025638818740845 | | Used Memory | | 644.5546875\nKB | | 1061.83203125 KB |\n\nNo, I did not swap the numbers, I promise. You see that the D2 version\nuses about 400KB more memory but the result of the timings are quite\nsurprising. Being curious I ran both scripts several times which means\nthe query section has to hydrate 500 objects more for each run.\n\n2nd Run\n=======\n\n**1st refresh (1000 objects)**\n\n| Measurement | | Outlet | | Doctrine | | ------------ | |\n----------------- | | ------------------- | | Insert Time | |\n0.26595592498779 | | 0.11661005020142 | | Query Time | |\n0.14437794685364 | | 0.052286863327026 | | Used Memory | | 875.0703125\nKB | | 1313.15625 KB |\n\n3rd Run\n=======\n\n**2nd refresh (1500 objects)**\n\n| Measurement | | Outlet | | Doctrine | | ------------ | |\n----------------- | | ------------------- | | Insert Time | |\n0.2314441204071 | | 0.11621117591858 | | Query Time | | 0.21359491348267\n| | 0.079329013824463 | | Used Memory | | 1139.5859375 KB | | 1541.59375\nKB |\n\nDid you expect these results? After all Doctrine is so bloated, right?\n(Doctrine 2 full package \\~250 classes) and Outlet is so lightweight\n(\\~9 classes)?\n\nBottom line:\n\n- The number of classes barely means anything. (Its probably a good\n criterion if you're short on disk space).\n- \"Lightweight\" is a buzzword and meaningless without a reference\n point.\n- Don't judge a library by its size and certainly dont try to draw\n conclusions from the size to the performance, or worse to the\n scalability. It just doesnt work.\n- *Artificial benchmarks suck.*\n- To all the folks hunting for everything lightweight and\n micro-benchmarking all day long: You're wasting your time (Just like\n I did with this stupid benchmark...).\n- Don't trust artificial benchmarks (Not even this one).\n\nPS: This is no post against Outlet, so if any Outlet guys or fans are\nreading this, please don't feel offended. Since I dont know Outlet well\nI'm sure I did a lot of things wrong but thats really not important\nhere. I am just making a stance against all the ridiculously stupid\nartificial benchmarks out there that try to make people believe Doctrine\nis slow and bloated. This post shows I can make it look the other way\naround easily. That just shows how meaningless these comparisons are.\n\n> **NOTE** All the code used to run these benchmarks can be downloaded\n> from\n> [here](https://www.doctrine-project.org/downloads/doctrine2outletbenchmark.zip).\n> It is a zip archive containing all the code you need to run the\n> benchmarks yourself.\n", - "date": "2009-11-18 00:00:00" + "contents": "As you all know, we're focusing most of our development time on Doctrine\n2.0 these days. To help speed things up, we would like to ask for help\nwriting tests from our users\n\nRecently I finished new [DQL parser for\n2.0](http://trac.doctrine-project.org/browser/trunk/lib/Doctrine/ORM/Query/Parser.php).\nMost of you may not be familiar with compiler's theory, but for those\nthat are, it's a top-down recursive descent parser for a context-free\ngrammar, usually known as LL(k).\n\nWe mapped the entire supported DQL into a document, which is an [EBNF\n(Extended Backus-Naur\nForm)](https://en.wikipedia.org/wiki/Extended_Backus\u2013Naur_Form) , which\nis a meta-syntax notation to express context-free grammars. This one is\nquite simple to be readable by humans. Yes, we are humans if you raise\nthe question! =)\n\nThe header of our EBNF describes some terms and conventions, but here is\na small subset of our grammar:\n\n FromClause ::= \"FROM\" IdentificationVariableDeclaration {\",\" IdentificationVariableDeclaration}*\n IdentificationVariableDeclaration ::= RangeVariableDeclaration [IndexBy] {JoinVariableDeclaration}*\n RangeVariableDeclaration ::= AbstractSchemaName [\"AS\"] AliasIdentificationVariable\n AbstractSchemaName ::= identifier\n AliasIdentificationVariable ::= identifier\n\nIt's not mentioned in this subset some pieces just for clarity.\nIdentifier is a terminal (no grammar rule to follow after that) and is a\nstring (ie. \"`name`\", \"`email`\").\n\nWhat does this subset do?\n=========================\n\nIt processes this pieces of DQL:\n\n FROM User u\n FROM User AS u, u.Group g\n\nHow does it do that?\n====================\n\nEach piece of DQL is converted to a series of tokens. Some tokens are\ndefined in our [Symbol Table](https://en.wikipedia.org/wiki/Symbol_table)\n, which is then validated and correctly typed into the right token type.\nFor example... when it finds the \"`FROM`\", it'll return for us\ninternally a token in an array format of:\n\n array(\n 'value' => 'FROM',\n 'type' => Lexer::T_FROM,\n 'position' => 0\n )\n\nValue is the actual string representation in DQL, type is the token type\nthat was brought by symbol table and position is the position of this\ntoken in the DQL string.\n\nThen token is validated in the DQL parser; if it is expected the\n`T_FROM`, just match and go to next token, if not raise a syntax error.\nImagine someone types this: \"`FROM User u, u.Group u`\". It is not valid\nDQL, because alias \"`u`\" is being used twice. That is the task of\nanother check, which inspects the requested DQL defined symbol table and\nreports for semantical errors. We removed the lexical errors since we\nuse them as identifiers, so there is no lexical error checks in DQL. Not\nthat it may open a hole in our structure, syntax and semantical checks\ndo all that we need.\n\nHow can I help?\n===============\n\nWe currently have a single test that checks for DQL recognition. We need\nto expand it to cover as much situations as possible. If you follow the\nEBNF grammar rules, you'll see that for example, IN condition supports\neither a series of Literals (which can be strings, booleans, etc), an\nInputParameter or a subselect. We need some people with free time to\ncover all possible situations; I mean that we needs something like these\nqueries:\n\n SELECT u FROM CmsUser u WHERE u.id IN (1, 2)\n\n SELECT u FROM CmsUser u WHERE u.id IN (?0)\n\n SELECT u FROM CmsUser u WHERE u.name IN ('guilhermeblanco', 'jwage', 'romanb')\n\n SELECT u FROM CmsUser u WHERE u.id IN (SELECT u2.id FROM CmsUser u2)\n\nBy doing (sometimes) stupid queries and complex queries, we cover all\npossibilities and then we can finally consider that we have a good\ncoverage in our DQL support.\n\nIf you load the\n[LanguageRecognitionTest](http://trac.doctrine-project.org/browser/trunk/tests/Doctrine/Tests/ORM/Query/LanguageRecognitionTest.php)\n, you'll find that we have already builtin 2 methods to help you\nasserting DQL support: `assertValidDql` and `assertInvalidDql`. Just\nfollow the EBNF, pick defined models under [Models/CMS\nfolder](http://trac.doctrine-project.org/browser/trunk/tests/Doctrine/Tests/Models/CMS)\nand start writing tests.\n\nRunning tests\n=============\n\nIt is not hard to execute new test suite. Once you have\n[PHPUnit](https://phpunit.de) and [XDebug](https://xdebug.org) installed,\ngo to tests folder of trunk, create the directory `_coverage` (CHMOD\n0777) and execute:\n\n phpunit --coverage-html=./_coverage Doctrine_Tests_AllTests\n\nThen you'll have coverage too, which means it'll be even better to see\nwhere it's missing tests in suite.\n\nOnce you write your tests, create a ticket in our trac and then upload\nthe patched file there. We'll review your tests and commit them.\n\nTo generate a patch file, just type:\n`svn diff > /path/to/path/file.diff` I hope you enjoy new structure and\ncontribute with lots of tests!\n", + "date": "2009-08-04 00:00:00" }, { "url": "/2016/06/19/data-fixtures-1-2-0.html", @@ -1053,355 +864,373 @@ "date": "2016-06-19 00:00:00" }, { - "url": "/2017/07/25/php-7.1-requirement-and-composer.html", - "slug": "php-7.1-requirement-and-composer", - "title": "PHP 7.1 requirement for Doctrine packages", - "authorName": "Andreas Braun", - "authorEmail": "alcaeus@alcaeus.org", - "contents": "A few days ago, the Doctrine team released new versions of many\npackages, dropping support for PHP 5.6 and 7.0, as well as HHVM. The\naffected packages are:\n\n- doctrine/common 2.8.0\n- doctrine/dbal 2.6.0\n- doctrine/collections 1.5.0\n- doctrine/inflector 1.2.0\n- doctrine/cache 1.7.0\n- doctrine/instantiator 1.1.0\n- doctrine/annotations 1.5.0\n\nSince many people are encountering issues with these updates, here are a\nfew suggestions to ensure your code continues working as usual.\n\nComposer version constraints\n============================\n\nChances are your version constraints in `composer.json` look something\nlike this:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"^2.5\"\n }\n}\n```\n\nThe `^2.5` constraint resolves to: `>= 2.5.0 && <= 2.999999.999999`.\nThis is intended: our projects all follow [Semantic\nVersioning](https://semver.org/), so you can safely install a new minor\nversion without having to fear BC breaks.\n\nWhen determining what version to install, composer employs a SAT solver\nto make sure all dependencies are fulfilled. In our example above, the\nSAT solver finds a version newer than 2.5 that satisfies all\nrequirements.\n\nMaking sure you get a compatible version\n========================================\n\nWhen you run `composer update` the next time, you'll automatically\nreceive updates for the packages mentioned above, provided that you are\nrunning on PHP 7.1. If you are running an older PHP version, composer\nwill not install a version that requires PHP 7.1, since its requirements\nare not fulfilled.\n\nA common problem is people running a newer PHP version on their\ndeveloper machines than on their production servers. In this case,\nrunning `composer update` on a developer machine (with PHP 7.1) might\nhappily pull in an update that simply won't work when deployed on a\nproduction machine running PHP 5.6.\n\nTo make sure this doesn't happen to you, there are two choices:\n\n- run `composer update` on a machine with the same PHP version that\n you use in production\n- use the\n [platform.config](https://getcomposer.org/doc/06-config.md#platform)\n config setting in `composer.json` to override your local PHP\n version.\n\nWhy dropping PHP support in a minor version is not a BC break\n=============================================================\n\nOne question we frequently hear is, \"isn't dropping support for a PHP\nversion a BC break\"? In a nutshell, no. A BC break happens when there is\nan incompatible change that your package manager can't handle. For\nexample, changing a method signature in a minor version is a no-go,\nsince the composer version constraints mentioned above assume any minor\nupgrade can safely be used.\n\nHowever, when we drop support for an older version of PHP, composer will\nnot consider the new version if the PHP version requirement is no longer\nfulfilled. Thus, you won't end up with a fatal error due to a wrong\nmethod signature, you just won't get the new version.\n", - "date": "2017-07-25 00:00:00" - }, - { - "url": "/2021/12/04/mongodb-odm-2.3.html", - "slug": "mongodb-odm-2.3", - "title": "New Release: Doctrine MongoDB ODM 2.3 with Attributes, JSON Schema Validation, and more", - "authorName": "Ion Bazan", - "authorEmail": "ion.bazan@gmail.com", - "contents": "We have released a new minor version 2.3 of Doctrine MongoDB ODM, the first version\nwith support for using PHP 8 Attributes as a new driver for mapping documents\nand several other changes. [See all changes and contributors in the\nChangelog](https://github.com/doctrine/mongodb-odm/releases/tag/2.3.0) on GitHub.\n\n## Attributes Mapping Driver\n\nThe following code example shows many of the mappings that are re-using\nthe annotation classes for familiarity:\n\n```php\nuse Doctrine\\ODM\\MongoDB\\Mapping\\Annotations as MongoDB;\nuse Doctrine\\ODM\\MongoDB\\Types\\Type;\n\n#[MongoDB\\Document(repositoryClass: PostRepository::class)]\nclass Post\n{\n #[MongoDB\\Id]\n private string $id;\n\n #[MongoDB\\Field(type: Type::BOOLEAN)]\n private bool $published = false;\n\n #[MongoDB\\Field(type: Types::COLLECTION)]\n private array $text = [];\n\n #[MongoDB\\ReferenceOne(targetDocument: User::class)]\n public $author;\n\n #[MongoDB\\ReferenceMany(targetDocument: Tag::class)]\n public Collection $tags;\n}\n```\n\nYou may want to use [Rector](https://getrector.org/) with `DoctrineSetList::DOCTRINE_ODM_23` set\nto convert all your annotation mappings to attributes in seconds!\n\n## JSON Schema Validation\n\nMongoDB \u2265 3.6 offers the capability to validate documents during\ninsertions and updates through a JSON schema associated with the collection. \n[See MongoDB documentation](https://docs.mongodb.com/manual/core/schema-validation/).\n\nDoctrine MongoDB ODM now provides a way to take advantage of this functionality thanks to the new \n[`#[Validation]`](https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/annotations-reference.html#validation) mapping.\n\n```php\nuse Doctrine\\ODM\\MongoDB\\Mapping\\Annotations as MongoDB;\nuse Doctrine\\ODM\\MongoDB\\Mapping\\ClassMetadata;\n\n#[MongoDB\\Document]\n#[MongoDB\\Validation(\n validator: SchemaValidated::VALIDATOR,\n action: ClassMetadata::SCHEMA_VALIDATION_ACTION_WARN\n)]\nclass SchemaValidated\n{\n public const VALIDATOR = <<<'EOT'\n{\n \"$jsonSchema\": {\n \"required\": [\"name\"],\n \"properties\": {\n \"name\": {\n \"bsonType\": \"string\",\n \"description\": \"must be a string and is required\"\n }\n }\n },\n \"$or\": [\n { \"phone\": { \"$type\": \"string\" } },\n { \"email\": { \"$regex\": { \"$regularExpression\" : { \"pattern\": \"@mongodb\\\\.com$\", \"options\": \"\" } } } },\n { \"status\": { \"$in\": [ \"Unknown\", \"Incomplete\" ] } }\n ]\n}\nEOT;\n}\n\n\n```\n\nOnce defined, those options will be added to the collection after running\nthe ``odm:schema:create`` or ``odm:schema:update`` command.\n\n## Psalmified APIs\n\nIn-code documentation has been immensely improved to make sure static analysis tools and IDEs know\nabout the right document classes returned from `DocumentManager`,\n`ClassMetadata`, and other public APIs. This includes generics support\nfor your own repositories extending `DocumentRepository`.\n\n```php\nuse Doctrine\\ODM\\MongoDB\\Repository\\DocumentRepository;\nuse App\\Document\\User;\n\n/**\n * @template-extends DocumentRepository\n */\nclass UserRepository extends DocumentRepository\n{\n}\n```\n\n\n## Deprecations\n\nDoctrine MongoDB ODM 2.3 introduces several minor deprecations:\n\n- The `Doctrine\\ODM\\MongoDB\\Proxy\\Resolver\\ClassNameResolver` interface has been deprecated in favor \n of the `Doctrine\\Persistence\\Mapping\\ProxyClassNameResolver` interface\n- Annotation classes no longer extend `Doctrine\\Common\\Annotations\\Annotation` class\n- Annotation arguments switched to `@NamedArgumentConstructor` for Attribute compatibility\n- `@Inheritance` annotation has been removed as it was never used\n- Document Namespace Aliases (`'MyBundle:User`) - use fully qualified class names instead (`User::class`)\n\nRead more in our [upgrading](https://github.com/doctrine/mongodb-odm/blob/2.3.x/UPGRADE-2.3.md) document. \n\n## Coding Standard Support\n\nDoctrine MongoDB ODM 2.3 now supports and fully validates against Doctrine Coding\nStandard version 9.0+. This greatly improves automatic pull request checks as\nall new violations in a PR get caught and inlined into the PR as comments.\n", - "date": "2021-12-04 00:00:00" - }, - { - "url": "/2007/10/09/new-website.html", - "slug": "new-website", - "title": "New Website", + "url": "/2009/01/26/php-5-3-and-doctrine-2-0-teaser.html", + "slug": "php-5-3-and-doctrine-2-0-teaser", + "title": "PHP 5.3 and Doctrine 2.0 Teaser", "authorName": "jwage", "authorEmail": "", - "contents": "As you all may have noticed, we have put up an actual website. The\nmanual, api documentation, and trac are now all available from the same\ninterface/design. However, the design you see now is only temporary and\na new design will be implemented in the near future. We have also added\nthe ability to comment on manual chapters/sections, blog posts, and api\ndocumentation classes.\n", - "date": "2007-10-09 00:00:00" - }, - { - "url": "/2008/09/30/get-expert-training.html", - "slug": "get-expert-training", - "title": "Get Expert Training", - "authorName": "jwage", - "authorEmail": "", - "contents": "

    \n\nToday I am happy to introduce the first training course offered on\nDoctrine 1.0. These courses are brought to you by SensioLabs, the\ncreators of the symfony MVC Framework. In addition to the Doctrine\ncourses they offer ones on symfony and PHP. Below is a list of some of\nthe upcoming events that you can register for today!\n\n

    • \n\nNov 03: Atlanta, USA (Doctrine 1.0 - English)\n\n
    • \n\nSep 24: Paris, France (symfony 1.0 - English)\n\n
    • \n\nOct 22: Paris, France (symfony 1.1 - Francais)\n\n
    • \n\nOct 22: Montpellier (symfony 1.1 - Francais)\n\n

    \n\nThe workshops are a three day event and include lunch everyday,\nmid-morning and mid-afternoon snacks, a copy of all the presented\nmaterial on a stick and example code. The workshop runs from 9am -5pm on\nthe first 2 days and from 9am - 4:30pm on the last day. You can learn\nmore about the available training sessions here.\n\n

    \n\n\n", - "date": "2008-09-30 00:00:00" + "contents": "We've been really busy around here as you may have noticed. Doctrine 1.1\nis about to be released, we just got some much needed new documentation,\nwe're going to be offering a printed version of the documentation soon!\nSomething we haven't talked to much about is Doctrine 2.0! Roman has\nbeen quietly working on the next major major version of Doctrine, 2.0.\nThis version will be taking a big leap by requiring PHP 5.3! The\nprogress this new version of PHP is so great and it lends itself very\nwell to the world of Object Relational Mappers.\n\nDoctrine 2.0 Teaser\n===================\n\nHere is an early teaser of what one of the class meta data drivers looks\nlike:\n\n~~~~ {.sourceCode .php}\n \\# | Seconds | Memory --- | --------- | ----------------- 1 | 24 |\n> 129170.648438 KB 2 | 23 | 129164.078125 KB 3 | 23 | 129176.851562 KB\n\nPHP 5.3.0alpha4-dev\n-------------------\n\n> \\# | Seconds | Memory --- | --------- | ----------------- 1 | 21 |\n> 89858.7421875 KB 2 | 20 | 89864.59765625 KB 3 | 21 | 89867.89453125 KB\n\nThe Doctrine test suite uses **31%** less memory and is **17%** faster\nwhen running under PHP 5.3!\n", + "date": "2009-01-26 00:00:00" }, { - "url": "/2012/12/28/doctrine-orientdb-odm.html", - "slug": "doctrine-orientdb-odm", - "title": "Doctrine OrientDB Object Document Mapper", - "authorName": "odino", + "url": "/2010/11/18/common-rc2-dbal-rc2-release.html", + "slug": "common-rc2-dbal-rc2-release", + "title": "Common RC2 and DBAL RC3 released", + "authorName": "beberlei", "authorEmail": "", - "contents": "\"2012 is the year of graph databases\" was the sentence that a lot of\npeople were hearing at the end of 2011, especially after the explosion\nof Big Data associated with social networks.\n\nAt the beginning of this year, a really promising GraphDB,\n[OrientDB](https://orientdb.org) , saw its first stable release (1.0.0)\nwhich finally gave to the world a stable toy pretty different from the\ntraditional RDBMS that we're used to see and from the document-based DBs\nlike MongoDB or CouchDB: OrientDB integrates document capabilities with\na graph layer, thus it sounded very, very interesting.\n\nEven before going stable, there were some companies already using\nOrientDB, thanks to the language-specific drivers created by the\ncommunity surrounding this GraphDB: one of them, for PHP, was\n[Orient](https://github.com/congow/Orient) , a bunch of classes that\nwrapped PHP's native cURL functions to make queries against OrientDB's\nvia the HTTP protocol.\n\nDay after day, the guys behind Orient, this PHP library, decided to add\n- mostly inspired by the doctrine 1 query builder and the Doctrine2 ODMs\n- abstraction and layers over that bunch of classes, finally having 3\ndifferent pieces of software to interact with OrientDB from PHP: the\nHTTP binding, which does HTTP calls to the OrientDB server, the Query\nBuilder, which provides an object-oriented synthax to write SQL+\n(OrientDB's SQL) queries and the Data Mapper, which is still unfinished.\n\nTrying to adhere to the Doctrine2 ODMs standards, the code looks pretty\nsimilar:\n\n~~~~ {.sourceCode .php}\ngetRepository('My\\Entity');\n\n// creating SQL+ queries\n$query = new Query();\n$query->from(array('users'))->where('username = ?', \"admin\");\n\n// mapping POPOs\nnamespace Domain;\n\nuse Doctrine\\ODM\\OrientDB\\Mapper\\Annotations as ODM;\n\n/**\n* @ODM\\Document(class=\"Address\")\n*/\nclass Address\n{\n /**\n * @ODM\\Property(type=\"string\")\n */\n public $street;\n}\n\n// finding a record\n$record = $manager->find($id);\n~~~~\n\nThe work done so far was interesting enough to think about an OrientDB\nODM inside the Doctrine organization, thing that eventually happened\ntoday when the old repository has been moved to the [doctrine\norganization](https://github.com/doctrine/orientdb-odm) on Github.\n\nMore news are going to come in the next weeks, as the target is to\nrelease a stable version of the OrientDB ODM this year: you can already\n[use it](https://packagist.org/packages/doctrine/orientdb-odm) or even\n[fork it](https://github.com/doctrine/orientdb-odm) if you want to\ncontribute or propose a patch.\n\nFor further informations you can subscribe to the doctrine-dev google\ngroup or join the IRC channel \\#doctrine-dev on Freenode.\n", - "date": "2012-12-28 00:00:00" + "contents": "Today we are happy to announce the second release candidate of Doctrine\nCommon and the first, second and third release candidate (yes, all in\none!) of DBAL.\n\nIn the Common package 3 bugs have been fixed, in the DBAL package 9 bugs\nhave been fixed. See the changelogs for details:\n\n- [Common RC1\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10093)\n- [DBAL RC3\n Changelogt](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10094)\n\nWe are especially thankful for the support Microsoft has been giving us\nto integrate PDO Sqlsrv. Juozas was invited to [Jumpin\nCamp](http://www.jumpincamp.com) and had time to finish full support for\nthe SQL Server.\n\nThe release of the first release candidate of the ORM package is not far\naway. We will be waiting some days to get some early feedback on the\nlatest updates (updated Common and DBAL dependencies). Expect the first\nrelease candidate for someday next week.\n", + "date": "2010-11-18 00:00:00" }, { - "url": "/2008/06/23/introducing-the-doctrine-cookbook.html", - "slug": "introducing-the-doctrine-cookbook", - "title": "Introducing the Doctrine Cookbook", - "authorName": "jwage", + "url": "/2010/08/06/doctrine2-orm-beta3.html", + "slug": "doctrine2-orm-beta3", + "title": "Doctrine ORM Beta 3 released", + "authorName": "romanb", "authorEmail": "", - "contents": "

    \n\nToday I would like to introduce something new to the Doctrine\ndocumentation, the Cookbook. This differs from the manual in that it\nwill contain real world examples and tutorials of how you can use\nDoctrine on a daily basis whereas the manual is more of a technical\nbreakdown of the features in Doctrine. We will be publishing many\nadditions to the cookbook in the coming weeks. To start off we have\npublished the following tutorials:\n\n

    • \n\nMy First Project\n\n
    • \n\nsymfony 1.1 and Doctrine\n\n
    • \n\nsymfony 1.1 and Doctrine Migrations\n\n
    • \n\nCode Igniter and Doctrine\n\n

    \n\nIf you are interested in contributing to the Doctrine documentation by\nadding new things or translations please contact me at\n[jonwage@gmail.com](mailto:jonwage@gmail.com).\n\n

    \n\n\n", - "date": "2008-06-23 00:00:00" + "contents": "We would like to announce the immediate release of Doctrine ORM BETA 3:\n\n- [Installation](https://www.doctrine-project.org/projects/orm/2.0/download/2.0.0BETA3)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10060)\n\nWe fixed 45 issues, most of them bugs reported by our users. The ORM\npackage is now in a state where no new features will be added and we\nwill fully concentrate the efforts on fixing bugs and bringing the\nrelease to a stable state.\n\nNotable changes include:\n\n- `EntityManager#merge()` has been improved considerably and now also\n accepts new entities.\n- Uninitialized Proxies can now be serialized and only throw an\n exception when they are unserialized and accessed without being\n merged into the EntityManager.\n- New method `EntityManager#getPartialReference()` that returns a\n partial entity that only contains the entities primary key and won't\n lazy-load (hence \"partial\").\n\nThis release contains three backwards incompatible changes you should\nknow about when upgrading:\n\nChanged SQL implementation of Postgres and Oracle DateTime types\n================================================================\n\nThe DBAL Type \"datetime\" included the Timezone Offset in both Postgres\nand Oracle. As of this version they are now generated without Timezone\n(TIMESTAMP WITHOUT TIME ZONE instead of TIMESTAMP WITH TIME ZONE). See\n[this comment to Ticket\nDBAL-22](https://www.doctrine-project.org/jira/browse/DBAL-22?focusedCommentId=13396&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_13396)\nfor more details as well as migration issues for PostgreSQL and Oracle.\n\nBoth Postgres and Oracle will throw Exceptions during hydration of\nObjects with \"DateTime\" fields unless migration steps are taken!\n\nRemoved multi-dot/deep-path expressions in DQL\n==============================================\n\nThe support for implicit joins in DQL through the multi-dot/Deep Path\nExpressions was dropped. For example:\n\n SELECT u FROM User u WHERE u.group.name = ?1\n\n\"u.group.name\" is a nested path expression that is an implicit join.\nInternally the DQL parser would rewrite these queries to:\n\n SELECT u FROM User u JOIN u.group g WHERE g.name = ?1\n\nThis explicit notation will be the only supported notation as of now.\nThe internal handling of nested path expressions for implicit joins in\nthe DQL Parser was too complex and error prone in edge cases and\nrequired special treatment for several features we added. Note that this\ndoes not remove any existing functionality, only a convenience notation\nthat can be expressed otherwise. Hence the generated SQL of both\nnotations is exactly the same.\n\nDefault Allocation Size for Sequences\n=====================================\n\nThe default allocation size for sequences has been changed from 10 to 1.\nThis step was made to not cause confusion with users and also because it\nis partly some kind of premature optimization.\n\nWhat next\n=========\n\nIt seems likely that we will not be able to hold the anticipated release\ndate of September 1st for the final release. Instead September 1st will\nlikely see the last beta release, BETA 4, after which we hope to enter\nthe release candiates soon, followed by the stable release.\n", + "date": "2010-08-06 00:00:00" }, { - "url": "/2016/01/05/dbal-2-5-4-and-2-4-5.html", - "slug": "dbal-2-5-4-and-2-4-5", - "title": "Doctrine DBAL 2.5.4 and 2.4.5 Released", + "url": "/2015/04/14/annotations-1-2-4.html", + "slug": "annotations-1-2-4", + "title": "Doctrine Annotations 1.2.4 Release", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n[2.5.4](https://github.com/doctrine/dbal/releases/tag/v2.5.4) and\n[2.4.5](https://github.com/doctrine/dbal/releases/tag/v2.4.5).\n\nDBAL 2.5.4\n==========\n\nSQLite types weren't correctly identified when whitespace was present in\nthe table definitions: the DBAL now correctly recognizes that, and\nignores the whitespace.\n[\\#2272](https://github.com/doctrine/dbal/issues/2272)\n\nconstant `PDO::PGSQL_ATTR_DISABLE_PREPARES` is only defined when PGSQL\nsupport for PHP is enabled with PDO. The DBAL now checks whether the\nconstant is available before relying on it.\n[\\#2249](https://github.com/doctrine/dbal/issues/2249)\n\nDBAL 2.4.5\n==========\n\nThis release backports a number of fixes that were already present in\nDBAL 2.5.3.\n\nSpecifically, following issues were solved:\n\n- SQLite offset with no limit support\n [\\#1069](https://github.com/doctrine/dbal/issues/1069)\n- Fix removing autoincrement column from a primary key\n [\\#1074](https://github.com/doctrine/dbal/issues/1074)\n- Infinite recursion on non-unique table/join alias in QueryBuilder\n [\\#1079](https://github.com/doctrine/dbal/issues/1079)\n- Fix for bad profiling data, showing an indefinitely long query\n [\\#1124](https://github.com/doctrine/dbal/issues/1124)\n- Fix incorrect ordering of columns in clustered indexes on sql server\n [\\#1129](https://github.com/doctrine/dbal/issues/1129)\n- Avoid fatal error in `array_merge` while generating the table\n creation SQL [\\#1141](https://github.com/doctrine/dbal/issues/1141)\n- `template1` as default database for PostgreSQL\n [\\#1162](https://github.com/doctrine/dbal/issues/1162)\n\nPlease be advised that this is the last 2.4.x release, and except for\nsecurity releases, no further patches will be provided for DBAL 2.4:\nplease upgrade to 2.5 as soon as possible.\n\nInstallation\n============\n\nYou can install the DBAL component using Composer:\n\n```bash\ncomposer require doctrine/dbal:~2.5.4\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/dbal/issues).\n", - "date": "2016-01-05 00:00:00" - }, - { - "url": "/2013/03/24/doctrine-2-3-3.html", - "slug": "doctrine-2-3-3", - "title": "Doctrine 2.3.3 released", - "authorName": "Benjamin Eberlei", - "authorEmail": "", - "contents": "**24.03.2013**\n\nWe have released a mini version 2.3.3 of ORM and DBAL. See the list of\n[18\ntickets](https://www.doctrine-project.org/jira/issues/?jql=project%20in%20(DDC%2C%20DBAL%2C%20DCOM)%20AND%20fixVersion%20%3D%20%222.3.3%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20priority%20DESC)\nwe fixed.\n\nYou can install the release with [Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.3\",\n \"doctrine/dbal\": \"2.3.3\"\n }\n }\n", - "date": "2013-03-24 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine\nCollections `1.2.4`.\n\nThis release fixes a minor issue\n([\\#51](https://github.com/doctrine/annotations/pull/51)) with highly\nconcurrent I/O and the `FileCacheReader#saveCacheFile()` method.\n\nInstallation\n============\n\nYou can install this version of Doctrine Annotations by using Composer\nand the following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/annotations\": \"1.2.4\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DCOM).\n", + "date": "2015-04-14 00:00:00" }, { - "url": "/2008/07/26/doctrine-growth.html", - "slug": "doctrine-growth", - "title": "Doctrine growth", + "url": "/2008/08/05/doctrine-1-0-beta1-released.html", + "slug": "doctrine-1-0-beta1-released", + "title": "Doctrine 1.0 BETA1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "

    \n\nLast October 2007 we implemented some google analytics to our website to\nmonitor the growth of the community. Today the traffic has about doubled\nsince then. We average around 1000 unique visitors per day up from\naround 300 roughly 1 year ago. We expect the growth to continue and we\nlook forward what milestones we can reach together in the future. Check\nout the graph of absolute unique visitors from google analytics below.\n\n

    \n\n

    \n\n\n", - "date": "2008-07-26 00:00:00" + "contents": "

    \n\nToday I am happy to announce the release of Doctrine 1.0-BETA1. This\nmarks the true start for the 1st generation Doctrine stable lifecycle.\nAs you may already know, Doctrine 1.0 has been slated to be released on\nSeptember 1st 2008 for quite some time now. We still have a few more\npre-1.0 releases to go until 1.0. The roadmap for now is BETA1, RC1, RC2\nand then 1.0 STABLE. You can see the roadmap in trac if you're\ninterested in keeping up with the Doctrine schedule. More information on\n1.0 and what other things to expect on September 1st will be given soon.\nMake some noise!\n\n

    \n\n\n", + "date": "2008-08-05 00:00:00" }, { - "url": "/2011/07/02/doctrine-2-1-rc3.html", - "slug": "doctrine-2-1-rc3", - "title": "Doctrine 2.1 Release Candidate 3", - "authorName": "beberlei", + "url": "/2009/09/01/doctrine2-preview-release.html", + "slug": "doctrine2-preview-release", + "title": "Doctrine 2 Preview Release", + "authorName": "romanb", "authorEmail": "", - "contents": "We released Doctrine 2.1 Release Candidate 3 after some important\nchanges to the new annotation reader. That is also why we didnt manage\nto keep our release date of June 30th. The new date is Monday.\n\nAbout the Annotations: We constantly had problems with the autoloading\nof annotations through PHP autoloaders, increasing with Symfony2\nstarting to use the reader with enabled autoloading. The problem with\nreusing the PHP autoloader can be explained easily: Not every Docblock\nAnnotation has a corresponding PHP class that can be instantiated by\nDoctrines AnnotationReader. The question is how we detect the\nannotations from the documentation related comments only. The solution\nrequired a silent autoloader, meaning no failure should occur if an\nautoload is triggered for a non-existant class. Implementing such an\nautoloader has performance drawbacks though, which is why the Doctrine\ndoes not fail silently. Autoloading annotations was not compatible with\nDoctrines own class loader.\n\nThat problem is why we removed PHP autoloading completely and\nreimplemented our own autoloading mechanism inside Doctrine Annotations.\nNow we have much more control about when errors occur and if we skip\nthem or throw an exception.\n\nSee [this following Gist](https://gist.github.com/1059486) on how\nautoloading annotations works. This is not relevant if you use\n\\$config-\\>newDefaultAnnotationDriver() with the ORM though, which will\nhandle all the necessary bootstrapping for you.\n\nAdditionally we have changed the annotation reader in other aspects. To\nbe a valid annotation your class have to extend (backwards compatible\nway, will be removed in 3.0.x) or contain @Annotation inside the class\nlevel docblock.\n\nWe will update the documentation for Doctrine Common accordingly in the\nnext hours to allow you to understand all the changes made between 2.0\nand 2.1.\n\nIf you are using Annotations either in Doctrine 2 or within your own\ncode please update and check the changes.\n", - "date": "2011-07-02 00:00:00" + "contents": "Exactly one year ago today we released Doctrine 1.0 stable, which was on\nthe birthday of Jon. Again, today we have chosen the birthday of Jon to\nrelease the first preview of Doctrine 2. This is an alpha release that\nis not intended for production use.\n\nDoctrine 2 marks the beginning of a new approach to ORM with Doctrine.\nIt represents a rewrite of more than 90% of the existing codebase. The\nnew key concepts behind Doctrine 2 are to put your domain model more\ninto focus and to provide transparent persistence where the persistence\nis a service and not an inherent property of domain classes. This has a\nlot of advantages like decoupling your valuable business logic from the\npersistence layer and easy testability of your domain model.\n\nPackages\n========\n\nDoctrine 2 is reorganized into reusable layers that are available as\nseparate packages. The Doctrine 2 Core consists of the following\npackages:\n\n- Doctrine Common (Generic components, high re usability)\n- Doctrine DBAL (The database abstraction layer, includes: Common)\n- Doctrine ORM (The ORM tools, includes: Common + DBAL)\n\nAll of these packages are currently distributed and maintained\nsynchronously which means they are released together and share the same\nversion numbers. This may change in the future. These three packages are\navailable as separate downloads even though you will most likely want to\ndownload the ORM package which already contains the Common and DBAL\npackages.\n\nFeatures\n========\n\nThis Preview Release is mainly about the core ORM functionality and\nfeatures of Doctrine 2, like mapping drivers, DQL, association mapping,\ninheritance mapping, change tracking, etc. Most of the supporting tools\nthat you are used to for rapid development like the CLI, migrations,\nbehaviors and validation have not yet been ported to Doctrine 2 and are\nstill under heavy development, most of them will end up as loosely\ncoupled extensions.\n\nMapping drivers\n===============\n\nA mapping driver is a particular strategy for providing ORM metadata to\nDoctrine 2. This Preview Release contains mapping drivers for docblock\nannotations, XML and YAML. The XML and YAML drivers are still in an\nexperimental stage and while we encourage you to use them, you may\nencounter more issues than with the docblock annotation driver as it is\nthe primary driver used in our development.\n\nDocumentation\n=============\n\nThe documentation for Doctrine 2 can be found\n[here](https://www.doctrine-project.org/projects/doctrine-orm/en/current/). Please be\naware that the documentation is still a work in progress and not all\nareas have been completed.\n\nSandbox\n=======\n\nTo get started quickly, please check out our [sandbox quickstart\ntutorial](https://www.doctrine-project.org/projects/doctrine-orm/en/current/tutorials/getting-started.html).\nYou can also obtain Doctrine 2.0.0 ALPHA1 via a PEAR package like normal\nwhich can be found on the\n[download](https://www.doctrine-project.org/download)\n\nWe want to encourage everyone to start experimenting with the new\ngeneration of Doctrine in order to get familiar with it and to help find\nany outstanding issues.\n\nAs always, please report any issues and feature requests through\n[trac](http://trac.doctrine-project.org).\n\nThank you for using Doctrine.\n", + "date": "2009-09-01 00:00:00" }, { - "url": "/2008/12/03/first-1-1-alpha-version-released.html", - "slug": "first-1-1-alpha-version-released", - "title": "First 1.1 Alpha Version Released", + "url": "/2008/04/30/wow-1000-tickets.html", + "slug": "wow-1000-tickets", + "title": "Wow! 1000 tickets", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am very happy to introduce the first alpha version of the 1.1\nbranch of Doctrine. This means we have just about finalized the scope of\nfeatures and are preparing to enter the beta and release candidate\ncycles before releasing the stable version.\n\nThis new version is sporting dozens of enhancements and even more bug\nfixes. Primarily the [new scalar hydration\ntype](https://www.doctrine-project.org/2008/10/12/new-hydration-modes-for-doctrine-1-1.html)\n, [the migration diff\ntool](https://www.doctrine-project.org/2008/10/18/new-to-migrations-in-1-1.html) ,\nand other [miscellaneous new\nfeatures](https://www.doctrine-project.org/2008/10/02/doctrine-1-1-development-begins.html).\n\nYou can download the package\n[here](https://www.doctrine-project.org/download) and read some\ndocumentation on the changes and new features\n[here](http://trac.doctrine-project.org/browser/branches/1.1/UPGRADE_TO_1_1).\n", - "date": "2008-12-03 00:00:00" + "contents": "Last night the 1000th ticket came rolling in. This is just a reminder to\nthe fact that Doctrine while still young, has had a very long and\nevolutionary life so far. The growth this first quarter in the community\nand contributions from all over the world really shows that Doctrine has\na bright future in PHP and I look forward to seeing all the doors that\nDoctrine will open. Thanks everyone!\n", + "date": "2008-04-30 00:00:00" }, { - "url": "/2011/08/29/dbal-security-2011-1.html", - "slug": "dbal-security-2011-1", - "title": "Security releases 2.0.8 and 2.1.2", - "authorName": "beberlei", - "authorEmail": "", - "contents": "It was brought to our attention that identifier quoting in Doctrine DBAL\nhas a potential security problem when user-input is passed into this\nfunction, making the security aspect of this functionality obsolete. We\nfixed as soon as we realized it and apologize for to our users for this\nerror.\n\nWe released versions 2.1.2 and 2.0.8 of DBAL that both contain a fix for\nthe problem. You can grab the code from\n[PEAR](http://pear.doctrine-project.org) ,\n[Github](https://github.com/doctrine/dbal) or the [Downloads\nsection](https://www.doctrine-project.org/projects/dbal/download).\n\nIf you make use of AbstractPlatform::quoteIdentifier() or\nDoctrine::quoteIdentifier() please upgrade immediately. The ORM itself\ndoes not use identifier quoting in combination with user-input, however\nwe still urge everyone to update to the latest version of DBAL.\n", - "date": "2011-08-29 00:00:00" + "url": "/2016/10/07/doctrine-mongodb-odm-release-1.1.2-and-1.0.8.html", + "slug": "doctrine-mongodb-odm-release-1.1.2-and-1.0.8", + "title": "Doctrine MongoDB ODM 1.1.2 and 1.0.8 released", + "authorName": "Andreas Braun", + "authorEmail": "alcaeus@alcaeus.org", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.1.2](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.2)\nand\n[1.0.8](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.8).\n\nMongoDB ODM 1.0.8\n=================\n\n- calling `dropCollections()` in the SchemaManager did not drop GridFS\ncollections. [\\#1468](https://github.com/doctrine/mongodb-odm/pull/1468)\n- calling `clear()` on an uninitialized collection with `orphanRemoval`\nenabled failed to remove orphaned documents.\n[\\#1500](https://github.com/doctrine/mongodb-odm/pull/1500) - Documents\nwith identifiers evaluating to `false` (e.g. empty string or 0) could\nnot be reference using `createDBRef()` in DocumentManager.\n[\\#1503](https://github.com/doctrine/mongodb-odm/pull/1503)\n\nMongoDB ODM 1.1.2\n=================\n\n- This release contains the bugfixes outlined for ODM 1.0.8 above\n\n- Querying for referenced objects in `findBy()` or `findOneBy()` did not\nwork properly due to incorrect preparation of the DBRef objects.\n[\\#1481](https://github.com/doctrine/mongodb-odm/pull/1481)\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.1.2\"\n }\n}\n```\n\nSupport for Doctrine ODM 1.0.x\n==============================\n\nAs outlined previously, support for MongoDB ODM 1.0.x will end on\nDecember 9th, 2016. If you have not upgraded to version 1.1 yet, please\ndo so to receive future bug fixes.\n", + "date": "2016-10-07 00:00:00" }, { - "url": "/2007/12/04/url_changes.html", - "slug": "url_changes", - "title": "URL Changes", + "url": "/2009/12/07/doctrine-1-2-1-released.html", + "slug": "doctrine-1-2-1-released", + "title": "Doctrine 1.2.1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Recently we have done some work to sort out our domain names and the\npermanent URL structure we will use from now on. We have put rules in\nplace to maintain all existing URLs so they redirect to\nwww.phpdoctrine.org, trac.phpdoctrine.org and svn.phpdoctrine.org. You\nwill need to update your svn externals to point to svn.phpdoctrine.org.\n", - "date": "2007-12-04 00:00:00" + "contents": "Today we are happy to bring you the first maintenance release for the\nDoctrine 1.2 version. We will continue to have regular maintenance\nreleases for the 1.2 branch for the next 18 months. On average we will\nhave one release per month containing bug fixes only. These releases are\nmeant to be fully backwards compatible so it is recommended that you\nupgrade right away!\n\nBelow are some of the changes made in this release:\n\n
      \n
    • \n\n[r6834] Fixing issue with relationship ordering\n\n
    • \n
    • \n\n[r6835] Fixes issue with oracle adapter statement using wrong constant\n\n
    • \n
    • \n\n[r6836] Fixing issue with sfYaml autoload not returning true\n\n
    • \n
    • \n\n[r6839] Fixes issue with array cache driver and deleting\n\n
    • \n
    • \n\n[r6840] Fixed thrown Exceptions to be package-level\n\n
    • \n
    • \n\n[r6842] Fixes issue with \\$length in migrations addColumn\n\n
    • \n
    • \n\n[r6859] Fixed misplaced param when parsing join condition\n\n
    • \n
    • \n\n[r6883] Added empty init() method implementation to avoid method does\nnot exist error\n\n
    • \n
    • \n\n[r6889] Fixing issue with nested set createRoot() method and string root\ncolumn\n\n
    • \n
    • \n\n[r6893] Adding \\_cleanup() call to start of migrations diff to make sure\ndirectory is clean\n\n
    • \n
    \n\nYou can view the full [change\nlog](https://www.doctrine-project.org/change_log/1_2_1) and\n[download](https://www.doctrine-project.org/download#1_2) now! If you\nencounter any issues please report them in\n[Jira](https://www.doctrine-project.org/jira).\n", + "date": "2009-12-07 00:00:00" }, { - "url": "/2010/07/21/mongodb-odm-query-builder-api.html", - "slug": "mongodb-odm-query-builder-api", - "title": "MongoDB ODM: Query Builder API", + "url": "/2009/10/05/second-alpha-release-of-doctrine-2.html", + "slug": "second-alpha-release-of-doctrine-2", + "title": "Second Alpha Release of Doctrine 2", "authorName": "jwage", "authorEmail": "", - "contents": "The Doctrine MongoDB Object Document Mapper includes a fluent object\noriented API for building queries to execute against MongoDB. Recently\nsome changes were made to the API to simplify it and make it more\nreadable. This blog post aims to demonstrate and introduce the new API\nto you!\n\nQuery Types\n===========\n\nThe API still supports all the types of queries you would expect:\n\n- [find](#find)\n- [insert](#insert)\n- [update](#update)\n- [delete](#delete)\n\nContinue reading to see examples for each of the above types of queries!\n\n\\#\\# Find\n\nYou can easily find documents by just creating a new `Query` object with\nthe `createQuery()` method. A new `Query` object defaults to a `find`\nquery so you just need to pass the name of the document to query for:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User');\n~~~~\n\nYou can change the document being queried for by using the `find()`\nmethod:\n\n~~~~ {.sourceCode .php}\nfind('Project');\n~~~~\n\nConditions\n----------\n\nYou can limit the returned documents by specifying some conditions:\n\n~~~~ {.sourceCode .php}\nfield('title')->equals('The Doctrine Project');\n~~~~\n\nMaybe you want to only return projects created after today:\n\n~~~~ {.sourceCode .php}\nfield('createdAt')->greaterThan(new MongoDate(time()));\n~~~~\n\nYou can even a condition on an embedded document:\n\n~~~~ {.sourceCode .php}\nfield('profile.firstName')->equals('Jonathan');\n~~~~\n\nAlso, you can add a condition for a referenced document to filter by id:\n\n~~~~ {.sourceCode .php}\nfield('account.$id')->equals($accountId);\n~~~~\n\nThe `field()` method specifies the current field to add the conditions\nto. You can optionally use the magical `__call()` feature of the `Query`\nobject to specify the current field as well:\n\n~~~~ {.sourceCode .php}\ncreatedAt()->greaterThan(new MongoDate(time()));\n~~~~\n\nAll the methods you'd expect can be used in combination with the\n`field()` method for adding conditions to your query:\n\n- equal(\\$value)\n- where(\\$javascript)\n- not(\\$value)\n- in(\\$values)\n- notIn(\\$values)\n- notEqual(\\$value)\n- greaterThan(\\$value)\n- greaterThanOrEq(\\$value)\n- lessThan(\\$value)\n- lessThanOrEq(\\$value)\n- range(\\$start, \\$end)\n- size(\\$size)\n- exists(\\$bool)\n- type(\\$type)\n- all(\\$values)\n- mod(\\$mod)\n\n\\#\\# Insert\n\nYou can easily insert new documents using the `Query` API as well. Just\nuse the `insert()` method in combination with `field()` and `set()`:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->insert()\n ->field('username')->set('jwage')\n ->field('password')->set('password');\n~~~~\n\nIf you want to set the new document to insert you can use the\n`setNewObj()` method:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->insert()\n ->setNewObj(array(\n 'username' => 'jwage',\n 'password' => 'password'\n ));\n~~~~\n\n\\#\\# Update\n\nIf you want to update a document you can use the `update()` method in\ncombination with `field()`, `set()` and conditions. Here is an example\nwhere we create a query to update a user with the username `jwage` and\ngive him a new password:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->update()\n ->field('password')->set('newpassword')\n ->field('username')->equals('jwage');\n~~~~\n\n\\#\\# Delete\n\nYou can delete documents as well by using the `delete()` method in\ncombination with conditions. Here is an example where we create a query\nto delete the user document with a username of `jwage`:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->delete()\n ->field('username')->equals('jwage');\n~~~~\n\nAs you can see the fluent API makes it a bit easier to express queries\nthat are easy to read in the same way you would read english from left\nto right. We hope to enhance and improve this API even more before we\nrelease the stable 1.0 version.\n\nYou can read more about the Query Builder API in the\n[documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/query-builder-api/en#query-builder-api).\n", - "date": "2010-07-21 00:00:00" + "contents": "Today we are happy to bring you the second alpha release of the brand\nnew Doctrine 2! This release contains about 70 fixes since the first\nalpha release last month! This is great news as it means Doctrine 2 is\nbecoming more and more stable!\n\nHighlights\n==========\n\nBelow are some highlights for the release.\n\n- CLI refactorings and improvements\n- Fixes to Mapping information drivers\n- Fixes to ClassMetadata export drivers\n- Lots of other bug fixes\n\nIf you're curious about what all was committed in this release you can\ncheck the [change\nlog](https://www.doctrine-project.org/change_log/2_0_0_ALPHA2) page and\nyou can snag the packages from the\n[download](https://www.doctrine-project.org/download) page.\n", + "date": "2009-10-05 00:00:00" }, { - "url": "/2021/11/11/dbal3-vulnerability-fixed.html", - "slug": "dbal3-vulnerability-fixed", - "title": "DBAL 3 SQL Injection Security Vulnerability fixed (CVE-2021-43608)", - "authorName": "Benjamin Eberlei", - "authorEmail": "kontakt@beberlei.de", - "contents": "We have released a new version Doctrine DBAL 3.1.4 that fixes a critical SQL\ninjection vulnerability in the LIMIT clause generation API provided by the\nPlatform abstraction.\n\nWe advise everyone using Doctrine DBAL 3.0.0 up to 3.1.3 to upgrade to 3.1.4\nimmediately. \n\nThe vulnerability can happen when unsanitized input is passed to many APIs in\nDoctrine DBAL and ORM that ultimately end up calling\n`AbstractPlatform::modifyLimitQuery`.\n\nAs a workaround you can cast all limit and offset parameters to integers before\npassing them to Doctrine APIs.\n\nThis vulnerability has been assigned\n[CVE-2021-43608](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43608).\n", - "date": "2021-11-11 00:00:00" + "url": "/2015/01/25/orm-2-5-0-alpha-2.html", + "slug": "orm-2-5-0-alpha-2", + "title": "Doctrine ORM 2.5.0-alpha2 Pre-Release", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability Doctrine ORM\n`2.5.0-alpha2`.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the ORM.\n\nWe encourage all of our users to help us by trying out this alpha\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nThis pre-release is not yet at feature-freeze, therefore we urge\ncontributors to contact us if there is any change that requires our\nattention before we reach the beta (feature-freeze) release stage.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n- `2.5.0-beta1` on `2015-02-02`\n- `2.5.0-beta2` on `2015-02-09`\n- `2.5.0` on `2015-02-16`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nAdditionally, we will delay the release if any newly introduced critical\nbugs are detected, as it already happened with this `2.5.0-alpha2`\nrelease.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-alpha2\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-alpha1\n==========================\n\nThis is a list of issues solved in `2.5.0-alpha2` since `2.5.0-alpha1`:\n\n- [[DDC-3517]](https://github.com/doctrine/orm/issues/4331)\n [[GH-1265]](https://github.com/doctrine/orm/pull/1265) Fix\n error undefined index \"targetEntity\"\n- [[DDC-3516]](https://github.com/doctrine/orm/issues/4330)\n [[GH-1264]](https://github.com/doctrine/orm/pull/1264) Add\n Changelog/Migration to 2.5 documentation chapter.\n- [[DDC-3520]](https://github.com/doctrine/orm/issues/4335)\n [[DDC-3521]](https://github.com/doctrine/orm/issues/4336)\n [[GH-1269]](https://github.com/doctrine/orm/pull/1269)\n `self-update` composer before install\n- [[DDC-3526]](https://github.com/doctrine/orm/issues/4341)\n [[GH-1273]](https://github.com/doctrine/orm/pull/1273)\n Incorrect `@throws` doc. in `getSingleScalarResult`\n- [[DDC-3465]](https://github.com/doctrine/orm/issues/4275)\n [[GH-1232]](https://github.com/doctrine/orm/pull/1232)\n Explicit example of partial indexes\n- [[DDC-3300]](https://github.com/doctrine/orm/issues/4094)\n [[DDC-3503]](https://github.com/doctrine/orm/issues/4317)\n [[GH-1130]](https://github.com/doctrine/orm/pull/1130)\n [[GH-1232]](https://github.com/doctrine/orm/pull/1232) Resolve\n target entity also in discriminator map (allows interfaces and\n custom names in discriminator map)\n- [[DDC-3378]](https://github.com/doctrine/orm/pull/1176)\n [[GH-1176]](https://github.com/doctrine/orm/pull/1176) Support\n merging entities with composite identities defined through to-one\n associations\n- [[DDC-3533]](https://github.com/doctrine/orm/issues/4351)\n [[GH-1279]](https://github.com/doctrine/orm/pull/1279) Fixed\n typos and grammar in the second level cache documentation\n- [[DDC-3343]](https://github.com/doctrine/orm/issues/4141)\n [[DDC-3536]](https://github.com/doctrine/orm/issues/4349)\n [[DDC-3544]](https://github.com/doctrine/orm/issues/4361)\n [[GH-1281]](https://github.com/doctrine/orm/pull/1281)\n [[GH-1288]](https://github.com/doctrine/orm/pull/1288)\n [[GH-1169]](https://github.com/doctrine/orm/pull/1169)\n Entities should not be deleted when using `EXTRA_LAZY` and\n `one-to-many`\n- [[DDC-3538]](https://github.com/doctrine/orm/issues/4355)\n [[DDC-3519]](https://github.com/doctrine/orm/issues/4333)\n [[GH-1283]](https://github.com/doctrine/orm/pull/1283)\n [[GH-1267]](https://github.com/doctrine/orm/pull/1267)\n Reverted [\\#1220](https://github.com/doctrine/orm/pull/1220),\n fixed order in pagination logic\n- [[DDC-2704]](https://github.com/doctrine/orm/issues/3446)\n [[DDC-3524]](https://github.com/doctrine/orm/issues/4339)\n [[GH-1272]](https://github.com/doctrine/orm/pull/1272) merge\n inherited transient properties - merge properties into uninitialized\n proxies\n- [[DDC-3346]](https://github.com/doctrine/orm/issues/4144)\n [[DDC-3531]](https://github.com/doctrine/orm/issues/4347)\n [[DDC-3534]](https://github.com/doctrine/orm/issues/4352)\n [[GH-1280]](https://github.com/doctrine/orm/pull/1280)\n [[GH-1277]](https://github.com/doctrine/orm/pull/1277) fixed\n `findOne*` operations when using a `EAGER` `*-to-many` association\n- [[DDC-3541]](https://github.com/doctrine/orm/issues/4358)\n [[GH-1286]](https://github.com/doctrine/orm/pull/1286)\n Removing XDebug from non-coverage builds\n- [[DDC-3546]](https://github.com/doctrine/orm/issues/4363)\n [[GH-1289]](https://github.com/doctrine/orm/pull/1289) Improve\n test suite performance\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", + "date": "2015-01-25 00:00:00" }, { - "url": "/2010/02/17/doctrine2-behaviours-nutshell.html", - "slug": "doctrine2-behaviours-nutshell", - "title": "Doctrine 2 \"Behaviours\" in a Nutshell", - "authorName": "beberlei", - "authorEmail": "", - "contents": "**NOTE** This blog entry relates to an outdated Doctrine 2 Alpha\n: version. Please see the documentation for the most up to date\n behavior.\n\nOne of the most common fallacies out there about Doctrine 2 abandoning\nBehaviours is that developers now have to implement fancy logic to\nre-implement them yourself. Doctrine 2's approach to completly separate\nORM from your domain classes allows to build behaviours in a very clean,\nunobstrusive and simple object-oriented way. This article shows you how\nto implement some of the Doctrine 1 behaviours in your Doctrine 2 code.\nFor this I will rewrite the Doctrine 1.x manuals examples for each\nBehaviour.\n\nThis example uses Annotations as example, yet this of course works with\nYAML and XML mappings. Additionally Doctrine 2 allows constructors to\nhave required arguments as of a commit of the last week. This allows for\nsome pretty slick enforcements in user-land code as you will see in this\npost.\n\nStraightforward combination of \"Behaviours\"\n===========================================\n\nAll the code listed below is somehwat more verbose than the Doctrine 1\ncode, however much more bound to the domain of your model and very\nstraightforward. There is no magic involved and you will fully\nunderstand what will be happening in each of the behaviours. The best of\nall, although not a simple trick, you will be able to combine ALL\nbehaviours in one model class and still be completly on top of their\ninner workings.\n\nTimestampable\n=============\n\nTimestampable is a behaviour that requires you to hook into the\npre-update event which is called whenever an entity is updated:\n\n~~~~ {.sourceCode .php}\ncreated = $this->updated = new DateTime(\"now\");\n }\n\n /**\n * @PreUpdate\n */\n public function updated()\n {\n $this->updated = new DateTime(\"now\");\n }\n}\n~~~~\n\nSluggable\n=========\n\nThe sluggable behaviour is trivial to implement in Doctrine 2:\n\n~~~~ {.sourceCode .php}\nslug == null) {\n $this->slug = MyStringHelper::slugize($title);\n }\n $this->title = $title;\n }\n\n /**\n * Put this method in if your slug should be \"editable\"\n */\n public function setSlug($slug)\n {\n $this->slug = $slug;\n }\n}\n~~~~\n\nSee how its much more explicit in your code how and why the slug is\ngenerated.\n\nNestedSet\n=========\n\nThis is one of the more complex behaviours in Doctrine 1 and it won't be\nnecessarily more easy in Doctrine 2. However as this is an important\nfeature we will provide an implementation as a `DoctrineExtensions`\nnamespaced package that will be maintained by Doctrine Devs.\n\nSearchable\n==========\n\nThere is currently no plan to port the Searchable behaviour to Doctrine\n2, but the possibility to instantiate objects using *new* allows a very\nsimple integration of a Doctrine 2 model with Apache Solr or Lucene with\na little wrapper that re-creates detached instances from this powerful\nsearch engines.\n\nFor example using\n[ezcSearch](http://ezcomponents.org/docs/api/trunk/introduction_Search.html)\nwe can make our BlogPost accessible for Solr:\n\n~~~~ {.sourceCode .php}\n $this->id,\n 'title' => $this->title,\n 'body' => $this->body,\n 'slug' => $this->slug,\n );\n }\n\n public function setState($state)\n {\n foreach ($state AS $k => $v) {\n $this->$k = $v;\n }\n }\n\n static public function getDefinition()\n {\n // define search schema\n return $def;\n }\n}\n~~~~\n\nezcSearch can then index a blog post whenever it is changed by hooking\nan EventListener into the Doctrine `PreUpdate` Event:\n\n~~~~ {.sourceCode .php}\n_searchSession = $searchSession;\n }\n\n public function preUpdate(LifecycleEventArgs $args)\n {\n if ($args->getEntity() instanceof ezcBasePersistable) {\n $this->_searchSession->index($args->getEntity());\n }\n }\n}\n~~~~\n\nYou can now hook this event into Doctrine's EntityManager:\n\n~~~~ {.sourceCode .php}\ngetEventManager()->addEventListener(\n array(Doctrine\\ORM\\Events::preUpdate), $searchListener\n);\n~~~~\n\nNow when you search for your entities you get returned `BlogPost`\ninstances from ezcSearchs Solr interface:\n\n~~~~ {.sourceCode .php}\ncreateFindQuery( 'BlogPost' );\n$searchWord = 'test';\n\n// where either body or title contains thr $searchWord\n$q->where(\n $q->lOr(\n $q->eq( 'body', $searchWord ),\n $q->eq( 'title', $searchWord )\n )\n);\n$searchedBlogPosts = $session->find( $q );\n~~~~\n\nThese instances are detached from the EntityManager when they get\nreturned from ezcSearch and can be merged back into the persistence\ncontext:\n\n~~~~ {.sourceCode .php}\nsetTitle(\"ChangeFoo\");\n$em->merge($searchedBlogPosts[0]);\n~~~~\n\nRead about Merging, Detached instances and other cool stuff of Doctrines\nobject model in the [Working with\nObjects](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/working-with-objects.html#merging-entities)\nchapter of the manual.\n\nVersionable\n===========\n\nBy default Doctrine 2 comes with a way to set a *version* column that is\nautomatically incremented on each update. Using the event system it is\neasy to use this information to implement a versionable audit-log\nbehaviour. The required code is more verbose than the simple\nconfiguration of Doctrine 1, however there is much less magic involved\nand you can implement this behaviour in a way that is trivial to\nunderstand for someone new looking at your code:\n\n~~~~ {.sourceCode .php}\nauditLog[] = new BlogPostVersion($this);\n }\n // getters\n}\n\n/**\n * @Entity\n */\nclass BlogPostVersion\n{\n /**\n * @Id\n * @Column(type=\"integer\")\n * @generatedValue(strategy=\"AUTO\")\n */\n private $id;\n\n /**\n * @Column(type=\"string\")\n */\n private $title;\n\n /**\n * @Column(type=\"text\")\n */\n private $body;\n\n /**\n * @Column(type=\"integer\")\n */\n private $version;\n\n /**\n * @ManyToOne(targetEntity=\"BlogPost\")\n */\n private $post;\n\n public function __construct(BlogPost $post)\n {\n $this->post = $post;\n $this->title = $post->getTitle();\n $this->body = $post->getBody();\n $this->version = $post->getCurrentVersion();\n }\n}\n~~~~\n\nI18N\n====\n\nMulti-Language content is an important topic and can be implemented in\nDoctrine 2, since its just a fancy name for a One-To-Many relation.\nHowever currently Doctrine 2 does not allow to persist keys by name,\nwhich makes a OneToMany implementation a bit more intensive then it\ncould be. We plan to implement primitive value collections however which\nwould simplify any attempt to implement nested structured content, that\nis not an entity by itself.\n\nSoft Delete\n===========\n\nWe won't support soft-delete at all. If you want to implement a\nsoft-delete alike behaviour its probably a good idea to look into the\nState pattern instead.\n\nBlameable\n=========\n\nImplementing this behaviour is just a matter of adding two fields\n*createdByUserId* and *modifiedByUserId* fields and setting them\nwhenever one of your relevant fields change by hooking into setter\nmethods:\n\n~~~~ {.sourceCode .php}\ntitle = $title;\n $this->modifiedByUserId = $user->getId();\n }\n}\n~~~~\n\nSortable\n========\n\nSame as I18N, we are planning to support persistence of collection keys\nin the Doctrine 2 Core. This would allow to sort collections by using\nthe possibilities of the `Doctrine\\Common\\Collections\\Collection`\ninterface.\n\nConclusion\n==========\n\nAlthough slightly more complex than Doctrine 1s simple configuration\noptions, most \"behaviours\" are still way easy to implement in Doctrine\n2. The additional benefit of this straightforward approach: *You can\ncombine behaviours in any way, inside your domain model, without having\nto wonder how the magic works together, you are completly on top of it.*\n", - "date": "2010-02-17 00:00:00" + "url": "/2015/03/31/doctrine-mongo-odm-module-release-0-8-2.html", + "slug": "doctrine-mongo-odm-module-release-0-8-2", + "title": "Doctrine Mongo ODM Module release 0.8.2", + "authorName": "Gianluca Arbezzano", + "authorEmail": "gianarb92@gmail.com", + "contents": "The **Zend Framework Integration Team** is happy to announce the new\nrelease of **DoctrineMongoODMModule**. DoctrineMongoODMModule `0.8.2`\nwill be the last bugfix version with support for **DoctrineModule**\n`0.8`, and in consequence, it is the last version that will support PHP\n5.3. Further versions of the `0.8.*` series may still be released in\ncase of security issues.\n\nFollowing issues were solved in this release:\n\n- [108 - applying correct chmod() to generated cache\n file](https://github.com/doctrine/DoctrineMongoODMModule/pull/108)\n- [109 - added user\n guide](https://github.com/doctrine/DoctrineMongoODMModule/pull/109)\n- [114 - simplified unit\n testing](https://github.com/doctrine/DoctrineMongoODMModule/pull/114)\n- [115 - removed files for old test\n setup](https://github.com/doctrine/DoctrineMongoODMModule/pull/115)\n\nTo install this version, simply update your \\`composer.json\\`:\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-mongo-odm-module\": \"0.8.2\"\n }\n}\n```\n", + "date": "2015-03-31 00:00:00" }, { - "url": "/2010/07/22/mongodb-for-ecommerce.html", - "slug": "mongodb-for-ecommerce", - "title": "MongoDB ODM: MongoDB for eCommerce", - "authorName": "avalanche123", + "url": "/2010/01/22/doctrine-2-0-0-alpha4-released.html", + "slug": "doctrine-2-0-0-alpha4-released", + "title": "Doctrine 2 ALPHA4 Released", + "authorName": "romanb", "authorEmail": "", - "contents": "
    \n
    \n

    \n\nHi, my name is Bulat S. (my last name won't make it any easier, but in\ncase you were wondering it's Shakirzyanov), I joined OpenSky in August\n2009 (It's been almost a year since then, but it feels like ages). My\nofficial title in the company is Hacker, which also says a lot about me\n(that I don't like corporate titles for one).\n\n

    \n

    \n\nThe last 6 weeks were truly amazing for me. Not only was I able to learn\na new technology, I also managed to contribute back to the community.\nBut let's go over everything step by step.\n\n

    \n
    \n
    \n\nBuilding an eCommerce system is not easy, and building a platform is\neven harder. When it comes to data in eCommerce, there is nothing\ndefinite, no real structure you could stick to, and no final\nrequirements. Something as obvious as the \"item you add to cart\" could\nbe overly complicated when it comes to data.\n\nThere is a good example of how to model the database for handling\nvariable product attributes; [Magento](https://magento.com/)\nis one of the most advanced open source eCommerce solutions available\ntoday. It uses [EAV (Entity Attribute\nValue)](https://en.wikipedia.org/wiki/Entity-attribute-value_model) ,\nwhich solves the problem of variable attributes by sacrificing database\nlevel integrity and application performance. The amount of queries you\nneed to perform to select one entity will grow with every attribute data\ntype you introduce; however, it still is a viable solution.\n\nA document store on the other hand lets you save two absolutely\ndifferent documents in the same collection. Because of its schema-less\nstructure it is also possible to add or remove a document's properties\nafter saving - it's a database that adapts to your data structure on the\nfly.\n\nAt [OpenSky](https://www.theopenskyproject.com/) , we decided to use\n[MongoDB](https://www.mongodb.com/) for storage of products and use\nrelational databases for order-related data since\n[MongoDB](https://www.mongodb.com/) doesn't support transactions.\n\nSo what is the benefit of using [MongoDB](https://www.mongodb.com/) over\nMySQL, or any other RDBMS, for storing variable attribute data.\nPerformance. This is the pseudo-query we would have to write to select\none product, with id 1, and all of its attributes in a typical [EAV\nmodel](https://en.wikipedia.org/wiki/Entity-attribute-value_model):\n\n
    \n\n
    \n\n [txt]\n SELECT * FROM `product` WHERE id = 1;\n SELECT * FROM `product_attributes` = WHERE product_id = 1;\n SELECT * FROM `product_values_int` WHERE product_id = 1;\n SELECT * FROM `product_values_varchar` WHERE product_id = 1;\n SELECT * FROM `product_values_datetime` WHERE product_id = 1;\n SELECT * FROM `product_values_text` WHERE product_id = 1;\n SELECT * FROM `product_values_float` WHERE product_id = 1;\n\nAfter the above queries are run, there would be a huge step of data\nhydration into the product object, which\n[Magento](https://magento.com/) handles quite well, albeit\nslowly. Contrast this with what we would do in\n[MongoDB](https://www.mongodb.com/):\n\n [javascript]\n db.products.find({'_id': '1'});\n\nNot only is the selection simpler, but it also returns a JSON object,\nwhich can easily be hydrated into a native PHP object. And here is how a\nconfigurable product could be represented in\n[MongoDB](https://www.mongodb.com/):\n\n [javascript]\n {\n \"_id\": ObjectId(\"4bffd798fdc2120019040000\")\n \"name\": \"Configurable T-Shirt\"\n \"options\": [\n {\n \"name\": \"small\",\n \"price\": 12.99\n },\n {\n \"name\": \"medium\",\n \"price\": 15.99\n },\n {\n \"name\": \"large\",\n \"price\": 17.99\n }\n ]\n }\n\n **NOTE** There is no need for joins, as product options are a\n collection of embedded objects. Object references (akin foreign key\n relationships in RDBMSs) are also possible, but they are generally\n only necessary if you need to access the object independently. For\n instance, if I needed a page to list all product options across all\n products, I would probably put options into their own collection\n and reference them from the product document.\n\nOf course, there are [plenty of ORM\nlibraries](https://docs.mongodb.com/ecosystem/drivers/php/#PHPLanguageCenter-LibraryandFrameworkTools)\nfor [MongoDB](https://www.mongodb.com/) , which were either\nhard-to-extract parts of frameworks, not quite ORMs or used the\n[ActiveRecord\npattern](https://martinfowler.com/eaaCatalog/activeRecord.html) (which\nafter using\n[DataMapper](https://martinfowler.com/eaaCatalog/dataMapper.html) for\nquite some time, I wouldn't want to go back to). The very same day I\nstarted writing an object document mapper (ODM) to use at\n[OpenSky](https://www.theopenskyproject.com/) , [Jon\nWage](https://www.twitter.com/jwage) (developer for the Doctrine project)\nreleased a proof-of-concept [MongoDB\nODM](https://www.doctrine-project.org/projects/mongodb_odm) , which you\ncan [find on github](https://github.com/doctrine/mongodb-odm). After\ncontacting Jon and giving his library a couple of tries and\n[tests](https://www.phpunit.de/) , I decided to use it for\n[OpenSky](https://www.theopenskyproject.com/)'s products domain layer.\n\nI started to submit patches and [unit tests](https://www.phpunit.de/) to\nthe project and soon joined the core team for [MongoDB\nODM](https://www.doctrine-project.org/projects/mongodb_odm). Today, we\nare past first alpha release of the project, and this is my first post\non the Doctrine blog (yay!).\n\nGetting back to our example, this is how the product and embedded option\nclasses for the aforementioned data structure could look:\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setName($name)\n {\n $this->name = $name;\n }\n\n public function getName()\n {\n return $this->name;\n }\n\n public function addOption(Product\\Option $option)\n {\n $this->options[] = $option\n }\n\n //...\n}\n~~~~\n\nAnd the Product class:\n\n~~~~ {.sourceCode .php}\nname = $name;\n }\n\n public function getName()\n {\n return $this->name;\n }\n\n public function setPrice($price)\n {\n $this->price = $price;\n }\n\n public function getPrice()\n {\n return $this->price;\n }\n\n //...\n}\n~~~~\n\nUsing the DocumentManager instance, we could easily persist the product\nwith:\n\n~~~~ {.sourceCode .php}\nsetName('Configurable T-Shirt');\n\n$small = new Product\\Option();\n$small->setName('small');\n$small->setPrice(12.99);\n$product->addOption($small);\n\n$medium = new Product\\Option();\n$medium->setName('medium');\n$medium->setPrice(15.99);\n$product->addOption($medium);\n\n$large = new Product\\Option();\n$large->setName('large');\n$large->setPrice(15.99);\n$product->addOption($large);\n\n$documentManager->persist($product);\n$documentManager->flush();\n\n**NOTE** MongoDB ODM intelligently uses\n`atomic operators `_\nto update data, which makes it really fast. It also supports\ninheritance (collection-per-class and single-collection\ninheritances), which is similar to table inheritance design\npatterns for ORMs. Check out the official Mongo ODM\n`project documentation `_\nfor more information and examples. Complete instructions on how to\nsetup your DocumentManager instance\n`can be found here `_.\n~~~~\n\nThe above code would store the product object as a document in\n[MongoDB](https://www.mongodb.com/).\n\nThere is much more to talk about in terms or technologies, techniques\nand practices we adopt and use at\n[OpenSky](https://www.theopenskyproject.com/) , so this post is\ndefinitely not the last one.\n", - "date": "2010-07-22 00:00:00" + "contents": "Today we are happy to announce the release of the next, and hopefully\nlast, alpha release of Doctrine 2. With over 60 fixed bugs and some\nimprovements this is another significant step towards the final release.\n\nHighlights\n==========\n\n- DBAL Refactorings: [DDC-169]\n- CLI Refactoring and Enhancements: [r6972] [DDC-223], [DDC-225]\n- Support for customizing the DDL of column definitions: [DDC-200]\n- XML Mapping Driver Improvements: [DDC-243], [DDC-242], [DDC-159]\n\nView the complete [change\nlog](https://www.doctrine-project.org/change_log/2_0_0_ALPHA4) to see a\ndetailed list of every change contained in this release. You can\n[download](https://www.doctrine-project.org/download#2_0) this release\nand report any issues you find in\n[Jira](https://www.doctrine-project.org/jira).\n\nWe would like to thank everyone who participated in this release through\nbug reports, patches and suggestions.\n\nWhat is Next?\n=============\n\nWe are planning to work towards entering beta from here on. There are\nstill some backwards-incompatible changes to come. Once we hit beta,\nefforts will concentrate on fixing bugs and further stabilizing the code\nbase. The first beta release is currently scheduled for March 1st, 2010.\n", + "date": "2010-01-22 00:00:00" }, { - "url": "/2011/01/13/roadmap-doctrine2.html", - "slug": "roadmap-doctrine2", - "title": "Whats next? Our Roadmap", - "authorName": "beberlei", + "url": "/2008/10/19/the-bleeding-edge-website-upgraded.html", + "slug": "the-bleeding-edge-website-upgraded", + "title": "The Bleeding Edge: Website Upgraded", + "authorName": "jwage", "authorEmail": "", - "contents": "Doctrine 2 is now stable for about three weeks and we are pretty happy\nabout the increase in community discussions on IRC and mailing list.\nAdditionally its good to see that we are not flooded with new bug\nreports and we can keep closing all the incoming issues very fast.\n\nAt this point you are probably interested in our roadmap for minor and\nbugfix releases.\n\n- We will release bugfix releases every other month\n- We target minor releases for every 6 month, leading with a four\n month implementation and then a beta + RC timespan of two month.\n\nTo be specific, 2.0.1 is scheduled for next week and 2.1 is scheduled\nfor June 30th 2011.\n\nYou can follow the Tracker with all the features that are planned for\n2.1:\n\n[[https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022)\n\nYou can already start testing 2.1 development with two new features as\nof last week:\n\n- [Foreign Keys as Primary\n Keys](https://github.com/doctrine/orm/issues/1772)\n- [Extra Lazy\n Collections](https://github.com/doctrine/orm/issues/5053)\n\n", - "date": "2011-01-13 00:00:00" + "contents": "This weekend I decided it was time to completely dive in to the\nawesomeness that is [symfony](http://www.symfony-project.com) 1.2. I\nupgraded the Doctrine website to 1.2 as well as Doctrine 1.1. I had\nseveral schema changes that I migrated to production with the new\n[Migrations\nfeatures](https://www.doctrine-project.org/2008/10/18/new-to-migrations-in-1-1.html)\nthat were mentioned previously on the blog. It made the upgrade of the\nwebsite much easier. The primary motivation for diving in to this was a\nblog post made on\n[10/18/2008](https://symfony.com/blog/spice-up-your-forms-with-some-nice-widgets-and-validators)\nand\n[10/14/2008](https://symfony.com/blog/new-in-symfony-1-2-make-your-choice)\nwhere Fabien talks about forms in symfony 1.2.\n\nBelow is an overview of some of the changes made.\n\n- Upgraded to symfony 1.2\n- Upgraded to Doctrine 1.1\n- New backend control panel for administering the content of the\n website\n- Single Sign-On(SSO) - We now have partial SSO. Trac and the main\n website authentication are shared now. The forum will be integrated\n soon.\n- New groundwork started for several new website features, new\n documentation, user contributed documentation, user contributed\n packages! and more.\n\nHere are some screen shots of the backend magic that was generated by\nsymfony. I didn't have to do much and in one evening we have a new\ncontent management system backend for the website.\n\nDoctrine Releases\n=================\n\nThe style and custom icons in this list of the available Doctrine\nreleases were added thanks to my custom theme built specifically for the\nDoctrine backend.\n\n![Doctrine Releases\n](https://www.doctrine-project.com/uploads/assets/api_release_list.png)\n\nEdit User SVN Access\n====================\n\nThanks to the symfony form framework I was able to easily add a custom\nwidget for editing the website users svn access for all the different\nDoctrine versions.\n\n![Edit User SVN Access\n](https://www.doctrine-project.com/uploads/assets/edit_user_svn_access.png)\n\nDoctrine Release Points\n=======================\n\nList of all the Doctrine sub-release points.\n\n![Doctrine Release Points\n](https://www.doctrine-project.com/uploads/assets/api_release_points_list.png)\n\nEdit Doctrine Release\n=====================\n\nEdit a Doctrine release and control its stability as well as other\ninformation.\n\n![Edit Doctrine Release\n](https://www.doctrine-project.com/uploads/assets/edit_api_release.png)\n\nEdit Blog Post\n==============\n\nEdit a blog post entry using markdown syntax.\n\n![Edit Blog\nPost](https://www.doctrine-project.com/uploads/assets/edit_blog_post.png)\n", + "date": "2008-10-19 00:00:00" }, { - "url": "/2012/03/07/new-doctrine-website.html", - "slug": "new-doctrine-website", - "title": "New Website", + "url": "/2010/07/12/doctrine2-large-collections.html", + "slug": "doctrine2-large-collections", + "title": "Working with Large Collections in Doctrine2", "authorName": "beberlei", "authorEmail": "", - "contents": "", - "date": "2012-03-07 00:00:00" + "contents": "If you access a collection of Entity A pointing to Entity B, Doctrine2\nalways initializes the complete collection for you. For small\ncollections up to around 100 entities this won't be a problem, however\nas soon as collections get (much) bigger than this you can get into\nserious trouble.\n\nBy default Doctrine2 can only optimize adding new entities to a\ncollection for you. This operation does not initialize the collection.\nThis will only get you bigger collections though, reading them is still\na pain.\n\nWe already got requests from several development teams for better\nfunctionality in this regard and we are planning to add a solution to\nthis problem that is not constraining your domain model with technical\nblurp. However this solution is currently on our schedule for the 2.1\nrelease of Doctrine only.\n\nUntil then I wrote a very little extension for Doctrine2 that allows you\nto work with large collections. It has two methods that compute the\nfollowing data for any given `PersistentCollection`:\n\n- Total Number of Elements in the Collection\n- A slice of entities from the collection using a sql limit (or\n alternative)\n\nYou can get this extension from the [DoctrineExtensions Github\nrepository](https://github.com/beberlei/DoctrineExtensions).\n\nWorking with a LargeCollection\n==============================\n\nThe `LargeCollection` class is a handler to work with large\nPersistentCollections. You can instantiate it by passing an\n`EntityManager` instance:\n\n~~~~ {.sourceCode .php}\ncount($article->getComments());\n~~~~\n\nYou can retrieve a slice of entities from the collection by calling:\n\n~~~~ {.sourceCode .php}\ngetSliceQuery($article->getComments(), $limit = 30);\n~~~~\n\nAs you can see this is very simple to use, but also missing some bits:\n\n- In your domain models you sometimes don't want to return the\n `Collections` instance but call `toArray()` to encapsulate the\n Collections API inside the Entity. For this two new methods are\n required to access to the persistent collections from the inside of\n an entity.\n- The `remove`, `removeElement`, `contains` and `containsKey` methods\n could also be added to the large collection handler, making direct\n calls to the underlying UnitOfWork API.\n- A method that returns an `IterableResult` for any given collection.\n This would allow to iterate the complete collection on a row-by-row\n basis, which would eliminate possible max memory problems compared\n to the complete hydration of a collection.\n- Methods link()/unlink() like described in\n [DDC-128](https://github.com/doctrine/orm/issues/1892)\n\nI hope I got your attention and maybe someone has an interest in\nextending the LargeCollection a little bit more.\n", + "date": "2010-07-12 00:00:00" }, { - "url": "/2015/12/02/doctrine-module-0-10-0.html", - "slug": "doctrine-module-0-10-0", - "title": "DoctrineModule 0.10.0 Release", - "authorName": "Gianluca Arbezzano", - "authorEmail": "gianarb92@gmail.com", - "contents": "We are happy to announce DoctrineModule `0.10.0`.\n\nInstallation\n============\n\nYou can install this version of the DoctrineModule by using Composer and\nthe:\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-module\": \"~0.10.0\"\n }\n}\n```\n\nChanges since 0.9.0\n===================\n\nThis is a list of issues resolved in `2.5.2` since `2.4.1`:\n\n- [[\\#521]](https://github.com/doctrine/DoctrineModule/pull/521):\n Fixed php\\_codesniffer dependency\n- [[\\#534]](https://github.com/doctrine/DoctrineModule/pull/534):\n Fixed wrong Predis Mock\n- [[\\#537]](https://github.com/doctrine/DoctrineModule/pull/537):\n Update hydrator.md\n- [[\\#520]](https://github.com/doctrine/DoctrineModule/pull/520): Fix\n for issue \\#230 and fixes for \\#234\n- [[\\#539]](https://github.com/doctrine/DoctrineModule/pull/539):\n Better support for snake\\_case field names\n- [[\\#535]](https://github.com/doctrine/DoctrineModule/pull/535): Adds\n additional processing for DoctrineObject::toMany\n\nPlease report any issues you may have with the update on the mailing\nlist or on\n[GitHub](https://github.com/doctrine/DoctrineModule/issues).\n", - "date": "2015-12-02 00:00:00" + "url": "/2014/09/12/dbal-250rc2.html", + "slug": "dbal-250rc2", + "title": "Doctrine DBAL 2.5 RC2", + "authorName": "", + "authorEmail": "", + "contents": "We are happy to announce the immediate availability of [Doctrine DBAL\n2.5 RC2](https://github.com/doctrine/dbal/releases/tag/v2.5.0-RC2),\nwhich fixes over 30 bugs including SQL Server LIMIT/OFFSET issues,\nseveral identifiers quotation issues, schema introspection related\nissues and many more. This release candidate also introduces some nice\nnew features and improvements since [Doctrine DBAL 2.5\nBETA3](https://github.com/doctrine/dbal/releases/tag/v2.5.0-BETA3):\n\n- Support for connection flags in the mysqli driver\n- Support for Spatial Indexes in MySQL\n- Support date arithmetic interval methods for seconds, minutes,\n weeks, quarters and years\n- Support for Partial Indexes in PostgreSQL and SQLite\n- `Doctrine\\DBAL\\Connections\\MasterSlaveConnection` can now be closed\n via `close()`\n- Ability to retrieve parameter types from the query builder\n- Make table alias in query builder optional for simple queries\n\nWe hope this will be the last release candidate before final release and\nyou should expect to see the finished DBAL 2.5 very soon.\n\nFor details about all the new features in DBAL 2.5, see the [previous\nrelease blog\npost](https://www.doctrine-project.org/2014/02/21/doctrine_2_5_beta3.html)\nand the [Jira\nRelease](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10523).\n\nYou can install the Release Candidate through Composer with the\nfollowing version constraint:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.0@RC\"\n }\n}\n~~~~\n\nDBAL 2.5 is backwards compatible to 2.4 and earlier in everything except\nfor small details (See `UPGRADE.md`). You can even test Doctrine DBAL\n2.5 with a stable ORM 2.4 version.\n\nIf you find any problems with this beta, please report a bug [on\nJira](https://www.doctrine-project.org/jira).\n", + "date": "2014-09-12 00:00:00" }, { - "url": "/2010/07/19/your-own-orm-doctrine2.html", - "slug": "your-own-orm-doctrine2", - "title": "Write your own ORM on top of Doctrine2", - "authorName": "beberlei", + "url": "/2009/06/21/website-updates.html", + "slug": "website-updates", + "title": "Website Updates", + "authorName": "jwage", "authorEmail": "", - "contents": "**NOTE**\n\n> The Doctrine ActiveEntity Extension is just an experiment, nothing\n> that will be developed much further from the Doctrine Dev Team. It is\n> only a show-case for what is possible with Doctrine2. Please feel free\n> to take the code and develop it further.\n\nDid you feel the urge to write your own Object-Relational Mapper after\nreading Martin Fowlers PoEAA? I am guilty to have tried implementing two\ndifferent ORMs on my own, both now safely dumped into the trash.\n\nIn isolation each ORM pattern is easy to describe, understand and even\nimplement. However the combination of a large set of patterns into a\nsingle implementation introduces a lot of hard to solve complexity in\nyour code. Even simple Object-Relational-Mappers require a lot of\npatterns to become useful: Metadata Mapping, Identity Map, Foreign Key\nMapping, Association Table Mapping and Query Object. Implementations\nwith more features at least need the UnitOfWork and probably many more,\nfor example handling inheritance, locking, value objects and such.\n\nDoctrine2 already solves a lot of the head aching problems in a\nconsistent approach. We have been working on this project for almost 2\nyears now, with all the experience we gained implementing Doctrine 1.\nAdditionally we make use of well-understood concepts from other ORM\nimplementations across various languages.\n\nWe as developers think that Doctrine2 responsibilities are very well\nseparated such that you can exchange larger parts of the Doctrine2 core\nwithout having to re-implement everything. So if you ever feel inspired\nto implement your own ORM, we would be happy to offer you Doctrine2 as a\nfoundation to build upon.\n\nThere are examples of other ORMs that have taken the re-use instead of\nre-implement road. For example the [Groovy Grails\nORM](http://www.grails.org/GORM) is an ActiveRecord implementation on\ntop of the popular Hibernate Java ORM. Since Groovy is a\njava-virtual-machine language it can safely use the Hibernate ORM as a\ndependent library.\n\nThis article will describe some possible extensions and show where you\ncan hook into the Doctrine2 core to implement your own ORM. The article\nwill be very code focused and also comes with a [Github\nproject](https://github.com/beberlei/Doctrine-ActiveEntity) where all the\ncode and some tests are hosted.\n\nDoctrine2 and ActiveRecord\n==========================\n\nDoctrine2 is implementing the DataMapper pattern, however many\nprogrammers think ActiveRecord is better for various reasons. For me\ndata-mappers are superiour to ActiveRecord, however I do understand why\nActiveRecord is so popular: Its very easy to get started and do cool\nstuff with it! If you want Doctrine2 to be ActiveRecord you can have it.\nActually it is very easy to turn it into a powerful ActiveRecord\nimplementation, keeping all the powerful features such as DQL.\n\nSome while ago Jonathan already released his approach, called the\n\"ActiveEntity\" extension. Its a single abstract php class that your\nentities have to implement, the code is still [in our SVN\nrepository](http://trac.doctrine-project.org/browser/extensions/ActiveEntity/branches/2.0-1.0/DoctrineExtensions/ActiveEntity.php).\nHowever a more recent version of this code is available as [a project on\nGithub](https://github.com/beberlei/Doctrine-ActiveEntity). I won't\nsupport this experiment any further, I hope somebody picks it up and\nstarts maintaining it.\n\nWith Jonathans old code, to allow active record entities, you have to\nbootstrap the ActiveEntity by passing a static EntityManager:\n\n~~~~ {.sourceCode .php}\n \"beberlei\"));\n$beberlei = User::findOneBy(array(\"name\" => \"beberlei\"));\n~~~~\n\nThe code to allow this functionality is very simple:\n\n~~~~ {.sourceCode .php}\ngetRepository(get_called_class()), $method), $arguments);\n}\n~~~~\n\nThere are also some additional methods on the `ActiveEntity` class that\nuse magic **get and**set and \\_\\_call methods to access the private\nproperties of an Entity (such as the User id and name shown above).\nAdditionally you can call save() or remove() on any instance.\n\nFor starters this offers a great ActiveRecord implementation with all\nthe powerful features that Doctrine2 offers, such as DQL and UnitOfWork.\nHowever we can still go much further:\n\n- Eliminate the need to define ActiveEntity properties by metadata\n mapping inference\n- Adding your own powerful Metadata Mapping Layer\n- Add a Doctrine 1.2 behaviour system using the PHP 5.3.99DEV Traits\n functionalitiy\n- Add validation to properties of an ActiveEntity\n\nLets begin with a simple introduction to the Doctrine Metadata Model to\nexplain how this is all possible.\n\nDoctrine2 Metadata Model\n========================\n\nYou probably already saw that Doctrine2 offers many different metadata\nconfiguration mechanisms: Annotations, YAML, XML and plain PHP. Any one\nof this implementations will transform into an instance of\n`Doctrine\\ORM\\ClassMetadata` which is then cached for subsequent web\nrequests. The `ClassMetadataFactory` is responsible for creating and\nmanaging those metadata instances.\n\nDoctrine2 uses the `ClassMetadata` instance internally for all runtime\naccess to your entities metadata, which means that you have to extend\nthis class such that it works exactly the same from the outside.\n\nIf you wanted to extend the inner workings of Doctrine2, this is indeed\nthe way to go. First extend the EntityManager to replace the\n`ClassMetadataFactory` used. This piece of code is the only hackish\nworkaround, everything else is rather nice :-)\n\n~~~~ {.sourceCode .php}\nsetCacheDriver($this->getConfiguration()->getMetadataCacheImpl());\n\n // now this is the only hack required to get it work:\n $reflProperty = new \\ReflectionProperty('Doctrine\\ORM\\EntityManager', 'metadataFactory');\n $reflProperty->setAccessible(true);\n $reflProperty->setValue($this, $metadataFactory);\n }\n\n public static function create($conn, Configuration $config, EventManager $eventManager = null)\n {\n // ... copy paste from EntityManager::create()\n\n return new ActiveEntityManager($conn, $config, $conn->getEventManager());\n }\n}\n~~~~\n\nAnd both the `ClassMetadataFactory` and `ClassMetadata`:\n\n~~~~ {.sourceCode .php}\nname, $name);\n }\n}\n\nclass ActiveEntityReflectionProperty\n{\n public $name = null;\n public $class = null;\n\n public function __construct($class, $name)\n {\n $this->class = $class;\n $this->name = $name;\n }\n\n public function setAccessible($flag) {}\n\n public function setValue($entity = null, $value = null)\n {\n $entity->set($this->name, $value);\n }\n\n public function getValue($entity = null)\n {\n return $entity->get($this->name);\n }\n}\n~~~~\n\nThis is about enough to exchange reflection transformation against a\nsimple ActiveRecord get/set approach. Now we need to replace the all the\ninstantiations of `ReflectionClass` relevant for runtime mapping with\nour implementation:\n\n~~~~ {.sourceCode .php}\nreflClass = new ActiveEntityReflectionClass($entityName);\n $this->namespace = $this->reflClass->getNamespaceName();\n $this->table['name'] = $this->reflClass->getShortName();\n }\n\n /**\n * Restores some state that can not be serialized/unserialized.\n *\n * @return void\n */\n public function __wakeup()\n {\n // lots of code here, see the Github Repository\n }\n}\n~~~~\n\nAgain, this is enough and our ActiveEntity Mapping now works. We can\nheavily modify the `ActiveEntity` now to loose the requirement to\nspecify properties for the defined metadata. We can rewrite the User\nentity to be:\n\n~~~~ {.sourceCode .php}\nsetMetadataDriverImpl(new \\Doctrine\\ORM\\Mapping\\Driver\\StaticPHPDriver());\n// ...\n~~~~\n\nThis allows to specify the metadata within the User class:\n\n~~~~ {.sourceCode .php}\nget('created');\n }\n\n public function updated()\n {\n return $this->get('updated');\n }\n\n /** will be a prePersist lifecycle hook */\n public function setCreated()\n {\n return $this->set('created', new \\DateTime(\"now\"));\n }\n\n /** will be a preUpdate lifecycle hook */\n public function setUpdated()\n {\n return $this->set('updated', new \\DateTime(\"now\"));\n }\n}\n\nclass User extends ActiveEntity use Timestampable\n{\n\n}\n~~~~\n\nWe now need an Event that modifies the `ActiveClassMetadata` as\nrequired:\n\n~~~~ {.sourceCode .php}\ngetClassMetadata();\n $traits = $classMetadata->reflClass->getTraitNames();\n if (!in_array(\"DoctrineExtensions\\ActiveEntity\\Behaviour\\Timestampable\", $traits)) {\n return;\n }\n\n $classMetadata->mapField(array(\n 'type' => 'datetime',\n 'fieldName' => 'created',\n ));\n $classMetadata->mapField(array(\n 'type' => 'datetime',\n 'fieldName' => 'updated',\n ));\n $classMetadata->addLifecycleCallback(\"prePersist\", \"setCreated\");\n $classMetadata->addLifecycleCallback(\"prePersist\", \"setUpdated\");\n $classMetadata->addLifecycleCallback(\"preUpdate\", \"setUpdated\");\n }\n}\n~~~~\n\nYou can now register this behaviour with your Entity Manager and just\nthe usage of the trait `Timestampable` adds two additional fields and\nupdates them accordingly.\n\n> **NOTE**\n>\n> Again, the trait code is untested. It should work, but I cannot\n> guarantee! :)\n\nConclusion\n==========\n\nWhat are you waiting for? This article showed a very deep modification\nof the Doctrine2 core to turn it into Active Record. The changes\nrequired some understanding of the inner workings of Doctrine2, however\nnot many changes were required in the end.\n\n[See the code on\nGitHub!](https://github.com/beberlei/Doctrine-ActiveEntity)\n", - "date": "2010-07-19 00:00:00" + "contents": "Today I have deployed some updates to the Doctrine website. Some of the\nupdates all of you will enjoy, but another specific one might upset some\nof you.\n\nI have decided to remove the Doctrine Forum forever and consolidate the\nuser discussions in to the\n[doctrine-user](https://groups.google.com/forum/#!forum/doctrine-user) mailing\nlist which is hosted on Google Groups. I chose to do this for a few\nreasons.\n\n- Consolidate discussions in to one area so the community is not\n split.\n- phpBB is horrible and is proving to be a lot of work for me to\n maintain\n- I don't want to have to spend countless hours maintaining something\n that google groups can do for me, for free\n\nI know this will upset some of you, but I hope you understand and are\nhappy that the Doctrine developers will now be able to spend more\ntime...**developing Doctrine**..instead of maintaining the forum.\n\nSome other changes I have made/fixed.\n\n- Change Logs are now fixed from the move\n- The [blog](https://www.doctrine-project.org/blog) has been enhanced\n and tags fixed\n- [API\n Documentation](https://www.doctrine-project.org/Doctrine_Record/1_1)\n Enhanced to include browse code links so you can see the code for\n each class, function, etc.\n- A bunch of other small little things tweaked and fixed.\n\nIf you find anything wrong with the website or something you'd like to\nsee different please let me know via the comments below or by e-mail at\njonwage [at] gmail.com\n", + "date": "2009-06-21 00:00:00" }, { - "url": "/2011/12/20/doctrine2-2-beta.html", - "slug": "doctrine2-2-beta", - "title": "Doctrine 2.2 Beta", + "url": "/2011/11/23/doctrine-orm-2-1-4-released.html", + "slug": "doctrine-orm-2-1-4-released", + "title": "Doctrine ORM 2.1.4 released", "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "We are proud to announce the start of the beta phase of Doctrine 2.2. I\nthink we implemented a nice amount of new features and refactored lots\nof the code-base for simplicity and performance. Additionally we found a\nbunch of new developers that contributed considerable amount of code.\n\nA top list of the changes includes:\n\n- Filtering entities and associations based on rules that can be\n parameterized, enabled or disabled, developed by asm89\n- Support for complex SQL types such as Geometries, IPs, develped by\n jsor.\n- Bit Comparisions in DQL, developed by Fabio.\n- Annotation Refactorings by Fabio and johannes.\n- DQL Refactoring, ORDER BY and GROUP BY supporting result variables\n of SELECT expressions.\n- Alias for entities in DQL results.\n- Result Cache refactoring\n- Flush for single entities\n\nSee the changelogs of all three projects Common, DBAL, ORM:\n\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10157)\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10142)\n- [Common](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10152)\n\nIn the next weeks will stabilize this code and add documentation for all\nthe new features. Additionally we try to drive the bug count down in the\n2.1 branch as well.\n\nPlease test this beta with your projects to find any incompatibilities.\nSee the\n[UPGRADE\\_2\\_2](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-22)\nfile to see backwards incompatible changes.\n\nYou can install the Beta through\n[Github](https://github.com/doctrine/orm) , \\`PEAR\n[http://pear.doctrine-project.org](http://pear.doctrine-project.org)\\>\\`\\_\nor through [Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.0-BETA1\" }\n>\n> }\n", - "date": "2011-12-20 00:00:00" + "contents": "I just released Doctrine ORM 2.1.4. The Doctrine ORM 2.1.3 release has a\nregression in the EntityManager\\#merge() method, which is fixed in this\nrelease. See the\n[changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10165).\n\nGet the package from [PEAR](http://pear.doctrine-project.org) ,\n[Downloads](https://www.doctrine-project.org/projects) or from\n[Github](https://github.com/doctrine/orm).\n", + "date": "2011-11-23 00:00:00" }, { - "url": "/2010/03/21/doctrine-2-give-me-my-constructor-back.html", - "slug": "doctrine-2-give-me-my-constructor-back", - "title": "Doctrine 2: Give me my constructor back", + "url": "/2023/10/11/orm3-beta1-dbal4-rc1-future-plans.html", + "slug": "orm3-beta1-dbal4-rc1-future-plans", + "title": "ORM 3.0 Beta 1, DBAL 4 RC 1 and future plans", + "authorName": "Benjamin Eberlei", + "authorEmail": "kontakt@beberlei.de", + "contents": "We have released the [first beta of the long awaited Doctrine ORM\n3](https://github.com/doctrine/orm/releases/tag/3.0.0-beta1) and a [release\ncandidate of DBAL 4](https://github.com/doctrine/dbal/releases/tag/4.0.0-RC1). \n\nThe target audience for these releases are framework integration and extension\nlibrary authors. ORM 3 is not yet production ready and the APIs may change.\n\nOur goal is to release ORM 3.0 as soon as possible and to gather feedback from\ngreenfield project authors first. \n\nThis beta release is the result of a lot of work by many contributors,\nespecially Gr\u00e9goire, Alexander, Claudio and Matthias on ORM, Sergei and\nAlexander on DBAL. To iron out the final details, we met in D\u00fcsseldorf for a\nDoctrine Core Team meeting, generously funded by our sponsors through\nOpenCollective and GitHub. We also welcomed Matthias as the latest member of\nthe Doctrine Core Team.\n\n### Continued ORM 2 support and forward compatibility\n\nWe will maintain the latest branch of the 2 line in ORM for at least another 2\nyears, possibly longer, to give you enough time to upgrade and us more time to\nlearn from upgrader feedback and improve forward compatibility.\n\nThis means that we will be making ORM 2.x work with newer versions of PHP,\nfixing security bugs, and introducing layers and features that help with\nforward compatibility in the upgrade path to ORM 3. \n\nCurrent users of ORM 2 should note that there is no urgency right now to update\nto ORM 3, as we are still working on replacement APIs and forward\ncompatibility, and do not intend to ship them all with ORM 3.0, but with later\nversions.\n\n### ORM 2 users can already prepare for 3 by addressing deprecations\n\nBut there is already work to be done as an ORM 2 user: to help you find all the\nplaces where things may be deprecated or changing behaviour, we have created\n[the doctrine/deprecations\nlibrary](https://github.com/doctrine/deprecations#usage-from-consumer-perspective)\nand integrated it heavily into DBAL, ORM and other components.\n\nIt allows the use of deprecated behaviour to be logged at runtime with low\noverhead, automatic suppression of the same deprecation occurring multiple\ntimes, and a way to ignore selected deprecations for the time being. Each\ndeprecation message always links to a GitHub issue with more details.\n\nMany deprecated features have no replacement, such as Mapping Exporters,\nGenerate Mapping from Database, Named Queries. \n\nFor some of the deprecations in ORM, we are still planning replacement APIs,\nespecially:\n\n* There is currently no way to limit the number of entities that the flush\n operation considers changed. Flush will currently always calculate change\n sets on all entities that are not read-only. \n* As a replacement for removing PARTIAL object hydration, we are looking at\n making embeddable objects lazy, perhaps improving nesting of the new DTO\n expression in DQL. We are also looking to introduce subselect or batch\n loading for collections for more efficient multi-level hydration.\n\nThese will be released in 2.x as forward compatible APIs so that you can switch\nto using them before upgrading to ORM 3.\n", + "date": "2023-10-11 00:00:00" + }, + { + "url": "/2009/11/30/doctrine-1-2-0-stable-released.html", + "slug": "doctrine-1-2-0-stable-released", + "title": "Doctrine 1.2.0 Stable Released", "authorName": "jwage", "authorEmail": "", - "contents": "At [ConFoo\n2010](https://www.doctrine-project.org/2010/03/15/doctrine-2-at-confoo-2010.html)\nduring my presentation, someone asked about the constructor of entities\nin Doctrine 2 and whether or not it could be used. I think this is\nsomething worth writing about since in Doctrine 1 this was not possible.\nThe constructor was hi-jacked from you and used internally by Doctrine.\n\nIn Doctrine 2 it is possible to define the constructor in your entity\nclasses and is not required to be a zero argument constructor! That's\nright, Doctrine 2 never instantiates the constructor of your entities so\nyou have complete control!\n\nThis is possible due to a small trick which is used by two other\nprojects,\n[php-object-freezer](http://sebastian-bergmann.de/archives/831-Freezing-and-Thawing-PHP-Objects.html)\nand Flow3. The gist of it is we store a prototype class instance that is\nunserialized from a hand crafted serialized string where the class name\nis concatenated into the string. The result when we unserialize the\nstring is an instance of the class which is stored as a prototype and\ncloned everytime we need a new instance during hydration.\n\nHave a look at the method responsible for this:\n\n~~~~ {.sourceCode .php}\n_prototype === null) {\n $this->_prototype = unserialize(sprintf('O:%d:\"%s\":0:{}', strlen($this->name), $this->name));\n }\n return clone $this->_prototype;\n}\n~~~~\n\nThe above code allows us to have entities where we make full use of our\nconstructor like the following class definition:\n\n~~~~ {.sourceCode .php}\nusername = $username;\n $this->password = md5($password);\n }\n}\n~~~~\n\nNow of course you can use the constructor like you would expect:\n\n~~~~ {.sourceCode .php}\n`_). Cache paths were exceeding the windows ``MAX\\_PATH`` length (`#107 `_). The ``MongoDBCache`` was not failing silently in case of DB-side exceptions (`#108 `_). You can find the complete changelog for this release in the `v1.5.2 release notes `_. Installation ~~~~~~~~~~~~ You can install the Cache component using the following ``composer.json\\`\\`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.5.2\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-12-03 00:00:00" }, { - "url": "/2011/11/21/doctrine-maintenance-nov2011.html", - "slug": "doctrine-maintenance-nov2011", - "title": "Doctrine Common 2.1.3, DBAL 2.1.5 and ORM 2.1.3 Releases", - "authorName": "Benjamin Eberlei", - "authorEmail": "", - "contents": "The bugfix release is three weeks overdue, here is it now:\n\n- [ORM 2.1.3 with 24 bugfixes and 1 security\n fix](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10164)\n- [DBAL 2.1.5 with 6\n bugfixes](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10167)\n- [Common 2.1.3 with 1\n bugfix](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10166)\n\nThe security fix concerns usage of the ASC/DESC orientation parameters\nin `$repository->findBy($criteria, $orderBy)`, which is subject to SQL\ninjection when user-input is allowed into this method.\n\nYou can grab the downloads from the [project\npage](https://www.doctrine-project.org/projects) , via\n[PEAR](http://pear.doctrine-project.org) or\n[Git](https://github.com/doctrine)\n\nPlease update your installations.\n", - "date": "2011-11-21 00:00:00" + "url": "/2015/08/31/doctrine_orm_2_5_1_and_2_4_8_released.html", + "slug": "doctrine_orm_2_5_1_and_2_4_8_released", + "title": "Doctrine ORM 2.5.1 and 2.4.8 released", + "authorName": "default", + "authorEmail": "", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.5.1 and 2.4.8.\n\nThis versions include a fix for the [Security Misconfiguration\nVulnerability](https://www.doctrine-project.org/2015/08/31/security_misconfiguration_vulnerability_in_various_doctrine_projects.html)\ndescribed in an earlier blog post today.\n\nHere are the changelogs:\n\nChangelog 2.5.1\n===============\n\n- DCOM-293: Fix for Security Misconfiguration Vulnerability\n- DDC-3831: Fixed issue when paginator orders by a subselect\n expression\n- DDC-3699: Fix bug in EntityManager\\#merge: Skipping properties if\n they are listed after a not loaded relation\n- DDC-3684: Fix bug ClassMetadata\\#wakeupReflection when used with\n embeddables and Static Reflection\n- DDC-3683: SecondLevelCache: Fix bug in\n DefaultCacheFactory\\#buildCollectionHydrator()\n- DDC-3667: PersistentCollection: Fix BC break when creating empty\n Array/PersistentCollections\n\nChangelog 2.4.8\n===============\n\nThis release contains several fixes that have been in 2.5.0 already and\nare just backported to 2.4 for convenience. This is the last release in\nthe 2.4 branch and you should upgrade to 2.5.\n\n- DCOM-293: Fix for Security Misconfiguration Vulnerability\n- DDC-3551: Fix difference between DBAL 2.4 and 2.5 concerning\n platform initialization and version detection.\n- DDC-3240: EntityGenerator: Fix inheritance in Code-Generation\n- DDC-3502: EntityGenerator: Fixed parsing for php 5.5 \"::class\"\n syntax\n- DDC-3500: Joined Table Inheritance: Fix applying ON/WITH conditions\n to first join in Class Table Inheritance\n- DDC-3343: Entities should not be deleted when using EXTRA\\_LAZY and\n one-to-many\n- DDC-3619: Bugfix: Prevent Identity Map Garbage Collection that can\n cause spl\\_object\\_hash collisions\n- DDC-3608: EntityGenerator: Properly generate default value from yml\n & xml mapping\n- DDC-3643: EntityGenerator: Fix EntityGenerator\n RegenerateEntityIfExists not working correctly.\n\nAs usual you can grab the latest versions from Composer.\n", + "date": "2015-08-31 00:00:00" }, { - "url": "/2013/09/11/doctrine-2-4-released.html", - "slug": "doctrine-2-4-released", - "title": "Doctrine 2.4 released", - "authorName": "Benjamin Eberlei", + "url": "/2010/07/27/dbal2-beta3-released.html", + "slug": "dbal2-beta3-released", + "title": "Release of DBAL 2.0.0 Beta3", + "authorName": "beberlei", "authorEmail": "", - "contents": "We are happy to announce the availability of Doctrine Common, DBAL and\nORM versions 2.4. This took us much longer than planned and we are very\nsorry for all the delay that was mostly caused by contributers private\nand work lifes. For the next versions we will also try to keep the scope\nsmaller, you will see that version 2.4 contains lots of small new\nfeatures.\n\nStarting with version 2.4 Doctrine will not be available over PEAR\nanymore. The maintenance of this deployment channel is too complicated,\ncompared to the small number of people using it. We focus on shipping\nDoctrine with [Composer](https://getcomposer.org) , which is a superior\npackaging tool in our opinion. We will continue to make Doctrine\navailable as standalone download through the Github releases pages.\n\nFollow the links in the list to find the changelogs of the three new\nreleases:\n\n- [Doctrine Common v2.4.1\n Changelog](https://github.com/doctrine/common/releases/tag/v2.4.1)\n- [Doctrine DBAL v2.4.0\n Changelog](https://github.com/doctrine/dbal/releases/tag/v2.4.0)\n- [Doctrine ORM v2.4.0\n Changelog](https://github.com/doctrine/orm/releases/tag/v2.4.0)\n\nBackwards Incompatible Changes\n==============================\n\nThere have been some BC breaks in the 2.4 releases, which are listed\nhere:\n\n- DoctrineDBALSchemaConstraint API change\n- Compatibility Bugfix in PersistentCollection\\#matching()\n- Composer is now the default autoloader\n- OnFlush and PostFlush event always called\n- DQL: Parenthesis are now considered in arithmetic expression\n\nYou can read up in detail on BC breaks on the\n[DBAL](https://github.com/doctrine/dbal/blob/2.4/UPGRADE) and\n[ORM](https://github.com/doctrine/orm/blob/2.4/UPGRADE.md) UPGRADE\ndocs.\n\nInstallation\n============\n\nYou can install Doctrine using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/common\": \"2.4.*\",\n \"doctrine/dbal\": \"2.4.*\",\n \"doctrine/orm\": \"2.4.*\"\n }\n}\n~~~~\n\nNew Features\n============\n\nThis release contains large amount of new features and improvements.\nCompared to the previous minor release not so many big-bang features,\nbut many small improvements. The most important changes are listed here\nwith small examples or links to their documentation.\n\n- ALTER TABLE support for SQLite (by\n [hason](https://github.com/hason)) by creating new tables, moving\n all the data and then renaming.\n- Using \\`EXTRA\\_LAZY\\` fetch mode now also queries for single\n entities on collections with `indexBy` when using\n `$collection->get()` or accessing the collection via array access.\n- Added two new modes to proxy generation for development\n environemnts, first using `eval` and second by checking if the proxy\n file not exists.\n- Pass Event Arguments to entities lifecycle methods, allowing access\n to `EntityManager`.\n- Allow to order by associations when using\n `EntityRepository#findBy()`.\n- Support for new \\`NEW()\\` operator in DQL which can be wrapped\n around the full `SELECT`-clause parts and instantiates an object by\n passing the parameters to the constructor. See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#new-operator-syntax)\n for more details.\n- Support for `@EntityListener` annotation and XML/YML configuration,\n which allows adding listener services on a per entity level (not\n global). See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/events.html#entity-listeners)\n for details.\n- Improved the `ResultSetMapping` to generate the `SELECT` clause for\n an SQL statement, thereby improving the usability of native queries\n alot. See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/native-sql.html#resultsetmappingbuilder)\n for more details.\n- Introduced a factory for repositories that can be overwritten in the\n `Doctrine\\ORM\\Configuration`.\n- Added an interface for `EntityManager` called\n `Doctrine\\ORM\\EntityManagerInterface` and a decorator base class\n `Doctrine\\ORM\\Decorator\\EntityManagerDecorator`.\n- Support for proxy objects for entities with public properties.\n- Add support for composite primary keys in DQL `IDENTITY()` function.\n See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#dql-select-examples)\n for more details.\n- Introduced ANSI SQL Quoting Strategy that does not attempt to quote\n and modify columns during SQL generation.\n- Joins between arbitrary entities are now possible in DQL by using\n the syntax `FROM Foo f JOIN Bar b WITH f.id = b.id`.\n\nDocumentation\n=============\n\nWith 2.4 we merged the documentation into the repositories itself. We\nhave seen a much increased amount of Pull Requests since then and also\nimproved the documentation ourselves quite alot for 2.4.\n\nBesides fixes and additions of all the new features, we tried to improve\nthe style of the documentation. Many of the chapters have been\nrefactored completly and hopefully address many of the valid concers of\nour users.\n", - "date": "2013-09-11 00:00:00" + "contents": "In preparation of the next ORM Beta Release in the next days we already\nreleased Doctrine DBAL 2.0.0BETA3 today. Noteworthy changes include:\n\n- BC Break: Changed behaviour of Postgres and Oracle DateTime now\n without Timezone (TIMESTAMP WITHOUT TIME ZONE instead of TIMESTAMP\n WITH TIME ZONE) See [Ticket\n DBAL-22](https://github.com/doctrine/dbal/issues/1394) for\n more details aswell as migration issues for PostgreSQL and Oracle.\n This will be re-announced for the ORM Beta 3 release, which is\n affected from this change.\n- SQL Loggers can now log execution times of queries\n [DBAL-11](https://github.com/doctrine/dbal/issues/1037)\n- Several Issue with AutoIncrement Detection in Doctrine\n\nA total of 13 issues on DBAL has been fixed.\n\nLinks:\n\n- [Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10066)\n- [Installation](https://www.doctrine-project.org/projects/dbal/2.0/download/2.0.0BETA3)\n\n > **NOTE** DBAL BETA 3 is not currently compatible with the ORM\n > master, we still have to make some changes. Please wait to use\n > DBAL Beta 3 with ORM until the ORM Beta 3 is released.\n\n\n", + "date": "2010-07-27 00:00:00" }, { - "url": "/2011/11/21/a-doctrine-orm-odm-base-class.html", - "slug": "a-doctrine-orm-odm-base-class", - "title": "An ORM/ODM Base Class", - "authorName": "Benjamin Eberlei", + "url": "/2011/07/02/doctrine-2-1-rc3.html", + "slug": "doctrine-2-1-rc3", + "title": "Doctrine 2.1 Release Candidate 3", + "authorName": "beberlei", "authorEmail": "", - "contents": "One of most common complaints about Doctrine2 is the requirement to\nwrite getters/setters for all the fields and assocations of every\nentity. A concern that immediately follows is that Doctrine 2 is not\nsuitable for Rapid-Application-Development.\n\nThe problem is purely a usability concern and there are a bunch of very\neasy ways ouf of this problem:\n\n- A base-object that has \\_\\_get/\\_\\_set.\n- The EntityGenerator can generate getters/setters\n- An IDE that generates getters/setters (Netbeans, PHPStorm)\n\nWe have been very critical of ActiveRecord since we started the\ndevelopment of Doctrine 2 for various reasons. Mostly because we don't\nthink coupling the database to your domain objects is a good choice for\ntestability an maintainabilty reasons.\n\nHowever we do see the need for Doctrine 2 to be suitable for RAD\nprojects. With the launch of Symfony2 and other frameworks with tight\nDoctrine 2 integration this requirement has become even more important.\n\nThat is why we will introduce a very lightweight base-class into\nDoctrine. We managed to write this base-class on an abstract level\nagainst the Common Metadata interface, such that CouchDB-, MongoDB- and\nPHPCR-ODM implementations benefit from this as well.\n\nUsing a new hook in Doctrine 2.2-DEV you can now inject the\nEntityManager (ObjectManager) and the metadata description into each\nentity during construction. This metadata is used to implement the magic\n\\_\\_call hook implementing getters/setters and association management\nmethods.\n\nExample\n=======\n\nA simple example will demonstrate this:\n\n> \\ DoctrineORMEntityManager;\n>\n> /*\\** @Entity\n> : \\*\\*/\n>\n> class User extends PersistentObject { /*\\* @Id @Column(type=\"integer\")\n> @GeneratedValue*\\*/ protected \\$id;\n>\n> > /*\\* @Column(type=\"string\")*\\*/ protected \\$name;\n> >\n> > /*\\* @OneToMany(targetEntity=\"Phonenumber\", mappedBy=\"user\")*\\*/\n> > protected \\$phonenumbers;\n>\n> }\n\nExtending from \\`PersistentObject\\` will make getters/setters available\nfor your entities. Bi-directional associations are handled\nautomatically.\n\n~~~~ {.sourceCode .php}\nsetNumber(123454);\n$user = new User();\n$user->setName(\"Benjamin\");\n$user->addPhonenumbers($number);\n\necho $user->getName();\nforeach ($user->getPhonenumbers() AS $number) {\n echo $number->getNumber();\n}\n~~~~\n\nFuture Developments\n===================\n\nFirst important notice: We will not develop the \\`PersistentObject\\`\ninto a full-fledged active record. Doctrine focuses on being a\nDataMapper. We do however provide a bunch of new hooks in version 2.2\nthat will allow you to turn Doctrine 2 into an active record very\neasily:\n\n- Inject EntityManager and ClassMetadata\n\nIf your entity implements \\`DoctrineCommonPersistentObjectManagerAware\\`\nthen the ObjectManager and ClassMetadata of the entity will be injected\nduring construction.\n\n- EntityManager\\#flush() can now flush one entity only\n\nWhen you pass a single entity to EntityManager\\#flush() this entity will\nbe the only one flushed into the database. Cascade persist rules are\napplied to this object. With this feature and access to the\nEntityManager inside your entities you can now start implementing an\nefficient Active Record with \"Record\\#save()\" and \"Record\\#delete()\"\nmethods.\n\n- PHP 5.4 and Traits\n\nThe next version of PHP is already in Beta 2 and will probably be\nreleased in the next months. One of the most powerful feature of this\nrelease will be Traits, something very suitable for Doctrine and ORMs in\ngeneral.\n\nNo worries: Doctrine 2 will always be supporting 5.3, however we will\nprobably ship with optional features that are using the trait\nfunctionality. High on the list:\n\n- Porting \\`PersistentObject\\` to a trait\n- Serialization of entities from a trait (ToArray(), ToJson()).\n Available as a service to PHP 5.3\n- ActiveEntity trait that extends the \\`PersistentObject\\` one.\n\nBased on this feature set it should even be possible to add behaviors to\nDoctrine 2, although we won't focus on implementing behaviors in the\ncore team.\n\nLast words\n==========\n\nI would really appreciate people starting to test the\n\\`PersistentObject\\` if they like too and give us feedback.\n", - "date": "2011-11-21 00:00:00" + "contents": "We released Doctrine 2.1 Release Candidate 3 after some important\nchanges to the new annotation reader. That is also why we didnt manage\nto keep our release date of June 30th. The new date is Monday.\n\nAbout the Annotations: We constantly had problems with the autoloading\nof annotations through PHP autoloaders, increasing with Symfony2\nstarting to use the reader with enabled autoloading. The problem with\nreusing the PHP autoloader can be explained easily: Not every Docblock\nAnnotation has a corresponding PHP class that can be instantiated by\nDoctrines AnnotationReader. The question is how we detect the\nannotations from the documentation related comments only. The solution\nrequired a silent autoloader, meaning no failure should occur if an\nautoload is triggered for a non-existant class. Implementing such an\nautoloader has performance drawbacks though, which is why the Doctrine\ndoes not fail silently. Autoloading annotations was not compatible with\nDoctrines own class loader.\n\nThat problem is why we removed PHP autoloading completely and\nreimplemented our own autoloading mechanism inside Doctrine Annotations.\nNow we have much more control about when errors occur and if we skip\nthem or throw an exception.\n\nSee [this following Gist](https://gist.github.com/1059486) on how\nautoloading annotations works. This is not relevant if you use\n\\$config-\\>newDefaultAnnotationDriver() with the ORM though, which will\nhandle all the necessary bootstrapping for you.\n\nAdditionally we have changed the annotation reader in other aspects. To\nbe a valid annotation your class have to extend (backwards compatible\nway, will be removed in 3.0.x) or contain @Annotation inside the class\nlevel docblock.\n\nWe will update the documentation for Doctrine Common accordingly in the\nnext hours to allow you to understand all the changes made between 2.0\nand 2.1.\n\nIf you are using Annotations either in Doctrine 2 or within your own\ncode please update and check the changes.\n", + "date": "2011-07-02 00:00:00" }, { - "url": "/2009/01/23/introducing-doctrine-orm-for-php.html", - "slug": "introducing-doctrine-orm-for-php", - "title": "Introducing: Doctrine ORM for PHP", - "authorName": "jwage", + "url": "/2014/12/18/annotations-122.html", + "slug": "annotations-122", + "title": "Annotations 1.2.2 released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of\n`doctrine/annotations` 1.2.2.\n\nThe release includes following fixes:\n\n- [43: Exclude files from distribution via\n .gitattributes](https://github.com/doctrine/annotations/pull/43)\n- [44: Prevent stack overflows in \"preg\\_split\" in the\n lexer](https://github.com/doctrine/annotations/pull/44)\n- [46: Fixed race conditions in FileCacheReader by improving I/O\n operations\n atomicity](https://github.com/doctrine/annotations/pull/46)\n- [48: Deprecating the FileCacheReader in 1.2.2: will be removed in\n 2.0.0](https://github.com/doctrine/annotations/pull/48)\n\nYou can install the Annotations library using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/annotations\": \"1.2.2\"\n }\n}\n~~~~\n", + "date": "2014-12-18 00:00:00" + }, + { + "url": "/2012/03/07/new-doctrine-website.html", + "slug": "new-doctrine-website", + "title": "New Website", + "authorName": "beberlei", "authorEmail": "", - "contents": "Today I am very happy to announce that we have a first draft available\nof the new main Doctrine documentation which is titled, \"[Doctrine ORM\nfor PHP](https://www.doctrine-project.org/documentation/manual/1_0/en)\".\nThe content of this documentation was re-organized and completely\nre-written from the \"Old Manual\". The order of the chapters and sections\nhave been re-thought and we've tried to put them in a more logical\norder. Now you can follow along in the chapters with code exercises and\nactually play with Doctrine as you read!\n\nMain Highlights\n===============\n\n- Almost 100% re-written.\n- Chapters renamed and reorganized.\n- Chapters split a part in to multiple to ease reading and flow.\n- Added sample Doctrine implementation for executing exercise code as\n you read.\n- Lots of aesthetic improvements: SQL highlighting, YAML highlighting\n and better PHP highlighting colors.\n\n > **NOTE** We also added a few new markups that get rendered as\n > boxes that standout with a representative icon. The three\n > different boxes are: note, tip and caution.\n\nTo Do\n=====\n\nWith this announcement we have a few more things left to do and we need\nyour help!\n\nPerform Week of Revisions\n-------------------------\n\nFirst we need to spend about a week or so proof-reading the the new\ndocumentation. This is where the community can really be helpful. Go\nahead and [create a trac\naccount](http://trac.doctrine-project.org/register) if you don't already\nhave one. This way when you're reading and you spot a problem or have an\nidea how something could be better you can [create a\nticket](http://trac.doctrine-project.org/newticket) easily.\n\n> **NOTE** The goal here is to get the 1.0 version tightened up and\n> polished with a nice shine! Then we can branch the new documentation\n> for 1.1.\n\nProvide Exercise Code for Download\n----------------------------------\n\nAt the end of each chapter we will provide a tagged copy of the state of\nthe exercise code so you can check your work against ours or if you get\nbehind you can get caught back up by downloading the code.\n\nRelease Doctrine 1.1\n--------------------\n\nWe have a few more bugs to fix in the 1.1 version then we will release\nthe second stable version of Doctrine, 1.1. Right before we release\nDoctrine 1.1(which will hopefully also be in a week or so), we will\nbranch the new documentation for 1.1 and make all the necessary updates\nbased on [what's changed](https://www.doctrine-project.org/upgrade/1_0).\nThen we will release and open it to your suggestions.\n\nPrinted Book: \"Doctrine ORM for PHP\"\n------------------------------------\n\nOnce the new documentation has a bit of time to gather some user\nfeedback and typos weeded out we will offer the documentation in a\nphysical printed format through [lulu](http://www.lulu.com). Don't worry\nwe will still offer all the documentation for free on the website. Even\nif you've already read the documentation on the web you can show your\nappreciation for the project and support it by purchasing a copy.\n\n> **TIP** If you want to print a rich text version of the Book yourself\n> instead of using the PDF or ordering a copy, we have implemented a\n> print stylesheet so when you access the documentation\n> [here](https://www.doctrine-project.org/documentation/manual/1_0/en/one-page/print)\n> you will get the version styled for printing.\n\n* * * * *\n\nNow go ahead and check out [Doctrine ORM for PHP - Guide to Doctrine for\nPHP](https://www.doctrine-project.org/documentation/manual/1_0/en) and\nbring me some feedback. :)\n", - "date": "2009-01-23 00:00:00" + "contents": "", + "date": "2012-03-07 00:00:00" }, { - "url": "/2007/12/08/new_design.html", - "slug": "new_design", - "title": "New Design", + "url": "/2008/03/02/my-first-project-doctrine-tutorial.html", + "slug": "my-first-project-doctrine-tutorial", + "title": "My First Project Doctrine Tutorial", "authorName": "jwage", "authorEmail": "", - "contents": "Thanks to Phuson we have a brand new design that is absolutely\nspectacular. Now we have a design that is on the same level of Doctrine\nitself. We all owe him a big thanks.\n", - "date": "2007-12-08 00:00:00" + "contents": "I have put together a short and sweet tutorial on how to get started\nusing Doctrine in under 5 minutes. A few weeks ago, we announced the\nsandbox package which allows you to get started using Doctrine with a\nzero configuration sandbox environment. The tutorial is built using this\nsandbox package and shows you how Doctrine can be easily implemented and\nused in your web applications.\n", + "date": "2008-03-02 00:00:00" }, { - "url": "/2009/05/22/glimpse-of-doctrine-2-0.html", - "slug": "glimpse-of-doctrine-2-0", - "title": "Glimpse of Doctrine 2.0", + "url": "/2016/06/09/odm-1-1-0-and-1-0-6.html", + "slug": "odm-1-1-0-and-1-0-6", + "title": "Doctrine MongoDB ODM 1.1.0 and 1.0.6 Released", + "authorName": "Andreas Braun", + "authorEmail": "alcaeus@alcaeus.org", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM [1.1.0](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.0)\nand [1.0.6](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.6).\n\nWhat is new in 1.1.0?\n=====================\n\nDoctrine MongoDB ODM 1.1.0 comes with the following new features: - ODM\nnow supports sharded collections out of the box - Users may provide\ncustom implementations for 1-n associations - Fetch documents in\nread-only mode - Partial indexes, which were introduced in MongoDB 3.2 -\nPHP 7 support - [and much\nmore](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1.0)\n\nPHP 7 support\n=============\n\nRunning MongoDB ODM on PHP 7 requires the new MongoDB driver\n(`ext-mongodb`) which is not directly compatible with ODM. To solve\nthis, you can use a polyfill like\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter), which\nprovides the legacy driver API on top of the new driver. To do so, in\nyour PHP 7 project, add the following Composer directives in addition to\nthe MongoDB ODM requirement:\n\n```json\n{\n \"require\": {\n \"alcaeus/mongo-php-adapter\": \"^1.0\",\n \"ext-mongo\": \"*\"\n }\n}\n```\n\nUpgrading to 1.1.0\n==================\n\nThe new version requires PHP 5.6+; older versions are no longer\nsupported. If you are using an older version, please use Doctrine\nMongoDB ODM 1.0.x or upgrade your PHP version. In addition to these PHP\nversion changes, MongoDB ODM 1.1.0 requires version 1.5 or newer of the\nlegacy MongoDB driver. The new MongoDB driver is supported using\npolyfill (like `mongo-php-adapter` mentioned above).\n\nTo use custom collection classes, you must set a\n\\`persistentCollectionDir\\` in the configuration. This is an optional\nfeature and is not required by default.\n\nSeveral features have been deprecated and will be dropped in the 2.0\nrelease: - All specific type annotations (e.g. \\`@String\\`) have been\ndeprecated. Please use the \\`@Field\\` annotation instead. - The\n\\`Increment\\` type has been deprecated in favor of a storage strategy\ncombined with the \\`Integer\\` and \\`Float\\` type - The \\`simple\\` flag\nfor references has been replaced with \\`storeAs\\`, allowing more\nflexibility.\n\nInstallation\n============\n\nYou can install this version of MongoDB ODM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.1.0\"\n }\n}\n```\n\nMongoDB ODM 1.0.6\n=================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#106-2016-06-09).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.6\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.6).\n\nStability\n=========\n\nAs of today, Doctrine MongoDB ODM `1.1.0` is the stable distribution.\nThere is no release schedule for an upcoming version yet.\n\nDue to the requirement changes introduced with MongoDB ODM `1.1.0` we\nhave decided to provide bug fixes as well as security fixes for MongoDB\nODM `1.0.x` for an additional 6 months. After that, `1.0.x` will no\nlonger be supported.\n", + "date": "2016-06-09 00:00:00" + }, + { + "url": "/2008/06/24/0-11-0-stable-released.html", + "slug": "0-11-0-stable-released", + "title": "0.11.0 Stable Released", "authorName": "jwage", "authorEmail": "", - "contents": "As you all probably already know, we have been working on Doctrine 2.0\npretty much since before we released Doctrine 1.0. This effort has been\nprimarily led by Roman and he has done an excellent job with things so\nfirst a big thanks goes to him.\n\nA few quick facts\n=================\n\n- Doctrine 2.0 will require PHP 5.3\n- Doctrine 2.0 is FAST\n- We will extend the support life of 1.x\n\nWe have decided to move forward with Doctrine 2.0 requiring PHP 5.3.\nThis release is a significant one, both for PHP and Doctrine, so we\ndecided to continue support for the 1.x series of Doctrine to give the\nadoption of PHP 5.3 and Doctrine 2.0 more time.\n\nHydration Performance\n=====================\n\nIn Doctrine 2.0 the performance when hydrating data is greatly improved.\nThe difference in speed is a combination of code changes and the\nperformance increase from using PHP 5.3.\n\n| Version | Seconds | \\# Records | | ---------- | ------------|\n------------- | | 1.1 | 4.3435637950897 | 5000 | | 2.0 | 1.4314442552312\n| 5000 | | 2.0 | 3.4690098762512 | 10000 |\n\nA few code snippets\n===================\n\nSchema Metadata and Models\n==========================\n\nIn Doctrine 1.1 a `Doctrine_Record` might look something like the\nfollowing.\n\n~~~~ {.sourceCode .php}\nhasColumn('id', 'integer', null, array(\n 'primary' => true,\n 'auto_increment' => true\n ));\n $this->hasColumn('username', 'string', 255);\n }\n}\n\n**NOTE** Notice how you have to extend the base class and\neverything is a public instance. As you probably know this has lots\nof negative effects as it imposes properties and methods on your\nmodels.\n~~~~\n\nIn Doctrine 2.0 this limitation was removed and you no longer need to\nextend a base class.\n\n~~~~ {.sourceCode .php}\n\n\nToday, I would like to introduce the latest stable version of Doctrine,\n0.11.0. This release is a major release but it contains bug fixes only.\nIt contains a few BC enhancements that were required in order to fix\nsome bugs. We recommend everyone upgrade to 0.11. Below are some\nhighlights of this release.\n\n

    • \n\n131 Tickets Closed\n\n
    • \n\n[4433] Introduced preDql\\*() Hooks\n\n
    • \n\nIntroduced SoftDelete Behavior\n\n
    • \n\nIntroduced Application Level Cascading Deletes\n\n
    • \n\nMany fixes to Behavior system, primarily Nesting Behaviors.\n\n

    \n\nAnother item worth mentioning about the 0.11 release is that the\nintegration between Doctrine and symfony has evolved quite well over the\nfirst quarter of 2008 as symfony 1.1 is coming out and 0.11 is released.\nThe integration between symfony 1.1 and Doctrine with sfDoctrinePlugin\nis now officially supported by the symfony core team and we will slowly\nbe introducing more documentation over the coming months.\n\n

    \n\n\n", + "date": "2008-06-24 00:00:00" }, { - "url": "/2008/08/25/pre-1-0-updates-and-1-0-0-rc1-released.html", - "slug": "pre-1-0-updates-and-1-0-0-rc1-released", - "title": "Pre 1.0 Updates and 1.0.0-RC1 Released", - "authorName": "jwage", + "url": "/2011/05/14/doctrine-maintenance-may11.html", + "slug": "doctrine-maintenance-may11", + "title": "Maintenance Releases 2.0.5 for DBAL and ORM", + "authorName": "beberlei", "authorEmail": "", - "contents": "

    \n\nToday we have a few updates for the project to announce. You can read\nabout whats new below.\n\n

    \n\nDoctrine Release Candidate 1 Released\n\n

    \n\nThe first release candidate of Doctrine 1.0 has been made available.\nDoctrine 1.0 is still scheduled to be released on September 1st 2008.\nYou can download Doctrine here.\n\n

    \n\nNew Domain! www.doctrine-project.org\n\n

    \n\nWe have decided to ditch the old phpdoctrine.org domain in favor of\ndoctrine-project.org. The main reason is due to licensing complications\nand us not being technically allowed to have the name PHP in our project\nname.\n\n

    \n\nMinor Website Ideas\n\n

    \n\nWe have updated the website with some minor asthetic changes, primarily\nto the homepage.\n\n

    \n\n\n", - "date": "2008-08-25 00:00:00" + "contents": "Slightly behind schedule we released the next round of maintenance\nversions of Doctrine DBAL (2.0.5) and ORM (2.0.5) today. It also\nincludes a Security fix for DBAL in combination with PDO MySQL and\ncharsets that was closed in PHP 5.3.6. If you are using 5.3.6, you\nshould now use the \"charset\" option in DriverManager::getConnection()\ninstead of the MysqlSessionInit listener.\n\n- [DBAL Changelog (4 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10132)\n- [ORM Changelog (15 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10133)\n\nYou can grab the packages from the download page or our [Github\nrepository](https://github.com/doctrine).\n\nPlease report any problems to the Jira Bugtracker.\n", + "date": "2011-05-14 00:00:00" }, { - "url": "/2013/09/25/phpcr-odm-qbv2.html", - "slug": "phpcr-odm-qbv2", - "title": "PHPCR ODM QueryBuilder v2", - "authorName": "dantleech", + "url": "/2007/12/04/url_changes.html", + "slug": "url_changes", + "title": "URL Changes", + "authorName": "jwage", "authorEmail": "", - "contents": "managed to merge the new query builder.\n\nI developed the original query builder about 9 months ago - it was one\nof my first contributions to the PHPCR-ODM doctrine project. It was\nheavily based on the ORM query builder and the consensus being that we\nshould make the ODM as intuitive as possible for existing ORM users.\n\nAbstracting PHPCR to fit the existing interface worked up until a point,\nwe could implement the *basic* functionality of the ORM Query Builder\nexactly, things started to come undone when we looked at implementing\njoins.\n\nI had added the joins in the API but didn't get around to implementing\nthem, the methods just threw \"not implemented\" exceptions. Later, when\nwe wanted to implement them, it wasn't so simple. Infact, upon closer\ninspection, many of the things available in the PHPCR API's Query Object\nModel interface were not covered by the model of the query builder we\nhad chosen, in short, it was not fit for purpose. I expounded this on\nthe following wiki page:\n\n- [https://github.com/symfony-cmf/symfony-cmf/wiki/Query-Builder-v2](https://github.com/symfony-cmf/symfony-cmf/wiki/Query-Builder-v2)\n\nAs detailed in the above linked page, it seemed to me that either we\nimplemented a 2 part factory heavy query builder or a fluent node based\nquery builder. The node based design won. However, at the time I never\nimagined it would take so long to write! So nearly 2 months later here\nwe are.\n\nSome features of the new query builder\n\n- Can fully express the PHPCR QOM (Query Object Model).\n- Features a fluent interface.\n- Strict validation and helpful exception messages.\n- Less verbose than the PHPCR QOM model.\n\nLets compare a PHPCR QOM query with its new query builder counterpart:\n\nThe following two examples are equivalent and both select a blog posts\nwith node name \"My Post Title\" having the ODM class \"BlogPost\". We order\nthe result set first by publishing date and then by title.\n\nUsing the PHPCR QOM:\n\n~~~~ {.sourceCode .php}\ncreateQuery(\n // SourceInterface (from)\n $qom->selector('nt:unstructured', 'p')\n $qom->andConstraint(\n $qom->comparison(\n $qom->propertyValue('p', 'phpcr:class'),\n $qom->bindVariableValue('phpcr_class'),\n QueryObjectModelInterface::JCR_OPERATOR_EQUAL_TO\n ),\n $qom->comparison(\n $qom->nodeLocalName('p'),\n $qom->bindVariableValue('post_title'),\n QueryObjectModelInterface::JCR_OPERATOR_EQUAL_TO\n ),\n array(\n $qom->ascending($qom->propertyValue('published_on', 'p'))\n $qom->ascending($qom->propertyValue('title', 'p'))\n )\n )\n);\n$q->bindValue('phpcr_class', 'Blog\\Post');\n$q->bindValue('post_title', 'My Post Title');\n$res = $q->execute();\n~~~~\n\nUsing the new PHPCR-ODM query builder:\n\n~~~~ {.sourceCode .php}\ncreateQueryBuilder()\n ->fromDocument('Blog\\Post', 'p')\n ->where()\n ->eq()->field('p.title')->parameter('post_title')->end()\n ->end()\n ->orderBy()\n ->asc()->field('p.published_on')->end()\n ->asc()->field('p.title')->end()\n ->end()\n ->setParameter('post_title', 'My Post Title')\n ->getQuery();\n$res = $q->execute();\n~~~~\n\nWhilst the two examples above are equivalent it should be noted that we\nare being slightly unfair to the PHPCR QOM as we are forced to add the\n`phpcr:class` constraint, which is a PHPCR-ODMism. Despite this, the new\nAPI is clearly less verbose and, I hope, more intelligible.\n\nThe API allows chaining together operands:\n\n~~~~ {.sourceCode .php}\ncreateQueryBuilder();\n$qb\n ->from()\n ->document('Blog\\Post', 'p')\n ->end()\n ->where()\n ->andX()\n ->orX()\n ->eq()->upperCase()->field('p.username')->end()->literal('DANTLEECH')->end()\n ->eq()->field('c.initials')->literal('dtl')->end()\n ->end()\n ->lte()->field('p.published_on')->literal('2013-09-14')->end()\n ->end()\n ->end();\n~~~~\n\nThe API also allows you to break the query into multiple statements:\n\n~~~~ {.sourceCode .php}\nfrom()->document('Blog\\Post', 'p');\n$qb->where()->eq()->field('p.title')->literal('Foobar');\n$qb->orderBy()->asc()->field('p.title');\n~~~~\n\nAnd to add extra criteria to an existing query builder instance (useful\nif the query builder is instantiated and initialized by a vendor\nlibrary):\n\n~~~~ {.sourceCode .php}\nandWhere()->field('f.site_id')->literal(1);\n }\n}\n~~~~\n\nAs a bonus, the nature of the API also allows us to easily add multiple\nconstraints to `andX` and `orX` operator nodes, something not easily\ndone with the native PHPCR builder:\n\n~~~~ {.sourceCode .php}\nfromDocument('Blog\\Post', 'p');\n\n// we can add one or many constraints to an \"andX\" node...\n$qb->where()->andX()\n ->fieldIsset('p.username')\n ->gt()->field('p.rank')->literal(50)->end()\n ->eq()->fueld('p.title')->literal('This is a title');\n~~~~\n\nThe documentation is now online and is made up of both a guide and a\nreference:\n\n- Guide:\n [http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder.html](http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder.html)\n- Reference:\n [http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder-reference.html](http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder-reference.html)\n\n", - "date": "2013-09-25 00:00:00" + "contents": "Recently we have done some work to sort out our domain names and the\npermanent URL structure we will use from now on. We have put rules in\nplace to maintain all existing URLs so they redirect to\nwww.phpdoctrine.org, trac.phpdoctrine.org and svn.phpdoctrine.org. You\nwill need to update your svn externals to point to svn.phpdoctrine.org.\n", + "date": "2007-12-04 00:00:00" }, { - "url": "/2010/05/13/doctrine-mongodb-object-document-mapper.html", - "slug": "doctrine-mongodb-object-document-mapper", - "title": "Doctrine MongoDB Object Document Mapper", + "url": "/2010/05/12/a-few-website-changes.html", + "slug": "a-few-website-changes", + "title": "Website Updates", "authorName": "jwage", "authorEmail": "", - "contents": "A question asked to me many times by many different people over the last\nyear is, \"will Doctrine ever have any support for MongoDB?\". I have\nnever really had an answer because we haven't had any official plans to\nsupport it as it was so new to the database world and php so nobody\nreally knew much about it yet.\n\nA few weekends ago I decided to install MongoDB and give it a try. It\nwas pretty fun and interesting. I quickly learned that it being a\ndocument based storage system lends itself well to a object mapper so\nthe experimental [Doctrine MongoDB Object Document\nMapper](https://github.com/jwage/odm) was born.\n\nIntroducing Doctrine MongoDB Object Document Mapper (ODM)\n=========================================================\n\nMuch like the Doctrine 2 ORM, the ODM aims to provide transparent\npersistence for PHP 5.3.0+ objects. You will notice that the Doctrine 2\nORM and ODM infrastructure, style, interfaces, etc. are all very\nsimilar. Instead of an EntityManager like in the ORM you have the\nDocumentManager. Map your objects in the same way you do for the ORM.\nHere is an examle `User` document:\n\n~~~~ {.sourceCode .php}\nsetUsername('jwage');\n$user->setPassword('testing');\n\n$dm->persist($user);\n$dm->flush();\n~~~~\n\nNow if you have a look in MongoDB you will see a database named `my_db`\nand a collection named `users` containing a new document like the\nfollowing:\n\n array(\n '_id' => instanceof MongoId,\n 'username' => 'jwage',\n 'password' => 'testing'\n )\n\nWhen you query for and retrieve this document from the database later,\nDoctrine reconstructs the PHP object with the data from MongoDB:\n\n~~~~ {.sourceCode .php}\nfindOne('User', array('username' => 'jwage')); // instanceof User\necho $user->getUsername();\n~~~~\n\nBelow you can find an overview list of the features available:\n\n- Transparent persistence.\n- Map one or many embedded documents.\n- Map one or many referenced documents.\n- Create references between documents in different databases.\n- Map documents with Annotations, XML, YAML or plain old PHP code.\n- Documents can be stored on the\n [MongoGridFS](https://secure.php.net/MongoGridFS).\n- Collection per class(concrete) and single collection inheritance\n supported.\n- Map your Doctrine 2 ORM Entities to the ODM and use mixed data\n stores.\n- Inserts are performed using\n [MongoCollection::batchInsert()](http://us.php.net/manual/en/mongocollection.batchinsert.php)\n- Updates are performed using \\$set instead of saving the entire\n document.\n\nGetting Started?\n================\n\nWe've put together a little documentation to help you get familiar with\nthe ODM quickly.\n\n- [Reference\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/en)\n- [Getting Started Cookbook\n Article](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/cookbook/getting-started/en)\n- [API\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/api)\n\nHow can I contribute?\n=====================\n\nGet your fork on! All you need to do is fork a Doctrine\n[repository](https://github.com/doctrine) on github.com and [submit your\nmodifications](https://github.com/guides/fork-a-project-and-submit-your-modifications/7)\nto us by sending a pull request.\n\nYou can also take part in discussions on our [mailing\nlist](https://groups.google.com/forum/#!forum/doctrine-user) or join \\#doctrine\non irc.freenode.net for live support from the community.\n", - "date": "2010-05-13 00:00:00" + "contents": "As you probably already noticed, the Doctrine website looks a little bit\ndifferent. In preparation for the Doctrine 2.0 release, the website\nneeded to be improved a little bit to better handle the multiple\nversions and projects under the Doctrine umbrella. Along the way I did a\nlittle spring cleaning of some code from the early Doctrine days as\nwell!\n\nYou can now find dedicated sections of the website for both the Object\nRelational Mapper and Database Abstraction Layer projects:\n\n- [ORM Project](https://www.doctrine-project.org/projects/orm)\n- [DBAL Project](https://www.doctrine-project.org/projects/dbal)\n\nThe new website also introduces a new API Documentation thanks to [PHP\nDoctor](http://peej.github.com/phpdoctor/)!\n\n- [Doctrine 2 ORM API\n Documentation](https://www.doctrine-project.org/projects/orm/2.0/api)\n- [Doctrine 2 DBAL API\n Documentation](https://www.doctrine-project.org/projects/dbal/2.0/api)\n\nIf you have any problems with the website please let me know by e-mail\nat jonwage [at] gmail.com.\n", + "date": "2010-05-12 00:00:00" }, { - "url": "/2011/05/16/doctrine-2-1-beta-release.html", - "slug": "doctrine-2-1-beta-release", - "title": "Doctrine 2.1 Beta and Backwards Compatibility Competition", - "authorName": "beberlei", + "url": "/2015/03/22/data-fixtures-1-0-1.html", + "slug": "data-fixtures-1-0-1", + "title": "Doctrine Data Fixtures 1.0.1", + "authorName": "Sebastien Lavoie", "authorEmail": "", - "contents": "We would like to announce the first beta release of Doctrine 2.1. It is\npacked with new features that will make your life easier:\n\n- **Indexed associations:** You can force Doctrine to hydrate\n collection elements by using a field of the target entity as key,\n for example the ID or any unique field. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/working-with-indexed-associations.html).\n- **Extra Lazy Collections:** Instead of always initializing the\n complete collection in memory you can now mark a collection as extra\n lazy, leading to special SQL executed for Collection\\#count(),\n Collection\\#contains() and Collection\\#slice(). This allows to\n implement efficient pagination on collections without having to use\n DQL. It also allows to save some memory for common use-cases with\n very large collections. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/extra-lazy-associations.html).\n- **Identity through Foreign Entities or derived entities:** You can\n now use a foreign key as identifier of an entity. This translates to\n using @Id on a @ManyToOne or @OneToOne association. You can read up\n on this [feature in the\n tutorial](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/composite-primary-keys.html#identity-through-foreign-entities).\n- **Persister Refactoring:** Instead of reimplementing hydration in\n the persisters we now use the hydration mechanism that is used by\n DQL aswell. Sadly performance for hydration in the persisters drops\n by 5-25% for different use-cases. It starts with a drop of 5% for a\n few hydrations and increases the more hydrations you are doing in a\n request. As a benefit we could remove tons of code and use several\n optimizations that actually increase performance when using\n fetch=\"EAGER\" in ManyToOne and OneToOne associations. Furthermore\n inverse OneToOne associations previously always executed an\n additional query, which is now replaced with a join.\n- **Temporary fetch mode in DQL** On a DQL Query you can now call\n \\`\\$query-\\>setFetchMode(\\$\\`className, \\$assocName, \\$fetchMode) to\n temporarily set the fetch mode to a value different from the one\n defined in the Association Mapping. If you set a ManyToOne or\n OneToOne association to eager fetching Doctrine will use a batch\n WHERE id IN (..) query to fetch all entities in a single query.\n- **Binding Arrays to a Query:** Doctrine now implements low-level\n support for binding arrays to named or positional parameters. This\n is possible with the Doctrine::TYPE\\_INT\\_ARRAY and\n Doctrine::TYPE\\_STR\\_ARRAY parameters that you have to pass as types\n to a query you want to use this feature in. EntityRepository now\n supports passing arrays as values to a field and uses an IN query.\n- **EntityRepository Limit and OrderBy:** The method\n EntityRepository\\#findBy() now accepts additional parameters for\n ordering, limit and offset.\n- **ResultSetMapping Helper:** There is now a class that simplifies\n populating a ResultSetMapping based on an existing ClassMetadata\n instance.\n- **Zero Based Parameters in Queries:** You can now start with the\n parameter ?0 in DQL queries.\n- **Named DQL Queries in Metadata:** You can add dql queries in the\n mapping files using @NamedQueries(@NamedQuery(name=\"foo\",\n query=\"DQL\")) and access them through\n \\$em-\\>getRepository()-\\>getNamedQuery().\n- **Date related DQL functions:** Suport for DATE\\_ADD(), DATE\\_SUB()\n and DATE\\_DIFF() in DQL.\n- **New console command orm:info:** Gives details about all registered\n entities and if their mappings are valid or not.\n- **Read Only Entities:** You can set the attribute readOnly=true on\n an entity. This will only allow to persist new instances of this\n entity or removing them, they will never be considered for updating,\n thus allowing for performance optimizations where these entities are\n not considered in the UnitOfWork changeset computations.\n- **SQL Query Object:** There is now an SQL Query object in the\n Doctrine project. You can create an instance with\n \\$connection-\\>createQueryBuilder().\n- **Automatic Parameter Type Inference:** For certain parameters types\n such as integer and DateTime ORM Query::setParameter can now\n automatically infer the type instead of requiring manually passing\n the values as third parameter.\n\nDocumentation for all the feature will be updated in the next weeks. The\nrelease is planned for June 30th 2011.\n\nWith all this new features, some of them requiring large internal\nrefactorings, we want to assure that Doctrine 2.1 is backwards\ncompatible with Doctrine 2.0. Our testsuite ensuring backwards\ncompatibility is very large, but we cannot be sure that we test for\nevery edge case. That is where you as Doctrine-user come into play:\nPlease test Doctrine 2.1 with your applications and give us feedback\nabout backwards compatibility. Please report any problem on Jira or\nwrite a mail to the doctrine-user or doctrine-dev mailing list.\n\nAnyone finding a backwards incompatible change gets an honorable mention\nin the release notes and some may even get small presents! (This only\napplies to versions \\>= Doctrine 2.0.0 with no customizations and people\nliving in countries with reasonable shipping rates :-)).\n", - "date": "2011-05-16 00:00:00" + "contents": "We are happy to announce the immediate availability Doctrine Data\nFixtures `1.0.1`.\n\nIn all [semver](https://semver.org/) fashion, this is a bug fix release.\n\nWhat is new in 1.0.x?\n=====================\n\nPlease report any issues you may have with the update on\n[Github](https://github.com/doctrine/data-fixtures/issues).\n\n- Added Travis:\n [69c2230](https://github.com/doctrine/data-fixtures/commit/69c2230dd15413cac013626729c30923632cf313)\n- Now supports table quoting for dropping joined tables:\n [\\#180](https://github.com/doctrine/data-fixtures/pull/180)\n- Fixed ProxyReferenceRepository which was forcing to have a getId:\n [8ffac1c](https://github.com/doctrine/data-fixtures/commit/8ffac1c63f34124f693b93889fa32f4036eb241b)\n- Fixed identifiers retrieval on ReferenceRepository if Entity is not\n yet managed my UnitOfWork:\n [dfc0dc9](https://github.com/doctrine/data-fixtures/commit/dfc0dc9a3f6258c878768218fe49cc092ea8a8d1)\n- Doctrine dependencies relaxed:\n [83a910f](https://github.com/doctrine/data-fixtures/commit/83a910f62b01715f3ed7317f5a4996417a698177)\n- Fix purging non-public schema tables:\n [\\#171](https://github.com/doctrine/data-fixtures/pull/171)\n\nRelease RoadMap\n===============\n\nWe expect to release following versions containing the pending patches\nin the next days:\n\n> - `1.1.0` on `2015-03-26`\n> - `1.2.0` within `2015-04`\n\nPlease note that these dates may change depending on the availability of\nour team.\n", + "date": "2015-03-22 00:00:00" }, { - "url": "/2009/01/30/new-documentation-pdf-downloads.html", - "slug": "new-documentation-pdf-downloads", - "title": "New Documentation PDF Downloads", - "authorName": "jwage", + "url": "/2009/09/14/moving-to-jira.html", + "slug": "moving-to-jira", + "title": "Moving to JIRA", + "authorName": "romanb", "authorEmail": "", - "contents": "Today we have some great news! Thanks to Fabien from the [symfony\nproject](http://www.symfony-project.org) , we now have a new way to\ngenerate the PDF version of our documentation. The new PDFs are a MAJOR\nstep up from the previous style of PDF and am very pleased with it!\nCheck it out by viewing the 1.0 version of [The Guide to Doctrine for\nPHP](https://www.doctrine-project.org/documentation/manual/1_0/en/pdf) or\n[The Doctrine\nCookbook](https://www.doctrine-project.org/documentation/cookbook/1_0/en/pdf).\n\nWhat is next?\n=============\n\n- API Documentation available as PDF.\n- Downloadable package/zip file containing PDF versions of all\n documentation.\n- User submitted articles, snippets, tutorials, etc. to complement the\n official documentation.\n- ...Printed book.\n\nPrinted Book\n============\n\nHere is a teaser of the first draft of the front cover for the printed\nversion of the book. Big thanks goes out to Jason O'Brien from\ncentre{source} for doing the design work. The printed copy will be\navailable on lulu very soon we just need to do some more proof reading\nand Q&A on everything before it is ready. The printed version of the\nbook will use a slightly modified version of the PDF that is available\nfor download on the web.\n", - "date": "2009-01-30 00:00:00" + "contents": "While we really like Trac, especially its subversion integration, it has\na lot of shortcomings for bigger projects in the area of project &\nissue/ticket management. Hence we decided to evaluate alternatives and\nended up with choosing [JIRA](https://www.atlassian.com/software/jira).\nIts normally not free software but the generous guys from Atlassian\ngranted us a free open source license. A big thanks from all of us to\nAtlassian for their support of open source projects.\n\nFrom now on all the project management, release management and\nissue/ticket management will happen in our [new JIRA\ninstance](https://www.doctrine-project.org/jira). While it is open for\neveryone in read-only mode, we strongly encourage you to create an\naccount soon so that you can create/modify/comment issues and content in\nJIRA.\n\nTrac is from now on closed for tickets. All new tickets need to be\nreported through JIRA. We are not going to automatically import all\ntickets from Trac to JIRA because that does not work very well and would\nrequire to import all user accounts as well, which can not be done\neasily either. We will continue to work on the \"old\" tickets, always\nstarting with porting a ticket over to JIRA before working on it. If you\nwant to help, you recreate tickets that are especially important to you\nin JIRA yourself. You can still log in to Trac and view tickets for the\npurpose of migrating them to JIRA but you can not modify them or create\nnew ones.\n\n> **CAUTION** When you recreate an issue in JIRA, please make sure you\n> close the issue in Trac with the resolution: \"migrated\".\n\nTrac will not be completely shut down, however. The following\nfunctionality will stay open:\n\n- Wiki\n- Timeline\n- Browse Source\n\nThat is, the wiki and the subversion integration. We basically use Trac\nas the subversion viewer that we coupled with JIRA. Any changeset\nnumbers or file references in JIRA issues will link to the\nchangesets/sources in Trac.\n\nWe're looking forward to working with JIRA and we think it is an\nimprovement for all users. We hope you enjoy all the new functionality\nprovided by JIRA, like voting for issues that are important to you,\ntracking issues and much more.\n\nSo, head over to our [JIRA instance](https://www.doctrine-project.org/jira) ,\ncreate an account and start creating issues and explore the features.\n", + "date": "2009-09-14 00:00:00" }, { - "url": "/2011/04/07/doctrine2-april-2011-maintenance.html", - "slug": "doctrine2-april-2011-maintenance", - "title": "Maintenance Releases of Common, DBAL, ORM", - "authorName": "beberlei", + "url": "/2013/09/11/doctrine-2-4-released.html", + "slug": "doctrine-2-4-released", + "title": "Doctrine 2.4 released", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "Slightly behind schedule, but we released the next round of maintenance\nversions of Doctrine Common (2.0.2), DBAL (2.0.4) and ORM (2.0.4) today.\n\n- [Common Changelog (4 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10121)\n- [DBAL Changelog (3 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10131)\n- [ORM Changelog (13 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10130)\n\nYou can grab the packages from the download page or our [Github\nrepository](https://github.com/doctrine).\n\nPlease report any problems to the Jira Bugtracker.\n", - "date": "2011-04-07 00:00:00" + "contents": "We are happy to announce the availability of Doctrine Common, DBAL and\nORM versions 2.4. This took us much longer than planned and we are very\nsorry for all the delay that was mostly caused by contributers private\nand work lifes. For the next versions we will also try to keep the scope\nsmaller, you will see that version 2.4 contains lots of small new\nfeatures.\n\nStarting with version 2.4 Doctrine will not be available over PEAR\nanymore. The maintenance of this deployment channel is too complicated,\ncompared to the small number of people using it. We focus on shipping\nDoctrine with [Composer](https://getcomposer.org) , which is a superior\npackaging tool in our opinion. We will continue to make Doctrine\navailable as standalone download through the Github releases pages.\n\nFollow the links in the list to find the changelogs of the three new\nreleases:\n\n- [Doctrine Common v2.4.1\n Changelog](https://github.com/doctrine/common/releases/tag/v2.4.1)\n- [Doctrine DBAL v2.4.0\n Changelog](https://github.com/doctrine/dbal/releases/tag/v2.4.0)\n- [Doctrine ORM v2.4.0\n Changelog](https://github.com/doctrine/orm/releases/tag/v2.4.0)\n\nBackwards Incompatible Changes\n==============================\n\nThere have been some BC breaks in the 2.4 releases, which are listed\nhere:\n\n- DoctrineDBALSchemaConstraint API change\n- Compatibility Bugfix in PersistentCollection\\#matching()\n- Composer is now the default autoloader\n- OnFlush and PostFlush event always called\n- DQL: Parenthesis are now considered in arithmetic expression\n\nYou can read up in detail on BC breaks on the\n[DBAL](https://github.com/doctrine/dbal/blob/2.4/UPGRADE) and\n[ORM](https://github.com/doctrine/orm/blob/2.4/UPGRADE.md) UPGRADE\ndocs.\n\nInstallation\n============\n\nYou can install Doctrine using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/common\": \"2.4.*\",\n \"doctrine/dbal\": \"2.4.*\",\n \"doctrine/orm\": \"2.4.*\"\n }\n}\n~~~~\n\nNew Features\n============\n\nThis release contains large amount of new features and improvements.\nCompared to the previous minor release not so many big-bang features,\nbut many small improvements. The most important changes are listed here\nwith small examples or links to their documentation.\n\n- ALTER TABLE support for SQLite (by\n [hason](https://github.com/hason)) by creating new tables, moving\n all the data and then renaming.\n- Using \\`EXTRA\\_LAZY\\` fetch mode now also queries for single\n entities on collections with `indexBy` when using\n `$collection->get()` or accessing the collection via array access.\n- Added two new modes to proxy generation for development\n environemnts, first using `eval` and second by checking if the proxy\n file not exists.\n- Pass Event Arguments to entities lifecycle methods, allowing access\n to `EntityManager`.\n- Allow to order by associations when using\n `EntityRepository#findBy()`.\n- Support for new \\`NEW()\\` operator in DQL which can be wrapped\n around the full `SELECT`-clause parts and instantiates an object by\n passing the parameters to the constructor. See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#new-operator-syntax)\n for more details.\n- Support for `@EntityListener` annotation and XML/YML configuration,\n which allows adding listener services on a per entity level (not\n global). See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/events.html#entity-listeners)\n for details.\n- Improved the `ResultSetMapping` to generate the `SELECT` clause for\n an SQL statement, thereby improving the usability of native queries\n alot. See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/native-sql.html#resultsetmappingbuilder)\n for more details.\n- Introduced a factory for repositories that can be overwritten in the\n `Doctrine\\ORM\\Configuration`.\n- Added an interface for `EntityManager` called\n `Doctrine\\ORM\\EntityManagerInterface` and a decorator base class\n `Doctrine\\ORM\\Decorator\\EntityManagerDecorator`.\n- Support for proxy objects for entities with public properties.\n- Add support for composite primary keys in DQL `IDENTITY()` function.\n See the\n [documentation](http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#dql-select-examples)\n for more details.\n- Introduced ANSI SQL Quoting Strategy that does not attempt to quote\n and modify columns during SQL generation.\n- Joins between arbitrary entities are now possible in DQL by using\n the syntax `FROM Foo f JOIN Bar b WITH f.id = b.id`.\n\nDocumentation\n=============\n\nWith 2.4 we merged the documentation into the repositories itself. We\nhave seen a much increased amount of Pull Requests since then and also\nimproved the documentation ourselves quite alot for 2.4.\n\nBesides fixes and additions of all the new features, we tried to improve\nthe style of the documentation. Many of the chapters have been\nrefactored completly and hopefully address many of the valid concers of\nour users.\n", + "date": "2013-09-11 00:00:00" }, { - "url": "/2008/06/21/doctrine-in-your-language.html", - "slug": "doctrine-in-your-language", - "title": "Doctrine in your language", - "authorName": "jwage", + "url": "/2015/04/01/indoctrinator-0-0-1-alpha-1.html", + "slug": "indoctrinator-0-0-1-alpha-1", + "title": "Indoctrinator 0.0.1-alpha1", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the start of development on a new project\ncalled **the indoctrinator**.\n\nWhat is Indoctrinator?\n======================\n\nFor various months, we tried to implement a way to validate the correct\nusage of the Doctrine Project mapping tools. This sort of validation\nlogic includes:\n\n- immutability checks/suggestions\n- number of generated DB queries/hits reduction\n- memory impact control\n- hydration profiling\n- code generator avoidance\n- DDD (Domain Driven Development) entity class/method naming\n conventions\n- ... and much more!\n\nWe decided to put these validation rules into a project.\n\nHow does Indoctrinator work?\n============================\n\nIndoctrinator is currently only working with `doctrine/orm` version\n`2.5.x-dev`, but the general working concept is as following:\n\n```php\n$indoctrinator = new Doctrine\\Indoctrinator();\n\n$indoctrinator->registerWithManager(new Doctrine\\Indoctrinator\\ManagerWrapper($entityManager));\n```\n\nWithout going into much details, Indoctrinator hooks into common APIs\nused in ORM internals, and by using AOP (Aspect Oriented Programming),\nit catches common mistakes and issues and produces exceptions or log\nmessages that \"indoctrinate\" the user on correct toolchain usage.\n\nRelease RoadMap\n===============\n\nIndoctrinator is still in early development, but our plan is to release\nit with bindings for major editors and IDEs used in the PHP community.\n\nThe current version is `0.0.1-alpha1`, and is released as a `phar`\narchive for now.\n\nDevelopment will likely take 6 or more months, while we stabilize the\nAPI and make the various mapper projects compatible with it.\n\nHow to get Indoctrinator?\n=========================\n\nIndoctrinator has its own dedicated [documentation section in the\ndoctrine\nwebsite](https://www.doctrine-project.org/projects/indoctrinator.html).\n\nReporting Issues\n================\n\nPlease report any issues you may have with the project on the mailing\nlist or on [JIRA](https://www.doctrine-project.org/jira/browse/).\n", + "date": "2015-04-01 00:00:00" + }, + { + "url": "/2009/08/15/doctrine2-native-queries.html", + "slug": "doctrine2-native-queries", + "title": "Doctrine 2 Native Queries", + "authorName": "romanb", "authorEmail": "", - "contents": "I have been waiting for this day for some time, the day we have the\nmanual in a 2nd language. For many months the website has been capable\nof handling multiple languages but the features have not been exposed\nuntil now. Thanks to Masaki and Takeshi, two very experienced Japanese\nsymfony + Doctrine developers, we now have the Doctrine manual available\nin Japenese. The primary text of the website will also be translated in\nthe following weeks. If you are interested in having the Doctrine\nwebsite and manual in your language, please contact me so we can make\narrangements for you to have access to easily provide translations.\n", - "date": "2008-06-21 00:00:00" + "contents": "If you are familar with Doctrine\\_RawSql from Doctrine 1.x you probably\nknow that it is somewhat broken by design since it requires a special\nsyntax in the select clause that makes a lot of SQL constructs in the\nselect clause impossible.\n\nDoctrine 2 introduces a facility called \"native queries\", represented by\nthe `Doctrine\\ORM\\NativeQuery` class that replaces Doctrine\\_RawSql. The\nclue about NativeQuery is that it allows the usage of real native SQL\nyet the result can be transformed into all the different formats that\nare supported by DQL.\n\nThis is achieved through having a generic description of how an SQL\nresult maps to a Doctrine result in form of a\n`Doctrine\\ORM\\Query\\ResultSetMapping`.\n\nEnough of the introductory talk, lets look at a (primitive) example from\nour test suite:\n\n~~~~ {.sourceCode .php}\naddEntityResult('Doctrine\\Tests\\Models\\CMS\\CmsUser', 'u');\n$rsm->addFieldResult('u', 'id', 'id'); // ($alias, $columnName, $fieldName)\n$rsm->addFieldResult('u', 'name', 'name'); // // ($alias, $columnName, $fieldName)\n\n$query = $this->_em->createNativeQuery('SELECT id, name FROM cms_users WHERE username = ?', $rsm);\n$query->setParameter(1, 'romanb');\n\n$users = $query->getResult();\n\n$this->assertEquals(1, count($users));\n$this->assertTrue($users[0] instanceof CmsUser);\n$this->assertEquals('Roman', $users[0]->getName());\n~~~~\n\nThe SQL that is passed to createNativeQuery is not touched by Doctrine\nin any way. The NativeQuery and ResultSetMapping combination are\nextremely powerful. It might not surprise you that Doctrine 2 creates a\nResultSetMapping internally when it transforms DQL to SQL.\n\nGranted, this was a very trivial example that can easily be expressed in\na short DQL 1-liner but it was just for demonstration purposes (and I am\nbad at making up complex ad-hoc SQL examples that make sense).\n\nSo when is this useful? While DQL has been heavily improved in Doctrine\n2 and has many new powerful features which we will cover in future blog\nposts, it is sometimes necessary to use native SQL. NativeQuery gives\nyou the ability to do that while still retrieving the results in the\nconvenient Doctrine formats you are familar with. NativeQuery is also an\nobvious choice when starting to migrate a pure SQL project to Doctrine\nwithout going into all the DQL details from the start.\n\nMore on NativeQuery and ResultSetMapping can be found in the new\ndocumentation under:\n\n[Documentation - Native\nSql](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/native-sql.html#native-sql)\n", + "date": "2009-08-15 00:00:00" }, { - "url": "/2009/05/11/doctrine-1-0-9-and-1-1-1-released.html", - "slug": "doctrine-1-0-9-and-1-1-1-released", - "title": "Doctrine 1.0.9 and 1.1.1 Released", + "url": "/2009/06/15/doctrine-1-0-10-and-1-1-2-released.html", + "slug": "doctrine-1-0-10-and-1-1-2-released", + "title": "Doctrine 1.0.10 and 1.1.2 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am very happy to make available two new releases of Doctrine for\nthe 1.0 and 1.1 code bases. These are both significant bug fix releases\nand it is recommended that you upgrade right away.\n\n- [1.1.1](https://www.doctrine-project.org/download/1_1_1/format/tgz)\n- [1.0.9](https://www.doctrine-project.org/download/1_0_9/format/tgz)\n\nYou can find more information about these releases as usual on the\n[download](https://www.doctrine-project.org/download) page.\n", - "date": "2009-05-11 00:00:00" + "contents": "Today I am happy to release two new maintenance releases for Doctrine.\nAs usual we have a new version for the 1.0 branch and a new version for\nthe 1.1 branch. The new versions can be gotten on the\n[Download](https://www.doctrine-project.org/download) page.\n\nYou can review the changelogs for\n[1.0.10](https://www.doctrine-project.org/change_log/1_0_10) and\n[1.1.2](https://www.doctrine-project.org/change_log/1_1_2) to see what\nall issues have been addressed in these releases.\n\nOn a side note, development on the Doctrine 1.2 version will begin very\nsoon so if you have any ideas or features you'd like to see in this\nversion please bring them to our attention and we may be able to address\nthem in this version. We plan for the 1.2 version to concentrate on bug\nfixes, performance fixes and small features to make the use of the 1.x\nversion of Doctrine more enjoyable without any major BC breaks.\n", + "date": "2009-06-15 00:00:00" }, { - "url": "/2017/12/21/orm-2-6-0-and-next.html", - "slug": "orm-2-6-0-and-next", - "title": "Doctrine ORM 2.6 and Next (3.0)", - "authorName": "Mike Simonson", - "authorEmail": "mike@simonson.be", - "contents": "We are happy to announce the immediate availability of Doctrine ORM [2.6.0](https://github.com/doctrine/orm/releases/tag/v2.6.0).\n\nORM 2.6.0\n=========\n\nThis release contains almost 3 years of active development and it\nprovides several improvements and fixes, including:\n\n- Better commit order calculation\n- More stable second level cache\n- Strict testing and quality control\n- PHP 7.1+ requirement\n\n[changelog](https://github.com/doctrine/orm/releases/tag/v2.6.0).\n\nNext?\n=====\n\nThis release marks the feature freeze of the 2.x version.\n\nIf you need to improve please work on the develop branch that will\nbecome the 3.0 branch in the coming days. The changes are already too\nnumerous to easily rebase a feature from the 2.x branch to the develop\none.\n", - "date": "2017-12-21 00:00:00" + "url": "/2016/02/16/doctrine-mongodb-odm-release-1.0.5.html", + "slug": "doctrine-mongodb-odm-release-1.0.5", + "title": "Doctrine MongoDB ODM release 1.0.5", + "authorName": "Maciej Malarz", + "authorEmail": "malarzm@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.0.5](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.5).\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#105-2016-02-16).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.5\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.5).\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0.5\"\n }\n}\n```\n\nDoctrine MongoDB ODM and PHP 7\n==============================\n\nWhile ODM still relies on legacy MongoDB driver ([i.e.\next-mongo](https://pecl.php.net/package/mongo)) and no dates are\nscheduled for the 2.0 release, it is possible to run ODM's development\nbranch with the new MongoDB driver (i.e.\n[ext-mongodb](https://secure.php.net/manual/en/mongodb.installation.php)) on\nPHP 7 and HHVM! [(see: this\ntweet)](https://twitter.com/alcaeus/status/697659616172359680) The new\ndriver should be properly supported once we release versions 1.1 and 1.3\nof the ODM and underlying [Doctrine\nMongoDB](https://github.com/doctrine/mongodb) library, respectively.\nThis is all possible thanks to our Andreas Braun's\n([@alcaeus](https://twitter.com/alcaeus)) work on\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter)\nwhich implements `ext-mongo's` API atop `ext-mongodb` and\n[mongodb-php-library](https://github.com/mongodb/mongo-php-library).\"\nIf you can't wait to give ODM a test flight on PHP 7, now is the time!\nAlso, if you happen to meet Andreas be sure to buy him a beer :)\n", + "date": "2016-02-16 00:00:00" + }, + { + "url": "/2014/01/01/dbal-242-252beta1.html", + "slug": "dbal-242-252beta1", + "title": "DBAL 2.4.2 and 2.5.0 BETA1 released", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "*Published: 01.01.2014*\n\nWe are happy to announce the immediate availability of Doctrine DBAL\n2.4.2 and 2.5.0 BETA1.\n\nThe new stable version 2.4.2 had 20 bugs fixed. You can install this\nversion using Composer and the following `composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.4.2\"\n }\n}\n~~~~\n\nYou can see all the changes on Jira:\n\n- [DBAL\n 2.4.2](https://github.com/doctrine/dbal/releases/tag/v2.4.2)\n\nIn the first 10 month of 2013 we watched the number of open issues cross\n100 and peak at 250 in mid November, unable to do much about it due to\ntime constraints. During the last two months however we have worked hard\nto lower the number of open pull-requests on DBAL from 50 to only 7 and\npush the number of open issues on DBAL+ORM down to 188 from 250. This\nhas been a tremendous effort and it would not have been possible without\nour two new core team members [deeky666](https://github.com/deeky666)\nand [kimhemsoe](https://github.com/kimhemsoe).\n\nWith the number of open bugs at 22 and open pull requests at 7 I am\nexcited to say that DBAL 2.5 will be the most stable and complete\nversion so far. It is mostly backwards compatible with only some minor\nchanges necessary, when using PDO IBM, creating a custom platform or\nusing non-default DateTime formats. You can see the breaks in the\n[UPGRADE.md](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\nfile.\n\nThere is also a nice list of new features:\n\n- Support for SAP Sybase SQL Anywhere versions 10, 11, 12 and 16\n (DBAL-475)\n- Support for auto-commit=NO on all drivers and platforms. (DBAL-81)\n- Refactor exceptions to use common error-codes and exception classes\n that derive from `Doctrine\\DBAL\\DBALException`. (DBAL-407)\n- Add support to retry connections with\n `Doctrine\\DBAL\\Connection#ping()` method. (DBAL-275)\n- Add INSERT support to QueryBuilder (DBAL-320)\n- Add Binary type for VARBINARY support (DBAL-714)\n- Add charset and SSL connection support to PostgreSQL (DBAL-567,\n DBAL-702)\n- Add options support for Myqli (DBAL-643)\n\nSee all the changes for the 2.5.0 BETA1 on Jira:\n\n- [DBAL 2.5.0\n BETA1](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10523)\n\nYou can install the BETA using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.0-BETA1\"\n }\n}\n~~~~\n", + "date": "2014-01-01 00:00:00" + }, + { + "url": "/2014/10/16/dbal-243.html", + "slug": "dbal-243", + "title": "DBAL 2.4.3 released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.4.3, which fixes various bugs discovered during DBAL 2.5.x\ndevelopment.\n\nYou can find all the changes on JIRA:\n\n- [DBAL\n 2.4.3](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10622)\n - 10 issues fixed\n\nYou can install the DBAL using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.4.3\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2014-10-16 00:00:00" }, { "url": "/2010/05/13/the-switch-to-git.html", @@ -1413,508 +1242,499 @@ "date": "2010-05-13 00:00:00" }, { - "url": "/2007/12/03/beta2_released.html", - "slug": "beta2_released", - "title": "Beta 2 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "On Friday November 30th, the second beta release of the PHP5 Doctrine\nORM software was released. A lot of progress has been made since the\nfirst beta(formerly known as RC1). Dozens and dozens of tickets have\nbeen fixed, new features have been added, much needed re-factorings have\ntaken place and the community behind Doctrine is growing daily.\n", - "date": "2007-12-03 00:00:00" + "url": "/2019/09/30/mongodb-odm-1.3.0-and-2.0.0-RC2.html", + "slug": "mongodb-odm-1.3.0-and-2.0.0-RC2", + "title": "Doctrine MongoDB ODM 1.3.0 and 2.0.0-RC2 released", + "authorName": "Andreas Braun", + "authorEmail": "alcaeus@doctrine-project.org", + "contents": "The Doctrine team is proud to announce that MongoDB ODM 1.3.0 and 2.0.0-RC2 have\nbeen released. These releases are the culmination of a long effort to migrate\nthe ODM away from the legacy `mongo` extension to the new MongoDB driver\n(`mongodb` extension and PHP library). This results in a number of BC breaks for\nusers, but will enable us to add many new features in future releases, among\nthem support for multi-document transactions.\n\nMongoDB ODM 1.3.0 is a compatibility release targeted for users of the legacy\nextension that want to migrate to MongoDB ODM 2.0. It helps identify BC breaks\nby throwing deprecation notices and offering a forward compatibility layer where\npossible. To efficiently find usages of deprecated code, you can use the PHPUnit\nbridge developed by Symfony\n([symfony/phpunit-bridge](https://github.com/symfony/phpunit-bridge)) which logs\nall deprecation notices encountered during a run of PHPUnit. You can read more\nabout this component in the\n[Symfony documentation](https://symfony.com/doc/current/components/phpunit_bridge.html).\n\nMongoDB ODM 2.0.0RC-2 is the recommended package to use for those starting new\nprojects with MongoDB ODM. It ensures that you use the modern API for ODM\nwithout having to worry about deprecations. While this is still a release\ncandidate, it is planned to make this version the next stable MongoDB ODM\nrelease.\n\nWhat\u2019s new in MongoDB ODM 2.0?\n==============================\n\nMost importantly, this version no longer uses the legacy `mongo` extension. That\nextension is no longer maintained and does not support server versions beyond\nMongoDB 3.0. The new MongoDB driver ensures that MongoDB ODM can leverage\nfeatures and improvements contained in newer MongoDB versions, such as support\nfor multi-document transactions, retryable reads, retryable writes, change\nstreams, and much more.\n\nChanging the driver also means significant changes to some APIs. Most\nimportantly, the GridFS API has been rewritten from scratch to conform with\nMongoDB\u2019s GridFS spec for drivers. If you\u2019ve used GridFS before, this will be a\nbig change for you, but the new API is much simpler and cleaner to use. Check\nout the\n[GridFS documentation](https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/storing-files-with-mongogridfs.html#storing-files-with-gridfs)\nto find out how to use the new API. Unfortunately, we cannot provide a forward\ncompatibility layer for this, as re-implementing this API atop the legacy driver\nis not feasible.\n\nLazy reference support has been changed completely and no longer uses proxy\nobjects from the deprecated doctrine/common library. Instead, it builds on\n`ocramius/proxy-manager`, which gives us access to more advanced features like\npartial proxy loading, which we will start leveraging in future releases.\n\nIn 2.0 we dropped support for the YAML mapping of documents. This step was\nnecessary to both reduce the complexity of the code base and lower the burden of\nmaintaining multiple mapping drivers. If you are currently using YAML mappings,\nwe provide a console command to migrate YAML mappings to the XML format. We are\ncurrently working on an alternative that allows for a more flexible mapping\nconfiguration system, but this is not ready yet and will only be provided in a\nfuture 2.x release.\n\nMigrating to MongoDB ODM 2.0\n============================\n\nIf you are using MongoDB ODM 1.x, the upgrade consists of multiple steps. First,\nensure that you are fulfilling the necessary requisites for MongoDB ODM 2.0:\n* PHP version 7.2 or newer\n* ext-mongodb 1.5.0 or newer\n* mongodb/mongodb library 1.4.0 or newer\n* MongoDB 3.0 or newer\n\nIf you are already running PHP 7, you will most likely already be running\next-mongodb as the legacy extension is not available for PHP 7. If you are still\nrunning PHP 5.x, it is recommended that you migrate to PHP 7 before attempting\nto use a newer ODM version. You can do so by following the instructions on\nrunning ODM 1.x on PHP 7.\n\nOnce you fulfill all dependencies, the first step is updating to the latest 1.3\nrelease of MongoDB ODM. If you are using Symfony, you also need to upgrade the\nODM bundle to its latest\n[3.6 version](https://github.com/doctrine/DoctrineMongoDBBundle/releases/tag/3.6.0).\nOnce this is done, you can start fixing any deprecation notices that you find.\nThis should be a familiar process for any existing Symfony users. We tried to\nprovide compatibility layers where possible; unfortunately, we could not do so\nin all cases.\n\nThe next step is upgrading to ODM 2.0 directly. For many users, this step\nshouldn\u2019t be a problem thanks to the compatibility layer in 1.x. There may be\nsome necessary changes depending on the features you use (e.g. GridFS).\n\nWhat\u2019s next for MongoDB ODM\n===========================\n\nDuring the past few years, we focussed our limited development time almost\nexclusively on the driver migration, which came at the expense of supporting new\nfeatures in MongoDB. We plan to add support for many of those features in future\nreleases. You can get an overview of what\u2019s planned by checking the roadmap. If\nyou are looking for a specific feature, please let us know in the issue tracker.\n\nWhile not exhaustive or guaranteed, these are some of the features we plan to\nimplement in future releases:\n* Support for multi-document transactions (on-demand and implicit while flushing\n the Document Manager)\n* Support for new aggregation pipeline stages and operators\n* Support for the $expr query operator\n* Support for aggregation pipelines in update operations\n* Support for reading documents from views instead of collections\n* Atomic updates for collections using new array update operators\n\nSupport timeline\n================\n\nWith these releases, we\u2019re also introducing our new support timeline. Along with\nthe two releases announced above, we are also releasing the end-of-life release\nfor MongoDB ODM 1.2. We will not support MongoDB ODM 1.2 any more and encourage\nusers to upgrade to 1.3. Since 1.3 has no additional requirements over 1.2,\nupgrading should be possible for all users of ODM 1.2.\n\nMongoDB ODM 1.3 will be supported for at least 6 months after the first stable\nrelease of ODM 2.0. We will communicate this date when releasing ODM 2.0. After\nthose 6 months, we will either drop support for ODM 1.3 or extend it for another\n3 months, depending on the adoption rate of ODM 2.0. We are aware that the\nnumber and kind of BC breaks for 2.0 pose a significant challenge for many\nusers, which is why we don\u2019t want to force people to rush into this update.\n\nDuring the support phase for MongoDB ODM 1.3, we will also continue to provide\nbug fixes to the MongoDB Abstraction Layer that is used by MongoDB ODM 1.x. This\nproject will reach end-of-life at the same time as MongoDB ODM 1.3, and will no\nlonger be supported beyond that. We encourage users that depend on this library\nto switch to using the MongoDB PHP Library, which is part of the official\nMongoDB driver for PHP.\n\nContributing to MongoDB ODM\n===========================\n\nWe are currently looking for contributors. This doesn\u2019t necessarily mean\nimplementing new features or merging pull requests. Reporting or triaging\nissues, requesting features, and reporting bugs are all extremely important and\nhelps us deliver better software!\n\nGetting help\n============\n\nThe documentation can be found on the website:\nhttps://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/index.html.\nTo get support, contact us via the #mongodb-odm channel within the Doctrine\nSlack. If you believe you have found a bug, please file a bug report on GitHub.\n", + "date": "2019-09-30 00:00:00" }, { - "url": "/2009/06/30/doctrine-orm-for-php-available-in-print.html", - "slug": "doctrine-orm-for-php-available-in-print", - "title": "Doctrine ORM for PHP available in print", - "authorName": "jwage", + "url": "/2015/03/25/common-2-5-0-beta-1.html", + "slug": "common-2-5-0-beta-1", + "title": "Doctrine Common 2.5.0-beta1 Pre-Release", + "authorName": "", "authorEmail": "", - "contents": "Last night the [Doctrine ORM for\nPHP](https://www.amazon.com/Doctrine-ORM-PHP-Jonathan-Wage/dp/2918390038/ref=sr_1_1?ie=UTF8&s=books&qid=1246303098&sr=8-1)\nbook became available on the Amazon website. This is our first official\npiece of published documentation and we are very excited and proud to\nsee this.\n\nIf you are an existing or new Doctrine user, it is much appreciated if\nyou purchase a copy. Since Doctrine is an open source project we don't\nmake any money directly from it. Doctrine is all possible because of the\ncontributors and the companies that fund it, like [Sensio\nLabs](https://sensiolabs.com). So it is a very nice gesture, even if\nyou are already a Doctrine expert, to purchase a copy of the book to\nshow your appreciation and support for the project.\n", - "date": "2009-06-30 00:00:00" + "contents": "We are happy to announce the immediate availability Doctrine Common\n\\`2.5.0-beta1\\`.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the Common package.\n\nWe encourage all of our users to help us by trying out this beta\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nStarting from this release, no more new features or breaking changes\nwill be allowed in the\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the Common package in the\nnext days:\n\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\n\\#\\# Installation\n\nYou can install this version of the Common package by using Composer and\nthe following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"2.5.0-beta2\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.4.x\n===================\n\nThis is a list of issues solved in `2.5.0-beta1` since `2.4.x`:\n\nBug\n---\n\n- [[DCOM-129](https://github.com/doctrine/common/issues/428)] -\n Annotation parser matches colon after annotation\n- [[DCOM-151](https://github.com/doctrine/common/issues/452)] -\n [[GH-233](https://github.com/doctrine/common/pull/233)] [DocParser]\n Fix trying include classes if its must be ignored.\n- [[DCOM-162](https://github.com/doctrine/common/issues/463)] -\n [[GH-244](https://github.com/doctrine/common/pull/244)] return\n parameter for debug method\n- [[DCOM-168](https://github.com/doctrine/common/issues/469)] -\n ignoredAnnotationNames doesn't work in Annotation loop\n- [[DCOM-175](https://github.com/doctrine/common/issues/477)] -\n Proxies return private properties in \\_\\_sleep, which is not\n supported by PHP.\n- [[DCOM-191](https://github.com/doctrine/common/issues/493)] -\n Wrong inflection for \"identity\"\n- [[DCOM-212](https://github.com/doctrine/common/issues/518)] -\n [[GH-296](https://github.com/doctrine/common/pull/296)] Proxies\n shouldn't serialize static properties in \\_\\_sleep()\n- [[DCOM-216](https://github.com/doctrine/common/issues/522)] -\n [[GH-298](https://github.com/doctrine/common/pull/298)] Silence\n E\\_NOTICE warning: \"Undefined index\".\n- [[DCOM-220](https://github.com/doctrine/common/issues/527)] -\n [[GH-304](https://github.com/doctrine/common/pull/304)] fix typo\n- [[DCOM-223](https://github.com/doctrine/common/issues/530)] -\n [[GH-308](https://github.com/doctrine/common/pull/308)] fix the\n optimize regex and adapt the tests to actually test classAnnotat...\n- [[DCOM-228](https://github.com/doctrine/common/issues/535)] -\n [[GH-312](https://github.com/doctrine/common/pull/312)] Improve\n UnexpectedValueException error message\n- [[DCOM-261](https://github.com/doctrine/common/issues/571)] -\n [[GH-344](https://github.com/doctrine/common/pull/344)] Fix fatal\n error when classexist tries to call the protected loader\n- [[DCOM-270](https://github.com/doctrine/common/issues/581)] -\n [[GH-351](https://github.com/doctrine/common/pull/351)] Added\n validation where allowed QCNs with \":\" NS separator\n- [[DCOM-272](https://github.com/doctrine/common/issues/583)] -\n Proxy generator doesn't understand splat operator (PHP 5.6 argument\n unpacking)\n\nDocumentation\n-------------\n\n- [[DCOM-237](https://github.com/doctrine/common/issues/545)] -\n [[GH-318](https://github.com/doctrine/common/pull/318)] Fixed link\n to Documentation\n- [[DCOM-280](https://github.com/doctrine/common/issues/592)] -\n [[GH-359](https://github.com/doctrine/common/pull/359)] Fixed\n missing / incorrect docblocks\n\nImprovement\n-----------\n\n- [[DCOM-246](https://github.com/doctrine/common/issues/554)] -\n [[GH-328](https://github.com/doctrine/common/pull/328)] Optimized\n imports\n- [[DCOM-247](https://github.com/doctrine/common/issues/555)] -\n [[GH-329](https://github.com/doctrine/common/pull/329)] Remove dead\n config\n- [[DCOM-263](https://github.com/doctrine/common/issues/573)] -\n [[GH-347](https://github.com/doctrine/common/pull/347)] Class\n loader: skip non-existing files and files not containing the\n requested class\n- [[DCOM-278](https://github.com/doctrine/common/issues/589)] -\n [[GH-358](https://github.com/doctrine/common/pull/358)] travis: PHP\n 7.0 nightly added, allowed failure\n\nNew Feature\n-----------\n\n- [[DCOM-257](https://github.com/doctrine/common/issues/566)] -\n [[GH-342](https://github.com/doctrine/common/pull/342)] Class\n metadata loading fallback hook in AbstractClassMetadataFactory\n- [[DCOM-277](https://github.com/doctrine/common/issues/588)] -\n [[GH-357](https://github.com/doctrine/common/pull/357)] Custom\n namespace separators for SymfonyFileLocator\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", + "date": "2015-03-25 00:00:00" }, { - "url": "/2007/10/14/new-coverage-report.html", - "slug": "new-coverage-report", - "title": "New Coverage Report", - "authorName": "jwage", + "url": "/2010/06/15/doctrine2-beta2-released.html", + "slug": "doctrine2-beta2-released", + "title": "Doctrine2 BETA2 Released", + "authorName": "beberlei", "authorEmail": "", - "contents": "

    \n\nThe Doctrine development team are pleased to announce the release of a\ncoverage report system. Special things to meus and romanb for thier work\nin this area.\n\n

    \n\n

    \n\nThe report can be seen at\n[http://doctrine.pengus.net/doctrine/trunk/tests/coverage/index.php](http://doctrine.pengus.net/doctrine/trunk/tests/coverage/index.php).\nThis new report will help to ensure that the Doctrine code is well\ntested, ensuring that the upcomming doctrine version 1 release is well\ntested and stable.\n\n

    \n\n\n", - "date": "2007-10-14 00:00:00" + "contents": "Today we are happy to announce the immediate availability of the second\nbeta version of Doctrine2. This is the first release after the\n[split](https://www.doctrine-project.org/2010/05/27/bringing-it-all-together.html)\nof Doctrine2 into three independent projects, Common, DBAL and ORM. This\nchange took longer than we expected but we are back to our SVN\nproductivity now and strive to surpass it utilizing Git.\n\nBeta 2 is a completely backwards compatible release and over 60 issues\nand bugs have been closed in total. The following larger changes have\nbeen introduced from Doctrine2 Beta 1:\n\nCommon\n======\n\n- Added ClassLoader\\#classExists as well as\n ClassLoader\\#getClassLoader methods\n [DCOM-7](https://github.com/doctrine/common/issues/669)\n- Changes to Annotation Parser with regards to Autoloading Annotation\n Classes\n\nDBAL\n====\n\n- New Driver support for Microsoft PDO Sqlsrv Extension\n [DBAL-10](https://github.com/doctrine/dbal/issues/927)\n- Fixed Mssql/Sqlsrv Platforms and SchemaManager\n [DBAL-8](https://github.com/doctrine/dbal/issues/2031)\n- New Driver and Platform Support for DB2 (PDO\\_DB2 and IBM\\_DB2\n Extensions)\n [DDC-494](https://github.com/doctrine/orm/issues/4999)\n\nORM\n===\n\n- Basic Pessimistic Locking support using FOR UPDATE or vendor\n specific shared locks\n [DDC-178](https://github.com/doctrine/orm/issues/2432)\n- Added a Validate Mapping CLI Task\n [DDC-515](https://github.com/doctrine/orm/issues/5023)\n\nDownload\n--------\n\nYou can get the code a few different ways which are described in detail\n[here](https://www.doctrine-project.org/projects/orm/2.0/download/2.0.0BETA2).\nIf you have any issues with Doctrine you can report them on\n[Jira](https://www.doctrine-project.org/jira).\n\nContributions\n-------------\n\nWe thank all the contributors and early adopters for their extensive\nfeedback and reports. If you are interesting in contributing to the\nDoctrine project too, check out our new [contributors\nguide](https://www.doctrine-project.org/contribute) and\n[community](https://www.doctrine-project.org/community) page for\ninformation about how you can get involved!\n", + "date": "2010-06-15 00:00:00" }, { - "url": "/2009/01/12/doctrine-1-1-is-right-around-the-corner.html", - "slug": "doctrine-1-1-is-right-around-the-corner", - "title": "Doctrine 1.1 is right around the corner", - "authorName": "jwage", - "authorEmail": "", - "contents": "1.1 Release Manager\n===================\n\nFirst, I would like to introduce **Guilherme Blanco** as the release\nmanager of **Doctrine 1.1**. This means he will be responsible for\norganizing the tickets and managing the releases for the 1.1 branch from\nnow on. So, if you have any issues you can yell at him :)\n\n1.1 Release Candidate\n=====================\n\nAnother great thing today is that we have made available the first\nrelease candidate of the 1.1 branch. We were originally planning on\nhaving a third beta but as the amount of tickets that came in was\npractically none, we decided to move on to the release candidate stage.\n\nAs always, you can [download\nhere](https://www.doctrine-project.org/download) and check out the\n[change log](https://www.doctrine-project.org/change_log/1_1_0_RC1) and\nthe [upgrade](https://www.doctrine-project.org/upgrade/1_1) document to\nfind out what has changed in 1.1.\n", - "date": "2009-01-12 00:00:00" + "url": "/2015/12/15/doctrine-mongodb-odm-release-1.0.4.html", + "slug": "doctrine-mongodb-odm-release-1.0.4", + "title": "Doctrine MongoDB ODM release 1.0.4", + "authorName": "Andreas Braun", + "authorEmail": "alcaeus@alcaeus.org", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.0.4](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.4).\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#104-2015-12-15).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.4\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.4).\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0.4\"\n }\n}\n```\n\nDoctrine MongoDB ODM 1.1 requires PHP 5.5+\n==========================================\n\nThe current `master` branch saw its PHP requirement bumped to 5.5\nrecently. If you are still using the master version in your project you\nshould switch to a stable release as soon as possible:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0\"\n }\n}\n```\n\nThis will ensure you are using stable versions and will use 1.1 as soon\nas it's released.\n\nThe upcoming releases of Doctrine MongoDB (1.3) and ODM (1.1) will also\ndrop support for all MongoDB driver versions before 1.5. If you are\nstill using an older driver, please consider upgrading it in order to\nreceive future updates.\n", + "date": "2015-12-15 00:00:00" }, { - "url": "/2009/10/21/doctrine-1-2-alpha3-released.html", - "slug": "doctrine-1-2-alpha3-released", - "title": "Doctrine 1.2 ALPHA3 Released", + "url": "/2010/03/21/doctrine-2-give-me-my-constructor-back.html", + "slug": "doctrine-2-give-me-my-constructor-back", + "title": "Doctrine 2: Give me my constructor back", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am happy to bring you hopefully the last alpha release for\nDoctrine 1.2. We decided to have one more alpha due to some interesting\nissues and improvements brought to our attention related to PEAR\nmodel/file naming standards, result set caching improvements and a few\nother things. You can of course check out what all is new in Doctrine in\nthe [upgrade](https://www.doctrine-project.org/upgrade/1_2) file. Below\nare some quick links to some of the most recent changes.\n\n- [PEAR Style Model Loading and\n Generation](https://www.doctrine-project.org/upgrade/1_2#PEAR%20Style%20Model%20Loading%20and%20Generation)\n- [Ordering\n Relationships](https://www.doctrine-project.org/upgrade/1_2#Ordering%20Relationships)\n- [Result Cache\n Improvements](https://www.doctrine-project.org/upgrade/1_2#Result%20Cache%20Improvements)\n\nGo ahead and [download](https://www.doctrine-project.org/download)\nDoctrine 1.2 ALPHA3 and give it a try. Let us know if you have any\nissues by raising a new issue in\n[JIRA](https://www.doctrine-project.org/jira).\n", - "date": "2009-10-21 00:00:00" - }, - { - "url": "/2008/01/16/cleaning_up_the_mess.html", - "slug": "cleaning_up_the_mess", - "title": "Cleaning up the mess", - "authorName": "guilhermeblanco", - "authorEmail": "", - "contents": "Starting from last blog post, development team went under some general\ndiscussions to reach a commom sense regarding the project versions. We\nare finally organizing our project from a non-versioned stage to a\nversionable stage, which was causing a lot troubles to everyone.\nCurrently we are under heavy development to reach a stable version of\n1.0 release. Until here, we are under some internal refactorings and we\ndecided to create a branch which we named 1.0beta2. Since then, we got a\nfeature freeze version and without big refactorings. The trunk went\nunder big changes and we decided to not keep the 1.0beta2 as the branch\nname; we renamed it 0.10. We know it is a big impact for those that\nchecked-out the branch, but we think it is safer to do it now instead of\nhave to deal with versions confusion in a near future. It's the best\norganization we can reach and it's the last one (thanks God!). Now that\nwe have the branches 0.9 and 0.10, it is time to define minor versions.\nWe caught from our history what was the first release of 0.9 and we\ntagged it as 0.9.0. We also got the old 1.0beta2 release and tagged it\nas 0.10-beta2. So currently we have 2 commit-free tagged versions and 2\nbranches with feature freeze. We highly discourage users from using\ntrunk, since it is a very unstable environment and your code may not\nwork. Please update your repository locations. These are the changes we\ndid: tags/1.0beta1 =\\> tags/0.9.0 tags/1.0beta2 =\\> tags/0.10-beta2\nbranches/1.0beta2 =\\> branches/0.10 branches/0.9 =\\> no change We also\nschedule new tagged releases in a near future. The next releases will be\n0.9.1 and 0.10-rc1. You can join \\#doctrine channel (at\nirc.freenode.net) or group list to follow discussions regarding this\nsubject. We apologize the mess we caused to users until now and we hope\nto not have this problem again, specially because we didn't have much\nrelease management knowledge. Thanks.\n", - "date": "2008-01-16 00:00:00" + "contents": "At [ConFoo\n2010](https://www.doctrine-project.org/2010/03/15/doctrine-2-at-confoo-2010.html)\nduring my presentation, someone asked about the constructor of entities\nin Doctrine 2 and whether or not it could be used. I think this is\nsomething worth writing about since in Doctrine 1 this was not possible.\nThe constructor was hi-jacked from you and used internally by Doctrine.\n\nIn Doctrine 2 it is possible to define the constructor in your entity\nclasses and is not required to be a zero argument constructor! That's\nright, Doctrine 2 never instantiates the constructor of your entities so\nyou have complete control!\n\nThis is possible due to a small trick which is used by two other\nprojects,\n[php-object-freezer](http://sebastian-bergmann.de/archives/831-Freezing-and-Thawing-PHP-Objects.html)\nand Flow3. The gist of it is we store a prototype class instance that is\nunserialized from a hand crafted serialized string where the class name\nis concatenated into the string. The result when we unserialize the\nstring is an instance of the class which is stored as a prototype and\ncloned everytime we need a new instance during hydration.\n\nHave a look at the method responsible for this:\n\n~~~~ {.sourceCode .php}\n_prototype === null) {\n $this->_prototype = unserialize(sprintf('O:%d:\"%s\":0:{}', strlen($this->name), $this->name));\n }\n return clone $this->_prototype;\n}\n~~~~\n\nThe above code allows us to have entities where we make full use of our\nconstructor like the following class definition:\n\n~~~~ {.sourceCode .php}\nusername = $username;\n $this->password = md5($password);\n }\n}\n~~~~\n\nNow of course you can use the constructor like you would expect:\n\n~~~~ {.sourceCode .php}\n \\ DoctrineORMEntityManager;\n>\n> /*\\** @Entity\n> : \\*\\*/\n>\n> class User extends PersistentObject { /*\\* @Id @Column(type=\"integer\")\n> @GeneratedValue*\\*/ protected \\$id;\n>\n> > /*\\* @Column(type=\"string\")*\\*/ protected \\$name;\n> >\n> > /*\\* @OneToMany(targetEntity=\"Phonenumber\", mappedBy=\"user\")*\\*/\n> > protected \\$phonenumbers;\n>\n> }\n\nExtending from \\`PersistentObject\\` will make getters/setters available\nfor your entities. Bi-directional associations are handled\nautomatically.\n\n~~~~ {.sourceCode .php}\nsetNumber(123454);\n$user = new User();\n$user->setName(\"Benjamin\");\n$user->addPhonenumbers($number);\n\necho $user->getName();\nforeach ($user->getPhonenumbers() AS $number) {\n echo $number->getNumber();\n}\n~~~~\n\nFuture Developments\n===================\n\nFirst important notice: We will not develop the \\`PersistentObject\\`\ninto a full-fledged active record. Doctrine focuses on being a\nDataMapper. We do however provide a bunch of new hooks in version 2.2\nthat will allow you to turn Doctrine 2 into an active record very\neasily:\n\n- Inject EntityManager and ClassMetadata\n\nIf your entity implements \\`DoctrineCommonPersistentObjectManagerAware\\`\nthen the ObjectManager and ClassMetadata of the entity will be injected\nduring construction.\n\n- EntityManager\\#flush() can now flush one entity only\n\nWhen you pass a single entity to EntityManager\\#flush() this entity will\nbe the only one flushed into the database. Cascade persist rules are\napplied to this object. With this feature and access to the\nEntityManager inside your entities you can now start implementing an\nefficient Active Record with \"Record\\#save()\" and \"Record\\#delete()\"\nmethods.\n\n- PHP 5.4 and Traits\n\nThe next version of PHP is already in Beta 2 and will probably be\nreleased in the next months. One of the most powerful feature of this\nrelease will be Traits, something very suitable for Doctrine and ORMs in\ngeneral.\n\nNo worries: Doctrine 2 will always be supporting 5.3, however we will\nprobably ship with optional features that are using the trait\nfunctionality. High on the list:\n\n- Porting \\`PersistentObject\\` to a trait\n- Serialization of entities from a trait (ToArray(), ToJson()).\n Available as a service to PHP 5.3\n- ActiveEntity trait that extends the \\`PersistentObject\\` one.\n\nBased on this feature set it should even be possible to add behaviors to\nDoctrine 2, although we won't focus on implementing behaviors in the\ncore team.\n\nLast words\n==========\n\nI would really appreciate people starting to test the\n\\`PersistentObject\\` if they like too and give us feedback.\n", + "date": "2011-11-21 00:00:00" }, { - "url": "/2008/08/27/release-candidate-2-available.html", - "slug": "release-candidate-2-available", - "title": "Release Candidate 2 Available", - "authorName": "jwage", + "url": "/2010/03/17/doctrine-performance-revisited.html", + "slug": "doctrine-performance-revisited", + "title": "Doctrine Performance Revisited", + "authorName": "beberlei", "authorEmail": "", - "contents": "

    \n\nOnly two days after making available the first release candidate we have\nprepared the second release candidate and made it available for\ndownload. This release contains dozens and dozens of bug fixes as well\nas a few new minor features required to fill some holes/gaps in the 1.0\nAPI before releasing. Below are some highlights of this release.\n\n

    • \n\n\\#1077 - Implemented Accessor Overriding\n\n
    • \n\n\\#1331 - Implemented orWhere() support to Doctrine\\_Query API\n\n
    • \n\nFinished Searchable Behavior API and added Documentation\n\n
    • \n\n\\#1319 - Added relationship reverse engineering support for MSSQL\n\n
    • \n\nCompleted Named Query Supportand added Documentation\n\n
    • \n\nTurned Portability Mode off by Default\n\n
    • \n\n100+ changeses/70+ Tickets Closed\n\n

    \n\nWe will have one more release candidate on either Friday or Saturday of\nthis week and Doctrine 1.0 Stable will be released Monday September 1st\n2008. If you haven't given the 1.0 branch a try yet, please do so and\nreport any issues to us so that we can get them fixed before Monday.\nThanks!\n\n

    \n\n\n", - "date": "2008-08-27 00:00:00" + "contents": "In our ever-lasting quest to provide a powerful, flexible and yet\nperformant ORM experience we are often confronted with benchmarks and\nhave been talking about performance topics since last year in several\ntalks at many different conferences, and Roman has [talked about his\nopinion on such benchmarks on this\nblog](https://www.doctrine-project.org/2009/11/18/php-benchmarking-mythbusters.html).\n\nRecently Francois Zaninotto, lead developer of the soon to be released\nPropel 1.5 (currently in beta) [wrote a blog\npost](http://propel.posterous.com/how-fast-is-propel-15) comparing\nperformance mainly of the different Propel 1.x versions with and without\ncaching and against a PDO benchmark. The benchmark also contains a test\nfor Doctrine 1.2.\n\nIt is important to note that the PDO test only shows the \"baseline\"\nperformance, that is, it does not even remotely \"do the same thing\" as\nthe others. No object creation, no hydration of objects from result\nrows, no identity management, no change tracking, nothing. So dont get\nthe numbers wrong. If you would want to get at least remotely the same\nresult as the ORMs provide with a raw PDO/SQL \"benchmark\", you would\nneed quite some custom coding and, if you dont want to copy/paste all\nday, introduce some abstraction.\n\nThe following scenarios are compared in the benchmark:\n\n> - Scenario 1: Create a new Model object, set its columns, and save\n> it. Tests Model object speed, and INSERT SQL generation.\n> - Scenario 2: Lookup a record by its primary key. Tests basic query\n> and hydration.\n> - Scenario 3: Lookup a record using a complex query. Tests object\n> query speed.\n> - Scenario 4: Lookup 5 records on a simple criterion. Tests\n> hydration speed.\n> - Scenario 5: Lookup a record and hydrate it together with its\n> related record in another table. Tests join hydration speed.\n\nI reproduced the complete table of results here for comparison since my\nmachine is generating very different overall times than the ones\ngenerated by Francois. Each Scenario is executed several times and the\nsum of execution times is printed. After each run the identity maps are\nwiped so that objects are not reused. All the tests use an SQLite\nIn-Memory database, are run on PHP 5.3 and *of course* use an opcode\ncache (APC).\n\nA first version of the corresponding Doctrine 2 benchmarks was added\ntoday [to the SVN repository by\nRoman](http://code.google.com/p/php-orm-benchmark/source/browse/#svn/trunk/doctrine_2)\nThey can all be run from your machine directly after checkout.\n\nHere are my results:\n\n | Insert | findPk | complex| hydrate| with |\n |--------|--------|--------|--------|--------|\n\n> PDOTestSuite | 132 | 149 | 112 | 107 | 109 |\n\n> Propel14TestSuite | 953 | 436 | 133 | 270 | 280 |\n\n> Propel15aLa14TestSuite | 926 | 428 | 143 | 264 | 282 |\n> : Propel15TestSuite | 923 | 558 | 171 | 356 | 385 |\n>\n> Propel15WithCacheTestSuite | 932 | 463 | 189 | 342 | 327 |\n> : Doctrine12TestSuite | 1673 | 2661 | 449 | 1710 | 1832 |\n>\n> Doctrine12WithCacheTestSuite | 1903 | 1179 | 550 | 957 | 722 |\n> : Doctrine2TestSuite | 165 | 426 | 412 | 1048 | 1042 |\n>\n> > Doctrine2WithCacheTestSuite | 176 | 423 | 148 | 606 | 383 |\n\nThese are the key observations for the Doctrine 2 results.\n\nDoctrine 2 Insert Performance\n=============================\n\nThis is mainly a result of the rather strange test. Its basically a\nmass-insert. All the insert tests seem to use a single database\ntransaction, so its comparable to a mass-insert on a single request. As\nsuch the result is not surprising since we know that Doctrine 2 can\neffectively batch inserts. Mind you that mass-inserts are not really a\nfocus of an ORM and not a realistic scenario in most applications. So\ntake this test with a grain of salt, its a mass-insert test. If you're\nlooking for the ORM with the fastest mass-inserts, you can stop now, you\nfound it.\n\nDoctrine 2 Find By Primary Key Performance\n==========================================\n\nDoctrine 2 Find Entity By Primary Key performance seems to be roughly\nthree times as slow as handcrafted PDO (that doesnt do anything besides\nexecuting the query, mind you...). The good results in this test,\nespecially compared to Doctrine 1, come from the fact that there is not\nmuch abstraction for all kinds of find\\*() operations going on. SQL is\ncreated, executed and the results turned into objects without much\nhoopla.\n\nDoctrine 2 Complex Query Performance\n====================================\n\nThe complex query is a scalar count query. See the Doctrine 2 code for\nthis scenario:\n\n~~~~ {.sourceCode .php}\nem->createQuery(\n 'SELECT count(a.id) AS num FROM Author a WHERE a.id > ?1 OR CONCAT(a.firstName, a.lastName) = ?2'\n)->setParameter(1, $this->authors[array_rand($this->authors)]->id)\n ->setParameter(2, 'John Doe')\n ->getSingleScalarResult();\n~~~~\n\nThe getSingleScalarResult() method that executes the query uses a very\nminimalistic hydration mode that only grabs the first value of the first\nresult column. Therefore in combination with the DQL to SQL Query Parser\nCache (Doctrine2WithCacheTestSuite) we get a result almost as fast\nresult as the PDO handcrafted scenario, because we essentially get the\ntransformed SQL query from the cache for this DQL, execute it and grab\nthe value.\n\nHydration Performance (Scenario 4 and 5)\n========================================\n\nIn the field of hydration Doctrine 2 is either equally fast or seems\n\"only\" up to 40% slower than Propel 1.4 or Propel 1.5 based on the two\nscenarios. The main reason here is really only that since Doctrine 2\nprovides transparent persistence, it can not give lazy-loading through\nbase classes, instead it needs to inject proxy objects as stubs into the\nentities. That simply means Doctrine needs to create more objects than\npropel, thats it. Note that once the objects would actually be\nlazy-loaded, Propel would need to create these objects, too. The\ndifference is that Doctrine needs to create them beforehand. When they\nlazy-load, no new object is created, the proxies simply populate\nthemselves with the data.\n\nA main difference, however, is that the hydration code of Doctrine is\ncompletely generic. That means this same code can handle all kinds of\ndifferent SQL results correctly, no matter how many nested joins, scalar\nvalues, aggregate values there are in the result and it can even deal\nwith strangely ordered collections in result sets (You get such stuff\nwith multiple order by clauses on different fields which order in\ndifferent directions. Combine such ordering with joining collections and\nyou get a pretty funky SQL result set).\n\nThe general approach in algorithms from the Doctrine 1.2 Hydrators were\nre-used in Doctrine 2. However, optimizations in the data structures and\nuse of the fastest internal php methods (as fast as you can get with\nphp, you know ;)) made it possible to optimize the code to yield the\nshown results.\n\nInteresting here is maybe that Doctrine 2 without caching is all in all\nstill a lot faster than Doctrine 1 with caching, so this looks like a\ngood improvement. Furthermore, the query cache in Doctrine 2 is very\neffective and almost completely removes all the overhead of DQL. The\nquery cache is what allows us to provide this extremely powerful\nabstraction that is immensely flexible. If you dont like DQL yet, you\nshould read up on domain-specific languages and object query languages\nin particular. It's a gem and cornerstone of this project and if you\ndont like it we can't help you.\n\nHydration with non Object Results\n=================================\n\nPutting aside the boring Propel comparisons, lets get to something\nDoctrine-specific. Because we know that read performance is very\nimportant and object instances are not necessary all the time, Doctrine\n2, just like Doctrine 1, provides many different levels of abstraction\nin-between objects and raw PDO/SQL result sets that you can go up and\ndown as you wish.\n\nThe main two intermediate levels are array graphs and flat, scalar\nresult sets (which are still not the same as the raw SQL result sets\nbecause type conversions and column name to field name conversions still\ntake place).\n\nThese alternative result formats perform as follows:\n\n | Insert | findPk | complex| hydrate| with |\n |--------|--------|--------|--------|--------|\n\n> Dc2ArrayHydrateTestSuite | 172 | 421 | 145 | 332 | 285 |\n> Dc2ScalarHydrateTestSuite | 175 | 424 | 145 | 251 | 245 |\n> Dc2WithoutProxiesTestSuite | 174 | 423 | 148 | 483 | 628 |\n\nThe first method \"Without Proxies\" still creates object instances,\nhowever, it does not replace loose ends of the object graph with\nlazy-load proxies. Be careful with such optimizations in practice\nbecause partial objects can be fragile to work with. The important point\nhere is that different levels of optimization are there when needed,\nbefore you need to finally drop all abstraction and deal with PDO/SQL\ndirectly (which is not bad, you know, just often not very convenient,\nflexible and/or robust against refactorings or schema changes).\n\nThe Array Hydration (getArrayResult()) returns a nested array structure\nthat is comparable to an object graph. Most of the time you can think of\nit as a performant read-only \"view\" of an object graph. In the case of\nBooks with Authors the result looks like:\n\n array(1) {\n [0]=>\n &array(5) {\n [\"id\"]=>\n int(1)\n [\"title\"]=>\n string(6) \"Hello0\"\n [\"isbn\"]=>\n string(4) \"1234\"\n [\"price\"]=>\n float(0)\n [\"author\"]=>\n &array(4) {\n [\"id\"]=>\n int(1143)\n [\"firstName\"]=>\n string(8) \"John1142\"\n [\"lastName\"]=>\n string(7) \"Doe1142\"\n [\"email\"]=>\n NULL\n }\n }\n\nThese array graphs can be built from basically any query. Its backed by\nroughly the same algorithm that allows the arbitrary object hydration\nwith indefinite joins and even scalar and aggregate values in between.\n\nIn the case where your objects implement ArrayAccess, you can often use\nobject and array results interchangeably without the need to update view\ncode.\n\nConclusion\n==========\n\nWhat that all means is mainly that if you have an application that looks\n(almost) exactly like the benchmarking code used here, then you (maybe)\ngot some useful numbers to look at, otherwise ... not.\n\nApart from that we hope this convinces you that we're not wasting your\nCPU cycles on purpose. Doctrine 2 is a huge balancing act between\nflexibility, features and performance and it worked out well so far.\n", + "date": "2010-03-17 00:00:00" }, { - "url": "/2015/03/18/orm-2-5-0-beta-1.html", - "slug": "orm-2-5-0-beta-1", - "title": "Doctrine ORM 2.5.0 BETA 1 Released", - "authorName": "Benjamin Eberlei, Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability Doctrine ORM\n`2.5.0-beta1`.\n\nDue to day-job related responsibilities, we are a month behind our\nschedule. Please bear with us as we prepare this new release.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the ORM.\n\nWe encourage all of our users to help us by trying out this beta\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nStarting from this release, no more new features or breaking changes\nwill be allowed into the repository until \\`2.6.x\\` development starts.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n> - `2.5.0-RC1` on `2015-03-25`\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-beta1\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-alpha2\n==========================\n\nThis is a list of issues solved in `2.5.0-beta1` since `2.5.0-alpha2`:\n\n- [[DDC-3452](https://github.com/doctrine/orm/issues/4261)]\n Embeddables Support for ClassMetadataBuilder\n- [[DDC-3551](https://github.com/doctrine/orm/issues/4369)]\n Load platform lazily in ClassMetadataFactory to avoid database\n connections.\n- [[DDC-3258](https://github.com/doctrine/orm/issues/4047)]\n Improve suport for composite primary keys and associations as keys.\n- [[DDC-3554](https://github.com/doctrine/orm/issues/4372)]\n Allow to recreate DQL QueryBuilder from parts.\n- [[DDC-3461](https://github.com/doctrine/orm/issues/4271)]\n Allow setting association as primary key in ClassMetadataBuilder API\n with `makePrimaryKey()`.\n- [[DDC-3587](https://github.com/doctrine/orm/issues/4408)]\n Added programmatical support to define indexBy on root aliases.\n- [[DDC-3588](https://github.com/doctrine/orm/issues/4409)]\n Add support for seconds in `DATE_ADD` DQL function.\n- [[DDC-3585](https://github.com/doctrine/orm/issues/4406)]\n Fix instantiation of nested embeddables.\n- [[DDC-3607](https://github.com/doctrine/orm/issues/4431)]\n Add support for orphan removal in\n ClassMetadataBuilder/AssocationBuilder\n- [[DDC-3597](https://github.com/doctrine/orm/issues/4419)]\n Add support for embeddables in MappedSuperclasses.\n- [[DDC-3616](https://github.com/doctrine/orm/issues/4441)]\n Add support for DateTimeImmutable in Query parameter detection.\n- [[DDC-3622](https://github.com/doctrine/orm/issues/4448)]\n Improve support for objects as primary key by casting to string in\n UnitOfWork.\n- [[DDC-3619](https://github.com/doctrine/orm/issues/4444)]\n Update IdentityMap when entity gets managed again fixing\n `spl_object_hash` collision.\n- [[DDC-3608](https://github.com/doctrine/orm/issues/4432)]\n Fix bug in EntityGenerator to XML/YML with default values.\n- [[DDC-3590](https://github.com/doctrine/orm/issues/4412)]\n Fix bug in PostgreSQL with naming strategy of non-default schema\n tables.\n- [[DDC-3566](https://github.com/doctrine/orm/issues/4385)]\n Fix bug in Second-Level Cache with association identifiers.\n- [[DDC-3528](https://github.com/doctrine/orm/issues/4343)]\n Have `PersistentCollection` implement `AbstractLazyCollection` from\n [doctrine/collections](https://github.com/doctrine/collections).\n- [[DDC-3567](https://github.com/doctrine/orm/issues/4386)]\n Allow access to all aliases for a QueryBuilder.\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", - "date": "2015-03-18 00:00:00" + "url": "/2021/12/04/mongodb-odm-2.3.html", + "slug": "mongodb-odm-2.3", + "title": "New Release: Doctrine MongoDB ODM 2.3 with Attributes, JSON Schema Validation, and more", + "authorName": "Ion Bazan", + "authorEmail": "ion.bazan@gmail.com", + "contents": "We have released a new minor version 2.3 of Doctrine MongoDB ODM, the first version\nwith support for using PHP 8 Attributes as a new driver for mapping documents\nand several other changes. [See all changes and contributors in the\nChangelog](https://github.com/doctrine/mongodb-odm/releases/tag/2.3.0) on GitHub.\n\n## Attributes Mapping Driver\n\nThe following code example shows many of the mappings that are re-using\nthe annotation classes for familiarity:\n\n```php\nuse Doctrine\\ODM\\MongoDB\\Mapping\\Annotations as MongoDB;\nuse Doctrine\\ODM\\MongoDB\\Types\\Type;\n\n#[MongoDB\\Document(repositoryClass: PostRepository::class)]\nclass Post\n{\n #[MongoDB\\Id]\n private string $id;\n\n #[MongoDB\\Field(type: Type::BOOLEAN)]\n private bool $published = false;\n\n #[MongoDB\\Field(type: Types::COLLECTION)]\n private array $text = [];\n\n #[MongoDB\\ReferenceOne(targetDocument: User::class)]\n public $author;\n\n #[MongoDB\\ReferenceMany(targetDocument: Tag::class)]\n public Collection $tags;\n}\n```\n\nYou may want to use [Rector](https://getrector.org/) with `DoctrineSetList::DOCTRINE_ODM_23` set\nto convert all your annotation mappings to attributes in seconds!\n\n## JSON Schema Validation\n\nMongoDB \u2265 3.6 offers the capability to validate documents during\ninsertions and updates through a JSON schema associated with the collection. \n[See MongoDB documentation](https://docs.mongodb.com/manual/core/schema-validation/).\n\nDoctrine MongoDB ODM now provides a way to take advantage of this functionality thanks to the new \n[`#[Validation]`](https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/annotations-reference.html#validation) mapping.\n\n```php\nuse Doctrine\\ODM\\MongoDB\\Mapping\\Annotations as MongoDB;\nuse Doctrine\\ODM\\MongoDB\\Mapping\\ClassMetadata;\n\n#[MongoDB\\Document]\n#[MongoDB\\Validation(\n validator: SchemaValidated::VALIDATOR,\n action: ClassMetadata::SCHEMA_VALIDATION_ACTION_WARN\n)]\nclass SchemaValidated\n{\n public const VALIDATOR = <<<'EOT'\n{\n \"$jsonSchema\": {\n \"required\": [\"name\"],\n \"properties\": {\n \"name\": {\n \"bsonType\": \"string\",\n \"description\": \"must be a string and is required\"\n }\n }\n },\n \"$or\": [\n { \"phone\": { \"$type\": \"string\" } },\n { \"email\": { \"$regex\": { \"$regularExpression\" : { \"pattern\": \"@mongodb\\\\.com$\", \"options\": \"\" } } } },\n { \"status\": { \"$in\": [ \"Unknown\", \"Incomplete\" ] } }\n ]\n}\nEOT;\n}\n\n\n```\n\nOnce defined, those options will be added to the collection after running\nthe ``odm:schema:create`` or ``odm:schema:update`` command.\n\n## Psalmified APIs\n\nIn-code documentation has been immensely improved to make sure static analysis tools and IDEs know\nabout the right document classes returned from `DocumentManager`,\n`ClassMetadata`, and other public APIs. This includes generics support\nfor your own repositories extending `DocumentRepository`.\n\n```php\nuse Doctrine\\ODM\\MongoDB\\Repository\\DocumentRepository;\nuse App\\Document\\User;\n\n/**\n * @template-extends DocumentRepository\n */\nclass UserRepository extends DocumentRepository\n{\n}\n```\n\n\n## Deprecations\n\nDoctrine MongoDB ODM 2.3 introduces several minor deprecations:\n\n- The `Doctrine\\ODM\\MongoDB\\Proxy\\Resolver\\ClassNameResolver` interface has been deprecated in favor \n of the `Doctrine\\Persistence\\Mapping\\ProxyClassNameResolver` interface\n- Annotation classes no longer extend `Doctrine\\Common\\Annotations\\Annotation` class\n- Annotation arguments switched to `@NamedArgumentConstructor` for Attribute compatibility\n- `@Inheritance` annotation has been removed as it was never used\n- Document Namespace Aliases (`'MyBundle:User`) - use fully qualified class names instead (`User::class`)\n\nRead more in our [upgrading](https://github.com/doctrine/mongodb-odm/blob/2.3.x/UPGRADE-2.3.md) document. \n\n## Coding Standard Support\n\nDoctrine MongoDB ODM 2.3 now supports and fully validates against Doctrine Coding\nStandard version 9.0+. This greatly improves automatic pull request checks as\nall new violations in a PR get caught and inlined into the PR as comments.\n", + "date": "2021-12-04 00:00:00" }, { - "url": "/2015/01/15/cache-1-4-0.html", - "slug": "cache-1-4-0", - "title": "Cache 1.4.0 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Cache\n1.4.0.\n\nThis release fixes a series of performance and compatibility issues in\nthe filesystem-based cache adapters\n([\\#16](https://github.com/doctrine/cache/pull/16),\n[\\#50](https://github.com/doctrine/cache/pull/50),\n[\\#55](https://github.com/doctrine/cache/pull/55)).\n\nNew cache adapters for `SQlite3`\n([\\#32](https://github.com/doctrine/cache/pull/32)) and `Predis`\n([\\#28](https://github.com/doctrine/cache/pull/28)) were implemented.\n\nA new `ChainCache` ([\\#52](https://github.com/doctrine/cache/pull/52))\nwas implemented, allowing multiple levels of caching, for performance\nand efficiency.\n\nNew interfaces were introduced, for better interface segregation and\nimproved performance:\n\n- `MultiGetCache` ([\\#29](https://github.com/doctrine/cache/pull/29))\n- `FlushableCache` ([\\#48](https://github.com/doctrine/cache/pull/48))\n- `ClearableCache` ([\\#48](https://github.com/doctrine/cache/pull/48))\n\nThis release also causes the filesystem-based caches to change directory\nstructure for saved files: please clear your file-based caches\ncompletely before upgrading.\n\nYou can find the complete changelog for this release in the [release\nnotes](https://github.com/doctrine/cache/releases/tag/v1.4.0).\n\nYou can install the Cache component using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"1.4.0\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-01-15 00:00:00" + "url": "/2009/03/03/doctrine-1-1-documentation.html", + "slug": "doctrine-1-1-documentation", + "title": "Doctrine 1.1 Documentation", + "authorName": "jwage", + "authorEmail": "", + "contents": "Today I have begun updating the documentation to reflect the changes\nmade in 1.1 and [The Guide to Doctrine for\nPHP](https://www.doctrine-project.org/projects/doctrine1/en/latest/) is now\navailable. We still have some more changes to make but most things have\nbeen updated and added.\n\nBelow is a list of some of the things that still need some updating.\n\n- Migrations\n- SoftDelete\n- Searchable\n\nPlease lend a hand to us by reviewing the documentation and helping us\nidentify things that are lacking or 100% missing. You can create new\ntickets in [trac](http://trac.doctrine-project.org) under the\n\"Documentation/Website\" milestone and we'll get them fixed asap.\n", + "date": "2009-03-03 00:00:00" }, { - "url": "/2012/08/29/doctrine-2-3-rc2.html", - "slug": "doctrine-2-3-rc2", - "title": "Doctrine 2.3.0 RC2 released", - "authorName": "beberlei", + "url": "/2007/10/14/new-coverage-report.html", + "slug": "new-coverage-report", + "title": "New Coverage Report", + "authorName": "jwage", "authorEmail": "", - "contents": "**29.8.2012**\n\nWe released another release candidate of our upcoming Doctrine 2.3.0\nversion. This includes the Common, DBAL and ORM packages.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nSee the [2.3 Beta blog\npost](https://www.doctrine-project.org/2012/07/16/doctrine-2-3-beta.html) for\nsome information about changes in 2.3.\n\nYou can install the release candidate through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-RC2\"\n },\n \"minimum-stability\": \"dev\"\n }\n\nIf you find any problems with your applications please report them on\nour [bugtracker](https://www.doctrine-project.org/jira).\n\nWhen no blocking issues occur we will release the 2.3.0 final on next\nMonday.\n", - "date": "2012-08-29 00:00:00" + "contents": "

    \n\nThe Doctrine development team are pleased to announce the release of a\ncoverage report system. Special things to meus and romanb for thier work\nin this area.\n\n

    \n\n

    \n\nThe report can be seen at\n[http://doctrine.pengus.net/doctrine/trunk/tests/coverage/index.php](http://doctrine.pengus.net/doctrine/trunk/tests/coverage/index.php).\nThis new report will help to ensure that the Doctrine code is well\ntested, ensuring that the upcomming doctrine version 1 release is well\ntested and stable.\n\n

    \n\n\n", + "date": "2007-10-14 00:00:00" }, { - "url": "/2015/03/31/orm-2-5-0-rc-2.html", - "slug": "orm-2-5-0-rc-2", - "title": "Doctrine ORM 2.5.0-RC2 Release Candidate", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.0-RC2`.\n\nThis is a release candidate meant to allow users and contributors to\nverify the stability of the next iteration of the ORM.\n\nWe encourage all of our users to help us by trying out this release.\nPlease report any possible problems or incompatibilities that may have\nbeen introduced during development.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-RC2\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-RC1\n=======================\n\nThis is a list of issues solved in `2.5.0-RC2` since `2.5.0-RC1`:\n\n- [[DDC-3643](https://github.com/doctrine/orm/issues/4471)]\n [[#1352](https://github.com/doctrine/orm/pull/1352)] Fix\n `EntityGenerator` `RegenerateEntityIfExists` logic\n- [[DDC-3645](https://github.com/doctrine/orm/issues/4473)]\n [[\\#1353](https://github.com/doctrine/orm/pull/1353)]\n [[DDC-3637](https://github.com/doctrine/orm/issues/4464)]\n [[\\#1347](https://github.com/doctrine/orm/pull/1347)]\n [[DDC-3642](https://github.com/doctrine/orm/issues/4470)]\n [[\\#1351](https://github.com/doctrine/orm/pull/1351)]\n Paginator logic fixes (complex queries/sorting/db support )\n\n parameters and caches\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", - "date": "2015-03-31 00:00:00" + "url": "/2010/05/13/doctrine-mongodb-object-document-mapper.html", + "slug": "doctrine-mongodb-object-document-mapper", + "title": "Doctrine MongoDB Object Document Mapper", + "authorName": "jwage", + "authorEmail": "", + "contents": "A question asked to me many times by many different people over the last\nyear is, \"will Doctrine ever have any support for MongoDB?\". I have\nnever really had an answer because we haven't had any official plans to\nsupport it as it was so new to the database world and php so nobody\nreally knew much about it yet.\n\nA few weekends ago I decided to install MongoDB and give it a try. It\nwas pretty fun and interesting. I quickly learned that it being a\ndocument based storage system lends itself well to a object mapper so\nthe experimental [Doctrine MongoDB Object Document\nMapper](https://github.com/jwage/odm) was born.\n\nIntroducing Doctrine MongoDB Object Document Mapper (ODM)\n=========================================================\n\nMuch like the Doctrine 2 ORM, the ODM aims to provide transparent\npersistence for PHP 5.3.0+ objects. You will notice that the Doctrine 2\nORM and ODM infrastructure, style, interfaces, etc. are all very\nsimilar. Instead of an EntityManager like in the ORM you have the\nDocumentManager. Map your objects in the same way you do for the ORM.\nHere is an examle `User` document:\n\n~~~~ {.sourceCode .php}\nsetUsername('jwage');\n$user->setPassword('testing');\n\n$dm->persist($user);\n$dm->flush();\n~~~~\n\nNow if you have a look in MongoDB you will see a database named `my_db`\nand a collection named `users` containing a new document like the\nfollowing:\n\n array(\n '_id' => instanceof MongoId,\n 'username' => 'jwage',\n 'password' => 'testing'\n )\n\nWhen you query for and retrieve this document from the database later,\nDoctrine reconstructs the PHP object with the data from MongoDB:\n\n~~~~ {.sourceCode .php}\nfindOne('User', array('username' => 'jwage')); // instanceof User\necho $user->getUsername();\n~~~~\n\nBelow you can find an overview list of the features available:\n\n- Transparent persistence.\n- Map one or many embedded documents.\n- Map one or many referenced documents.\n- Create references between documents in different databases.\n- Map documents with Annotations, XML, YAML or plain old PHP code.\n- Documents can be stored on the\n [MongoGridFS](https://secure.php.net/MongoGridFS).\n- Collection per class(concrete) and single collection inheritance\n supported.\n- Map your Doctrine 2 ORM Entities to the ODM and use mixed data\n stores.\n- Inserts are performed using\n [MongoCollection::batchInsert()](http://us.php.net/manual/en/mongocollection.batchinsert.php)\n- Updates are performed using \\$set instead of saving the entire\n document.\n\nGetting Started?\n================\n\nWe've put together a little documentation to help you get familiar with\nthe ODM quickly.\n\n- [Reference\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/en)\n- [Getting Started Cookbook\n Article](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/cookbook/getting-started/en)\n- [API\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/api)\n\nHow can I contribute?\n=====================\n\nGet your fork on! All you need to do is fork a Doctrine\n[repository](https://github.com/doctrine) on github.com and [submit your\nmodifications](https://github.com/guides/fork-a-project-and-submit-your-modifications/7)\nto us by sending a pull request.\n\nYou can also take part in discussions on our [mailing\nlist](https://groups.google.com/forum/#!forum/doctrine-user) or join \\#doctrine\non irc.freenode.net for live support from the community.\n", + "date": "2010-05-13 00:00:00" }, { - "url": "/2008/04/30/0-11-0-release-candidate-2.html", - "slug": "0-11-0-release-candidate-2", - "title": "0.11.0 Release Candidate 2", + "url": "/2008/08/27/moving-quickly.html", + "slug": "moving-quickly", + "title": "Moving Quickly", "authorName": "jwage", "authorEmail": "", - "contents": "Quick! Come and get it! The second release candidate of the latest\nDoctrine version, 0.11.0, has just been released. This release includes\na few dozen fixed tickets and a few new features required in order to\naddress existing issues/tickets. The complete changelog as always can be\nfound in the CHANGELOG file included with the source or online here.\n", - "date": "2008-04-30 00:00:00" + "contents": "

    \n\nRight out of the gate we're moving extremely fast. Only two days in to\nworking full-time on the project we've made some significant pushes\nforward. On Monday we made available the first 1.0 Release Candidate and\nthen immediately began working on the second and final release\ncandidate. This milestone is extremely significant as it already\ncontains over 70 closed tickets! It will be released either Wednesday or\nThursday and 1.0 Stable will follow after it on Monday September 1st.\nBelow are some other highlights on the progress made so far.\n\n

    \n\nWebsite Updates\n\n

    \n\nNew API Documentation Index\n\n

    \n\n

    \n\nNew Method Summary List\n\n

    \n\n

    \n\nRC2 Development Highlights\n\n

    • \n\nFixed Searchable behavior and added missing Documentation\n\n
    • \n\nAdded Database Reverse Engineering for MSSQL\n\n
    • \n\nDocumented Named Query Support\n\n
    • \n\nThe heavily anticipated orWhere() support has been introduced to\nDoctrine\\_Query\n\n
    • \n\nDozens of commits and over 70 closed tickets\n\n
    \n\n\n", + "date": "2008-08-27 00:00:00" }, { - "url": "/2022/08/06/dbal-3.4.0.html", - "slug": "dbal-3.4.0", - "title": "New Release: Doctrine DBAL 3.4.0", - "authorName": "Sergei Morozov", - "authorEmail": "morozov@tut.by", - "contents": "Doctrine is proud to announce the release of Doctrine DBAL 3.4.0. Below is a summary of the most noteworthy changes\nin the new release:\n\n## Database schema introspection optimization ([#5268](https://github.com/doctrine/dbal/pull/5268))\n\nOlder DBAL versions, in order to introspect database schema, performed a set of queries for each table individually.\nThis caused noticeable performance issues on some platforms like Oracle which seemingly rebuild their internal views\nfor each such query.\n\nAs of this release, the entire schema is introspected in a fixed number of queries. The more tables the schema contains,\nthe more noticeable this optimization should be.\n\nIt was impossible to make these optimizations while using the schema introspection platform methods\n(e.g. `getListTableColumnsSQL()`). As a result, although these methods are kept in the codebase for backward\ncompatibility, the DBAL itself no longer uses them. The SQL queries used for schema introspection are no longer\nconsidered part of the public DBAL API.\n\n## Support for foreign key constraints on SQLite ([#5427](https://github.com/doctrine/dbal/pull/5427))\n\nAlthough SQLite has supported foreign key constraints since its earliest versions, their support in the DBAL\nwas quite limited. One of the reasons for that was that managing foreign key constraints in SQLite is quite different\nfrom the rest of the supported platforms.\n\nFor example, when a foreign key constraint is declared, platforms like MySQL require that the referenced table\nmust already exist. To support creating tables with mutually referencing constraints, the DBAL would\ncreate the tables first and create the constraints via `ALTER TABLE \u2026 ADD FOREIGN KEY \u2026`.\n\nThis approach doesn't work with SQLite since it doesn't allow adding constraints to an existing table. Fortunately,\nit doesn't require the referenced table to exist at the time of creating the foreign key either.\n\nThe new DBAL release introduces a new API for building `CREATE TABLE` and `DROP TABLE` statements for multiple tables\nwhich could be tailored to the requirements of a given platform. The `AbstractPlatform::supportsForeignKeys()` method\nis now deprecated since the DBAL supports foreign key constraints on all supported platforms.\n\n## Support for TEXT/BLOB default values on MariaDB ([#5332](https://github.com/doctrine/dbal/pull/5332))\n\nThe platform layer in the DBAL is organized in the way that the code implementing the support for MySQL is also\nused to support MariaDB. As a result, even though MariaDB may support certain features the DBAL doesn't support them\nbecause they are not supported by MySQL. One of such features is the default values for TEXT and BLOB columns.\n\nAs of the new release, the default TEXT and BLOB values are supported on MariaDB but are still unsupported on MySQL,\neven though MySQL supports them as of\nrelease [8.0.13](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html#mysqld-8-0-13-data-types).\n\n## Support for result caching in QueryBuilder ([#5539](https://github.com/doctrine/dbal/pull/5539))\n\nThe recently added `enableResultCache()` method of the `QueryBuilder` class allows specifying the query cache profile\nto be used for performing the queries built by the builder.\n\n## PHP 7.4 or newer is required ([#5459](https://github.com/doctrine/dbal/pull/5459))\n\nThe DBAL no longer supports PHP 7.3 since its support by the community ended last year. The codebase now\nactively uses such features of PHP 7.4 as\n[covariant return types](https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters)\nand [typed properties](https://wiki.php.net/rfc/typed_properties_v2).\n\n## Deprecations\n\nIn light of the DBAL 4 release planned for later this year, the 3.4.0 release introduces over 30 deprecations which,\nas usual, focus on cleaning up obsolete features and making the API more robust and clearer from the\nstatic analysis standpoint.\n\nTo learn more about upgrading your application, see the\n[upgrade notes](https://github.com/doctrine/dbal/blob/3.4.0/UPGRADE.md#upgrade-to-34). You can find the full\nlist of changes in the release [milestone](https://github.com/doctrine/dbal/milestone/107).\n", - "date": "2022-08-06 00:00:00" + "url": "/2022/11/04/annotations-to-attributes.html", + "slug": "annotations-to-attributes", + "title": "From annotations to attributes", + "authorName": "Gr\u00e9goire Paris", + "authorEmail": "postmaster@greg0ire.fr", + "contents": "Last month, we migrated the tests of the ORM from annotations to attributes.\nLet us look back on what lead to this moment.\n\n## Annotations\n\nLet's go 22 years back in time. In October 2000, Ulf Wendel introduces phpdoc\ncomments at the PHP-Kongress. These comments follow a structure that allows\nto produce API documentation from them. They are inspired by javadoc.\n\nIn 2002, Alex Buckley, a Specification lead for the Java language publishes\n[JSR-175][jsr-175], thus proposing to add user-defined annotations to the\nlanguage, allowing to tag language elements with extra information. 2 years\nlater, it gets approved and Java 1.5, also known as Java 5 is released, [with\nsupport for annotations][annotation-guide].\n\n2 more years elapse and in 2004, Jano Suchal publishes [Addendum][addendum], a\nPHP library that adds support for using \"Docblock/JavaDoc\" as annotations,\nmeaning that contrary to what is done in Java, Addendum annotations are\ncontained inside phpdoc comments, like this:\n\n```php\n/** @test */\nfunction test_it_throws_on_invalid_argument(): void\n{}\n```\n\nThat is because they are implemented in userland, without requiring a change in\nPHP itself.\n\nDoctrine ORM 2.0 is not released yet at that point, but [the library is used to\nbuild an annotation driver][addendum-common] in Doctrine 2 in early 2009.\nAt that time, Doctrine was a project in a single repository, with `Common`,\n`DBAL` and `ORM` as top-level namespaces.\n[Addendum is replaced 6 months later][annotation-driver], with a new namespace\nunder `Common` called `Annotations`.\n\nIn the summer of 2010, Guilherme Blanco and Pierrick Charron submit\n[an RFC to add annotations support to PHP][annotations-rfc], but it\n[gets declined][mailing-list-annotations-rfc]. The RFC already mentions the\nneed for annotations in PHPUnit, Symfony, Zend Framework, FLOW3 and of course,\nDoctrine.\n\nLate 2010, Doctrine 2 is tagged, and the single repository is split into 3\nrepositories.\n\nFinally, in 2013, the namespace above is isolated in its own repository, and\n`doctrine/annotations` 1.0.0 is tagged.\n\nToday, the package is widely used in the PHP ecosystem and has a little short\nof 300 million downloads on Packagist, and is depended on by over 2 thousand\npackages, including major frameworks and tools. It is fair to say annotations\nhave proven valuable to many users.\n\n[jsr-175]: https://www.cs.ubc.ca/~gregor/teaching/cpsc411/metadata-public-draft.html\n[annotation-guide]: https://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html\n[addendum]: https://github.com/jsuchal/addendum\n[addendum-common]: https://github.com/doctrine/orm/commit/bcf0110249978c8fc705916d5a4f94216bb98b07\n[annotation-driver]: https://github.com/doctrine/orm/commit/9075f10bf5da3058f6ef82ff08e4783ff70424a4\n[annotations-rfc]: https://wiki.php.net/rfc/annotations\n[mailing-list-annotations-rfc]: https://externals.io/message/49733\n\n## Attributes\n\nThe RFC mentioned above is only one among [many][rfc-list]. As mentioned\nbefore, annotations were implemented as phpdoc comments, which has several\ndrawbacks:\n\n- The comments are necessary to run the code, and [need to be kept in the\n opcode cache][opcache-save-comments].\n- They are obtained at runtime, by using the reflection API, and because of\n that, can only be detected as invalid at runtime.\n- They are not well supported by IDEs if at all.\n- They clutter comments, which were originally intended for humans.\n- They can be confused with phpdoc, which are something else entirely.\n\nIn March 2020, Benjamin Eberlei resurrects [Dmitry Stogov's attributes\nRFC][attributes-rfc] and submits [the seventh RFC on this\ntopic][attributes-v2-rfc], introducing attributes to PHP.\n\nA few rounds of RFCs about syntax later, PHP 8.0 is released, with a notable\nfeature missing: nested attributes. PHP 8.0 attributes use a syntax that is\nforward-compatible with them though, and finally, with PHP 8.1, nested\nattributes are supported.\n\n[rfc-list]: https://wiki.php.net/rfc\n[opcache-save-comments]: https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.save-comments\n[attributes-rfc]: https://wiki.php.net/rfc/attributes\n[attributes-v2-rfc]: https://wiki.php.net/rfc/attributes_v2\n\n## Migrating from one to the other\n\nSince attributes are much better than annotations, with `doctrine/orm` 3.0,\nannotations will no longer be supported, which means applications using them as\na way to map entities to tables need to migrate towards attributes (or another\ndriver).\nAs maintainers of that library, even we needed to migrate: most of the test\nsuite of `doctrine/orm` used annotations.\n\nEnter [Rector][rector]. Rector is a standalone tool that is invaluable when it\ncomes to performing such migrations: it is able to understand PHP code and\napply so-called Rectors to it. It is extensible, so it is possible to define\nsuch Rectors in order to address upgrades for anything, including Doctrine.\n\nWhat's more, it comes with batteries included: when you install\n`rector/rector`, what you get is code from `rector/rector-src` _and_ its official\nextensions, among which you will find [`rector/rector-doctrine`][rector-doctrine].\nThat's right, there is already an entire extension dedicated to Doctrine.\n\nRules are grouped together in sets, and the set that interests us here is\n`Rector\\Doctrine\\Set\\DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES`.\n\nTo migrate `doctrine/orm`'s test suite to annotations, here is how we\nproceeded:\n\n1. Install Rector: `composer require --dev rector/rector`.\n2. Create a file called `rector.php` at the root of the library with the\n following contents:\n\n ```php\n paths([\n __DIR__ . '/tests',\n ]);\n $rectorConfig->sets([\n DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,\n ]);\n };\n ```\n3. Run `vendor/bin/rector`, which obeys the above configuration.\n4. Uninstall Rector: `composer remove rector/rector && rm rector.php`\n5. Run `vendor/bin/phpcbf` to make the migrated codebase compliant with our\n coding standard.\n\nOr at least, it was the plan, because some annotations were not perfectly\nmigrated. All in all, I found only [2][bug-1] [bugs][bug-2], which looks great\ngiven how so many edge cases should appear in our test suite.\n\nI went on and reported those 2 bugs, and this is where the experience went from\ngreat to stellar:\nthe issue template leads to [a playground][demo], much like the one you can\nfind for other tools such as Psalm or PHPStan.\n\nThis one comes with 2 buttons: \"Create an issue\", which pre-fills the Github\nissue with useful information, and \"Create a test\", that lets you create a test\nin the right directory (and also, the right repository, which is\n`rectorphp/rector-src`, and not `rectorphp/rector`).\n\nIf you want to add a new test for the bug you reported, you should let\n[the official tutorial][rector-test-tutorial] walk you through that, it is very\nwell written.\n\nAnyway, now that these 2 bugs are fixed and you know how to migrate, plan that\nmigration, and let us know how it goes! Happy Rectoring!\n\n[rector]: https://github.com/rectorphp/rector\n[rector-doctrine]: https://github.com/rectorphp/rector-doctrine\n[bug-1]: https://github.com/rectorphp/rector/issues/7528\n[bug-2]: https://github.com/rectorphp/rector-src/pull/2988\n[demo]: https://getrector.org/demo\n[rector-test-tutorial]: https://github.com/rectorphp/rector/blob/main/docs/how_to_add_test_for_rector_rule.md\n", + "date": "2022-11-04 00:00:00" }, { - "url": "/2008/10/12/new-hydration-modes-for-doctrine-1-1.html", - "slug": "new-hydration-modes-for-doctrine-1-1", - "title": "New hydration modes for Doctrine 1.1", + "url": "/2010/04/20/orm-is-not-a-choice.html", + "slug": "orm-is-not-a-choice", + "title": "ORM is Not a Choice", "authorName": "romanb", "authorEmail": "", - "contents": "

    \n\nI would like to announce the addition of two new hydration modes to the\n1.1 branch that will be included in the 1.1 release.\n\n

    • \n\nHYDRATE\\_SCALAR - flat array where the key is made up of the query\ncomponent alias + field name. This method offers access to all the same\ndata in a flat array and the hydration process for it is much faster.\n\n
    • \n\nHYDRATE\\_SINGLE\\_SCALAR - Allows you to easily access single value\nresults, bypassing the expensive hydration process.\n\n

    \n\nWe feel that they fill an important gap between HYDRATE\\_NONE and\nHYDRATE\\_RECORD/HYDRATE\\_ARRAY.\n\n

    \n\nYou can read more about the new hydration modes in the docs. Starting at\n\"Fetching data\". You can also take a look at the new test case.\n\n

    \n\nWe encourage everyone to try them out and give us some feedback. Note\nthat this is a feature preview and the implementation and syntax might\nchange (or not) until the final 1.1 release, depending on how many\nissues arise and depending on the feedback.\n\n

    \n\n\n", - "date": "2008-10-12 00:00:00" + "contents": "**NOTE** When speaking of \"ORM\" or \"object-relational mapping\" in\n: this post I am referring to the act of mapping an [object-oriented\n domain model](https://martinfowler.com/eaaCatalog/domainModel.html)\n to a relational database. There are other, alternative forms of\n object-relational mapping.\n\n\"Should I use an ORM?\" is a frequently asked question that somehow\nmisses the point, because ORM is usually not some optional thing you can\neither use or not. The choices are elsewhere. Furthermore, if there is a\ndislike for ORM tools it helps to clarify what exactly is the cause. The\ncause can be a dislike of object-oriented domain models. For example, if\nyou prefer to separate data from behavior/logic, as [I've read recently\non Twitter](https://twitter.com/elazar/status/12492601691) , then it is a\nsign that you don't like domain models, at least not rich ones, maybe\n[anemic ones](https://martinfowler.com/bliki/AnemicDomainModel.html) ,\nand you probably don't like OOP much at all then, because bundling data\nwith behavior is what OO is about, usually.\n\n> **NOTE** It's OK not to like OOP these days. Its not the holy grail\n> anymore, mostly due to the usually messy concurrency characteristics\n> and problems resulting from typical object-oriented design which\n> revolves around imperative programming with direct manipulation of\n> mutable state, but that does not apply to PHP as much as to some other\n> languages due to its thread-confined nature/execution model.\n\nYou can not use a relational database in combination with an\nobject-oriented domain model without mapping.\n\nThe choices that lead to the need for ORM are the following:\n\n- *You can choose to use a relational database or not.*\n- *You can choose to create an object-oriented domain model or not.*\n\nIf you want a relational database and you want an object-oriented domain\nmodel, you need ORM, there is no choice. If you choose to use a\nrelational database but not an object-oriented domain model, you might\nneed some other form of object-relational or other mapping, depending on\nhow you want to model your application and your business logic around\nthe data in particular.\n\nPeople not being aware of the above two choices, especially the second\none, is unfortunately what makes some of them \"choose ORM\" and then\nsometimes getting frustrated. Using an ORM without even having or\nwanting a domain model and with the head still exclusively full of\ntables and rows, which are at the beginning and at the end of every\nthought about the software being built, is a wrong choice. With these\npreconditions, ORM quickly becomes a pain, and its wrong. Forcing your\nrelational data into objects even though you don't really know what to\ndo with them, maybe it just seems nice to have them as \"data\ncontainers\", is the wrong motivation. If you don't want to combine your\nbusiness data with your business behavior, something that can be done\nnicely in an OO domain model, then there is not much value in having\nobjects wrapped around your data. Some other, wrong motivations for\n\"choosing an ORM\", at least when they are the main motivations, are:\n\n- Database vendor independence\n- \"Hiding SQL\"\n\nThese are just additional benefits you can get but they are not the main\npurpose of an ORM tool. Then what is the main purpose? *State\nmanagement. Synchronizing the state of your in-memory object model with\na relational database for the purpose of persistent storage.* Neither\ndoes an ORM need to be database vendor independent, nor does it need to\nhide SQL to do this. Everything else is icing on the cake. If all you\nwant is to centralize your database access paths, which is a good thing\nfor caching and all, you don't need an ORM for that either, any database\naccess layer, existing or self-made, will do.\n\nI hope it is a bit clearer now that ORM is not a choice but a need that\nresults out of other choices.\n", + "date": "2010-04-20 00:00:00" }, { - "url": "/2008/10/02/doctrine-1-1-development-begins.html", - "slug": "doctrine-1-1-development-begins", - "title": "Doctrine 1.1 Development Begins", + "url": "/2008/02/16/doctrine-0-9-1-0-10-1-released.html", + "slug": "doctrine-0-9-1-0-10-1-released", + "title": "Doctrine 0.9.1 / 0.10.1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "", - "date": "2008-10-02 00:00:00" + "contents": "Today the Doctrine team is proud to announce the release of Doctrine\n0.9.1 and 0.10.1. Both releases bring many fixes and a few minor\nadditions for missing features in each of the branches. The next release\nof 0.10.2 will replace the 0.9 branch and all users will be recommended\nto upgrade as the 0.9 branch will no longer be supported and maintained\nby the core dev team. We except that 0.10.2 is due in two to three\nweeks. Please upgrade your existing projects from 0.9 to 0.10 and let us\nknow what issues you come across when switching so we can ensure a\nsmooth migration from 0.9 to 0.10 for all of our users.\n\nOn a side note, many new changes have been made to the website. A few\nvisual things and a few functional things. You will now find on the\nDownload page you can now get Doctrine in either zip or tgz format. We\nalso have our very own PEAR server so you are able to install Doctrine\nvia the pear command line interface. Our channel is located at\npear.phpdoctrine.org and can be discovered by running 'pear\nchannel-discover pear.phpdoctrine.org'\n", + "date": "2008-02-16 00:00:00" }, { - "url": "/2009/06/17/special-price-offer-symfony-1-2-doctrine-training-workshop.html", - "slug": "special-price-offer-symfony-1-2-doctrine-training-workshop", - "title": "Special Price Offer: Symfony 1.2 + Doctrine Training Workshop", + "url": "/2016/01/05/orm-2-5-4.html", + "slug": "orm-2-5-4", + "title": "Doctrine ORM 2.5.4 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n[2.5.4](https://github.com/doctrine/orm/releases/tag/v2.5.4).\n\nThis release fixes an issue with how identifiers are used when building\nsecond level cache entries during hydration.\n[\\#1568](https://github.com/doctrine/orm/pull/1568)\n\nInstallation\n============\n\nYou can install the ORM component using Composer:\n\n```bash\ncomposer require doctrine/orm:~2.5.4\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/orm/issues).\n", + "date": "2016-01-05 00:00:00" + }, + { + "url": "/2008/09/09/doctrine-1-0-1-released.html", + "slug": "doctrine-1-0-1-released", + "title": "Doctrine 1.0.1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "As you all may know, I work for [Sensio Labs](https://sensiolabs.com)\n, the creators of the [Symfony](http://www.symfony-project.org)\nframework. Sensio offers trainings in many topics, but primarily Symfony\nand Doctrine. I will be teaching a training session June 29th to July\n1st in the San Francisco bay area that covers Symfony 1.2 and Doctrine\n1.0. We are having a little issue completely filling the class and I\nneed a few more trainees in order to fill the class to maintain the\ndate, otherwise we'll have to cancel.\n\nI am able to make a special offer to any interested parties on the price\nof the training. All things are negotiable. So if you would like to\nattend the 3 day workshop taught by myself and learn the best practices\nwhen using Symfony and Doctrine, contact me right away! Remember, the\nprice is completely negotiable so if you're a student or a member of a\ndevelopment team and would like to attend please contact me so we can\nnegotiate a price that works for you.\n\nYou can contact me at\n[jonathan.wage@sensio.com](mailto:jonathan.wage@sensio.com) to discuss\ndetails.\n", - "date": "2009-06-17 00:00:00" + "contents": "Today we would like to announce the immediate availability of the first\nmaintenance release of the Doctrine 1.0 branch. This release contains\nseveral important bug fixes and we recommend that you upgrade as soon as\npossible. You can upgrade via pear or download the package here.\n", + "date": "2008-09-09 00:00:00" }, { - "url": "/2009/06/16/doctrine-changing-homes.html", - "slug": "doctrine-changing-homes", - "title": "Doctrine changing homes", + "url": "/2008/03/29/using-doctrine-zend-framework.html", + "slug": "using-doctrine-zend-framework", + "title": "Using Doctrine with Zend Framework", "authorName": "jwage", "authorEmail": "", - "contents": "You all may have noticed the stability of the website going up and down\nrecently. Up until now we have been lucky to have our good friend Ian\nChristian(pookey in IRC) host all the Doctrine infrastructure for over 3\nwhole years! With Doctrine continuing to grow and move forward, it is\ntime to move on to greener pastures to a dedicated home.\n\nTonight we will try to begin the migration to our new home. Hopefully\nthis transition will be fairly seamless but we expect at least a little\ndowntime. We are moving the website, Trac and SVN all at once to avoid\nthe migration lasting over a long period of time. Thanks for your\npatience while we work through these issues.\n", - "date": "2009-06-16 00:00:00" + "contents": "Today, \"rubenv\" pinged me in IRC and told me he has put together an\narticle on how to get started using Doctrine with the Zend Framework.\nThe article is very simple and does not get in to the detailed usage of\nDoctrine, but it shows you how you to integrate the two frameworks\ntogether and even shows a very simple web application. The article can\nbe found here.\n", + "date": "2008-03-29 00:00:00" }, { - "url": "/2008/07/02/doctrine-1-0-and-symfony-1-2.html", - "slug": "doctrine-1-0-and-symfony-1-2", - "title": "Doctrine 1.0 and symfony 1.2", + "url": "/2008/07/26/doctrine-growth.html", + "slug": "doctrine-growth", + "title": "Doctrine growth", "authorName": "jwage", "authorEmail": "", - "contents": "This morning Fabien from the symfony project announced the roadmap for\nthe next major version of symfony, 1.2. He announced that Doctrine would\nbe officially supported as a \"first class citizen.\" The time couldn't be\nbetter as symfony 1.2 is scheduled to be released in October and\nDoctrine is slated to release 1.0 around the same time. This is good\nnews for Doctrine, symfony and more importantly PHP in general. I look\nforward to seeing what comes of all this in the coming months.\n", - "date": "2008-07-02 00:00:00" + "contents": "

    \n\nLast October 2007 we implemented some google analytics to our website to\nmonitor the growth of the community. Today the traffic has about doubled\nsince then. We average around 1000 unique visitors per day up from\naround 300 roughly 1 year ago. We expect the growth to continue and we\nlook forward what milestones we can reach together in the future. Check\nout the graph of absolute unique visitors from google analytics below.\n\n

    \n\n

    \n\n\n", + "date": "2008-07-26 00:00:00" }, { - "url": "/2008/12/11/double-dose-of-doctrine.html", - "slug": "double-dose-of-doctrine", - "title": "Double Dose of Doctrine", - "authorName": "jwage", + "url": "/2015/12/08/jira-issues-migration.html", + "slug": "jira-issues-migration", + "title": "Jira Issues Migration", + "authorName": "", "authorEmail": "", - "contents": "Today I am happy to introduce two new versions of Doctrine! We have made\navailable yet another maintenance release for the 1.0 version,\n[1.0.5](https://www.doctrine-project.org/download). This release contains\ndozens of fixes that are logged\n[here](https://www.doctrine-project.org/change_log/1_0_5). In addition to\nthe monthly 1.0.x maintenance release, we have made available the [first\nbeta of the 1.1](https://www.doctrine-project.org/download) development\nbranch of Doctrine.\n\nThis is exciting news because this means we are very close to releasing\na stable version. We just need to work out the last final kinks and we\nneed your help to do it. You can read about what has changed in the\n[upgrade to 1.1\nfile](http://svn.doctrine-project.org/branches/1.1/UPGRADE_TO_1_1).\n", - "date": "2008-12-11 00:00:00" + "contents": "We have started the migration of all our Jira tickets to Github Issues.\n\nThese last months we had a lot of troubles with our Jira and we just\ncannot find the time to update and maintain it anymore. On top of it,\nspam is causing more maintenance for us deleting user accounts and\ntickets. Sadly ther seeems to be no appropriate spam protection plugins\nand we couldn't prevent this.\n\nWe are by no means unsatisfied with Jira, and to be honest we have been\nfighting this migration step as long as possible. Github Issues is a\nsmall fish against Jira's powers, especially issue filtering, bulk\noperations and the Agile board. But for Doctrine its best to migrate to\nGithub to reduce our maintenance and operations overhead and more\ntightly integrate with the tooling we already have.\n\nFor now Common, DBAL and ORM issues have been imported into Github using\nthe [amazing Importer\nAPI](https://gist.github.com/jonmagic/5282384165e0f86ef105). Even though\nthis API is still in Beta, it works quite flawlessly. If you are\ninterested in our migration scripts see [this repository in\nGithub](https://github.com/doctrine/jira-github-issues). They are very\nlow-level and procedural but get the job done.\n\nJira has been changed into Read-Only mode for Common, DBAL and ORM\nprojects, please use the Github based issue trackers instead from now\non:\n\n- [ORM](https://github.com/doctrine/orm/issues)\n- [DBAL](https://github.com/doctrine/dbal/issues)\n- [Common](https://github.com/doctrine/common/issues)\n\nWhat is still missing?\n======================\n\n- Versions from Jira need to be exported and imported into Github\n releases with their release date, changelog and description.\n\n- Permanent redirects for both Jira versions and issues to their\n respective Github counterparts have to be prepared and dynamically\n generated from our webserver, when we decommission Jira. This will\n help us keep deeplinks to Jira issues.\n\n- Cleanup, categorize and prepare the newly imported Github issues.\n\nWe hope to complete this steps this week. The last one will take a bit\nlonger.\n\nWhat we could not import\n========================\n\nWe were not able to import attachments, issue status transitions and\nuser/reporter assignments between Jira and Github. This information will\nbe lost once we disable Jira.\n", + "date": "2015-12-08 00:00:00" }, { - "url": "/2022/03/24/opencollective.html", - "slug": "opencollective", - "title": "On Doctrine Sponsoring with the help of OpenCollective", - "authorName": "Benjamin Eberlei", - "authorEmail": "kontakt@beberlei.de", - "contents": "To simplify our own administrative burden, we have decided to move over the\nfunds to [OpenCollective](https://opencollective.com/doctrine), primarily\nmotivated by the success and positive experience of the new PHP Foundation.\n\nWe have started raising money for the Doctrine Project in 2019 through Patreon and\nGithub Sponsors to support the project. It was planned to organize core team\nget-togethers/hackathons, but due to the pandemic we haven't been able to do this.\nIn addition the legal and tax implications of raising money also caused us\nsome headaches. \n\nThe move to OpenCollective will allow us to delegate much of the administrative\nwork to them for a small percentage of the raised capital. The fee is a much\nsmaller amount than the taxes that we had to pay on the raised money\npreviously, so it is a win-win for us.\n\nWe want to assure our sponsors that we still plan to make use of the funds\nto further the Doctrine project and we are actively looking to increase our funding\nfor these goals:\n\n- Regularly organize hackathons for Doctrine Core team contributors, including\n 3-4 days of accommodation, food and travel for roughly 10-15 people.\n\n- Infrastructure, servers and hosting.\n\n- Marketing material such as stickers, t-shirts and other small things.\n\n- If the budget increases significantly we might be able to pay someone part-\n or full-time to do maintenance work such as responding to and processing\n issues, prepare for new PHP releases and general cleanups of the codebase.\n\nAs such we hope to convince you to sponsor Doctrine through either our [Github\nSponsors](https://github.com/sponsors/doctrine/) or\n[OpenCollective](https://opencollective.com/doctrine) directly.\n", - "date": "2022-03-24 00:00:00" + "url": "/2008/08/06/master-and-slave-connections.html", + "slug": "master-and-slave-connections", + "title": "Master and Slave Connections", + "authorName": "jwage", + "authorEmail": "", + "contents": "In this new cookbook recipe we demonstrate how you can setup multiple\nconnections and use them as master/slaves. All select statements are\nissued to the slaves and any insert/update/delete statements are issued\nto the master. This example accomplishes the functionality by extending\nDoctrine\\_Query and Doctrine\\_Record. This article is a perfect example\nof how you can extend and override functionality in Doctrine to\naccomplish your needs when Doctrine doesn't necessarily have a native\nsolution ready to go for you.\n", + "date": "2008-08-06 00:00:00" }, { - "url": "/2021/04/19/dbal-2.13.1-3.1.0.html", - "slug": "dbal-2.13.1-3.1.0", - "title": "New Release: Doctrine DBAL 2.13.1 and 3.1.0 with important Forward Compatibility fix", - "authorName": "Benjamin Eberlei", - "authorEmail": "kontakt@beberlei.de", - "contents": "Last month [we released DBAL\n2.13.0](https://www.doctrine-project.org/2021/03/29/dbal-2.13.html) as an\nimportant push for the ecosystem towards DBAL 3 with an extensive deprecation\nand forward compatibility layer.\n\nWe made a few mistakes, given that the forward compatibility layer is quite complex.\nAs such we have now released Doctrine DBAL 2.13.1 and 3.1.0 with two new APIs\nthat improve the forward compatiblity.\n\nThe problem lies in `Statement::execute()`: 2.13.0 would return a `bool` and\n3.0.0 would return a `Result` from this method. This kind of API change cannot\nbe handled with a forward compatibility.\n\nAs such we introduced two new APIs on `Statement` that replace `execute()`.\nWhen the old code was:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$statement->execute();\n\n$rows = $statement->fetchAll();\n```\n\nThen the new code is now:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$result = $statement->executeQuery();\n\n$rows = $result->fetchAllAssociative();\n```\n\nThe DBAL 2.13 forward compatiblity layer supports both versions of all code and\nreturns a Statement/Result hybrid that has all the APIs that the DBAL Statement\nhad up until version 2.12. This way you can move at your own pace from the old\nto the new API in your code.\n\nThank you again to [mdumoulin](https://github.com/mdumoulin) for the work on\nimproving the forward compatiblity and to [Sergei Morozov](https://twitter.com/srgmrzv)\nfor the thorough reviews and comments.\n\nAgain I want to highlight the Runtime Deprecations library that we introduced\nto support this migration. You can integrate this with your log stack during\ndevelopment and testing:\n\n```php\nuse Doctrine\\Deprecations\\Deprecation;\nuse Monolog\\Logger;\nuse Monolog\\Handler\\StreamHandler;\n\n$log = new Logger('doctrine');\n$log->pushHandler(new StreamHandler('deprecations.log', Logger::INFO));\n\nDeprecation::enableWithPsrLogger($log);\n```\n\nOr alternatively using PHP's global error handler:\n\n```php\nDeprecation::enableWithTriggerError();\n```\n\nSee the [2.13 blog\npost](https://www.doctrine-project.org/2021/03/29/dbal-2.13.html) for more\ninformation about the migration to DBAL 3 and strategy recommendations.\n", - "date": "2021-04-19 00:00:00" + "url": "/2018/07/12/common-2-9-and-dbal-2-8-and-orm-2-6-2.html", + "slug": "common-2-9-and-dbal-2-8-and-orm-2-6-2", + "title": "Phasing out Doctrine Common & release of DBAL 2.8 and ORM 2.6.2", + "authorName": "Michael Moravec", + "authorEmail": "doctrine@majkl.me", + "contents": "### Common 2.9 and phasing out the package\n\nAs another step in the ongoing effort to eliminate `doctrine/common`,\nthere are now three new separate Doctrine packages:\n\n * [`doctrine/persistence`](https://github.com/doctrine/persistence)\n * [`doctrine/event-manager`](https://github.com/doctrine/event-manager)\n * [`doctrine/reflection`](https://github.com/doctrine/reflection)\n\nThis release introduces the following deprecations:\n\n * `Doctrine\\Common\\Proxy` component is deprecated, use\n [`ocramius/proxy-manager`](https://github.com/ocramius/ProxyManager) instead;\n * `Doctrine\\Common\\Util\\Debug` is deprecated, use\n [`symfony/var-dumper`](https://github.com/symfony/var-dumper) instead;\n * `Doctrine\\Common\\Lexer` is deprecated, use `Doctrine\\Common\\Lexer\\AbstractLexer`\n from [`doctrine/lexer`](https://github.com/doctrine/lexer) or migrate to\n [hoa/compiler](https://github.com/hoaproject/Compiler) instead;\n * `Doctrine\\Common\\Util\\Inflector` is deprecated, use `Doctrine\\Common\\Inflector\\Inflector`\n from [`doctrine/inflector`](https://github.com/doctrine/inflector) instead;\n * `Doctrine\\Common\\Util\\ClassUtils` is deprecated without replacement;\n * `Doctrine\\Common\\Version` is deprecated, refrain from checking Common version at runtime;\n * `Doctrine\\Common\\CommonException` is deprecated without replacement.\n\nIn addition to that, there will be no `doctrine/common` 3.0 and the package\nwill be gradually phased out.\n\nVersion 2.x will be maintained at least until ORM 3.0 is released, ensuring\ncompatibility with the latest PHP and providing bugfixes, but it will\nno longer ship any new features.\n\nFor complete release notes,\n[visit GitHub](https://github.com/doctrine/common/releases/tag/v2.9.0).\n\n### DBAL 2.8.0\n\nDBAL 2.8.0 is a minor release of Doctrine DBAL that aggregates over\n30 fixes and improvements developed over the last 3 months.\n\nThe dependency on `doctrine/common` is removed. DBAL now\ndepends on `doctrine/cache` and `doctrine/event-manager` instead.\n\nFor complete release notes,\n[visit GitHub](https://github.com/doctrine/dbal/releases/tag/v2.8.0).\n\n### ORM 2.6.2\n\nORM 2.6.2 comes as a regular bugfix release.\n\nIt no longer uses the long ago deprecated Lexer and Inflector from `doctrine/common`.\n\nFor complete release notes,\n[visit GitHub](https://github.com/doctrine/orm/releases/tag/v2.6.2).\n", + "date": "2018-07-12 00:00:00" }, { - "url": "/2010/03/01/introduction-to-doctrine-2-webinar.html", - "slug": "introduction-to-doctrine-2-webinar", - "title": "Introduction to Doctrine 2 Webinar", - "authorName": "jwage", - "authorEmail": "", - "contents": "", - "date": "2010-03-01 00:00:00" + "url": "/2014/09/11/instantiator-1-0-0.html", + "slug": "instantiator-1-0-0", + "title": "Doctrine Instantiator 1.0.0 released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We released [Doctrine Instantiator\n1.0.0](https://github.com/doctrine/instantiator/releases/tag/1.0.0)\nseveral weeks ago.\n\nThis project has been migrated from\n[ocramius/instantiator](https://github.com/Ocramius/Instantiator) into\nthe doctrine organization to have better maintenance, support as well as\nhandling of security related issues, which is a priority for us.\n\nThe migration has been done because all doctrine ORM and ODM projects\nwere affected by a quite big [backwards-incompatible change in PHP\n5.4.29 and PHP 5.5.13](https://bugs.php.net/bug.php?id=67072), which\n[was partially solved in PHP\n5.6.0-RC3](https://github.com/php/php-src/pull/733). The main tracking\nbug for this problem is \\`DDC-3120\\`\\_.\n\n[Doctrine Instantiator](https://github.com/doctrine/instantiator)\nprovides a simple API to build objects without directly relying on the\n[serialization\nhack](https://www.doctrine-project.org/2010/03/21/doctrine-2-give-me-my-constructor-back.html)\nthat has been explicitly used by all of our data mappers for quite some\ntime.\n\nInstallation\n============\n\nYou can install [Doctrine\nInstantiator](https://github.com/doctrine/instantiator) using Composer\nand the following `composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/instantiator\": \"1.0.*\"\n }\n}\n~~~~\n", + "date": "2014-09-11 00:00:00" }, { - "url": "/2009/11/10/doctrine-1-2-0-beta2-released.html", - "slug": "doctrine-1-2-0-beta2-released", - "title": "Doctrine 1.2.0-BETA2 Released", + "url": "/2009/05/22/glimpse-of-doctrine-2-0.html", + "slug": "glimpse-of-doctrine-2-0", + "title": "Glimpse of Doctrine 2.0", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am happy to bring you the second beta of the latest Doctrine 1.2\nversion. This is a solid bug fix release and we're getting very close to\na stable 1.2 version of Doctrine! It is recommended that you upgrade and\n[report](https://www.doctrine-project.org/jira) any issues in\n[Jira](https://www.doctrine-project.org/jira) to help us test for\nregressions between 1.1 and 1.2.\n\nTake a look at the\n[changelog](https://www.doctrine-project.org/change_log/1_2_0_BETA2) and\ntry it out by [downloading](https://www.doctrine-project.org) it.\n", - "date": "2009-11-10 00:00:00" + "contents": "As you all probably already know, we have been working on Doctrine 2.0\npretty much since before we released Doctrine 1.0. This effort has been\nprimarily led by Roman and he has done an excellent job with things so\nfirst a big thanks goes to him.\n\nA few quick facts\n=================\n\n- Doctrine 2.0 will require PHP 5.3\n- Doctrine 2.0 is FAST\n- We will extend the support life of 1.x\n\nWe have decided to move forward with Doctrine 2.0 requiring PHP 5.3.\nThis release is a significant one, both for PHP and Doctrine, so we\ndecided to continue support for the 1.x series of Doctrine to give the\nadoption of PHP 5.3 and Doctrine 2.0 more time.\n\nHydration Performance\n=====================\n\nIn Doctrine 2.0 the performance when hydrating data is greatly improved.\nThe difference in speed is a combination of code changes and the\nperformance increase from using PHP 5.3.\n\n| Version | Seconds | \\# Records | | ---------- | ------------|\n------------- | | 1.1 | 4.3435637950897 | 5000 | | 2.0 | 1.4314442552312\n| 5000 | | 2.0 | 3.4690098762512 | 10000 |\n\nA few code snippets\n===================\n\nSchema Metadata and Models\n==========================\n\nIn Doctrine 1.1 a `Doctrine_Record` might look something like the\nfollowing.\n\n~~~~ {.sourceCode .php}\nhasColumn('id', 'integer', null, array(\n 'primary' => true,\n 'auto_increment' => true\n ));\n $this->hasColumn('username', 'string', 255);\n }\n}\n\n**NOTE** Notice how you have to extend the base class and\neverything is a public instance. As you probably know this has lots\nof negative effects as it imposes properties and methods on your\nmodels.\n~~~~\n\nIn Doctrine 2.0 this limitation was removed and you no longer need to\nextend a base class.\n\n~~~~ {.sourceCode .php}\n\n\nToday we have released a new version, 0.11.1. As with all point releases\nit is a bug fix only release. With over 81 tickets closed, this is\ndefinetly a significant release for Doctrine towards 1.0. We recommend\nthat you upgrade.\n\n

    \n\nWe have also created the 1.0 branch and will begin actively working on\nit. We have hit the final straight away towards 1.0! This was originally\nslated to be the 0.12 branch but we feel it is ready and we will spend\nthe next 2 months furiously working on tickets before we release it on\nSeptember 1st. We will have some short intermediate BETA and RC releases\nbefore then but these will primarily be bug fix releases only. Make some\nhype please, thanks. ;)\n\n

    \n\n\n", + "date": "2008-07-12 00:00:00" }, { - "url": "/2009/09/01/doctrine2-preview-release.html", - "slug": "doctrine2-preview-release", - "title": "Doctrine 2 Preview Release", - "authorName": "romanb", + "url": "/2009/06/19/cross-database-joins.html", + "slug": "cross-database-joins", + "title": "Cross Database Joins", + "authorName": "jwage", "authorEmail": "", - "contents": "Exactly one year ago today we released Doctrine 1.0 stable, which was on\nthe birthday of Jon. Again, today we have chosen the birthday of Jon to\nrelease the first preview of Doctrine 2. This is an alpha release that\nis not intended for production use.\n\nDoctrine 2 marks the beginning of a new approach to ORM with Doctrine.\nIt represents a rewrite of more than 90% of the existing codebase. The\nnew key concepts behind Doctrine 2 are to put your domain model more\ninto focus and to provide transparent persistence where the persistence\nis a service and not an inherent property of domain classes. This has a\nlot of advantages like decoupling your valuable business logic from the\npersistence layer and easy testability of your domain model.\n\nPackages\n========\n\nDoctrine 2 is reorganized into reusable layers that are available as\nseparate packages. The Doctrine 2 Core consists of the following\npackages:\n\n- Doctrine Common (Generic components, high re usability)\n- Doctrine DBAL (The database abstraction layer, includes: Common)\n- Doctrine ORM (The ORM tools, includes: Common + DBAL)\n\nAll of these packages are currently distributed and maintained\nsynchronously which means they are released together and share the same\nversion numbers. This may change in the future. These three packages are\navailable as separate downloads even though you will most likely want to\ndownload the ORM package which already contains the Common and DBAL\npackages.\n\nFeatures\n========\n\nThis Preview Release is mainly about the core ORM functionality and\nfeatures of Doctrine 2, like mapping drivers, DQL, association mapping,\ninheritance mapping, change tracking, etc. Most of the supporting tools\nthat you are used to for rapid development like the CLI, migrations,\nbehaviors and validation have not yet been ported to Doctrine 2 and are\nstill under heavy development, most of them will end up as loosely\ncoupled extensions.\n\nMapping drivers\n===============\n\nA mapping driver is a particular strategy for providing ORM metadata to\nDoctrine 2. This Preview Release contains mapping drivers for docblock\nannotations, XML and YAML. The XML and YAML drivers are still in an\nexperimental stage and while we encourage you to use them, you may\nencounter more issues than with the docblock annotation driver as it is\nthe primary driver used in our development.\n\nDocumentation\n=============\n\nThe documentation for Doctrine 2 can be found\n[here](https://www.doctrine-project.org/projects/doctrine-orm/en/current/). Please be\naware that the documentation is still a work in progress and not all\nareas have been completed.\n\nSandbox\n=======\n\nTo get started quickly, please check out our [sandbox quickstart\ntutorial](https://www.doctrine-project.org/projects/doctrine-orm/en/current/tutorials/getting-started.html).\nYou can also obtain Doctrine 2.0.0 ALPHA1 via a PEAR package like normal\nwhich can be found on the\n[download](https://www.doctrine-project.org/download)\n\nWe want to encourage everyone to start experimenting with the new\ngeneration of Doctrine in order to get familiar with it and to help find\nany outstanding issues.\n\nAs always, please report any issues and feature requests through\n[trac](http://trac.doctrine-project.org).\n\nThank you for using Doctrine.\n", - "date": "2009-09-01 00:00:00" + "contents": "Cross Database Joins\n====================\n\nIn Doctrine, joining data across databases is not technically\n\"supported\" by a designed feature, but you can make it work by tricking\nDoctrine a little bit.\n\nIn this article I'll show you how you can setup a database schema that\nspecifies relationships across two databases and then issue a query\nwhich joins data from these two databases.\n\nI used the Doctrine sandbox to prepare this test so if you want to try\nit, you can use it too.\n\nDatabase Connections\n====================\n\nFirst lets setup our two database connections we'll use to query from.\nModify the `config.php` file included with the sandbox and replace the\ndefault single connection with the following code.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->leftJoin('u.Profile p');\n\necho $q->getSql();\n~~~~\n\nThe above code would output the following SQL query.\n\n [sql]\n SELECT d.id AS d__id, d.username AS d__username, d.password AS d__password, d2.id AS d2__id, d2.user_id AS d2__user_id, d2.first_name AS d2__first_name, d2.last_name AS d2__last_name FROM doctrine_test1.user d LEFT JOIN doctrine_test2.profile d2 ON d.id = d2.user_id\n\n **NOTE** Notice how in the above SQL that is generated it include\n the database name and the table name. So now the query is able to\n join across databases if your RDBMS supports it.\n\nNow lets execute the above query and look at the results.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->leftJoin('u.Profile p');\n\n$users = $q->fetchArray();\n\nprint_r($users);\n~~~~\n\nThe above would output just exactly what you'd expect.\n\n Array\n (\n [0] => Array\n (\n [id] => 1\n [username] => jwage\n [password] => changeme\n [Profile] => Array\n (\n [id] => 1\n [user_id] => 1\n [first_name] => string(255)\n [last_name] => string(255)\n )\n\n )\n\n )\n\nThe data from the `User` model came from one database, and the data from\nthe `Profile` model came from the other database.\n\n> **NOTE** This will only work if your database supports foreign keys\n> and joins across databases. I know MySQL does support this but I am\n> unsure about others. This same method can be used to query for data\n> across PostgreSQL schemas too.\n\nThat is it! Joining data from across different databases is no problem\nin Doctrine.\n\n> **CAUTION** This is not a designed feature of Doctrine and you may\n> experience edge cases that may not work as you'd expect. This is just\n> useful if you need to join data across databases and if you experience\n> edge cases you can work around them in your project.\n", + "date": "2009-06-19 00:00:00" }, { - "url": "/2014/09/12/dbal-250rc2.html", - "slug": "dbal-250rc2", - "title": "Doctrine DBAL 2.5 RC2", - "authorName": "", + "url": "/2009/02/04/using-behaviors-to-share-relationship-properties.html", + "slug": "using-behaviors-to-share-relationship-properties", + "title": "Using Behaviors to Share Relationship Properties", + "authorName": "jwage", "authorEmail": "", - "contents": "We are happy to announce the immediate availability of [Doctrine DBAL\n2.5 RC2](https://github.com/doctrine/dbal/releases/tag/v2.5.0-RC2),\nwhich fixes over 30 bugs including SQL Server LIMIT/OFFSET issues,\nseveral identifiers quotation issues, schema introspection related\nissues and many more. This release candidate also introduces some nice\nnew features and improvements since [Doctrine DBAL 2.5\nBETA3](https://github.com/doctrine/dbal/releases/tag/v2.5.0-BETA3):\n\n- Support for connection flags in the mysqli driver\n- Support for Spatial Indexes in MySQL\n- Support date arithmetic interval methods for seconds, minutes,\n weeks, quarters and years\n- Support for Partial Indexes in PostgreSQL and SQLite\n- `Doctrine\\DBAL\\Connections\\MasterSlaveConnection` can now be closed\n via `close()`\n- Ability to retrieve parameter types from the query builder\n- Make table alias in query builder optional for simple queries\n\nWe hope this will be the last release candidate before final release and\nyou should expect to see the finished DBAL 2.5 very soon.\n\nFor details about all the new features in DBAL 2.5, see the [previous\nrelease blog\npost](https://www.doctrine-project.org/2014/02/21/doctrine_2_5_beta3.html)\nand the [Jira\nRelease](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10523).\n\nYou can install the Release Candidate through Composer with the\nfollowing version constraint:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.0@RC\"\n }\n}\n~~~~\n\nDBAL 2.5 is backwards compatible to 2.4 and earlier in everything except\nfor small details (See `UPGRADE.md`). You can even test Doctrine DBAL\n2.5 with a stable ORM 2.4 version.\n\nIf you find any problems with this beta, please report a bug [on\nJira](https://www.doctrine-project.org/jira).\n", - "date": "2014-09-12 00:00:00" + "contents": "Define The Schema\n=================\n\nIn this article we will demonstrate some more ways to add functionality\nto Doctrine by using the behavior system. We will call this behavior\n`SharedProperties` and it allows you to share properties between your\nmodels and one-to-one relationships. Here is an example schema that will\nmake use of the behavior we will write.\n\n [yml]\n Entity:\n actAs:\n Sluggable:\n fields: [name]\n Timestampable:\n columns:\n name: string(255)\n is_active:\n type: boolean\n default: false\n\n BlogPost:\n actAs:\n SharedProperties:\n relations: [Entity]\n columns:\n title: \"string(255)\"\n body: clob\n\n User:\n actAs:\n SharedProperties:\n relations: [Entity]\n columns:\n username: string(255)\n password: string(255)\n\n Administrator:\n actAs:\n SharedProperties:\n relations: [User]\n columns:\n responsibilities: string(255)\n\nThe schema should be somewhat self-explanatory. Each model that acts as\n`SharedProperties` you must specify an array of model names or existing\nrelationship aliases. Our behavior will automatically add foreign keys\nfor the list of models and instantiate a one-to-one relationship between\nthe models automatically.\n\nWrite the Template\n==================\n\nLets write the first part of our template that simply adds a column for\neach of the listed `relations`:\n\n~~~~ {.sourceCode .php}\n_options = $options;\n }\n\n public function setTableDefinition()\n {\n foreach ($this->_options['relations'] as $relation) {\n $columnName = Doctrine_Inflector::tableize($relation) . '_id';\n if (!$this->_table->hasColumn($columnName)) {\n $this->hasColumn($columnName, 'integer');\n }\n }\n }\n}\n\n**NOTE** You will notice we add columns for each of the\n``relations`` specified if the column does not already exist. We\nwill use these columns to automatically create the\nrelationships/foreign keys between the models if they don't already\nexist in the next step.\n~~~~\n\nEnhance the Template\n====================\n\nNow lets enhance our template and add a `setUp()` method to instantiate\nour relationships between the list of `relations` and the columns we\nadded in the previous step:\n\n~~~~ {.sourceCode .php}\n_options['relations'] as $model) {\n $table = $this->_table;\n $local = Doctrine_Inflector::tableize($model) . '_id';\n $foreign = Doctrine::getTable($model)->getIdentifier();\n $this->_makeRelation($table, $model, $local, $foreign, true);\n }\n\n foreach ($this->_options['relations'] as $model) {\n $table = Doctrine::getTable($model);\n $local = $table->getIdentifier();\n $foreign = Doctrine_Inflector::tableize($model) . '_id';\n $this->_makeRelation($table, $this->_table->getOption('name'), $table->getIdentifier(), $foreign);\n }\n }\n\n protected function _makeRelation(Doctrine_Table $table, $model, $local, $foreign, $cascade = false)\n {\n if (!$table->hasRelation($model)) {\n $options = array('local' => $local, 'foreign' => $foreign);\n if ($cascade) {\n $options['onDelete'] = 'CASCADE';\n }\n $table->bind(array($model, $options), Doctrine_Relation::ONE);\n }\n }\n}\n~~~~\n\nGenerated SQL\n=============\n\nThis code we've added now makes a one-to-one relationship between the\nmodels that act as `SharedProperties` and the list of models specified.\nSo for example, `Entity` has one `BlogPost` and `BlogPost` has one\n`Entity`. The above models at this point would generate the following\nSQL:\n\n [sql]\n CREATE TABLE administrator (id BIGINT AUTO_INCREMENT, responsibilities VARCHAR(255), user_id BIGINT, INDEX user_id_idx (user_id), PRIMARY KEY(id)) ENGINE = INNODB;\n\n CREATE TABLE blog_post (id BIGINT AUTO_INCREMENT, title VARCHAR(255), body LONGTEXT, entity_id BIGINT, INDEX entity_id_idx (entity_id), PRIMARY KEY(id)) ENGINE = INNODB;\n\n CREATE TABLE entity (id BIGINT AUTO_INCREMENT, name VARCHAR(255), is_active TINYINT(1) DEFAULT '0', slug VARCHAR(255), created_at DATETIME, updated_at DATETIME, UNIQUE INDEX sluggable_idx (slug), PRIMARY KEY(id)) ENGINE = INNODB;\n\n CREATE TABLE user (id BIGINT AUTO_INCREMENT, username VARCHAR(255), password VARCHAR(255), entity_id BIGINT, INDEX entity_id_idx (entity_id), PRIMARY KEY(id)) ENGINE = INNODB;\n\n ALTER TABLE administrator ADD FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE;\n\n ALTER TABLE blog_post ADD FOREIGN KEY (entity_id) REFERENCES entity(id) ON DELETE CASCADE;\n\n ALTER TABLE user ADD FOREIGN KEY (entity_id) REFERENCES entity(id) ON DELETE CASCADE;\n\nSharing Properties/Methods\n==========================\n\nNow to get to the fun, the main purpose of doing all this is to share\nthe properties of these relationships. We can accomplish this by using\nthe `Doctrine_Record_Filter` feature and some magic PHP `__call()`\nfunctionality. First lets modify our template to attach a new record\nfilter.\n\n> **TIP** Records filters in Doctrine allow you to handle all unknown\n> properties access on a Doctrine object. This allows us to forward the\n> calls on to the relationships so you can access properties from them.\n\n~~~~ {.sourceCode .php}\n_table->unshiftFilter(new SharedPropertiesFilter($this->_options));\n }\n\n // ...\n}\n~~~~\n\nNow that we have attached our filter we need to write that class:\n\n~~~~ {.sourceCode .php}\n_options = $options;\n }\n\n public function init()\n {\n foreach ($this->_options['relations'] as $model) {\n $this->_table->getRelation($model);\n }\n }\n\n public function filterSet(Doctrine_Record $record, $name, $value)\n {\n foreach ($this->_options['relations'] as $model) {\n try {\n $record->$model->$name = $value;\n return $record;\n } catch (Exception $e) {}\n }\n throw new Doctrine_Record_UnknownPropertyException(sprintf('Unknown record property / related component \"%s\" on \"%s\"', $name, get_class($record)));\n }\n\n public function filterGet(Doctrine_Record $record, $name)\n {\n foreach ($this->_options['relations'] as $model) {\n try {\n return $record->$model->$name;\n } catch (Exception $e) {}\n }\n throw new Doctrine_Record_UnknownPropertyException(sprintf('Unknown record property / related component \"%s\" on \"%s\"', $name, get_class($record)));\n }\n}\n~~~~\n\nNow you can see this filter checks to see if the property exists on any\nof the `relations` specified otherwise throws the normal\n`Doctrine_Record_UnknownPropertyException`.\n\nThe last thing we need to do is add a magic `__call()` function to our\ntemplate to handle the forwarding of any unknown methods to the\n`relations`:\n\n~~~~ {.sourceCode .php}\ngetInvoker();\n foreach ($this->_options['relations'] as $model) {\n try {\n return call_user_func_array(array($invoker->$model, $method), $arguments);\n } catch (Exception $e) {\n continue;\n }\n }\n }\n}\n~~~~\n\nThis is required if we have functions defined on the models and want to\nbe able to access these methods. So for example if we were to add a\n`setPassword()` method to the generated `User` class like the following:\n\n~~~~ {.sourceCode .php}\n_set('password', md5($password));\n }\n}\n~~~~\n\nWithout the above `__call()` function we would not be able to do the\nfollowing:\n\n~~~~ {.sourceCode .php}\nsetPassword('new_password');\n\n**TIP** **Auto Accessor and Mutator Overriding**\n\nIf you want Doctrine to automatically override accessors with\nmatching ``set*()`` and ``get*()`` functions then you need to\nenable the ``auto_accessor_override`` attribute in your\nconfiguration where you create your connections and set Doctrine\nattributes:\n~~~~\n\n~~~~ {.sourceCode .php}\nsetAttribute('auto_accessor_override', true);\n\nNow with that attribute the following is possible. Instead of\nhaving to call the method ``setPassword()``, Doctrine sees you are\nsetting the ``password`` and a method named ``setPassword()``\nexists so it uses it to do the mutating.\n~~~~\n\n~~~~ {.sourceCode .php}\npassword = 'new_password';\n~~~~\n\nExample Usage\n=============\n\nThat is it! Our behavior is implemented and we are ready to write some\ncode that use our new models.\n\nCreating New Records\n--------------------\n\n~~~~ {.sourceCode .php}\nname = 'Jonathan H. Wage';\n$admin->username = 'jwage';\n$admin->password = 'changeme';\n$admin->is_active = 1;\n$admin->responsibilities = 'Train all the PHP developers!';\n$admin->save();\n~~~~\n\nNow that code results in the following structure being persisted to the\ndatabase:\n\n~~~~ {.sourceCode .php}\ntoArray(true));\n/*\nArray\n(\n [id] => 2\n [responsibilities] => Train all the PHP developers!\n [user_id] => 2\n [User] => Array\n (\n [id] => 2\n [username] => jwage\n [password] => 4cb9c8a8048fd02294477fcb1a41191a\n [entity_id] => 3\n [Entity] => Array\n (\n [id] => 3\n [name] => Jonathan H. Wage\n [is_active] => 1\n [slug] => jonathan-h-wage\n [created_at] => 2009-02-04 16:01:12\n [updated_at] => 2009-02-04 16:01:12\n )\n\n )\n\n)\n*/\n~~~~\n\nData Fixtures\n-------------\n\nSimilarly, the following data fixtures would be possible:\n\n [yml]\n BlogPost:\n BlogPost_1:\n name: Test Blog Post\n title: \"This is a test blog post\"\n body: This is a test blog post\n\n Administrator:\n Administrator_1:\n name: Test Manager\n username: jwage\n password: changeme\n responsibilities: Overseeing development department\n\nQuerying For and Accessing Data\n-------------------------------\n\nYou can query for these relationships as well:\n\n~~~~ {.sourceCode .php}\nfrom('Administrator a')\n ->leftJoin('a.User u')\n ->leftJoin('u.Entity e')\n ->where('u.username = ?', 'jwage');\n\n$user = $q->fetchOne();\necho $user['created_at'];\n~~~~\n\nThe above code would output the value of the `created_at` column that\nactually exists in the `Entity` model that is available through the\n`Administrator->User->Entity` relations.\n", + "date": "2009-02-04 00:00:00" }, { - "url": "/2012/09/17/doctrine-2-3-rc4.html", - "slug": "doctrine-2-3-rc4", - "title": "Doctrine 2.3.0 RC4 released", - "authorName": "beberlei", + "url": "/2010/04/27/doctrine-2-0-0-beta1-released.html", + "slug": "doctrine-2-0-0-beta1-released", + "title": "Doctrine 2 BETA1 Released", + "authorName": "romanb", "authorEmail": "", - "contents": "**17.9.2012**\n\nWe released another release candidate of our upcoming Doctrine 2.3.0\nversion. This includes the Common, DBAL and ORM packages.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nSee the [2.3 Beta blog\npost](https://www.doctrine-project.org/2012/07/16/doctrine-2-3-beta.html) for\nsome information about changes in 2.3.\n\nYou can install the release candidate through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-RC4\"\n },\n \"minimum-stability\": \"dev\"\n }\n\nIf you find any problems with your applications please report them on\nour [bugtracker](https://www.doctrine-project.org/jira).\n\nWe hope to release the final version of Doctrine 2.3 after this release\ncandidate. Please test your applications with this.\n", - "date": "2012-09-17 00:00:00" + "contents": "Today we are pleased to announce the immediate release of the first beta\nversion of Doctrine 2. It comes with some delay which was caused partly\nby our move to git and github and the switch to the Symfony Console\ncomponent for the CLI. We had to confront the alpha users with quite\nsome backwards compatibility problems and we apologize for that.\nStarting with the beta period you can expect the amount of backwards\nincompatible changes to be much lower.\n\nSince the ALPHA4 release over 160 issues have been resolved. You can\nfind the full changelog\n[here](https://www.doctrine-project.org/jira/secure/ReleaseNote.jspa?projectId=10032&styleName=Html&version=10030).\n\nSome of the most important changes were the shift towards the Symfony\n(2) Console component for the CLI as well as the introduction of the\ninversedBy attribute for bidirectional associations, among others. For\nsome help with upgrading from ALPHA4 to BETA1, please consult [the\nupgrade page](https://www.doctrine-project.org/upgrade/2_0).\n\nYou can get the new release as usual from our [download\npage](https://www.doctrine-project.org/download) or [directly from\ngithub](https://github.com/doctrine/orm).\n\nWe would like to thank all the adopters of the early alpha releases. All\nyour issue reports, feature and enhancement requests and general\nfeedback and criticism have helped a lot to move the project forward.\n\nLooking forward, we will likely have at least 2 or 3 beta releases,\nabout every 1-2 months, before we go RC. Once that happens, the API is\nultimately frozen until the stable release.\n", + "date": "2010-04-27 00:00:00" }, { - "url": "/2010/08/10/mongodb-odm-atomic-operator-improvements.html", - "slug": "mongodb-odm-atomic-operator-improvements", - "title": "MongoDB ODM: Atomic Operator Improvements", - "authorName": "jwage", - "authorEmail": "", - "contents": "Recently we've improved the support for use of atomic operators and how\nmuch it takes advantage of them in the Doctrine MongoDB ODM. Now when\nupdating embedded documents it will use dot annotation to `$set` the\nindividual properties instead of sending the entire document even if\nonly one property changes.\n\nHere is an example, first insert some new data:\n\n~~~~ {.sourceCode .php}\nsetStreet('6512 Mercomatic Ct');\n\n$user = new User();\n$user->setUsername('jwage');\n$user->setAddress($address);\n$user->addPhonenumber(new Phonenumber('6155139185'));\n\n$dm->persist($user);\n$dm->flush();\n~~~~\n\nNow if we make some changes and `flush()` again it will perform an\nupdate:\n\n~~~~ {.sourceCode .php}\ngetPhonenumbers();\n\n$address->setCity('Nashville');\n$phonenumbers[0]->setPhonenumber('booooo');\n\n$user->addPhonenumber(new Phonenumber('1234'));\n\n$dm->flush();\n~~~~\n\nThe above will result in the following queries, first it must run a\n`$set` to modify existing embedded documents:\n\n Array\n (\n [$set] => Array\n (\n [address.city] => Nashville\n [phonenumbers.0.phonenumber] => booooo\n )\n\n )\n\nThen it issues another update to `$pushAll` the new phonenumbers:\n\n Array\n (\n [$pushAll] => Array\n (\n [phonenumbers] => Array\n (\n [0] => Array\n (\n [phonenumber] => 1234\n )\n\n )\n\n )\n\n )\n", - "date": "2010-08-10 00:00:00" + "url": "/2020/04/10/doctrine-migrations-3.0.html", + "slug": "doctrine-migrations-3.0", + "title": "Released doctrine/migrations 3.0-alpha", + "authorName": "Asmir Mustafic", + "authorEmail": "goetas@gmail.com", + "contents": "[`doctrine/migrations` 3.0-alpha](https://github.com/doctrine/migrations) \n has been [published](https://github.com/doctrine/migrations/tree/3.0.0-alpha1) on the 29th March 2020. \n\nThe upcoming 3.0 new major release is the result of almost 6 months of work and brings\n a completely refactored/rewritten internal structure and some interesting new features. \n \n### Why a new major release?\n\nThe `doctrine/migrations` `v1.x` codebase is 10 years old, and in the past years a lot of features have been added on top of its\ninitial architecture. \n`doctrine/migrations` `2.0` was released a bit more than a year ago. This major release did a bit of cleanup, \nbut the general structure remained the same.\nIn this schema you can see the dependencies between classes in the latest `2.3.x` branch:\n\n
    \n\n
    \nThe red lines are circular dependencies (and we already know that in software development circular dependencies are not \na good thing).\n\nIn `doctrine/migrations` `3.x`, most of the internal classes have been re-written and dependency injection has been \nwidely adopted. \nIn this schema you can see the dependencies between classes in the latest `master` branch (release v3.0):\n\n
    \n\n
    \n\nAs you can see the circular dependencies are gone. This has been possible thanks to extensive use of dependency injection\nand applying SOLID principles.\nTo reduce future backward incompatibilities, many classes have been marked as `final` or as `@internal` while \nkeeping the functionalities intact. Extensibility is still possible by using dependency injection and providing \nclasses implementing dedicated interfaces.\n\n_These schemas have been generated using [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) \nwith [this configuration](https://gist.github.com/goetas/e6343746a6ccd6ebb191cbbd675898e0)._\n\n\n### New features and improvements\n\nBeside the code quality improvements, there is a a long list of improvements (see below), but \n**the main user-facing feature is the ability to collect migrations from multiple folders/namespaces and\nto specify dependencies between migrations.**\n\nHere a (probably not complete) list of improvements implemented in the upcoming `3.0` release: \n\n- ability to collect migrations from multiple folders/namespaces and to specify dependencies between migrations\n- `doctrine/migrations` will write to your database only when running migrations \n(previously the metadata table was created on the very first command run even if it was a read-only command)\n- Output verbosity can be controlled using the `-v`, `-vv` or `-vvv` command parameters\n- Use of dependency injection allows you to decorate/replace most services\n- Removed usage of console helpers to provide the connection or entity manager in favor of dependency injection\n- Introduced `migrations:list` command to list the available/executed migrations\n- Introduced `migrations:sync-metadata-storage` command to explicitly update the metadata schema in case a newer version \nintroduces changes to the metadata table\n- Multiple migrations can be passed to the `migrations:execute` command\n- More organized output of the `migrations:status` command\n- Configurations and Dependency Factory are read-only during the migration process\n- The `down()` migration is optional now\n- Multi-namespace migrations\n- Custom migrations metadata storage\n- Added warning when using the `migrations:diff` if there are not executed migrations\n\n### Backward compatibility\n\nIn `doctrine/migrations` `3.0` a lot of things changed, but for end-users most of the things will look the same.\nYour migration files do not need any update.\n\nYou will have to change your configuration files, as the configuration format has changed.\nThe [official documentation](https://www.doctrine-project.org/projects/doctrine-migrations/en/latest/reference/configuration.html#configuration) contains more information about these changes.\nThis documentation should be particularly helpful if you did also some custom integration with third party frameworks \nor libraries.\n\nIf you wrote custom event listeners, please take a look at them as the method signatures for event listeners have been updated.\n \n\n### Symfony Integration\n\nIf you are using [DoctrineMigrationsBundle](https://github.com/doctrine/DoctrineMigrationsBundle) then things are even \neasier: the 2.3.0 release introduced some deprecation notices and if you have already solved them \nyour configuration is already compatible. If you want you can have a look to the latest configuration format \navailable on the [official documentation](https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.0/index.html#configuration).\nYou can look more in detail to which changes are needed in the [upgrading](https://github.com/doctrine/DoctrineMigrationsBundle/blob/master/UPGRADE.md) document.\n\n### What is next\n\nIn the upcoming weeks, we will be preparing the first beta release and starting the process to reach a stable release.\n**To be able to deliver a good stable release it is important that you test the pre-release and share your feedback!**\n\nTo try the alpha version, you can run:\n\n```bash\ncomposer require 'doctrine/migrations:^3.0@alpha'\n``` \n\nIf you are using Symfony: \n\n```bash\ncomposer require 'doctrine/doctrine-migrations-bundle:^3.0@alpha' 'doctrine/migrations:^3.0@alpha'\n``` \n\nYou can be also more brave trying the development versions by specifying `@dev` instead of `@alpha` \nwhen requiring the composer dependencies above.\n\nYou can also have a look at the [release notes](https://github.com/doctrine/migrations/releases/tag/3.0.0-alpha1) \nand the [upgrading](https://github.com/doctrine/migrations/blob/3.0.0-alpha1/UPGRADE.md) document.\n\nSimilarly you can also have a look at the [release notes](https://github.com/doctrine/DoctrineMigrationsBundle/releases/tag/3.0.0-alpha.1) \nand the [upgrading](https://github.com/doctrine/DoctrineMigrationsBundle/blob/3.0.0-alpha.1/UPGRADE.md) document for the Symfony bundle.\n\nIn the alpha release, breaking changes are still possible. \nIn the beta, release breaking changes are possible but will happen\nonly if we will find very unexpected behaviors. \nWhen the alpha and beta phase will be completed, a stable version will be made available. \n\n\n## Note\n\nThis post was initially published on [https://www.goetas.com/blog/released-doctrinemigrations-30-alpha/](https://www.goetas.com/blog/released-doctrinemigrations-30-alpha/).\n", + "date": "2020-04-10 00:00:00" }, { - "url": "/2009/01/15/documentation-updates.html", - "slug": "documentation-updates", - "title": "Documentation Updates", - "authorName": "jwage", - "authorEmail": "", - "contents": "Enhancements\n============\n\nOver the past few days I have rolled out some changes to the\ndocumentation which are mostly aesthetic. Overall the changes make the\ndocumentation much richer and easier to read.\n\nSome of the changes made to the documentation are listed below:\n\n- Added next and previous links to navigate between chapters\n- Adding syntax highlight to YAML examples\n- Added syntax highlighting to SQL/DQL examples\n- Enhanced PHP syntax highlighting colors\n- Added styled caption boxes for notes, tips, sidebars and cautions\n- Other miscellaneous styling enhancements\n\nWhy?\n====\n\nWhy are we making these enhancements? This is in preparation for a new\nversion of the manual which will be the first piece of documentation on\nDoctrine available in print! We will release more information about when\nthis will be available soon.\n", - "date": "2009-01-15 00:00:00" + "url": "/2015/03/31/orm-2-5-0-rc-2.html", + "slug": "orm-2-5-0-rc-2", + "title": "Doctrine ORM 2.5.0-RC2 Release Candidate", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.0-RC2`.\n\nThis is a release candidate meant to allow users and contributors to\nverify the stability of the next iteration of the ORM.\n\nWe encourage all of our users to help us by trying out this release.\nPlease report any possible problems or incompatibilities that may have\nbeen introduced during development.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-RC2\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-RC1\n=======================\n\nThis is a list of issues solved in `2.5.0-RC2` since `2.5.0-RC1`:\n\n- [[DDC-3643](https://github.com/doctrine/orm/issues/4471)]\n [[#1352](https://github.com/doctrine/orm/pull/1352)] Fix\n `EntityGenerator` `RegenerateEntityIfExists` logic\n- [[DDC-3645](https://github.com/doctrine/orm/issues/4473)]\n [[\\#1353](https://github.com/doctrine/orm/pull/1353)]\n [[DDC-3637](https://github.com/doctrine/orm/issues/4464)]\n [[\\#1347](https://github.com/doctrine/orm/pull/1347)]\n [[DDC-3642](https://github.com/doctrine/orm/issues/4470)]\n [[\\#1351](https://github.com/doctrine/orm/pull/1351)]\n Paginator logic fixes (complex queries/sorting/db support )\n\n parameters and caches\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", + "date": "2015-03-31 00:00:00" }, { - "url": "/2009/11/30/doctrine-1-2-0-stable-released.html", - "slug": "doctrine-1-2-0-stable-released", - "title": "Doctrine 1.2.0 Stable Released", - "authorName": "jwage", + "url": "/2011/01/30/doctrine-maintenance-jan2011.html", + "slug": "doctrine-maintenance-jan2011", + "title": "Maintenance Releases 2.0.1 of Common, DBAL and ORM", + "authorName": "beberlei", "authorEmail": "", - "contents": "Today I am very happy to announce that Doctrine 1.2.0 stable has been\nreleased. This is a very significant release for Doctrine as it contains\na lot of valuable enhancements and bug fixes. This will most likely be\nthe last new version of the Doctrine 1 branch that we release. This\nmeans that it is the last LTS(long term support) release as it is\nsupported for a full 18 months. Below is the current proposed support\nschedule for the available Doctrine 1 versions.\n\n| Version | Supported Until | | ---------------------- |\n--------------------- | | Doctrine 1.0 | 03/01/2010 | | Doctrine 1.1 |\n03/01/2010 | | Doctrine 1.2 | 06/01/2011 |\n\nOriginally 1.1 was scheduled to end support on 11/01/2009, but we have\ndecided to support it until 03/01/2010 to give people enough time to\nupgrade to 1.2. After 03/01/2010 Doctrine 1.2 will be the only actively\nsupported version of Doctrine 1.\n\nRelease Highlights\n==================\n\nBelow you will find some of the highlights from this release. Of course\nyou can view the full\n[upgrade](https://www.doctrine-project.org/upgrade/1_2) page to see all\nthe new things in Doctrine 1.2.\n\n- [Custom\n Hydrators](https://www.doctrine-project.org/upgrade/1_2#Custom%20Hydrators)\n- [Improved Magic\n Finders](https://www.doctrine-project.org/upgrade/1_2#Expanded%20Magic%20Finders%20to%20Multiple%20Fields)\n- [On-Demand\n Hydration](https://www.doctrine-project.org/upgrade/1_2#On%20Demand%20Hydration)\n- [Nested Set\n Hierarchy](https://www.doctrine-project.org/upgrade/1_2#Doctrine%20Nested%20Set%20Hierarchy%20Structure)\n- [Result Cache\n Improvements](https://www.doctrine-project.org/upgrade/1_2#Result%20Cache%20Improvements)\n\nPlease, [download](https://www.doctrine-project.org/download#1_2)\nDoctrine 1.2 today and give it a try. Let us know any problems you have\nby reporting a new issue in\n[Jira](https://www.doctrine-project.org/jira).\n", - "date": "2009-11-30 00:00:00" + "contents": "We released the first maintenance versions of Common, DBAL and ORM\ntoday. See the changelogs for more information:\n\n- [ORM, 26 Bugs\n fixed](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10114)\n- [DBAL, 1 Bug\n fixed](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10115)\n- Common, no known bugs\n\nWe also optimized the build process, so that the Version Classes in the\nGit Tags do not contain the \"-DEV\" suffix anymore.\n\nYou can get the code from [Git](https://github.com/doctrine) , [our PEAR\nchannel](http://pear.doctrine-project.org) or from the [download\nsection](https://www.doctrine-project.org/projects) of the website.\n", + "date": "2011-01-30 00:00:00" }, { - "url": "/2015/05/05/doctrine-orm-module-release-0-9-0.html", - "slug": "doctrine-orm-module-release-0-9-0", - "title": "DoctrineORMModule release 0.9.0", - "authorName": "Gianluca Arbezzano", - "authorEmail": "gianarb92@gmail.com", - "contents": "The **Zend Framework Integration Team** is happy to announce the new\nrelease of **DoctrineORMModule**.\n\nDoctrineORMModule 0.9.0 is out of the door!!\n\n*Note* that this is the last version that supports\n[doctrine/migrations](https://github.com/doctrine/migrations). We are\nworking on extracting this feature into an independent module.\n\nFollow issue\n[\\#401](https://github.com/doctrine/DoctrineORMModule/pull/401).\n\nThe Following issues were solved in this release:\n: - [[\\#199] Add 'entity\\_listener\\_resolver' config\n key](https://github.com/doctrine/DoctrineORMModule/pull/199)\n - [[\\#281] Forced failing unit test for\n \\#247](https://github.com/doctrine/DoctrineORMModule/pull/281)\n - [[\\#306] Removing PHP 5.3.3\n support](https://github.com/doctrine/DoctrineORMModule/pull/306)\n - [[\\#272] Fix and test \\#270, \\#242,\n \\#285](https://github.com/doctrine/DoctrineORMModule/pull/272)\n - [[\\#311] remove unused\n statement](https://github.com/doctrine/DoctrineORMModule/pull/311)\n - [[\\#326] Highlight only uppercase\n words](https://github.com/doctrine/DoctrineORMModule/pull/326)\n - [[\\#329] remove unused\n statements](https://github.com/doctrine/DoctrineORMModule/pull/329)\n - [[\\#328] wrong var\n assignment](https://github.com/doctrine/DoctrineORMModule/pull/328)\n - [[\\#313] Prevent overriding of\n type](https://github.com/doctrine/DoctrineORMModule/pull/313)\n - [[\\#338] order the\n classes](https://github.com/doctrine/DoctrineORMModule/pull/338)\n - [[\\#346] Corrected a typo in a comment to better\n clarify](https://github.com/doctrine/DoctrineORMModule/pull/346)\n - [[\\#357] Modify sql\\_logger\\_collector class\n factory](https://github.com/doctrine/DoctrineORMModule/pull/357)\n - [[\\#360] Add example for\n entity\\_resolver](https://github.com/doctrine/DoctrineORMModule/pull/360)\n - [[\\#359] Update deprecated dialog console\n helper](https://github.com/doctrine/DoctrineORMModule/pull/359)\n - [[\\#363] Prevent ZendFormElementFile types inherit of\n StringLength\n validator...](https://github.com/doctrine/DoctrineORMModule/pull/363)\n - [[\\#365] Re-enable scrutinizer code\n coverage](https://github.com/doctrine/DoctrineORMModule/pull/365)\n - [[\\#373] Add doc for\n cache](https://github.com/doctrine/DoctrineORMModule/pull/373)\n - [[\\#347] added extra check in\n handleRequiredField](https://github.com/doctrine/DoctrineORMModule/pull/347)\n - [[\\#377] fix\n docblocks](https://github.com/doctrine/DoctrineORMModule/pull/377)\n - [[\\#376] Add latest migrations\n command](https://github.com/doctrine/DoctrineORMModule/pull/376)\n - [[\\#375] Default\n repository](https://github.com/doctrine/DoctrineORMModule/pull/375)\n - [[\\#374] Use ResolveTargetEntityListener as an event subscriber\n when\n supported](https://github.com/doctrine/DoctrineORMModule/pull/374)\n - [[\\#318] Add support for second level\n cache](https://github.com/doctrine/DoctrineORMModule/pull/318)\n - [[\\#378] Allow to set file lock for\n SLC](https://github.com/doctrine/DoctrineORMModule/pull/378)\n - [[\\#380] Fix typo in configuration file\n markdown.](https://github.com/doctrine/DoctrineORMModule/pull/380)\n - [[\\#385] Allow symfony 3.0\n components](https://github.com/doctrine/DoctrineORMModule/pull/385)\n - [[\\#388] update comment block in Module.php as no\n Module::getAutoloaderConfig()](https://github.com/doctrine/DoctrineORMModule/pull/388)\n - [[\\#389] Delete Module.php in root\n directory](https://github.com/doctrine/DoctrineORMModule/pull/389)\n - [[\\#390] travis: PHP 5.6, 7.0 nightly added, 5.3\n dropped](https://github.com/doctrine/DoctrineORMModule/pull/390)\n - [[\\#392] Use-case: caching module' s\n configuration](https://github.com/doctrine/DoctrineORMModule/pull/392)\n - [[\\#396] Removed unnecessary line in travis\n config](https://github.com/doctrine/DoctrineORMModule/pull/396)\n - [[\\#398] Composer \\* -update for stable\n version](https://github.com/doctrine/DoctrineORMModule/pull/398)\n\nTo install this version, simply update your `composer.json`:\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-orm-module\": \"0.9.0\"\n }\n}\n```\n", - "date": "2015-05-05 00:00:00" + "url": "/2022/03/24/opencollective.html", + "slug": "opencollective", + "title": "On Doctrine Sponsoring with the help of OpenCollective", + "authorName": "Benjamin Eberlei", + "authorEmail": "kontakt@beberlei.de", + "contents": "To simplify our own administrative burden, we have decided to move over the\nfunds to [OpenCollective](https://opencollective.com/doctrine), primarily\nmotivated by the success and positive experience of the new PHP Foundation.\n\nWe have started raising money for the Doctrine Project in 2019 through Patreon and\nGithub Sponsors to support the project. It was planned to organize core team\nget-togethers/hackathons, but due to the pandemic we haven't been able to do this.\nIn addition the legal and tax implications of raising money also caused us\nsome headaches. \n\nThe move to OpenCollective will allow us to delegate much of the administrative\nwork to them for a small percentage of the raised capital. The fee is a much\nsmaller amount than the taxes that we had to pay on the raised money\npreviously, so it is a win-win for us.\n\nWe want to assure our sponsors that we still plan to make use of the funds\nto further the Doctrine project and we are actively looking to increase our funding\nfor these goals:\n\n- Regularly organize hackathons for Doctrine Core team contributors, including\n 3-4 days of accommodation, food and travel for roughly 10-15 people.\n\n- Infrastructure, servers and hosting.\n\n- Marketing material such as stickers, t-shirts and other small things.\n\n- If the budget increases significantly we might be able to pay someone part-\n or full-time to do maintenance work such as responding to and processing\n issues, prepare for new PHP releases and general cleanups of the codebase.\n\nAs such we hope to convince you to sponsor Doctrine through either our [Github\nSponsors](https://github.com/sponsors/doctrine/) or\n[OpenCollective](https://opencollective.com/doctrine) directly.\n", + "date": "2022-03-24 00:00:00" }, { - "url": "/2012/05/28/doctrine-2-1-7-released.html", - "slug": "doctrine-2-1-7-released", - "title": "Doctrine 2.1.7 released", - "authorName": "beberlei", + "url": "/2012/01/29/doctrine-2-2-final.html", + "slug": "doctrine-2-2-final", + "title": "Doctrine 2.2 released", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "We released version 2.1.7 of the Doctrine ORM and DBAL today, fixing a\ntotal of 18 bugs.\n\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10198)\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10200)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) , download from the website or\nthrough [Composer](https://packagist.org):\n\n~~~~ {.sourceCode .yaml}\n{\n \"require\":\n {\n \"doctrine/orm\": \"2.1.7\"\n }\n}\n~~~~\n", - "date": "2012-05-28 00:00:00" + "contents": "We released Doctrine 2.2 today.\n\nA top list of the new features includes:\n\n- Filtering entities and associations based on rules that can be\n parameterized, enabled or disabled, developed by asm89\n- Support for complex SQL types such as Geometries, IPs, develped by\n jsor.\n- Bit Comparisions in DQL, developed by Fabio.\n- Annotation Refactorings by Fabio and johannes.\n- DQL Refactoring, ORDER BY and GROUP BY supporting result variables\n of SELECT expressions.\n- Alias for entities in DQL results.\n- Result Cache refactoring\n- Flush for single entities\n- Master/Slave Connection in DBAL\n\nSee the changelogs of all three projects Common, DBAL, ORM:\n\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10157)\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10142)\n- [Common](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10152)\n\nSee the\n[UPGRADE\\_2\\_2](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-22)\nfile to see backwards incompatible changes.\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) or through\n[Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.0\" }\n>\n> }\n", + "date": "2012-01-29 00:00:00" }, { - "url": "/2015/03/25/orm-2-5-0-rc-1.html", - "slug": "orm-2-5-0-rc-1", - "title": "Doctrine ORM 2.5.0-RC1 Release Candidate", + "url": "/2015/04/02/common-2-5-0.html", + "slug": "common-2-5-0", + "title": "Doctrine Common 2.5.0 Release", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.0-RC1`.\n\nThis is a release candidate meant to allow users and contributors to\nverify the stability of the next iteration of the ORM.\n\nWe encourage all of our users to help us by trying out this release.\nPlease report any possible problems or incompatibilities that may have\nbeen introduced during development.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nWe also apologise for the major delays in this beta release, which are\ncaused by the scarce availability of the core team in these months.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-RC1\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-beta1\n=========================\n\nThis is a list of issues solved in `2.5.0-RC1` since `2.5.0-beta1`:\n\n- [[DDC-3632](https://github.com/doctrine/orm/issues/4459)] -\n [[GH-1345](https://github.com/doctrine/orm/pull/1345)] Fix crashes in ``ConvertMappingCommand`and`GenerateEntitiesCommand`` when using entities with joined table inheritance\n- [[DDC-3634](https://github.com/doctrine/orm/issues/4461)] -\n [[GH-1346](https://github.com/doctrine/orm/pull/1346)] Fix: generated IDs are converted to integer even when they are big integers\n- [[DDC-3630](https://github.com/doctrine/orm/issues/4457)]\n [[DDC-3621](https://github.com/doctrine/orm/issues/4447)] -\n [[GH-1343](https://github.com/doctrine/orm/pull/1343)] Support embeddables in partial object query expression\n- [[DDC-3623](https://github.com/doctrine/orm/issues/4449)]\n [[DDC-3629](https://github.com/doctrine/orm/issues/4455)] -\n [[GH-1337](https://github.com/doctrine/orm/pull/1337)]\n [[GH-1342](https://github.com/doctrine/orm/pull/1342)] Paginator functional tests and sorting corrections\n- [[DDC-2224](https://github.com/doctrine/orm/issues/2922)]\n [[DDC-3625](https://github.com/doctrine/orm/issues/4451)] -\n [[GH-1339](https://github.com/doctrine/orm/pull/1339)] Honor `convertToDatabaseValueSQL` in DQL query\n: parameters and caches\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", - "date": "2015-03-25 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine Common\n\\`2.5.0\\`.\n\nInstallation\n============\n\nYou can install this version of Doctrine Common by using Composer and\nthe following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"2.5.0\"\n }\n}\n```\n\nChanges since 2.4.x\n===================\n\nThis is a list of issues solved in `2.5.0` since `2.4.x`:\n\nBug\n---\n\n- [[DCOM-129](https://github.com/doctrine/common/issues/428)] -\n Annotation parser matches colon after annotation\n- [[DCOM-151](https://github.com/doctrine/common/issues/452)] -\n [[GH-233](https://github.com/doctrine/common/pull/233)] [DocParser]\n Fix trying include classes if its must be ignored.\n- [[DCOM-162](https://github.com/doctrine/common/issues/463)] -\n [[GH-244](https://github.com/doctrine/common/pull/244)] return\n parameter for debug method\n- [[DCOM-168](https://github.com/doctrine/common/issues/469)] -\n ignoredAnnotationNames doesn't work in Annotation loop\n- [[DCOM-175](https://github.com/doctrine/common/issues/477)] -\n Proxies return private properties in \\_\\_sleep, which is not\n supported by PHP.\n- [[DCOM-191](https://github.com/doctrine/common/issues/493)] -\n Wrong inflection for \"identity\"\n- [[DCOM-212](https://github.com/doctrine/common/issues/518)] -\n [[GH-296](https://github.com/doctrine/common/pull/296)] Proxies\n shouldn't serialize static properties in \\_\\_sleep()\n- [[DCOM-216](https://github.com/doctrine/common/issues/522)] -\n [[GH-298](https://github.com/doctrine/common/pull/298)] Silence\n E\\_NOTICE warning: \"Undefined index\".\n- [[DCOM-220](https://github.com/doctrine/common/issues/527)] -\n [[GH-304](https://github.com/doctrine/common/pull/304)] fix typo\n- [[DCOM-223](https://github.com/doctrine/common/issues/530)] -\n [[GH-308](https://github.com/doctrine/common/pull/308)] fix the\n optimize regex and adapt the tests to actually test classAnnotat...\n- [[DCOM-228](https://github.com/doctrine/common/issues/535)] -\n [[GH-312](https://github.com/doctrine/common/pull/312)] Improve\n UnexpectedValueException error message\n- [[DCOM-261](https://github.com/doctrine/common/issues/571)] -\n [[GH-344](https://github.com/doctrine/common/pull/344)] Fix fatal\n error when classexist tries to call the protected loader\n- [[DCOM-270](https://github.com/doctrine/common/issues/581)] -\n [[GH-351](https://github.com/doctrine/common/pull/351)] Added\n validation where allowed QCNs with \":\" NS separator\n- [[DCOM-272](https://github.com/doctrine/common/issues/583)] -\n Proxy generator doesn't understand splat operator (PHP 5.6 argument\n unpacking)\n\nDocumentation\n-------------\n\n- [[DCOM-237](https://github.com/doctrine/common/issues/545)] -\n [[GH-318](https://github.com/doctrine/common/pull/318)] Fixed link\n to Documentation\n- [[DCOM-280](https://github.com/doctrine/common/issues/592)] -\n [[GH-359](https://github.com/doctrine/common/pull/359)] Fixed\n missing / incorrect docblocks\n\nImprovement\n-----------\n\n- [[DCOM-246](https://github.com/doctrine/common/issues/554)] -\n [[GH-328](https://github.com/doctrine/common/pull/328)] Optimized\n imports\n- [[DCOM-247](https://github.com/doctrine/common/issues/555)] -\n [[GH-329](https://github.com/doctrine/common/pull/329)] Remove dead\n config\n- [[DCOM-263](https://github.com/doctrine/common/issues/573)] -\n [[GH-347](https://github.com/doctrine/common/pull/347)] Class\n loader: skip non-existing files and files not containing the\n requested class\n- [[DCOM-278](https://github.com/doctrine/common/issues/589)] -\n [[GH-358](https://github.com/doctrine/common/pull/358)] travis: PHP\n 7.0 nightly added, allowed failure\n\nNew Feature\n-----------\n\n- [[DCOM-257](https://github.com/doctrine/common/issues/566)] -\n [[GH-342](https://github.com/doctrine/common/pull/342)] Class\n metadata loading fallback hook in AbstractClassMetadataFactory\n- [[DCOM-277](https://github.com/doctrine/common/issues/588)] -\n [[GH-357](https://github.com/doctrine/common/pull/357)] Custom\n namespace separators for SymfonyFileLocator\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DCOM).\n", + "date": "2015-04-02 00:00:00" }, { - "url": "/2009/06/05/doctrine-statistics.html", - "slug": "doctrine-statistics", - "title": "Doctrine Statistics", - "authorName": "jwage", - "authorEmail": "", - "contents": "On October 18th of 2007 I implemented Google Analytics which allowed me\nto track the statistics of the website. On that first day of statistics\ngathered we had 93 visitors and yesterday we had a little over 1500!\nNeedless to say that is pretty exciting!\n\nHere is a graph from google analytics that illustrates the growth.\n\nHere are some more statistics gathered:\n\nGoogle Analytics\n================\n\n| Statistics | | | ----- | ------ | | Visits | 607,035 | | Absolute\nUnique Visitors | 232,366 | | Pageviews | 2,331,993 | | Average\nPageviews | 3.84 | | Time on Site | 00:05:02 | | Bounce Rate | 42.31% |\n| New Visits | 38.19% |\n\nDownloads\n=========\n\n| Version | \\# | | ---------- | ---| | 0.9 | 126 | | 0.10 | 7521 | |\n0.11 | 6691 | | 1.0 | 20300 | | 1.1 | 9539 |\n\n> **NOTE** **These statistics don't count downloads through other\n> sources such as symfony, Doctrine SVN, etc. They only track the\n> downloads through the Doctrine website on the\n> [Download](https://www.doctrine-project.org/download) page.**\n\nHopefully I can make this same post a year from now about the same thing\nand Doctrine will have grown with many new versions.\n", - "date": "2009-06-05 00:00:00" + "url": "/2015/04/16/doctrine-module-release-0-8-1.html", + "slug": "doctrine-module-release-0-8-1", + "title": "Doctrine Module release 0.8.1", + "authorName": "Gianluca Arbezzano", + "authorEmail": "gianarb92@gmail.com", + "contents": "The **Zend Framework Integration Team** is happy to announce the new\nrelease of **DoctrineModule**. DoctrineModule `0.8.1` will be the last\nbugfix, it is the last version that will support PHP 5.3. Further\nversions of the `0.8.*` series may still be released in case of security\nissues.\n\nFollowing issues were solved in this release:\n: - [[\\#376] Bumping PHP and ZF2 dependencies, branch alias for\n master](https://github.com/doctrine/DoctrineModule/pull/376)\n - [[\\#378] I think this is a small PSR rule\n violation.](https://github.com/doctrine/DoctrineModule/pull/378)\n - [[\\#381] Update\n validator.md](https://github.com/doctrine/DoctrineModule/pull/381)\n - [[\\#388] Added exception for missing required parameter for\n find\\_method option\n as](https://github.com/doctrine/DoctrineModule/pull/388)\n - [[\\#390] Clarified how to pass sort\n information.](https://github.com/doctrine/DoctrineModule/pull/390)\n - [[\\#395] Issue with objects being cast to array in\n validators](https://github.com/doctrine/DoctrineModule/pull/395)\n - [[\\#397] Enhancement: use exit code from\n run()](https://github.com/doctrine/DoctrineModule/pull/397)\n - [[\\#401] Reading\n Inconsistency](https://github.com/doctrine/DoctrineModule/pull/401)\n - [[\\#391] UniqueObject Validator \\* allowing composite\n identifiers from context or\n not](https://github.com/doctrine/DoctrineModule/pull/391)\n - [[\\#400] let zf2 console return exit\n status](https://github.com/doctrine/DoctrineModule/pull/400)\n - [[\\#404] Fix form\n elements](https://github.com/doctrine/DoctrineModule/pull/404)\n - [[\\#406] Fix context\n unique](https://github.com/doctrine/DoctrineModule/pull/406)\n - [[\\#421] Make DoctrineObject use AbstractHydrator s\n namingStrategy](https://github.com/doctrine/DoctrineModule/pull/421)\n - [[\\#426] update year in\n license](https://github.com/doctrine/DoctrineModule/pull/426)\n - [[\\#436] Fixing typo and updating paginator link to ZF\n 2.3](https://github.com/doctrine/DoctrineModule/pull/436)\n - [[\\#450] minor cs\n fix](https://github.com/doctrine/DoctrineModule/pull/450)\n - [[\\#458] Update\n doctrine\\*module.php](https://github.com/doctrine/DoctrineModule/pull/458)\n - [[\\#462] Adding custom Doctrine\\*Cli\n Commands](https://github.com/doctrine/DoctrineModule/pull/462)\n - [[\\#465] Re*enable scrutinizer*ci code\n coverage](https://github.com/doctrine/DoctrineModule/pull/465)\n - [[\\#453] phpdoc\n fixes](https://github.com/doctrine/DoctrineModule/pull/453)\n\nTo install this version, simply update your \\`composer.json\\`:\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-module\": \"0.8.1\"\n }\n}\n```\n", + "date": "2015-04-16 00:00:00" }, { - "url": "/2011/02/19/doctrine-mongodb-odm-beta2-released.html", - "slug": "doctrine-mongodb-odm-beta2-released", - "title": "Doctrine MongoDB ODM BETA2 Released", - "authorName": "jwage", + "url": "/2008/09/23/doctrine-at-latino-ware-2008.html", + "slug": "doctrine-at-latino-ware-2008", + "title": "Doctrine at LatinoWare 2008", + "authorName": "guilhermeblanco", "authorEmail": "", - "contents": "After a long wait, I am happy to bring you the second beta release of\nthe new Doctrine persistence layer for [MongoDB](https://www.mongodb.com).\nThis release includes dozens of bug fixes and improvements and it is\nrecommended that you upgrade as soon as possible. You can learn about\nhow to get the code here.\n\nAbout the Release\n=================\n\nMy full-time job is working at OpenSky, where we use the MongoDB ODM and\nmany of the improvements and work are a result of the development we've\nbeen doing there. The changelog is very large as the development spanned\nalmost 5 months with commits from over 15 developers all over the world.\nHere are some of the people who've contributed this release:\n\n- [avalanche123](https://github.com/avalanche123)\n- [bobthecow](https://github.com/bobthecow)\n- [kriswallsmith](https://github.com/kriswallsmith)\n- [jmikola](https://github.com/jmikola)\n- [ornicar](https://github.com/ornicar)\n- [jseverson](https://github.com/jseverson)\n- [pgodel](https://github.com/pgodel)\n- [weaverryan](https://github.com/weaverryan)\n- [docteurklein](https://github.com/docteurklein)\n- [ThomasAdam](https://github.com/ThomasAdam)\n- [dan](https://github.com/dan)\n- [fabpot](https://github.com/fabpot)\n- [IamPersistent](https://github.com/IamPersistent)\n- [igorw](https://github.com/igorw)\n- [Vrtak-CZ](https://github.com/Vrtak-CZ)\n\nDocumentation\n=============\n\nCheck out the\n[documentation](https://www.doctrine-project.org/docs/mongodb_odm/1.0/en)\nas it is has been completely updated and improved for this release. We\nfully migrated the docs to use reST and Sphinx to generate our\ndocumentation so it is much improved over the previous versions.\n\nDoctrine Project as a Whole\n===========================\n\nThe MongoDB ODM is one of a few new projects under the Doctrine\numbrella. You may also want to take a look at the CouchDB ODM and the\nPHP Content Repository ODM. These projects are all very exciting for the\nDoctrine Project but more for PHP as a whole. They are a new generation\nof libraries built for PHP 5.3 that bring a higher level of code quality\nto your PHP projects.\n\nIf you encounter any problems, bugs or issues please report them in\nJira. If you have any questions you can try a mailing list or IRC. Read\nmore about the Doctrine community here.\n", - "date": "2011-02-19 00:00:00" + "contents": "", + "date": "2008-09-23 00:00:00" }, { - "url": "/2015/03/25/common-2-5-0-beta-1.html", - "slug": "common-2-5-0-beta-1", - "title": "Doctrine Common 2.5.0-beta1 Pre-Release", - "authorName": "", + "url": "/2014/02/08/orm-235-234.html", + "slug": "orm-235-234", + "title": "ORM 2.4.2 and 2.3.5 released", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "We are happy to announce the immediate availability Doctrine Common\n\\`2.5.0-beta1\\`.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the Common package.\n\nWe encourage all of our users to help us by trying out this beta\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nStarting from this release, no more new features or breaking changes\nwill be allowed in the\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the Common package in the\nnext days:\n\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\n\\#\\# Installation\n\nYou can install this version of the Common package by using Composer and\nthe following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"2.5.0-beta2\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.4.x\n===================\n\nThis is a list of issues solved in `2.5.0-beta1` since `2.4.x`:\n\nBug\n---\n\n- [[DCOM-129](https://github.com/doctrine/common/issues/428)] -\n Annotation parser matches colon after annotation\n- [[DCOM-151](https://github.com/doctrine/common/issues/452)] -\n [[GH-233](https://github.com/doctrine/common/pull/233)] [DocParser]\n Fix trying include classes if its must be ignored.\n- [[DCOM-162](https://github.com/doctrine/common/issues/463)] -\n [[GH-244](https://github.com/doctrine/common/pull/244)] return\n parameter for debug method\n- [[DCOM-168](https://github.com/doctrine/common/issues/469)] -\n ignoredAnnotationNames doesn't work in Annotation loop\n- [[DCOM-175](https://github.com/doctrine/common/issues/477)] -\n Proxies return private properties in \\_\\_sleep, which is not\n supported by PHP.\n- [[DCOM-191](https://github.com/doctrine/common/issues/493)] -\n Wrong inflection for \"identity\"\n- [[DCOM-212](https://github.com/doctrine/common/issues/518)] -\n [[GH-296](https://github.com/doctrine/common/pull/296)] Proxies\n shouldn't serialize static properties in \\_\\_sleep()\n- [[DCOM-216](https://github.com/doctrine/common/issues/522)] -\n [[GH-298](https://github.com/doctrine/common/pull/298)] Silence\n E\\_NOTICE warning: \"Undefined index\".\n- [[DCOM-220](https://github.com/doctrine/common/issues/527)] -\n [[GH-304](https://github.com/doctrine/common/pull/304)] fix typo\n- [[DCOM-223](https://github.com/doctrine/common/issues/530)] -\n [[GH-308](https://github.com/doctrine/common/pull/308)] fix the\n optimize regex and adapt the tests to actually test classAnnotat...\n- [[DCOM-228](https://github.com/doctrine/common/issues/535)] -\n [[GH-312](https://github.com/doctrine/common/pull/312)] Improve\n UnexpectedValueException error message\n- [[DCOM-261](https://github.com/doctrine/common/issues/571)] -\n [[GH-344](https://github.com/doctrine/common/pull/344)] Fix fatal\n error when classexist tries to call the protected loader\n- [[DCOM-270](https://github.com/doctrine/common/issues/581)] -\n [[GH-351](https://github.com/doctrine/common/pull/351)] Added\n validation where allowed QCNs with \":\" NS separator\n- [[DCOM-272](https://github.com/doctrine/common/issues/583)] -\n Proxy generator doesn't understand splat operator (PHP 5.6 argument\n unpacking)\n\nDocumentation\n-------------\n\n- [[DCOM-237](https://github.com/doctrine/common/issues/545)] -\n [[GH-318](https://github.com/doctrine/common/pull/318)] Fixed link\n to Documentation\n- [[DCOM-280](https://github.com/doctrine/common/issues/592)] -\n [[GH-359](https://github.com/doctrine/common/pull/359)] Fixed\n missing / incorrect docblocks\n\nImprovement\n-----------\n\n- [[DCOM-246](https://github.com/doctrine/common/issues/554)] -\n [[GH-328](https://github.com/doctrine/common/pull/328)] Optimized\n imports\n- [[DCOM-247](https://github.com/doctrine/common/issues/555)] -\n [[GH-329](https://github.com/doctrine/common/pull/329)] Remove dead\n config\n- [[DCOM-263](https://github.com/doctrine/common/issues/573)] -\n [[GH-347](https://github.com/doctrine/common/pull/347)] Class\n loader: skip non-existing files and files not containing the\n requested class\n- [[DCOM-278](https://github.com/doctrine/common/issues/589)] -\n [[GH-358](https://github.com/doctrine/common/pull/358)] travis: PHP\n 7.0 nightly added, allowed failure\n\nNew Feature\n-----------\n\n- [[DCOM-257](https://github.com/doctrine/common/issues/566)] -\n [[GH-342](https://github.com/doctrine/common/pull/342)] Class\n metadata loading fallback hook in AbstractClassMetadataFactory\n- [[DCOM-277](https://github.com/doctrine/common/issues/588)] -\n [[GH-357](https://github.com/doctrine/common/pull/357)] Custom\n namespace separators for SymfonyFileLocator\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", - "date": "2015-03-25 00:00:00" + "contents": "*Published: 08.02.2014*\n\nWe are happy to announce the immediate availability of Doctrine ORM\n2.3.5 and 2.4.2. Both versions fix 17 and 12 bugs respectively.\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.3.5](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10521)\n - 17 issues fixed\n- [ORM\n 2.4.2](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10621)\n 12 issues fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.2\"\n }\n}\n~~~~\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.3.5\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2014-02-08 00:00:00" }, { - "url": "/2015/05/22/doctrine-mongodb-odm-release-1-0-0-beta13.html", - "slug": "doctrine-mongodb-odm-release-1-0-0-beta13", - "title": "Doctrine MongoDB ODM release 1.0.0-BETA13", - "authorName": "Maciej Malarz", - "authorEmail": "malarzm@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM 1.0.0-BETA13.\n\nWhat is new in 1.0.0-BETA13?\n============================\n\nAll issues and pull requests in this release may be found under the\n[1.0.0-BETA13 milestone on\ngithub](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.0-BETA13).\nHere is the highlight of most important features:\n\natomicSet and atomicSetArray strategies for top-level collections\n-----------------------------------------------------------------\n\n[\\#1096](https://github.com/doctrine/mongodb-odm/pull/1096) introduces\ntwo new collection update strategies, `atomicSet` and `atomicSetArray`.\nUnlike existing strategies (e.g. `pushAll` and `set`), which update\ncollections in a separate query after the parent document, the atomic\nstrategy ensures that the collection and its parent are updated in the\nsame query. Any nested collections (within embedded documents) will also\nbe included in the atomic update, irrespective of their update\nstrategies.\n\nCurrently, atomic strategies may only be specified for collections\nmapped directly in a document class (i.e. not collections within\nembedded documents). This strategy may be especially useful for highly\nconcurrent applications and/or versioned document classes (see:\n[\\#1094](https://github.com/doctrine/mongodb-odm/pull/1094)).\n\nReference priming improvements\n------------------------------\n\n[\\#1068](https://github.com/doctrine/mongodb-odm/pull/1068) moves the\nhandling of primed references to the Cursor object, which allows ODM to\ntake the skip and limit options into account and avoid priming more\nreferences than are necessary.\n\n[\\#970](https://github.com/doctrine/mongodb-odm/pull/970) now allows\nreferences within embedded documents to be primed by fixing a previous\nparsing limitation with dot syntax in field names.\n\nNew defaultDiscriminatorValue mapping\n-------------------------------------\n\n[\\#1072](https://github.com/doctrine/mongodb-odm/pull/1072) introduces\na `defaultDiscriminatorValue` mapping, which may be used to specify a\ndefault discriminator value if a document or association has no\ndiscriminator set.\n\nNew Integer and Bool annotation aliases\n---------------------------------------\n\n[\\#1073](https://github.com/doctrine/mongodb-odm/pull/1073) introduces\n`Integer` and `Bool` annotations, which are aliases of `Int` and\n`Boolean`, respectively.\n\nAdd millisecond precision to DateType\n-------------------------------------\n\n[\\#1063](https://github.com/doctrine/mongodb-odm/pull/1063) adds\nmillisecond precision to ODM's DateType class (note: although PHP\nsupports microsecond precision, dates in MongoDB are limited to\nmillisecond precision). This should now allow ODM to roundtrip dates\nfrom the database without a loss of precision.\n\nNew Hydrator generation modes\n-----------------------------\n\nPreviously, the `autoGenerateHydratorClasses` ODM configuration option\nwas a boolean denoting whether to always or never create Hydrator\nclasses. As of\n[\\#953](https://github.com/doctrine/mongodb-odm/pull/953), this option\nnow supports four modes:\n\n- `AUTOGENERATE_NEVER = 0` (same as `false`)\n- `AUTOGENERATE_ALWAYS = 1` (same as `true`)\n- `AUTOGENERATE_FILE_NOT_EXISTS = 2`\n- `AUTOGENERATE_EVAL = 3`\n\nSupport for custom DocumentRepository factory\n---------------------------------------------\n\n[\\#892](https://github.com/doctrine/mongodb-odm/pull/892) allows users\nto define a custom repository class via the `defaultRepositoryClassName`\nconfiguration option. Alternatively, a custom factory class may also be\nconfigured, which allows users complete control over how repository\nclasses are instantiated.\n\nCustom repository and factory classes must implement\n`Doctrine\\Common\\Persistence\\ObjectRepository` and\n`Doctrine\\ODM\\MongoDB\\Repository\\RepositoryFactory`, respectively.\n\nStay tuned, there is a lot more to come soon!\n---------------------------------------------\n", - "date": "2015-05-22 00:00:00" + "url": "/2012/12/05/doctrine-2-3-1.html", + "slug": "doctrine-2-3-1", + "title": "Doctrine 2.3.1 relased", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "**05.12.2012**\n\nWe have released the first mini release in the 2.3 cycle. Due to high\nworkload of all the participating developers we couldn't release this\nearlier. We hope to release 2.3.2 in a much shorter period from now.\n\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10325)\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10323)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) , download, PEAR or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.1\"\n }\n }\n", + "date": "2012-12-05 00:00:00" }, { - "url": "/2011/12/15/symfony-bundles-move.html", - "slug": "symfony-bundles-move", - "title": "Our Symfony Bundles move to Doctrine organization", + "url": "/2013/03/24/doctrine-2-4-beta.html", + "slug": "doctrine-2-4-beta", + "title": "Doctrine 2.4 Beta1 released", "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "The Symfony2 Doctrine related Bundles move to the Doctrine organization.\nThe DoctrineBundle being in the core for the 2.0 release it is now\nmaintained in a more decoupled way from Symfony for several reasons:\n\n- No coupling of release cycles anymore.\n- Move code to the organization that actually maintains it.\n- Avoid Symfony suggesting Doctrine is the only way for persistence,\n Symfony wants to focus on providing View and Controller and not make\n suggestions about the model.\n\nThe DoctrineFixturesBundle, DoctrineMigrationsBundle and\nDoctrineMongoDBBundle are now maintained in the Doctrine organization,\nhowever forks have been created in the Symfony repository to make all\nthe 2.0 apps out there backwards compatible. You find the new\nrepositories here:\n\n- [https://github.com/doctrine/DoctrineBundle](https://github.com/doctrine/DoctrineBundle)\n- [https://github.com/doctrine/DoctrineMongoDBBundle](https://github.com/doctrine/DoctrineMongoDBBundle)\n- [https://github.com/doctrine/DoctrineFixturesBundle](https://github.com/doctrine/DoctrineFixturesBundle)\n- [https://github.com/doctrine/DoctrineMigrationsBundle](https://github.com/doctrine/DoctrineMigrationsBundle)\n\nWhat do you need to change in your code? Not very much. For the\nDoctrineBundle for example the following:\n\n- Update the deps file to include the DoctrineBundle\n\n > [empty]\n > [DoctrineBundle]\n > git=https://github.com/doctrine/DoctrineBundle.git\n > target=/bundles/Doctrine/Bundle/DoctrineBundle\n\n- Change the Bundle class\n\n- Change references to Registry\n\nThe \\`SymfonyBundleDoctrineBundleRegistry\\` class may be type-hinted in\nyour code. You have to change this code to point to\n\\`DoctrineBundleDoctrineBundleRegistry\\`.\n\nA full deps file for all Doctrine bundles now looks like:\n\n [empty]\n [data-fixtures]\n git=https://github.com/doctrine/data-fixtures.git\n\n [migrations]\n git=https://github.com/doctrine/migrations.git\n\n [DoctrineBundle]\n git=https://github.com/doctrine/DoctrineBundle.git\n target=/bundles/Doctrine/Bundle/DoctrineBundle\n\n [DoctrineMigrationsBundle]\n git=https://github.com/doctrine/DoctrineMigrationsBundle.git\n target=/bundles/Doctrine/Bundle/MigrationsBundle\n\n [DoctrineFixturesBundle]\n git=https://github.com/doctrine/DoctrineFixturesBundle.git\n target=/bundles/Doctrine/Bundle/FixturesBundle\n\nAnd the autoload.php:\n\n~~~~ {.sourceCode .php}\n$loader->registerNamespaces(array(\n 'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),\n 'Sensio' => __DIR__.'/../vendor/bundles',\n 'JMS' => __DIR__.'/../vendor/bundles',\n 'Doctrine\\\\Bundle' => __DIR__.'/../vendor/bundles',\n 'Doctrine\\\\DBAL\\\\Migrations' => __DIR__.'/../vendor/migrations/lib',\n 'Doctrine\\\\Common\\\\DataFixtures' => __DIR__.'/../vendor/data-fixtures/lib',\n 'Doctrine\\\\Common' => __DIR__.'/../vendor/doctrine-common/lib',\n 'Doctrine\\\\DBAL' => __DIR__.'/../vendor/doctrine-dbal/lib',\n 'Doctrine' => __DIR__.'/../vendor/doctrine/lib',\n 'Monolog' => __DIR__.'/../vendor/monolog/src',\n 'Assetic' => __DIR__.'/../vendor/assetic/src',\n 'Metadata' => __DIR__.'/../vendor/metadata/src',\n));\n~~~~\n\nAnd the Kernel:\n\n~~~~ {.sourceCode .php}\n$bundles = array(\n new Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle(),\n new Symfony\\Bundle\\SecurityBundle\\SecurityBundle(),\n new Symfony\\Bundle\\TwigBundle\\TwigBundle(),\n new Symfony\\Bundle\\MonologBundle\\MonologBundle(),\n new Symfony\\Bundle\\SwiftmailerBundle\\SwiftmailerBundle(),\n new Symfony\\Bundle\\AsseticBundle\\AsseticBundle(),\n new Sensio\\Bundle\\FrameworkExtraBundle\\SensioFrameworkExtraBundle(),\n new JMS\\SecurityExtraBundle\\JMSSecurityExtraBundle(),\n new Doctrine\\Bundle\\DoctrineBundle\\DoctrineBundle(),\n new Doctrine\\Bundle\\MigrationsBundle\\DoctrineMigrationsBundle(),\n new Doctrine\\Bundle\\FixturesBundle\\DoctrineFixturesBundle(),\n);\n~~~~\n", - "date": "2011-12-15 00:00:00" + "contents": "**24.03.2013**\n\nWe have released the first beta version of Doctrine 2.4. Some of the\nchanges are listed in [this\ntalk](https://speakerdeck.com/asm89/what-is-new-in-doctrine) by\nAlexander and me from Symfony Live Berlin last year.\n\nYou can find a list of changes on\n[Jira](https://www.doctrine-project.org/jira/issues/?jql=project%20in%20(DDC%2C%20DBAL%2C%20DCOM)%20AND%20fixVersion%20%3D%20%222.4%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20priority%20DESC).\n\nYou can install the release with [Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.4.0-beta1\",\n \"doctrine/dbal\": \"2.4.0-beta1\",\n \"doctrine/common\": \"2.4.0-rc1\"\n }\n }\n\nPlease test this release with your existing applications to allow us to\nfind BC breaks and remove them before the final release. The plan is to\nrelease the final version in the next 4-6 weeks.\n\nIn these next weeks we will work to incorporate all changes in the\ndocumentation.\n", + "date": "2013-03-24 00:00:00" }, { - "url": "/2008/04/21/0-11-0-release-candidate-1.html", - "slug": "0-11-0-release-candidate-1", - "title": "0.11.0 Release Candidate 1", + "url": "/2009/05/27/want-to-contribute-to-doctrine.html", + "slug": "want-to-contribute-to-doctrine", + "title": "Want to contribute to Doctrine?", "authorName": "jwage", "authorEmail": "", - "contents": "

    \n\nToday I am happy to announce the first release candidate for the next\nmajor version of Doctrine, 0.11. The 0.11 version of Doctrine brings\nover 50 addressed tickets, a few new features, a few performance\nimprovements and lots of updates to the documentation/manual.\n\n

    \n\n\u00a0\n\n

    \n\nHere are the highlights:\n\n

    \n\n- \\*Table.php classes are no longer generated by default when\n generating models from an existing database schema. This also means\n that ATTR\\_AUTOLOAD\\_TABLE\\_CLASSES now defaults to FALSE\n\n

    \n\n> - Fixed some serious hydration bugs.\n\n

    \n\n> - Improved the hydration performance for large (joined) result sets.\n\n

    \n\n> - Application-level cascading deletes are back.\n\n

    \n\n> We encourage everyone to test this release candidate thoroughly.\n> Please report any issues through trac.\n\n

    \n\n> You can view the complete changelog for this release here.\n\n

    \n\n\n", - "date": "2008-04-21 00:00:00" + "contents": "Looking for Developers\n======================\n\nWe've been on the hunt for more Doctrine contributors. As the number of\nusers of Doctrine grew we expected the number of commiters to rise with\nit but this has not been the case. We do get a lot of small patches here\nand there, but we are hoping for some of them to grow in to full-time\ncore developers that are involved with all the decisions made about\nDoctrine.\n\nCall to the community\n=====================\n\nYou can see Roman made a call to the Doctrine developers mailing list\n[here](http://groups.google.com/group/doctrine-dev/browse_thread/thread/c6e4c74e1a392909)\nabout the issue. We are taking all the feedback in to consideration and\nwe have started by creating a\n[contribute](https://www.doctrine-project.org/contribute) page that is\nlinked from the primary menu of the website. We hope that this will help\nwith new users finding information faster about how they can get started\ncontributing.\n\nOther Ideas\n===========\n\nIf you have any additional ideas about how we can promote contributing\nto Doctrine you can discuss them in the comments or on the [mailing list\nthread](http://groups.google.com/group/doctrine-dev/browse_thread/thread/c6e4c74e1a392909).\n", + "date": "2009-05-27 00:00:00" }, { - "url": "/2009/05/28/doctrine-database-abstraction-layer.html", - "slug": "doctrine-database-abstraction-layer", - "title": "Doctrine Database Abstraction Layer", - "authorName": "jwage", + "url": "/2010/12/21/doctrine2-released.html", + "slug": "doctrine2-released", + "title": "Doctrine 2 First Stable Release", + "authorName": "beberlei", "authorEmail": "", - "contents": "One of the greatest advantages to using Doctrine is what is under the\nhood that powers it. That is the database abstraction layer. This\npowerful layer is based off of a lot of different code from various\npopular PHP projects such as PEAR MDB2 and Zend\\_Db. It provides you a\nnice intuitive interface for retrieving information about your database\nschema as well as issuing DDL statements to change it.\n\nPublic Method Index\n===================\n\nThe database abstraction layer features the following methods in 1.x and\nsome new methods added in 2.0.\n\n1.x Methods\n-----------\n\n- listDatabases()\n- listFunctions()\n- listTriggers()\n- listSequences()\n- listTableConstraints()\n- listTableColumns()\n- listTableIndexes()\n- listTables()\n- listUsers()\n- listViews()\n- dropDatabase()\n- dropTable()\n- dropIndex()\n- dropConstraint()\n- dropForeignKey()\n- dropSequence()\n- createDatabase()\n- createTable()\n- createSequence()\n- createConstraint()\n- createIndex()\n- createForeignKey()\n- alterTable()\n\nNew Methods in 2.0\n------------------\n\n- renameTable()\n- addTableColumn()\n- removeTableColumn()\n- changeTableColumn()\n- renameTableColumn()\n- dropView()\n- createView()\n\nSome 2.0 Examples\n=================\n\nHere are some code examples using the Doctrine 2.0 Database Abstraction\nLayer. We'll show you how you can execute these examples yourself by\nchecking out Doctrine 2.0 from SVN and setting up a PHP script to test\nwith.\n\n> **TIP** The database abstraction layer can be used standalone so if\n> you just want a nice standard layer for communicating with your\n> database then Doctrine works for you too.\n\nCheckout Doctrine\n-----------------\n\n $ svn co http://svn.doctrine-project.org/trunk doctrine2\n $ cd doctrine2\n\nCreate Test Script\n------------------\n\nCreate a new PHP script anywhere on your server and name it `test.php`.\nNow lets initialize Doctrine so we can work with it. First we need to\nset our `ClassLoader`.\n\n~~~~ {.sourceCode .php}\nsetBasePath('Doctrine', __DIR__ . '/lib');\n~~~~\n\nCreate Connection\n-----------------\n\nNow we need to create our `Connection` instance.\n\n~~~~ {.sourceCode .php}\n 'pdo_mysql',\n 'dbname' => 'mysql',\n 'user' => 'root',\n 'password' => ''\n);\n$driver = new \\Doctrine\\DBAL\\Driver\\PDOMySql\\Driver;\n$conn = new \\Doctrine\\DBAL\\Connection($connectionOptions, $driver);\n\n**NOTE** Notice how we are temporarily connecting to the special\ndatabase for MySQL named ``mysql``. We'll use this database to\nconnect to so we can create our test database.\n~~~~\n\nNow we can simply retrieve the `SchemaManager` instance from the\n`Connection` driver and begin to execute some of the methods we listed\nabove.\n\n~~~~ {.sourceCode .php}\ngetSchemaManager();\n~~~~\n\nThe first thing we could do is create the database by calling the\n`createDatabase()` method on the `$sm` instance.\n\n~~~~ {.sourceCode .php}\ncreateDatabase('doctrine2test');\n~~~~\n\nNow that we have the database created, change your `$connectionOptions`\nkey `dbname` to specify `doctrine2test` so that we connect to the new\ndatabase that we just created.\n\n~~~~ {.sourceCode .php}\n 'pdo_mysql',\n 'dbname' => 'doctrine2test',\n 'user' => 'root',\n 'password' => ''\n);\n\n// ...\n~~~~\n\nNow we can begin adding things to the new database. For example we could\nissue a command to create a new table.\n\n~~~~ {.sourceCode .php}\n array(\n 'type' => \\Doctrine\\DBAL\\Type::getType('integer'),\n 'autoincrement' => true,\n 'primary' => true,\n 'notnull' => true\n ),\n 'test' => array(\n 'type' => \\Doctrine\\DBAL\\Type::getType('string'),\n 'length' => 255\n )\n);\n\n$options = array();\n\n$sm->createTable('new_table', $columns, $options);\n~~~~\n\nThen after creating the table I can later add a new column to it.\n\n~~~~ {.sourceCode .php}\n \\Doctrine\\DBAL\\Type::getType('string'),\n 'length' => 255\n);\n\n$sm->addTableColumn('new_table', 'new_column', $column);\n~~~~\n\nOr I could even drop the table completely.\n\n~~~~ {.sourceCode .php}\ndropTable('new_table');\n\n**NOTE** Not all of the above listed methods are supported by every\nsingle DBMS. If your DBMS does not support the functionality then\nDoctrine will throw exceptions accordingly.\n~~~~\n\nAll the above example are very simple schema changes but Doctrine is\ncapable of manipulating very complex schemas from a standardized\nprogrammatic interface. The Doctrine Migrations extension makes use of\nthis layer heavily to do all the operations for changing your database\nschemas.\n", - "date": "2009-05-28 00:00:00" + "contents": "We are happy to announce the immediate release of the first stable\nDoctrine 2.0 version. This release marks the end of 2.5 years of\ndedicated development starting in early 2008 and ending as a christmas\npresent to our users. We wish everyone a merry christmas!\n\nDuring the last years a core team of five people contributed large parts\nof the code and many developers contributed small patches and features.\nIn the end the Doctrine 1 code was refactored beyond recognition,\nreplacing the original ActiveRecord Doctrine 1 with a new DataMapper\nimplementation. We want to thank all the contributors and early adopters\nfor all the feedback and discussions.\n\nWhat is new in Doctrine 2?\n==========================\n\n- DQL is now a real language inside Doctrine, based on an EBNF that is\n parsed and transformed to SQL. Benefits of this refactoring are\n readable error messages, the generation of an AST that allows us to\n support many different vendors and powerful hooks for developers to\n modify and extend the DQL language to their needs. DQL can either be\n written as a string or be generated using a powerful QueryBuilder\n object.\n- Your persistent objects (called entities in Doctrine 2) are not\n required to extend an abstract base class anymore. Doctrine 2 allows\n you to use Plain old PHP Objects.\n- The UnitOfWork is not an alibi-pattern as implemented in Doctrine 1.\n It is the most central pattern in Doctrine 2. Instead of calling\n `save()` or `delete()` methods on your `Doctrine_Record` instances\n you now pass objects to the data mapper object called\n `EntityManager` and it keeps track of all changes until you request\n a synchronisation between database and the current objects in\n memory. This process is very efficient and has consistent semantics.\n This is a significant improvement over Doctrine 1 in terms of\n performance and developer ease-of-use.\n- There are no code-generation steps from YAML to PHP involved in the\n library anymore. YAML, XML, PHP and Doc-Block Annotations are four\n first-class citizens for defining the metadata mapping between\n objects and database. A powerful caching layer allows Doctrine 2 to\n use runtime metadata without relying on code-generation.\n- A clean architecture and powerful algorithms make Doctrine 2\n magnitudes faster than Doctrine 1.\n- Doctrine 2 supports an API that allows you to transform an arbitrary\n SQL statements into an object-structure. This feature is used by the\n Doctrine Query Language itself and is a first-class citizen of the\n library. It essentially allows you to make use of powerful\n vendor-specific features and complex SQL statements without having\n to cirumvent the ORM completely.\n- Inheritance is not akward anymore. There are now three different\n types of inheritance to choose from: Mapped Superclasses,\n Single-Table- and Joined-Table-Inheritance.\n- Many more features, just see the reference guide on what is possible\n with Doctrine 2.\n\nWhy did we take so long to develop this new major release?\n==========================================================\n\nThere are several reasons:\n\nThe refactoring of the original Doctrine 1 code marks a paradigm shift\nin how we approach object persistence in PHP. Making use of PHP 5.3 only\nfeatures we could write an ORM whose internals are much more powerful\nthan the first version of Doctrine. This meant rewriting lots of\nfeatures from scratch and refactoring other code beyond recognition.\nMany features were carefully implemented and have been discussed for\nweeks or month in our team. We feel that not a single feature in this\nrelease can be called a hack or has negative architectural implications\nalong the road.\n\nAs a user an ORM means committing yourself to a library that you haven't\nwritten yourself and trust it to handle your most important code: The\nbusiness and domain logic. We wanted to release a high quality library\nand make sure it has no bugs when it is released. This explains why the\nfirst alpha was already released over a year ago and we have been fixing\nevery little bug that appeared for the last 14 months. When you download\nDoctrine 2 now we feel this code is more stable and much more\nmaintainable than Doctrine 1. The ORM itself has about 1000 tests where\nhalf of these are functional tests that successfully run against all the\nsupported database vendors MySQL, SQLite, PostgreSQL, Oracle and MSSQL.\nThe database access layer and common libraries come with an additional\n400 tests.\n\nWe wanted the release to ship with a complete and well-thought-out\ndocumentation. Writing such a documentation takes time. The current\ndocumentation is probably not perfect, but it contains a very detailed\nreference guide and a small tutorial to get started. Additionally there\nis a cookbook with several recipes that you can use with your Doctrine 2\nproject.\n\nWhile Doctrine 1 had pretty powerful SQL abstraction we felt there were\nbetter libraries out there that could be incoporated into Doctrine 2.\nThe new database abstraction layer of Doctrine 2 is much more powerful\nthan the Doctrine 1 DBAL and is powered by code from other great\nlibraries such as Zeta Components, Zend Framework and PEAR MDB2. On top\nof this it can also be used standalone, you can use the DBAL without\nhaving to use the ORM.\n\nDropping Features of Doctrine 1\n===============================\n\nBut Doctrine 2 is not only a new version of Doctrine 1. We also dropped\na lot of features that we find inappropriate for the core of an ORM\nlibrary:\n\n- Validators have been dropped. Use a framework library like Zend or\n Symfony for validator support, they ship much more powerful\n validators than Doctrine 1 ever had. If you don't like frameworks\n there is ext/filter to consider.\n- We killed the magic features: Doctrine 2 does not offer behaviors as\n a core feature anymore. We came to the conclusion that behaviors in\n the core lead to the big ball of mud called Doctrine\n 1. The code is nearly unmaintainable because of all the special\n logic and magic that works everywhere. That is why Doctrine 2\n focuses on being a consistent and extensible object-relational\n mapper only and behaviors should be released as extensions on top of\n Doctrine 2. While this approach was questioned by many of the\n Doctrine 1 users we think this is the right approach. We are already\n seeing third party libraries and extensions like Doctrator based on\n Doctrine 2 that implement these features.\n- Explicit multiple connection support has been dropped. Use multiple\n instances of `Doctrine\\DBAL\\Connection` or\n `Doctrine\\ORM\\EntityManager`. Doctrine 2 uses no global state that\n could affect the usage of multiple instances.\n\nIs Doctrine 2 backwards compatible?\n===================================\n\nNo it is not. Doctrine 1 and 2 have nothing in common. For what its\nworth they only share the same project name. You cannot simply move from\nyour Doctrine 1.2 to a Doctrine 2 project. Why didn't we release a\nbackwards compatible ORM? Because we think Doctrine 1 has architectural\nflaws that cannot be fixed.\n\nWhat is the plan for Doctrine 2 beyond this release?\n====================================================\n\nWith the core that is now Doctrine 2 we plan to keep the library\nbackwards compatible at all times. Not only for minor and mini-releases\nsuch as 2.0.1 or 2.1, even for potential releases of a Doctrine 3 or 4\nversion we plan to avoid public API refactorings as much as possible. If\nhowever we feel that there is overwhelming evidence that a public API\nrefactoring makes the ORM faster and leads to more maintainable code we\nwill not hesitate to break API for a 3.0 release.\n\nThis approach comes at costs that we are willing to pay. All new\nfeatures have to pass a requirements discussion and pros/cons are\ncarefully weighted against each other. That is also why we try to expose\nas little of our internals as possible. This certainly hurts\nextensibility of Doctrine 2, but with our expected quality level and\nreview process we hope to bring the costs of this approach down. You\nshould never be forced to extend Doctrine 2 just to fix bugs, which is\nthe most important reason for extensibility in other PHP libraries.\n\nWhere do I start?\n=================\n\nYou can download Doctrine 2 [from our downloads\nsection](https://www.doctrine-project.org/projects/orm/download) ,\n[install it via PEAR](http://pear.doctrine-project.org/) or find it in\nthe [Github repository](https://github.com/doctrine/orm). Symfony 2\nalso ships with a current version of Doctrine 2. After you installed\nDoctrine 2 you can [go to the\ndocumentation](https://www.doctrine-project.org/docs/orm/2.0/en/) and\nstart reading the reference guide or [the\ntutorial](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/getting-started-xml-edition.html).\n\nIf you find any bugs or have feature requests you should check our\n[Bug-Tracker and report bugs or feature\nrequests](https://www.doctrine-project.org/jira). If you want to discuss\nabout Doctrine 2 you can either [use the Google Group or join the\n\\#doctrine channel on the Freenode IRC\nNetwork](https://www.doctrine-project.org/community). Also make sure to\ncheck the current [Limitations and Known Issues\nsection](https://www.doctrine-project.org/docs/orm/2.0/en/reference/limitations-and-known-issues.html)\nin the docs. We are trying to be honest about what Doctrine 2 can and\ncan't do but might do in the future.\n", + "date": "2010-12-21 00:00:00" }, { - "url": "/2008/01/25/a-few-updates-for-2008.html", - "slug": "a-few-updates-for-2008", - "title": "A few updates for 2008", + "url": "/2009/01/05/doctrine-1-0-6-released.html", + "slug": "doctrine-1-0-6-released", + "title": "Doctrine 1.0.6 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Some of these announcements are a little late but I think they deserve a\nproper announcement.\n\nFirst, we have setup a way for you to give us all your money :) Please\nfeel free to give a little. The purpose of the Doctrine donation\ncollection is simple. The creators of Doctrine don't work on this great\nproduct for any money. The contributions are made out of the pure\nenjoyment of working on a great open source project such as Doctrine. It\nis not totally clear what *exactly* the donations will be used for now,\nbut in the future they may be used to fund infrastructure expenses\nrequired by the project, sending developers to conferences, marketing,\nor even split amongst the developers of Doctrine. So if you or your\ncompany uses Doctrine and are happy with it, a donation to further the\nproject would be much appreciated.\n\nSecondly, we have made some updates to the website. Specifically the\nDownload page. It now has proper links to packages and svn for each\nrelease of Doctrine. These packages are generated nightly from the\nsource in svn.\n\nFinally, as some of you all may already know, we have finally gotten our\nrelease/package management under control and you can expect stability in\nthe area of releases, branches and BC breaks!\n", - "date": "2008-01-25 00:00:00" + "contents": "Welcome Back\n============\n\nDon't worry! Doctrine is alive :) It has been a bit quiet around here\ndue to the holidays. I was able to take a week long vacation and it was\nvery nice being away from everything for the first time in almost three\nyears. I hope everyone enjoyed the holidays as much as I did.\n\n1.0.6 Released\n==============\n\nAnyways, on my first day back I am happy to introduce the freshly\npackaged Doctrine 1.0.6 bug fix release. This release contains dozens of\nfixes and the change log can be read\n[here](https://www.doctrine-project.org/change_log/1_0_6). It is strongly\nencouraged that you upgrade as soon as possible.\n\nDoctrine 1.1\n============\n\nOn a side note, we will be releasing the 2nd beta of 1.1 later this week\nand we have a few other surprises that will be a part of the 1.1 stable\nrelease. So, you will have to stick around to see what we have planned.\nYou can check out what is new in 1.1 by reading the\n[upgrade](https://www.doctrine-project.org/upgrade/1_1) file.\n", + "date": "2009-01-05 00:00:00" }, { - "url": "/2016/07/27/doctrine-mongodb-odm-release-1.1.1.html", - "slug": "doctrine-mongodb-odm-release-1.1.1", - "title": "Doctrine MongoDB ODM release 1.1.1 ", - "authorName": "Maciej Malarz", - "authorEmail": "malarzm@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.1.1](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.1).\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.1.md#111-2016-07-27).\nA full list of issues and pull requests included in this release may be\nfound in the [1.1.1\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1.1).\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.1.1\"\n }\n}\n```\n\nFuture Releases\n===============\n\nWork on the much anticipated 2.0 version of MongoDB ODM with support for\nthe new MongoDB driver is beginning; however we are unable to set a\nrelease date yet. Development will likely take some time and thus we\nhave scheduled a 1.2 version to be released before 2.0. Version 1.2 will\ninclude all features planned for 2.0 that can be introduced in a\nbackward compatible way as well as new deprecation notices for\nfunctionality we plan to remove in 2.0, which we hope will ease future\nmigration.\n\nDoctrine MongoDB ODM release 1.0.7\n==================================\n\nWe are also happy to announce the immediate availability of Doctrine\nMongoDB ODM\n[1.0.7](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.7).\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#107-2016-07-27).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.7\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.7).\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0.7\"\n }\n}\n```\n", - "date": "2016-07-27 00:00:00" + "url": "/2009/10/21/doctrine-1-2-alpha3-released.html", + "slug": "doctrine-1-2-alpha3-released", + "title": "Doctrine 1.2 ALPHA3 Released", + "authorName": "jwage", + "authorEmail": "", + "contents": "Today I am happy to bring you hopefully the last alpha release for\nDoctrine 1.2. We decided to have one more alpha due to some interesting\nissues and improvements brought to our attention related to PEAR\nmodel/file naming standards, result set caching improvements and a few\nother things. You can of course check out what all is new in Doctrine in\nthe [upgrade](https://www.doctrine-project.org/upgrade/1_2) file. Below\nare some quick links to some of the most recent changes.\n\n- [PEAR Style Model Loading and\n Generation](https://www.doctrine-project.org/upgrade/1_2#PEAR%20Style%20Model%20Loading%20and%20Generation)\n- [Ordering\n Relationships](https://www.doctrine-project.org/upgrade/1_2#Ordering%20Relationships)\n- [Result Cache\n Improvements](https://www.doctrine-project.org/upgrade/1_2#Result%20Cache%20Improvements)\n\nGo ahead and [download](https://www.doctrine-project.org/download)\nDoctrine 1.2 ALPHA3 and give it a try. Let us know if you have any\nissues by raising a new issue in\n[JIRA](https://www.doctrine-project.org/jira).\n", + "date": "2009-10-21 00:00:00" }, { - "url": "/2012/01/22/dbal-orm-22rc1.html", - "slug": "dbal-orm-22rc1", - "title": "DBAL and ORM 2.2 Release candidates", - "authorName": "Benjamin Eberlei", + "url": "/2012/03/04/doctrine-2-2-1-released.html", + "slug": "doctrine-2-2-1-released", + "title": "Doctrine 2.2.1 released", + "authorName": "beberlei", "authorEmail": "", - "contents": "Again with a slight delay we finalized the DBAL and ORM release\ncandidates for the 2.2 branch. There have been some late changes that\nmade the delay necessary:\n\n- DBAL Schema supported was heavily refactored to include the concept\n of \"namespaces\". This abstracts multi-database useage for MySQL and\n Schema support for PostgreSQL.\n- A Paginator was put into the DoctrineORMToolsPagination namespace.\n Its the combination of the original DoctrineExtensions Paginator\n with extensions done in the KnpLabs components and the Pagerfanta\n library.\n\nAs usual you can grab the code from:\n\n- [Packagist](https://packagist.org/packages/doctrine/)\n- [PEAR](http://pear.doctrine-project.org)\n- [Downloads](https://www.doctrine-project.org/projects)\n- [Github](https://github.com/doctrine)\n\nPlease test this code with your applications. If no bugs or\nbackwards-compatible breaks are reported in the next days we will\nrelease the final version on friday.\n", - "date": "2012-01-22 00:00:00" + "contents": "We released version 2.2.1 of the Doctrine ORM today, fixing a total of\n16 bugs.\n\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10194)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) , download from the website or\nthrough [Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.1\" }\n>\n> }\n", + "date": "2012-03-04 00:00:00" }, { - "url": "/2015/12/15/doctrine-mongodb-odm-release-1.0.4.html", - "slug": "doctrine-mongodb-odm-release-1.0.4", - "title": "Doctrine MongoDB ODM release 1.0.4", - "authorName": "Andreas Braun", - "authorEmail": "alcaeus@alcaeus.org", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.0.4](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.4).\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#104-2015-12-15).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.4\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.4).\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0.4\"\n }\n}\n```\n\nDoctrine MongoDB ODM 1.1 requires PHP 5.5+\n==========================================\n\nThe current `master` branch saw its PHP requirement bumped to 5.5\nrecently. If you are still using the master version in your project you\nshould switch to a stable release as soon as possible:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0\"\n }\n}\n```\n\nThis will ensure you are using stable versions and will use 1.1 as soon\nas it's released.\n\nThe upcoming releases of Doctrine MongoDB (1.3) and ODM (1.1) will also\ndrop support for all MongoDB driver versions before 1.5. If you are\nstill using an older driver, please consider upgrading it in order to\nreceive future updates.\n", - "date": "2015-12-15 00:00:00" - }, - { - "url": "/2012/01/29/doctrine-2-2-final.html", - "slug": "doctrine-2-2-final", - "title": "Doctrine 2.2 released", - "authorName": "Benjamin Eberlei", + "url": "/2010/02/17/doctrine2-behaviours-nutshell.html", + "slug": "doctrine2-behaviours-nutshell", + "title": "Doctrine 2 \"Behaviours\" in a Nutshell", + "authorName": "beberlei", "authorEmail": "", - "contents": "We released Doctrine 2.2 today.\n\nA top list of the new features includes:\n\n- Filtering entities and associations based on rules that can be\n parameterized, enabled or disabled, developed by asm89\n- Support for complex SQL types such as Geometries, IPs, develped by\n jsor.\n- Bit Comparisions in DQL, developed by Fabio.\n- Annotation Refactorings by Fabio and johannes.\n- DQL Refactoring, ORDER BY and GROUP BY supporting result variables\n of SELECT expressions.\n- Alias for entities in DQL results.\n- Result Cache refactoring\n- Flush for single entities\n- Master/Slave Connection in DBAL\n\nSee the changelogs of all three projects Common, DBAL, ORM:\n\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10157)\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10142)\n- [Common](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10152)\n\nSee the\n[UPGRADE\\_2\\_2](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-22)\nfile to see backwards incompatible changes.\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) or through\n[Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.0\" }\n>\n> }\n", - "date": "2012-01-29 00:00:00" + "contents": "**NOTE** This blog entry relates to an outdated Doctrine 2 Alpha\n: version. Please see the documentation for the most up to date\n behavior.\n\nOne of the most common fallacies out there about Doctrine 2 abandoning\nBehaviours is that developers now have to implement fancy logic to\nre-implement them yourself. Doctrine 2's approach to completly separate\nORM from your domain classes allows to build behaviours in a very clean,\nunobstrusive and simple object-oriented way. This article shows you how\nto implement some of the Doctrine 1 behaviours in your Doctrine 2 code.\nFor this I will rewrite the Doctrine 1.x manuals examples for each\nBehaviour.\n\nThis example uses Annotations as example, yet this of course works with\nYAML and XML mappings. Additionally Doctrine 2 allows constructors to\nhave required arguments as of a commit of the last week. This allows for\nsome pretty slick enforcements in user-land code as you will see in this\npost.\n\nStraightforward combination of \"Behaviours\"\n===========================================\n\nAll the code listed below is somehwat more verbose than the Doctrine 1\ncode, however much more bound to the domain of your model and very\nstraightforward. There is no magic involved and you will fully\nunderstand what will be happening in each of the behaviours. The best of\nall, although not a simple trick, you will be able to combine ALL\nbehaviours in one model class and still be completly on top of their\ninner workings.\n\nTimestampable\n=============\n\nTimestampable is a behaviour that requires you to hook into the\npre-update event which is called whenever an entity is updated:\n\n~~~~ {.sourceCode .php}\ncreated = $this->updated = new DateTime(\"now\");\n }\n\n /**\n * @PreUpdate\n */\n public function updated()\n {\n $this->updated = new DateTime(\"now\");\n }\n}\n~~~~\n\nSluggable\n=========\n\nThe sluggable behaviour is trivial to implement in Doctrine 2:\n\n~~~~ {.sourceCode .php}\nslug == null) {\n $this->slug = MyStringHelper::slugize($title);\n }\n $this->title = $title;\n }\n\n /**\n * Put this method in if your slug should be \"editable\"\n */\n public function setSlug($slug)\n {\n $this->slug = $slug;\n }\n}\n~~~~\n\nSee how its much more explicit in your code how and why the slug is\ngenerated.\n\nNestedSet\n=========\n\nThis is one of the more complex behaviours in Doctrine 1 and it won't be\nnecessarily more easy in Doctrine 2. However as this is an important\nfeature we will provide an implementation as a `DoctrineExtensions`\nnamespaced package that will be maintained by Doctrine Devs.\n\nSearchable\n==========\n\nThere is currently no plan to port the Searchable behaviour to Doctrine\n2, but the possibility to instantiate objects using *new* allows a very\nsimple integration of a Doctrine 2 model with Apache Solr or Lucene with\na little wrapper that re-creates detached instances from this powerful\nsearch engines.\n\nFor example using\n[ezcSearch](http://ezcomponents.org/docs/api/trunk/introduction_Search.html)\nwe can make our BlogPost accessible for Solr:\n\n~~~~ {.sourceCode .php}\n $this->id,\n 'title' => $this->title,\n 'body' => $this->body,\n 'slug' => $this->slug,\n );\n }\n\n public function setState($state)\n {\n foreach ($state AS $k => $v) {\n $this->$k = $v;\n }\n }\n\n static public function getDefinition()\n {\n // define search schema\n return $def;\n }\n}\n~~~~\n\nezcSearch can then index a blog post whenever it is changed by hooking\nan EventListener into the Doctrine `PreUpdate` Event:\n\n~~~~ {.sourceCode .php}\n_searchSession = $searchSession;\n }\n\n public function preUpdate(LifecycleEventArgs $args)\n {\n if ($args->getEntity() instanceof ezcBasePersistable) {\n $this->_searchSession->index($args->getEntity());\n }\n }\n}\n~~~~\n\nYou can now hook this event into Doctrine's EntityManager:\n\n~~~~ {.sourceCode .php}\ngetEventManager()->addEventListener(\n array(Doctrine\\ORM\\Events::preUpdate), $searchListener\n);\n~~~~\n\nNow when you search for your entities you get returned `BlogPost`\ninstances from ezcSearchs Solr interface:\n\n~~~~ {.sourceCode .php}\ncreateFindQuery( 'BlogPost' );\n$searchWord = 'test';\n\n// where either body or title contains thr $searchWord\n$q->where(\n $q->lOr(\n $q->eq( 'body', $searchWord ),\n $q->eq( 'title', $searchWord )\n )\n);\n$searchedBlogPosts = $session->find( $q );\n~~~~\n\nThese instances are detached from the EntityManager when they get\nreturned from ezcSearch and can be merged back into the persistence\ncontext:\n\n~~~~ {.sourceCode .php}\nsetTitle(\"ChangeFoo\");\n$em->merge($searchedBlogPosts[0]);\n~~~~\n\nRead about Merging, Detached instances and other cool stuff of Doctrines\nobject model in the [Working with\nObjects](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/working-with-objects.html#merging-entities)\nchapter of the manual.\n\nVersionable\n===========\n\nBy default Doctrine 2 comes with a way to set a *version* column that is\nautomatically incremented on each update. Using the event system it is\neasy to use this information to implement a versionable audit-log\nbehaviour. The required code is more verbose than the simple\nconfiguration of Doctrine 1, however there is much less magic involved\nand you can implement this behaviour in a way that is trivial to\nunderstand for someone new looking at your code:\n\n~~~~ {.sourceCode .php}\nauditLog[] = new BlogPostVersion($this);\n }\n // getters\n}\n\n/**\n * @Entity\n */\nclass BlogPostVersion\n{\n /**\n * @Id\n * @Column(type=\"integer\")\n * @generatedValue(strategy=\"AUTO\")\n */\n private $id;\n\n /**\n * @Column(type=\"string\")\n */\n private $title;\n\n /**\n * @Column(type=\"text\")\n */\n private $body;\n\n /**\n * @Column(type=\"integer\")\n */\n private $version;\n\n /**\n * @ManyToOne(targetEntity=\"BlogPost\")\n */\n private $post;\n\n public function __construct(BlogPost $post)\n {\n $this->post = $post;\n $this->title = $post->getTitle();\n $this->body = $post->getBody();\n $this->version = $post->getCurrentVersion();\n }\n}\n~~~~\n\nI18N\n====\n\nMulti-Language content is an important topic and can be implemented in\nDoctrine 2, since its just a fancy name for a One-To-Many relation.\nHowever currently Doctrine 2 does not allow to persist keys by name,\nwhich makes a OneToMany implementation a bit more intensive then it\ncould be. We plan to implement primitive value collections however which\nwould simplify any attempt to implement nested structured content, that\nis not an entity by itself.\n\nSoft Delete\n===========\n\nWe won't support soft-delete at all. If you want to implement a\nsoft-delete alike behaviour its probably a good idea to look into the\nState pattern instead.\n\nBlameable\n=========\n\nImplementing this behaviour is just a matter of adding two fields\n*createdByUserId* and *modifiedByUserId* fields and setting them\nwhenever one of your relevant fields change by hooking into setter\nmethods:\n\n~~~~ {.sourceCode .php}\ntitle = $title;\n $this->modifiedByUserId = $user->getId();\n }\n}\n~~~~\n\nSortable\n========\n\nSame as I18N, we are planning to support persistence of collection keys\nin the Doctrine 2 Core. This would allow to sort collections by using\nthe possibilities of the `Doctrine\\Common\\Collections\\Collection`\ninterface.\n\nConclusion\n==========\n\nAlthough slightly more complex than Doctrine 1s simple configuration\noptions, most \"behaviours\" are still way easy to implement in Doctrine\n2. The additional benefit of this straightforward approach: *You can\ncombine behaviours in any way, inside your domain model, without having\nto wonder how the magic works together, you are completly on top of it.*\n", + "date": "2010-02-17 00:00:00" }, { - "url": "/2008/07/01/introducing-the-doctrine-forum.html", - "slug": "introducing-the-doctrine-forum", - "title": "Introducing the Doctrine Forum", + "url": "/2009/11/11/doctrine-2-0-0-alpha3-released.html", + "slug": "doctrine-2-0-0-alpha3-released", + "title": "Doctrine 2.0.0-ALPHA3 Released", "authorName": "jwage", "authorEmail": "", - "contents": "For those of you who are not keen on using the mailing list or irc for\ngetting help with Doctrine, we now have a public Forum, powered by\nPHPBB3(which is very nice btw). Please contact me at jonwage at\ngmail.com if you would like a forum for your language added or if you\nare interested in being a moderator.\n", - "date": "2008-07-01 00:00:00" + "contents": "Today I am happy to bring you the third alpha version of Doctrine 2!\nThis release contains over 60 fixes and the code is starting to\nstabilize.\n\nHighlights\n==========\n\n- [r6441] Added functionality to convert a Doctrine 1 schema to\n Doctrine 2 to help users with upgrading.\n- [r6442] Work on mapping drivers, exporter drivers and reverse\n engineering of database schemas.\n- [r6551] Refactorings to reduce duplicated code and increase\n efficiency.\n- [r6554] Refactored cache drivers to allow more control over\n deleting, added namespacing to cache drivers and implemented\n clear-cache task.\n\nView the complete [change\nlog](https://www.doctrine-project.org/change_log/2_0_0_ALPHA3) to see a\ndetailed list of every change contained in this release. You can\n[download](https://www.doctrine-project.org/download#2_0) this release\nand report any issues you find in\n[Jira](https://www.doctrine-project.org/jira).\n\nWhat is Next?\n=============\n\nWe will have one more alpha release on December 11th, 2009 and our first\nbeta on January 8th, 2010. The schedule after that has not yet been\ndetermined.\n", + "date": "2009-11-11 00:00:00" }, { - "url": "/2008/09/18/doctrine-and-symfony-frameworks-collaborating.html", - "slug": "doctrine-and-symfony-frameworks-collaborating", - "title": "Doctrine and symfony frameworks collaborating", + "url": "/2010/03/29/doctrine-1-2-2-released.html", + "slug": "doctrine-1-2-2-released", + "title": "Doctrine 1.2.2 Released", "authorName": "jwage", "authorEmail": "", - "contents": "

    \n\nDoctrine has been used by many symfony developers for nearly two years\nas an externally maintained plugin. This week it became official and\nDoctrine will be bundled and supported by the symfony core team as of\nversion 1.2 which is slated for late Q4 2008. You can read the full blog\narticle on the symfony-project.org blog.\n\n

    \n\n\n", - "date": "2008-09-18 00:00:00" + "contents": "Today I am happy to bring you the second maintenance release for the 1.2\nversion of Doctrine. This release contains around 100 fixed issues from\n[Jira](https://www.doctrine-project.org/jira/browse/DC/fixforversion/10047).\nWe will continue regularly creating maintenance releases for the\nDoctrine 1.2 version so if you have any problems, please create a issue\non Jira, include a patch with tests and we'll try and include it in the\nnext version.\n\nAs always you can find information about this new version on the\n[download](https://www.doctrine-project.org/download) page.\n", + "date": "2010-03-29 00:00:00" }, { - "url": "/2008/07/25/who-is-behind-doctrine.html", - "slug": "who-is-behind-doctrine", - "title": "Who is behind Doctrine?", - "authorName": "jwage", + "url": "/2009/11/18/php-benchmarking-mythbusters.html", + "slug": "php-benchmarking-mythbusters", + "title": "PHP Benchmarking Mythbusters", + "authorName": "romanb", "authorEmail": "", - "contents": "Today I have updated the about page on the website so you can get a\nglimpse of who is behind the Doctrine project. Each core contributor\ncontains a brief description of themselves and the role they play in the\nproject. Comments are allowed on each contributors profile so please\nfeel free to express your thanks to them there. Follow the doctrine!\n", - "date": "2008-07-25 00:00:00" + "contents": "First of, this blog post sucks. I thought I would never write such a\nsenseless apples and oranges comparison with artificial and meaningless\nbenchmarks, but I was just a bit astonished by the results that I would\nlike to share.\n\nI use object-relational mapping tools in many different languages, from\nJava to C\\# to PHP. One of the many supposedly lightweight alternatives\nin PHP to Doctrine is Outlet. After stumbling upon this comment on a\n[stackoverflow.com\npost](http://stackoverflow.com/questions/185358/simple-php-orm):\n**\"Gotta second Outlet. Doctrine is comically bloated - it is WAY too\nbig to be a sensible choice for anything but the lightest of server\nloads.\"** I thought I take a look at Outlet. This ORM seems to consist\nof only 9 classes! It can't get any more lightweight right? I assumed it\nwould blow Doctrine out of the water performance-wise in all situations.\n\nSo I downloaded Outlet 0.7 and created a simple test database with just\n1 table. Then I wrote a small script that bootstraps Outlet, inserts 500\nobjects into the database and reads them out afterwards (Yes, it's\nstupid, just like most other artificial benchmarks).\n\nEnvironment is PHP 5.3.0 with APC.\n\n~~~~ {.sourceCode .php}\n array(\n 'dsn' => 'mysql:host=localhost;dbname=outletbenchmark',\n 'username' => $mysqlUsername,\n 'password' => $mysqlPassword,\n 'dialect' => 'mysql'\n ),\n 'classes' => array(\n 'Bug' => array(\n 'table' => 'bugs',\n 'props' => array(\n 'ID' => array('ID', 'int', array('pk' => true, 'autoIncrement' => true)),\n 'Title' => array('Title', 'varchar'),\n 'Description' => array('Description', 'varchar')\n )\n )\n )\n);\nOutlet::init($config);\n$outlet = Outlet::getInstance();\n$outlet->createProxies();\n\n$s = microtime(true);\n$outlet->getConnection()->beginTransaction();\nfor ($i = 0; $i < 500; ++$i) {\n $bug = new Bug;\n $bug->Title = 'This is a test bug';\n $bug->Description = 'Hey there!';\n\n $outlet->save($bug);\n}\n$outlet->getConnection()->commit();\n\n$e = microtime(true);\necho \"\\nInsert:\" . ($e - $s) . \"\\n\";\n\n$outlet->clearCache();\n\n$s = microtime(true);\n$bugs = $outlet->select('Bug');\n$e = microtime(true);\n\n$outlet->clearCache();\n\necho \"\\nQuery:\" . ($e - $s) . \"\\n\";\n\necho \"\\n\" . (memory_get_usage() / 1024) . ' KB ' . PHP_EOL;\n\n**CAUTION** First off, ini\\_set('error\\_reporting', E\\_ALL); was\nnecessary to silence the following E\\_STRICT warnings coming from\nOutlet:\n\n::\n\n Strict Standards: Non-static method OutletMapper::get() should not be called statically,\n assuming $this from incompatible context in /Users/robo/dev/php/outlet/outlet-0.7/classes\n /outlet/Outlet.php on line 184\n\n Strict Standards: Only variables should be passed by reference in /Users/robo/dev\n /php/outlet/outlet-0.7/classes/outlet/OutletMapper.php on line 546\n\nDoes not really look good (and does not speak for Outlet very\nwell), but anyway.\n~~~~\n\nI did the same for Doctrine 2.0, *without setting up a metadata or query\ncache*.\n\n~~~~ {.sourceCode .php}\nsetBasePath(__DIR__ . '/doctrine');\n$classLoader->register();\n\n$config = new \\Doctrine\\ORM\\Configuration;\n\n$config->setProxyDir(__DIR__ . '/Proxies');\n$config->setProxyNamespace('Proxies');\n$connectionOptions = array(\n 'driver' => 'pdo_mysql',\n 'user' => $mysqlUsername,\n 'password' => $mysqlPassword,\n 'host' => 'localhost',\n 'dbname' => 'doctrine2benchmark'\n);\n\n$em = \\Doctrine\\ORM\\EntityManager::create($connectionOptions, $config);\n\n$s = microtime(true);\nfor ($i = 0; $i < 500; ++$i) {\n $bug = new Bug;\n $bug->Title = 'BBug';\n $bug->Description = 'Hello there!';\n\n $em->persist($bug);\n}\n$em->flush();\n\n$e = microtime(true);\necho \"\\nInsert:\" . ($e - $s) . \"\\n\";\n\n$em->clear();\n\n$s = microtime(true);\n$bugs = $em->getRepository('Bug')->findAll();\n$e = microtime(true);\n\n$em->clear();\n\necho \"\\nQuery:\" . ($e - $s) . \"\\n\";\n\necho \"\\n\" . (memory_get_usage() / 1024) . ' KB ' . PHP_EOL;\n~~~~\n\nHere are my results.\n\n1st Run\n=======\n\n| Measurement | | Outlet | | Doctrine | | ------------ | |\n----------------- | | ------------------- | | Insert Time | |\n0.23142600059509 | | 0.11601996421814 | | Query Time | |\n0.070523977279663 | | 0.025638818740845 | | Used Memory | | 644.5546875\nKB | | 1061.83203125 KB |\n\nNo, I did not swap the numbers, I promise. You see that the D2 version\nuses about 400KB more memory but the result of the timings are quite\nsurprising. Being curious I ran both scripts several times which means\nthe query section has to hydrate 500 objects more for each run.\n\n2nd Run\n=======\n\n**1st refresh (1000 objects)**\n\n| Measurement | | Outlet | | Doctrine | | ------------ | |\n----------------- | | ------------------- | | Insert Time | |\n0.26595592498779 | | 0.11661005020142 | | Query Time | |\n0.14437794685364 | | 0.052286863327026 | | Used Memory | | 875.0703125\nKB | | 1313.15625 KB |\n\n3rd Run\n=======\n\n**2nd refresh (1500 objects)**\n\n| Measurement | | Outlet | | Doctrine | | ------------ | |\n----------------- | | ------------------- | | Insert Time | |\n0.2314441204071 | | 0.11621117591858 | | Query Time | | 0.21359491348267\n| | 0.079329013824463 | | Used Memory | | 1139.5859375 KB | | 1541.59375\nKB |\n\nDid you expect these results? After all Doctrine is so bloated, right?\n(Doctrine 2 full package \\~250 classes) and Outlet is so lightweight\n(\\~9 classes)?\n\nBottom line:\n\n- The number of classes barely means anything. (Its probably a good\n criterion if you're short on disk space).\n- \"Lightweight\" is a buzzword and meaningless without a reference\n point.\n- Don't judge a library by its size and certainly dont try to draw\n conclusions from the size to the performance, or worse to the\n scalability. It just doesnt work.\n- *Artificial benchmarks suck.*\n- To all the folks hunting for everything lightweight and\n micro-benchmarking all day long: You're wasting your time (Just like\n I did with this stupid benchmark...).\n- Don't trust artificial benchmarks (Not even this one).\n\nPS: This is no post against Outlet, so if any Outlet guys or fans are\nreading this, please don't feel offended. Since I dont know Outlet well\nI'm sure I did a lot of things wrong but thats really not important\nhere. I am just making a stance against all the ridiculously stupid\nartificial benchmarks out there that try to make people believe Doctrine\nis slow and bloated. This post shows I can make it look the other way\naround easily. That just shows how meaningless these comparisons are.\n\n> **NOTE** All the code used to run these benchmarks can be downloaded\n> from\n> [here](https://www.doctrine-project.org/downloads/doctrine2outletbenchmark.zip).\n> It is a zip archive containing all the code you need to run the\n> benchmarks yourself.\n", + "date": "2009-11-18 00:00:00" }, { - "url": "/2009/05/29/doctrine-lazy-loading.html", - "slug": "doctrine-lazy-loading", - "title": "Doctrine Lazy Loading", + "url": "/2009/06/15/sensio-labs-training-sessions.html", + "slug": "sensio-labs-training-sessions", + "title": "Sensio Labs Training Sessions", "authorName": "jwage", "authorEmail": "", - "contents": "Did you know?\n=============\n\nDid you know that in Doctrine if you don't specifically select a\nproperty or join a relationship in your DQL query, you can lazily load\nthat data? Here is a simple example to demonstrate.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->select('u.id, u.username')\n ->where('u.username = ?', 'jwage');\n\n$user = $q->fetchOne();\n~~~~\n\nNotice how I only selected the `id` and `username`, but we have an\nadditional column named `email_address`. If I were to access that\nproperty it would lazily load the data.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->where('u.username = ?', 'jwage');\n\n$user = $q->fetchOne();\n~~~~\n\nBut then I wanted to retrieve the `Profile` for that `User` I could do\nso by simply accessing the `Profile` property on `User`.\n\n~~~~ {.sourceCode .php}\nProfile;\n~~~~\n\nThe above code would result in an additional query to the database that\nloads the `Profile` record for the `User` in question. Now if I were to\nbe rendering a list of twenty `User` objects and I lazily load the\nprofile of each user that means I would have 21 queries total! That is\ntoo many! In that case it would be smart to `leftJoin()` the `Profile`\nobject like the following.\n\n~~~~ {.sourceCode .php}\ncreateQuery('u')\n ->leftJoin('u.Profile p');\n\n$users = $q->execute();\n~~~~\n\nNow when I access the `Profile` relationship of an individual object the\ndata would already be present and no lazy loading would be required.\n\nWhy?\n====\n\nI made this blog post because I noticed this feature being abused and\noverly used just because it makes things easier. The goal is to make you\naware of what is happening so that you can effectively use lazy loading\nand not end up having applications with very high query counts per page.\n\nI've seen this many times and the blame is often put on Doctrine but\nreally it is the tool not being used properly. So, be aware of when you\nare lazy loading properties and the total number of queries you execute\nper page. Make sure you always join required relationships and only\nselect the properties you need to access. It doesn't make sense to load\ndata if you're not going to be using it.\n\nHow?\n====\n\nIf you need help with keeping track of how many queries you have per\npage, frameworks like\n[Symfony](https://symfony.com/legacy/doc/gentle-introduction/1_4/en/16-Application-Management-Tools#chapter_16_sub_web_debug_toolbar)\nand [Zend Framework](https://framework.zend.com/) give you debug tools to\nshow you how many queries you have per page. Or of course you can always\nuse the\n[Profiling](https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/component-overview.html#profiler)\ntool built in to Doctrine to log the queries in your application and\nkeep track of it that way.\n", - "date": "2009-05-29 00:00:00" + "contents": "If you're a PHP developer and would like to get familiar with the\nconcepts behind MVC Frameworks and ORMs then you should attend one of\nthe Sensio Labs hosted training sessions taught by one of our expert\nconsultants.\n\nThe course covers many topics such as:\n\n- Refactoring a flat file PHP application in to a MVC framework\n- Templating\n- Working environment\n- Routing and HTTP protocol\n- Object Relational Mapper\n- Using the session\n- Unit and Functional Testing\n- Caching your data\n\nThe training utilizes the Symfony MVC framework and the Doctrine Object\nRelational Mapper as the tools of choice for the workshop.\n\nIf you are interested in attending one of these sessions please contact\nme at [jonathan.wage@sensio.com](mailto:jonathan.wage@sensio.com) so we\ncan discuss details.\n", + "date": "2009-06-15 00:00:00" }, { - "url": "/2015/11/23/orm-2-5-2.html", - "slug": "orm-2-5-2", - "title": "Doctrine ORM 2.5.2 Release", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.2`.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"~2.5.2\"\n }\n}\n```\n\nChanges since 2.5.1\n===================\n\nThis is a list of issues resolved in `2.5.2` since `2.5.1`:\n\nBug Fixes\n---------\n\n- [DDC-3677](https://github.com/doctrine/orm/issues/4508)\n [GH-1375](https://github.com/doctrine/orm/pull/3677) DDC-3671\n prevent duplicate unique index\n- [DDC-3899](https://github.com/doctrine/orm/issues/4754)\n [GH-1375](https://github.com/doctrine/orm/pull/3899) Fixed\n wrong property name\n- [DDC-3908](https://github.com/doctrine/orm/issues/4765)\n [GH-1375](https://github.com/doctrine/orm/pull/3908) Fix cache\n storage related test issues (due to doctrine/cache 1.5.0 changes)\n- [DDC-3911](https://github.com/doctrine/orm/issues/4769)\n [GH-1375](https://github.com/doctrine/orm/pull/3911) Backport\n of \"LimitSubqueryOutputWalker: fix aliasing of property in OrderBy\n from MappedSuperclass\"\n- [DDC-3973](https://github.com/doctrine/orm/issues/4832)\n [GH-1375](https://github.com/doctrine/orm/pull/3973)\n [[DDC-3711](https://github.com/doctrine/orm/issues/4547)]\n Correct Error on manyToMany with composite primary key + add Tests\n\nImprovements\n------------\n\n- [DDC-3978](https://github.com/doctrine/orm/issues/4837)\n [GH-1375](https://github.com/doctrine/orm/pull/3978) Allow\n symfony 3.0 components on 2.5\n\nDocumentation\n-------------\n\n- [DDC-3938](https://github.com/doctrine/orm/issues/4798)\n [GH-1375](https://github.com/doctrine/orm/pull/3938) Update\n Upgrade.md after minor bc break in 2.5.1\n\nPlease report any issues you may have with the update on the mailing\nlist or on [JIRA](https://www.doctrine-project.org/jira/browse/DDC).\n", - "date": "2015-11-23 00:00:00" + "url": "/2013/09/25/phpcr-odm-qbv2.html", + "slug": "phpcr-odm-qbv2", + "title": "PHPCR ODM QueryBuilder v2", + "authorName": "dantleech", + "authorEmail": "", + "contents": "managed to merge the new query builder.\n\nI developed the original query builder about 9 months ago - it was one\nof my first contributions to the PHPCR-ODM doctrine project. It was\nheavily based on the ORM query builder and the consensus being that we\nshould make the ODM as intuitive as possible for existing ORM users.\n\nAbstracting PHPCR to fit the existing interface worked up until a point,\nwe could implement the *basic* functionality of the ORM Query Builder\nexactly, things started to come undone when we looked at implementing\njoins.\n\nI had added the joins in the API but didn't get around to implementing\nthem, the methods just threw \"not implemented\" exceptions. Later, when\nwe wanted to implement them, it wasn't so simple. Infact, upon closer\ninspection, many of the things available in the PHPCR API's Query Object\nModel interface were not covered by the model of the query builder we\nhad chosen, in short, it was not fit for purpose. I expounded this on\nthe following wiki page:\n\n- [https://github.com/symfony-cmf/symfony-cmf/wiki/Query-Builder-v2](https://github.com/symfony-cmf/symfony-cmf/wiki/Query-Builder-v2)\n\nAs detailed in the above linked page, it seemed to me that either we\nimplemented a 2 part factory heavy query builder or a fluent node based\nquery builder. The node based design won. However, at the time I never\nimagined it would take so long to write! So nearly 2 months later here\nwe are.\n\nSome features of the new query builder\n\n- Can fully express the PHPCR QOM (Query Object Model).\n- Features a fluent interface.\n- Strict validation and helpful exception messages.\n- Less verbose than the PHPCR QOM model.\n\nLets compare a PHPCR QOM query with its new query builder counterpart:\n\nThe following two examples are equivalent and both select a blog posts\nwith node name \"My Post Title\" having the ODM class \"BlogPost\". We order\nthe result set first by publishing date and then by title.\n\nUsing the PHPCR QOM:\n\n~~~~ {.sourceCode .php}\ncreateQuery(\n // SourceInterface (from)\n $qom->selector('nt:unstructured', 'p')\n $qom->andConstraint(\n $qom->comparison(\n $qom->propertyValue('p', 'phpcr:class'),\n $qom->bindVariableValue('phpcr_class'),\n QueryObjectModelInterface::JCR_OPERATOR_EQUAL_TO\n ),\n $qom->comparison(\n $qom->nodeLocalName('p'),\n $qom->bindVariableValue('post_title'),\n QueryObjectModelInterface::JCR_OPERATOR_EQUAL_TO\n ),\n array(\n $qom->ascending($qom->propertyValue('published_on', 'p'))\n $qom->ascending($qom->propertyValue('title', 'p'))\n )\n )\n);\n$q->bindValue('phpcr_class', 'Blog\\Post');\n$q->bindValue('post_title', 'My Post Title');\n$res = $q->execute();\n~~~~\n\nUsing the new PHPCR-ODM query builder:\n\n~~~~ {.sourceCode .php}\ncreateQueryBuilder()\n ->fromDocument('Blog\\Post', 'p')\n ->where()\n ->eq()->field('p.title')->parameter('post_title')->end()\n ->end()\n ->orderBy()\n ->asc()->field('p.published_on')->end()\n ->asc()->field('p.title')->end()\n ->end()\n ->setParameter('post_title', 'My Post Title')\n ->getQuery();\n$res = $q->execute();\n~~~~\n\nWhilst the two examples above are equivalent it should be noted that we\nare being slightly unfair to the PHPCR QOM as we are forced to add the\n`phpcr:class` constraint, which is a PHPCR-ODMism. Despite this, the new\nAPI is clearly less verbose and, I hope, more intelligible.\n\nThe API allows chaining together operands:\n\n~~~~ {.sourceCode .php}\ncreateQueryBuilder();\n$qb\n ->from()\n ->document('Blog\\Post', 'p')\n ->end()\n ->where()\n ->andX()\n ->orX()\n ->eq()->upperCase()->field('p.username')->end()->literal('DANTLEECH')->end()\n ->eq()->field('c.initials')->literal('dtl')->end()\n ->end()\n ->lte()->field('p.published_on')->literal('2013-09-14')->end()\n ->end()\n ->end();\n~~~~\n\nThe API also allows you to break the query into multiple statements:\n\n~~~~ {.sourceCode .php}\nfrom()->document('Blog\\Post', 'p');\n$qb->where()->eq()->field('p.title')->literal('Foobar');\n$qb->orderBy()->asc()->field('p.title');\n~~~~\n\nAnd to add extra criteria to an existing query builder instance (useful\nif the query builder is instantiated and initialized by a vendor\nlibrary):\n\n~~~~ {.sourceCode .php}\nandWhere()->field('f.site_id')->literal(1);\n }\n}\n~~~~\n\nAs a bonus, the nature of the API also allows us to easily add multiple\nconstraints to `andX` and `orX` operator nodes, something not easily\ndone with the native PHPCR builder:\n\n~~~~ {.sourceCode .php}\nfromDocument('Blog\\Post', 'p');\n\n// we can add one or many constraints to an \"andX\" node...\n$qb->where()->andX()\n ->fieldIsset('p.username')\n ->gt()->field('p.rank')->literal(50)->end()\n ->eq()->fueld('p.title')->literal('This is a title');\n~~~~\n\nThe documentation is now online and is made up of both a guide and a\nreference:\n\n- Guide:\n [http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder.html](http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder.html)\n- Reference:\n [http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder-reference.html](http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/reference/query-builder-reference.html)\n\n", + "date": "2013-09-25 00:00:00" }, { - "url": "/2009/05/27/want-to-contribute-to-doctrine.html", - "slug": "want-to-contribute-to-doctrine", - "title": "Want to contribute to Doctrine?", + "url": "/2008/03/04/doctrine-cheat-sheet.html", + "slug": "doctrine-cheat-sheet", + "title": "Doctrine Cheat Sheet", "authorName": "jwage", "authorEmail": "", - "contents": "Looking for Developers\n======================\n\nWe've been on the hunt for more Doctrine contributors. As the number of\nusers of Doctrine grew we expected the number of commiters to rise with\nit but this has not been the case. We do get a lot of small patches here\nand there, but we are hoping for some of them to grow in to full-time\ncore developers that are involved with all the decisions made about\nDoctrine.\n\nCall to the community\n=====================\n\nYou can see Roman made a call to the Doctrine developers mailing list\n[here](http://groups.google.com/group/doctrine-dev/browse_thread/thread/c6e4c74e1a392909)\nabout the issue. We are taking all the feedback in to consideration and\nwe have started by creating a\n[contribute](https://www.doctrine-project.org/contribute) page that is\nlinked from the primary menu of the website. We hope that this will help\nwith new users finding information faster about how they can get started\ncontributing.\n\nOther Ideas\n===========\n\nIf you have any additional ideas about how we can promote contributing\nto Doctrine you can discuss them in the comments or on the [mailing list\nthread](http://groups.google.com/group/doctrine-dev/browse_thread/thread/c6e4c74e1a392909).\n", - "date": "2009-05-27 00:00:00" + "contents": "I have put together a cheat sheet for all the day to day usage syntaxes\nof Doctrine. The cheat sheet can be found here. This is the first draft\nof the document so any comments and feedback would be very useful.\n", + "date": "2008-03-04 00:00:00" }, { - "url": "/2013/03/24/doctrine-2-4-beta.html", - "slug": "doctrine-2-4-beta", - "title": "Doctrine 2.4 Beta1 released", - "authorName": "Benjamin Eberlei", - "authorEmail": "", - "contents": "**24.03.2013**\n\nWe have released the first beta version of Doctrine 2.4. Some of the\nchanges are listed in [this\ntalk](https://speakerdeck.com/asm89/what-is-new-in-doctrine) by\nAlexander and me from Symfony Live Berlin last year.\n\nYou can find a list of changes on\n[Jira](https://www.doctrine-project.org/jira/issues/?jql=project%20in%20(DDC%2C%20DBAL%2C%20DCOM)%20AND%20fixVersion%20%3D%20%222.4%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20priority%20DESC).\n\nYou can install the release with [Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.4.0-beta1\",\n \"doctrine/dbal\": \"2.4.0-beta1\",\n \"doctrine/common\": \"2.4.0-rc1\"\n }\n }\n\nPlease test this release with your existing applications to allow us to\nfind BC breaks and remove them before the final release. The plan is to\nrelease the final version in the next 4-6 weeks.\n\nIn these next weeks we will work to incorporate all changes in the\ndocumentation.\n", - "date": "2013-03-24 00:00:00" + "url": "/2019/05/21/monetizing-open-source.html", + "slug": "monetizing-open-source", + "title": "Monetizing Open Source", + "authorName": "Jonathan H. Wage", + "authorEmail": "jonwage@gmail.com", + "contents": "In our quest to make Doctrine financially sustainable, we have created\nDoctrine Company, LLC under which the team can conduct business. We've had a strong\n10 years of open source success but we believe that in order for Doctrine to be\ntruly sustainable and to last another decade, we need to diversify and monetize\nthe project. It is our goal to be able to generate enough money through the project\nto fund full or part time work on the project. Below you will find details of some\nof our monetization efforts.\n\n## Patreon\n\nPatreon is a platform that allows open source maintainers, artists, creators, etc. to create\nrelationships with their users and offer them benefits for becoming a patron.\n\nIf you would like to make a donation to the project, Patreon is the place to do it.\nDepending on the tier, we offer a few different benefits:\n\n- A mention on Twitter.\n- Your name and website link on the Doctrine website.\n- Priority responses to Stack Overflow or GitHub issues/PRs.\n- Placement on a [Partners](/partners.html) page on the Doctrine website, with your logo, link, and a paragraph advertising your company's services.\n\n[Become a Patreon](https://www.patreon.com/phpdoctrine) of Doctrine today!\n\n## Consulting\n\nUnder the Doctrine Company, we are providing [consulting and training](/consulting.html)\nservices to companies that use PHP. The services we offer are not limited to Doctrine itself.\nOur team specializes in producing high quality PHP. Whether you are starting a new project or\nmodernizing a legacy application, we can help your team level up their skills with tools\nlike the following:\n\n- [Doctrine DBAL](/projects/dbal.html) - Connect to your favorite RDBMS using Doctrine's database abstraction library.\n- [Doctrine Database Migrations](/projects/migrations.html) - Safely manage your database schema and keep it up to date.\n- [Doctrine ORM](/projects/orm.html) - Represent your domain model cleanly with plain old PHP objects and ensure the integrity of your data.\n- [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) - Keep aesthetic debates out of your code reviews by adopting a coding standard and enforcing it in your build process. We can help integrate Doctrine's own [coding standard](/projects/coding-standard.html) into your project or help codify your own.\n- [Psalm](https://psalm.dev/) / [PHPStan](https://github.com/phpstan/phpstan) - Statically analyze your codebase and find bugs that would otherwise only be found at runtime in production.\n\nIf you are interested, take a look at our [Consulting](/consulting.html) page or contact\nus at [consulting@doctrine-project.org](mailto:consulting@doctrine-project.org) for more\ninformation.\n\n## Events\n\nWe will host regular monthly webinars using [Zoom](https://zoom.us/). Each month we will have different topics\npresented to you by members of the Doctrine Core team or greater PHP community. We already have\nsome great topics lined up for the next few months:\n\n- [Doctrine for Beginners on June 25th](/events/2/doctrine-for-beginners.html)\n- [Getting Started with Doctrine MongoDB ODM on July 16th](/events/3/getting-started-with-doctrine-mongodb-odm.html)\n- [PHP Internals for the Inquisitive Developer on September 10th](/events/1/php-internals-for-the-inquisitive-developer.html)\n\n## Tidelift\n\n[Tidelift](https://tidelift.com) is a managed open source subscription service backed by\ncreators and maintainers. Development teams get better maintained open source. Maintainers\nget paid.\n\nWe have partnered with Tidelift as a maintainer to guarantee a high level of maintenance for their\ncustomers. In return, Tidelift pays Doctrine maintainers a percentage of what the customer pays.\nTidelift is attempting to create a marketplace of open source maintainers and customers with the\ngoal of providing higher levels of confidence for commercial entities when using open source. This\ncan sometimes be one of the biggest challenges for using open source in the corporate world.\nTidelift is taking a unique approach to solving this problem and we are excited to be a part of it!\n\n## Carbon Ads\n\nOne of the most valuable assets we have besides software is our website and the traffic we\nreceive every month. You may have noticed some subtle ad placements on our website. These\ntext-based ads are provided by [Carbon Ads](https://www.carbonads.net/) which is an ad network\noptimized for reaching designers and developers. We understand ads can be annoying and we hope that\nour users understand the trade-off we've made by choosing to place ads on our website.\n\n## Partners\n\nFinally, we are partnering with commercial entities and other projects that use Doctrine to cross\npromote each other. Through our partner network we hope to introduce our users to vetted services\nand offerings from which they can benefit. Thanks to our [Partners](/partners.html) for supporting\nDoctrine.\n", + "date": "2019-05-21 00:00:00" }, { - "url": "/2009/03/03/doctrine-1-1-documentation.html", - "slug": "doctrine-1-1-documentation", - "title": "Doctrine 1.1 Documentation", + "url": "/2010/08/18/mongodb-odm-1-0-0beta1-released.html", + "slug": "mongodb-odm-1-0-0beta1-released", + "title": "MongoDB ODM 1.0.0BETA1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Today I have begun updating the documentation to reflect the changes\nmade in 1.1 and [The Guide to Doctrine for\nPHP](https://www.doctrine-project.org/projects/doctrine1/en/latest/) is now\navailable. We still have some more changes to make but most things have\nbeen updated and added.\n\nBelow is a list of some of the things that still need some updating.\n\n- Migrations\n- SoftDelete\n- Searchable\n\nPlease lend a hand to us by reviewing the documentation and helping us\nidentify things that are lacking or 100% missing. You can create new\ntickets in [trac](http://trac.doctrine-project.org) under the\n\"Documentation/Website\" milestone and we'll get them fixed asap.\n", - "date": "2009-03-03 00:00:00" + "contents": "Today I am happy to tell you we have released the first beta version of\nthe MongoDB Object Document Mapper. It contains many fixes and general\nimprovements across the code.\n\nWe fixed lots of things reported by our users in Jira but also made lots\nof other improvements like improving the use of atomic operators. Read\non for a complete list of the issues fixed in Jira:\n\nFixed Jira Issues\n=================\n\n
      \n
    • \n\n[MODM-32] - dbref \\$id persisted as string instead of objectid\n\n
    • \n
    • \n\n[MODM-33] - Class-level annotations are ignored if set on\nMappedSuperclass\n\n
    • \n
    • \n\n[MODM-34] - Custom Id always gets sent with changeset\n\n
    • \n
    • \n\n[MODM-35] - Proxy item gets reset on persistent collection load if that\nitem was in the collection\n\n
    • \n
    • \n\n[MODM-36] - Embedded relations are not persisted after a flush()\n\n
    • \n
    • \n\n[MODM-37] - Problems with EmbedMany and discrimatorMap and\ndiscriminatorField\n\n
    • \n
    • \n\n[MODM-38] - Using YAML description with embedMany causes PHP notice\nerror\n\n
    • \n
    • \n\n[MODM-41] - Hydration down not work for annotation \"@ReferenceMany\"\n\n
    • \n
    • \n\n[MODM-42] - PersistentCollection fails when working with MongoGridFs\n\n
    • \n
    • \n\n[MODM-45] - Doctrine doesn't persist empty objects\n\n
    • \n
    • \n\n[MODM-46] - @AlsoLoad annotation causes exception when used together\nwith Embed/Reference annotations\n\n
    • \n
    • \n\n[MODM-47] - @AlsoLoad annotation, used on method causes fatal error\n\n
    • \n
    • \n\n[MODM-48] - Embedded document changes are ignored if it was empty before\n\n
    • \n
    • \n\n[MODM-49] - Getting PHP notice and warning with empty persistent\ncollection\n\n
    • \n
    • \n\n[MODM-50] - GridFs file classes don't support inheritance\n\n
    • \n
    • \n\n[MODM-43] - Explicit schema migration\n\n
    • \n
    • \n\n[MODM-40] - Move value scalarization and comparison to Unit Of Work\n\n
    • \n
    \n\nDownload\n========\n\nYou can directly download the PEAR package file\n[here](https://www.doctrine-project.org/downloads/DoctrineMongoDBODM-1.0.0BETA1.tgz).\nYou can manually extract the code or you can install the PEAR package\nfile locally.\n\n $ pear install /path/to/DoctrineMongoDBODM-1.0.0BETA1.tgz\n\nCheckout from github\n--------------------\n\n $ git clone git://github.com/doctrine/mongodb-odm.git mongodb_odm\n $ cd mongodb_odm\n $ git checkout 1.0.0BETA1\n\nInstall via PEAR\n----------------\n\n $ pear install pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0BETA1\n", + "date": "2010-08-18 00:00:00" }, { - "url": "/2009/06/24/thank-you-servergrove.html", - "slug": "thank-you-servergrove", - "title": "Thank you ServerGrove", + "url": "/2009/07/04/major-site-enhancements.html", + "slug": "major-site-enhancements", + "title": "Major Site Enhancements", "authorName": "jwage", "authorEmail": "", - "contents": "As you all may know, we recently\n[moved](https://www.doctrine-project.org/2009/06/16/doctrine-changing-homes.html)\nthe Doctrine infrastructure to a brand new home. This is all thanks to\n[ServerGrove](http://www.servergrove.net/). I contacted them a few\nmonths ago about potentially sponsoring us and they did not hesitate one\nbit. They were more than willing to setup a dedicated community server\nfor us, free of charge. Within 48 hours of my e-mail I had a dedicated\nserver ready to go. I had the server for about a month before I was able\nto make the move. They simply moved faster then I expected and have gone\nabove and beyond anything I could have imagined.\n\nIf you all need proper hosting support for your Symfony or Doctrine\nprojects, I would highly recommend them.\n", - "date": "2009-06-24 00:00:00" + "contents": "You've probably noticed over the past few days I have rolled out some\nmajor new site enhancements. You can find more information below about\nall the changes made.\n\nRegister Now!\n=============\n\nI have opened up a new registration portal on the Doctrine website. This\nwill create a login both on the website and Trac and is also connected\nto your SVN account if you choose to request access.\n\nLogin Now!\n==========\n\nOnce you have registered you can login to the\n[website](https://www.doctrine-project.org/login) and\n[Trac](http://trac.doctrine-project.org/login). This will make some\nextra functionality available for you to manage your user information.\n\nNew Extensions Repository\n=========================\n\nA place where you can browse, search and find out what extensions are\navailable for Doctrine. It contains documentation, ability to run the\nunit tests and download the code.\n\nCheck it out [here](https://www.doctrine-project.org/extensions).\n\nUser Documentation Area\n=======================\n\nFor a long time I have wanted to have an area of the website where users\ncould manage as much user contributed documentation as they want. I have\nstarted the new site with a tutorial on [how to write an\nextension](https://www.doctrine-project.org/documentation/user/1_2/en/how-to-write-an-extension).\n\nNew Homepage Look\n=================\n\nI have slightly tweaked the homepage design to match the design of the\nnew Doctrine\n[book](https://www.amazon.com/Doctrine-ORM-PHP-Jonathan-Wage/dp/2918390038/ref=sr_1_1?ie=UTF8&s=books&qid=1246303098&sr=8-1).\nThis is our first book so if you want to support the Doctrine project or\njust want to learn about Doctrine then we suggest you purchase a copy!\n:)\n\nManage your User Account\n========================\n\nCentral location where you can manage all the information you control as\na Doctrine authenticated user. You can see what extensions you've\nwritten, control your user contributed documentation, request SVN access\nand update your account information. Check it out\n[here](https://www.doctrine-project.org/user/account).\n\nThese changes are primarily based around the new extensions repository\nwhich is available for Doctrine 1.2. You can read about what else is new\nin Doctrine 1.2 [here](https://www.doctrine-project.org/upgrade/1_2).\n", + "date": "2009-07-04 00:00:00" }, { "url": "/2018/04/06/new-website.html", @@ -1926,67 +1746,67 @@ "date": "2018-04-06 00:00:00" }, { - "url": "/2012/09/05/doctrine-2-3-rc3.html", - "slug": "doctrine-2-3-rc3", - "title": "Doctrine 2.3.0 RC3 released", + "url": "/2011/03/20/doctrine-security-fix.html", + "slug": "doctrine-security-fix", + "title": "Security Fix: Upgrade to 1.2.4 and 2.0.3 immediately", "authorName": "beberlei", "authorEmail": "", - "contents": "**5.9.2012**\n\nWe released another release candidate of our upcoming Doctrine 2.3.0\nversion. This includes the Common, DBAL and ORM packages.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nSee the [2.3 Beta blog\npost](https://www.doctrine-project.org/2012/07/16/doctrine-2-3-beta.html) for\nsome information about changes in 2.3.\n\nYou can install the release candidate through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-RC3\"\n },\n \"minimum-stability\": \"dev\"\n }\n\nIf you find any problems with your applications please report them on\nour [bugtracker](https://www.doctrine-project.org/jira).\n\nWhen no blocking issues occur we will release the 2.3.0 final on the\nweekend.\n", - "date": "2012-09-05 00:00:00" + "contents": "Because of a SQL injection possibility we urge users of Doctrine 1.2 and\n2 to the newly released versions of both libraries immediately. Both\nversions only include the security fix and no other changes to their\nprevious versions 1.2.3 and 2.0.2.\n\nAffected versions are:\n\n- 1.2.3 and earlier for PostgreSQL and DB2 Dialects\n- 2.0.2 and earlier\n\nThe security hole was found today and affects the\n`Doctrine\\DBAL\\Platforms\\AbstractPlatform::modifyLimitQuery()` function\nwhich does not cast input values for limit and offset to integer and\nallows malicious SQL to be executed if these parameters are passed into\nDoctrine 2 directly from request variables without previous cast to\ninteger. Functionality building on top using limit queries in the ORM\nsuch as `Doctrine\\ORM\\Query::setFirstResult()` and\n`Doctrine\\ORM\\Query::setMaxResults()` are also affected by this security\nhole.\n\nYou can grab the packages from PEAR, Archive or Github, see the\nrespective links more details:\n\n- [ORM](https://www.doctrine-project.org/projects/orm/download)\n- [DBAL](https://www.doctrine-project.org/projects/dbal/download)\n\nThe fix for this security hole breaks backwards compatibility for\ndevelopers that extend the\n`Doctrine\\DBAL\\Platforms\\AbstractPlatform::modifyLimitQuery()` method,\nbecause it is now marked as final. Please overwrite the\n`Doctrine\\DBAL\\Platforms\\AbstractPlatform::doModifyLimitQuery()` method\ninstead.\n", + "date": "2011-03-20 00:00:00" }, { - "url": "/2010/07/27/document-oriented-databases-vs-relational-databases.html", - "slug": "document-oriented-databases-vs-relational-databases", - "title": "MongoDB ODM: Document-Oriented Databases vs. Relational Databases.", - "authorName": "avalanche123", + "url": "/2012/07/16/doctrine-2-3-beta.html", + "slug": "doctrine-2-3-beta", + "title": "Doctrine 2.3 Beta", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "[My last\npost](https://www.doctrine-project.org/2010/07/22/mongodb-for-ecommerce.html)\nbrought up a lot of questions on the differences between\ndocument-oriented and relational databases, possible use cases for each\nand approaches and gotchas one should remember when dealing with either.\nI had some thoughts on the subject, but they didn't feel complete, so I\ndecided to do some research. I started out by googling [\"document\n-oriented databases vs relational\ndatabases\"](https://www.google.com/search?q=document+-oriented+databases+vs+relational+databases)\n, which brought a number of interesting results. After some intense\nreading and analyzing, I think I have a good enough understanding of the\nconcepts, strengths and weaknesses of different data stores to write and\nshare my findings.\n\nRelational databases were traditionally the most obvious solution for\napplications that needed to store retrieve/data. With the growth of\ninternet user-base, the number of reads and writes a typical application\nneeded to perform grew rapidly. This led to the need for scaling.\nTraditional RDBMSs were hard to scale (SQL operation or Transaction\nspanning multiple nodes doesn't scale well). With solutions like [MySQL\nCluster](https://www.mysql.com/products/cluster/) and [Oracle\nRAC](https://www.oracle.com/database/technologies/rac.html)\n, this is much less of a problem now, but it wasn't the case for a\nwhile, which led to many companies abandoning traditional RDBMSs for\n\"noSQL\" data stores.\n\n> **SIDEBAR** Relational Databases, Object Databases, Key-Value Stores,\n> Document Stores, and Extensible Record Stores: [A\n> Comparison.](http://www.odbms.org/download/RickCattell.pdf) By Rick\n> Cattell:\n>\n> The NoSQL data stores can be categorized into three groups, according\n> to their data model and functionality:\n>\n> - Key-value Store provide a distributed index for object storage,\n> where the objects are typically not even interpreted by the\n> system: they are stored and handed back to the application as\n> BLOBs, as in the popular memcached system I mentioned. However,\n> these systems usually provide object replication for recovery,\n> partitioning of the data over many machines, and rudimentary\n> object persistence. Examples of key-value stores are memcached,\n> Redis, Riak, Scalaris, and Voldemort.\n> - Document Stores provide more functionality: the system does\n> recognize the structure of the objects stored. Objects (or\n> documents) may have a variable number of named attributes of\n> various types (integers, strings), objects can grouped into\n> collections, and the system provides a simple query mechanism to\n> search collections for objects with particular attribute values.\n> Like the key-value stores, document stores can also partition the\n> data over many machines, replicate data for automatic recovery,\n> and persist the data. Examples of document stores are SimpleDB,\n> CouchDB, MongoDB, and Dynamo.\n> - Extensible Record Stores, sometimes called wide column stores,\n> provide a data model more like relational tables, but with a\n> dynamic number of attributes, and like document stores, higher\n> scalability and availability made possible by database\n> partitioning and by abandoning database-wide ACID semantics.\n> Examples of extensible records stores are BigTable, HBase,\n> HyperTable, and Cassandra.\n\nSo when to use a document-oriented database and when to use a relational\ndatabase. The former is usually much better performing and easier to\nscale, while doesn't provide ACID compliance and data integrity that the\nlater has by definition. This means that if we choose to use\ndocument-oriented database, we get more performance and scalability, but\nneed to keep in mind, database level data integrity, transactions and\nlocks are no longer there and will need to be embedded in the\napplication logic itself, which will affect how we write and structure\nour code. In my opinion, document-oriented databases cannot replace\nrelational databases, and vice versa. Instead, they should be used to\nsolve different kinds of problems. At OpenSky we use both MySQL and\nMongoDB.\n", - "date": "2010-07-27 00:00:00" - }, - { - "url": "/2015/12/25/dbal-2-5-3.html", - "slug": "dbal-2-5-3", - "title": "Doctrine DBAL 2.5.3 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n[2.5.3](https://github.com/doctrine/dbal/releases/tag/v2.5.3).\n\nThe SQLServer platform support for pagination query modification was\ncompletely rewritten, improving stability and code quality as well as\nease of maintenance.\n[\\#818](https://github.com/doctrine/dbal/issues/818)\n\nDependency constraints on the\n[doctrine/common](https://github.com/doctrine/common) component\nsupported versions were corrected, allowing users to install\n`doctrine/common` `2.6.*` together with the DBAL.\n[\\#2268](https://github.com/doctrine/dbal/issues/2268)\n\nInstallation\n============\n\nYou can install the DBAL component using Composer:\n\n```bash\ncomposer require doctrine/dbal:~2.5.3\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/dbal/issues).\n", - "date": "2015-12-25 00:00:00" + "contents": "**16.7.2012**\n\nWe tagged the Doctrine 2.3 BETA1 release today. This includes tags for\nthe Common, DBAL and ORM projects.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nThis new release contains not single blockbuster feature, but very many\nlittle ones:\n\n- Custom ID Generators\n- Naming Strategies\n- Collection Criteria API\n- @AssociationOverride and @AttributeOverride (useful for Trait and\n MappedSuperclass)\n- Arbitrary JOIN Syntax (FROM User u JOIN Comment c WITH c.user =\n u.id)\n- Named Native Queries\n\nWe will flesh out the documentation and information about all new\nfeatures in the coming beta phase. We hope to release the final version\nof Doctrine 2.3 just before the upcoming Symfony 2.1 release.\n\nPlease test this release with your applications and provide us with\nfeedback about issues that you find.\n\nYou can install the Beta through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-BETA1\"\n }\n }\n", + "date": "2012-07-16 00:00:00" }, { - "url": "/2014/10/16/dbal-243.html", - "slug": "dbal-243", - "title": "DBAL 2.4.3 released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.4.3, which fixes various bugs discovered during DBAL 2.5.x\ndevelopment.\n\nYou can find all the changes on JIRA:\n\n- [DBAL\n 2.4.3](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10622)\n - 10 issues fixed\n\nYou can install the DBAL using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/dbal\": \"2.4.3\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2014-10-16 00:00:00" + "url": "/2011/09/25/doctrine-maintenance-sep2011.html", + "slug": "doctrine-maintenance-sep2011", + "title": "Maintenance 2.1 Releases for Common, DBAL and ORM and DBAL 2.0.9", + "authorName": "beberlei", + "authorEmail": "", + "contents": "We have released the maintenance versions Common 2.1.2, DBAL 2.1.3 and\nORM 2.1.2.\n\n- [Common 2.1.2\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10161)\n- [DBAL 2.1.3\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10162)\n- [ORM 2.1.2\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10154)\n\nA total of 20 bugs have been fixed in all 3 components. The DBAL release\ncontains a security fix for the Oracle driver fixing [a possible SQL\ninjection issue](https://github.com/doctrine/dbal/issues/1321).\nIf you are using Oracle please update immediately. This security fix was\nbackported to 2.0 and a new 2.0.9 version was released.\n", + "date": "2011-09-25 00:00:00" }, { - "url": "/2014/09/11/orm-244.html", - "slug": "orm-244", - "title": "ORM 2.4.4 released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.4, which fixes a minor regression introduced by\n[DDC-2996](https://github.com/doctrine/orm/issues/3760).\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.4](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10720)\n - 1 issue fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.4\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2014-09-11 00:00:00" + "url": "/2011/12/19/doctrine-2-1-5.html", + "slug": "doctrine-2-1-5", + "title": "Doctrine ORM 2.1.5 released", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "We released another Doctrine ORM bugfix release, version 2.1.5. It fixes\n5 critical regressions that were introduced in 2.1.0, 2.1.2 and 2.1.3\nand a total of 10 issues. See the\n[changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10170)\nfor details.\n\nYou can get the code from [PEAR](http://pear.doctrine-project.org) , the\ndownload section or directly from \\`Github\n\\<[https://github.com/doctrine/orm/tree/2.1.5](https://github.com/doctrine/orm/tree/2.1.5)\\`\\_.\n", + "date": "2011-12-19 00:00:00" }, { - "url": "/2008/05/03/website-upgraded-to-symfony-1-1-and-doctrine-0-11.html", - "slug": "website-upgraded-to-symfony-1-1-and-doctrine-0-11", - "title": "Website upgraded to symfony 1.1 and Doctrine 0.11", + "url": "/2008/02/18/doctrine-orm-sandbox.html", + "slug": "doctrine-orm-sandbox", + "title": "Doctrine ORM Sandbox", "authorName": "jwage", "authorEmail": "", - "contents": "

    \n\nToday I have upgraded the Doctrine website to symfony 1.1 and Doctrine\n0.11. The integration between the symfony framework and Doctrine with\nsfDoctrinePlugin has become pretty complete in the last few days. It now\nhas all the same functionality as the bundled sfPropelPlugin with\nsymfony 1.1 plus dozens more features a long with the Doctrine DBAL and\nORM. The main features introduced to the symfony framework are\nmigrations, DQL, behaviors, inheritance and a sprinkle of additional\nadmin generator features. I have also completely re-ported\nsfGuardDoctrinePlugin from sfGuardPlugin so it is in sync with it and\nhas exactly the same features, nothing more. The removed functionality\nwill be moved to separate plugins that work with sfGuardDoctrinePlugin.\n\n

    \n\nThe source of the Doctrine website can be gotten from svn here\n[http://www.phpdoctrine.org/svnweb](http://www.phpdoctrine.org/svnweb)\n\n

    \n\n\n", - "date": "2008-05-03 00:00:00" + "contents": "Today I would like to announce the official introduction of the Doctrine\nsandbox package. The Doctrine sandbox was first introduced in SVN a few\nmonths ago, but is now available as a downloaded package. Every major\nrelease of Doctrine has a sandbox available for it. The sandbox is a\nsample implementation of Doctrine that is ready to be used with zero\nconfiguration. It comes configured with a sqlite database so it requires\nthat you have pdo sqlite enabled on your server. The packages can be\ndownloaded here. I have also put together a small wiki page on how you\ncan get started using the sandbox to easily play with Doctrine. The wiki\npage can be found here.\n", + "date": "2008-02-18 00:00:00" }, { - "url": "/2009/06/15/sensio-labs-training-sessions.html", - "slug": "sensio-labs-training-sessions", - "title": "Sensio Labs Training Sessions", - "authorName": "jwage", + "url": "/2014/12/20/inflector-101.html", + "slug": "inflector-101", + "title": "Inflector 1.0.1 released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of\n`doctrine/inflector` 1.0.1.\n\nThe release includes minor fixes since the first 1.0.0 release, and also\nstabilizes and enforces support for HHVM.\n\n- [49: \\#46 - applying correct chmod() to generated cache\n file](https://github.com/doctrine/annotations/pull/49)\n- [50: Hotfix: match escaped quotes (revert\n \\#44)](https://github.com/doctrine/annotations/pull/50)\n\n- [1: Corrected keyword\n spelling](https://github.com/doctrine/inflector/pull/1)\n- [2: Documentation\n fixes](https://github.com/doctrine/inflector/pull/2)\n- [3: Added the branch alias for\n master](https://github.com/doctrine/inflector/pull/3)\n- [4: Fixed typo](https://github.com/doctrine/inflector/pull/4)\n- [5: exclude word 'staff' from inflectable\n ones](https://github.com/doctrine/inflector/pull/5)\n- [6: add LICENSE file](https://github.com/doctrine/inflector/pull/6)\n- [7: HHVM is not allowed to fail anymore. Inflector should work as\n expected](https://github.com/doctrine/inflector/pull/7)\n- [10: Added the local phpunit config to the ignore\n list](https://github.com/doctrine/inflector/pull/10)\n- [12: Adding 'human' to the irregular\n array](https://github.com/doctrine/inflector/pull/12)\n- [14: Add testing on PHP 5.6 on\n Travis](https://github.com/doctrine/inflector/pull/14)\n\nYou can install the Inflector library using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/inflector\": \"1.0.1\"\n }\n}\n~~~~\n", + "date": "2014-12-20 00:00:00" + }, + { + "url": "/2013/12/23/our-hhvm-roadmap.html", + "slug": "our-hhvm-roadmap", + "title": "Our HHVM Roadmap", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "If you're a PHP developer and would like to get familiar with the\nconcepts behind MVC Frameworks and ORMs then you should attend one of\nthe Sensio Labs hosted training sessions taught by one of our expert\nconsultants.\n\nThe course covers many topics such as:\n\n- Refactoring a flat file PHP application in to a MVC framework\n- Templating\n- Working environment\n- Routing and HTTP protocol\n- Object Relational Mapper\n- Using the session\n- Unit and Functional Testing\n- Caching your data\n\nThe training utilizes the Symfony MVC framework and the Doctrine Object\nRelational Mapper as the tools of choice for the workshop.\n\nIf you are interested in attending one of these sessions please contact\nme at [jonathan.wage@sensio.com](mailto:jonathan.wage@sensio.com) so we\ncan discuss details.\n", - "date": "2009-06-15 00:00:00" + "contents": "Facebook has been [pushing HHVM alot\nlately](https://hhvm.com/blog/2813/we-are-the-98-5-and-the-16) ,\nhelping open source projects to get their test-suite running 100%. For\nDoctrine HHVM is particularly interesting, because of the performance\ngains that the complex PHP algorithms inside ORM would probably get.\nFrom my current feeling Doctrine will be the PHP open-source project\ngetting the most gain from running on HHVM. However with the tests not\nyet passing on the ORM, we can only imagine how big that performance\nimprovement will be.\n\nOne roadblock for us to investigate HHVM in more detail was missing CI\nsupport. But then Travis CI [announced support for\nHHVM](https://blog.travis-ci.com/2013-12-16-test-php-code-with-the-hiphop-vm)\nlast week. With automated testing support available we think it is time\nto announce our official HHVM roadmap.\n\nOne of our goals for 2014 is running DBAL and ORM on HHVM with 100% of\nthe testsuites passing. Every Doctrine subproject targeting to support\nHHVM will start running the tests against HHVM with `allow_failure`\nenabled on Travis CI. Whenever a Doctrine subproject passes all its\ntests on HHVM, we will remove the `allow_failure` and the project will\nbe officially supporting HHVM from that version on.\n\nSo far we have been working on the Common projects to run on HHVM for\nseveral months now and Guilherme and Alexander are contributing to HHVM\nitself to get some missing APIs working. We are happy to announce that\nthe following Common projects currently have full HHVM support from us:\n\n- [Collections](https://travis-ci.org/doctrine/collections)\n- [Inflector](https://travis-ci.org/doctrine/inflector)\n- [Lexer](https://travis-ci.org/doctrine/lexer)\n\nGuilherme is working on getting\n[Annotations](https://travis-ci.org/doctrine/annotations) and\n[Cache](https://travis-ci.org/doctrine/cache) working and the\n[Common](https://travis-ci.org/doctrine/common) mainproject will be\nevaluated shortly after all the common projects succeed.\n[DBAL](https://travis-ci.org/doctrine/dbal) and\n[ORM](https://travis-ci.org/doctrine/orm) will be much more work,\nbut we are very confident to achieve this goal.\n\nIf you want to help us with this goal, you can check the current Travis\nfailure reports of the projects and come up with ideas how to fix them\nin the Doctrine code or with bug reports for HHVM. We are glad to\ndiscuss these issues on Freenode IRC in channel \"\\#doctrine-dev\".\n\nWith this announcement we hope that other PHP projects, frameworks and\nlibraries will follow to make HHVM an official build target in the\nfuture.\n", + "date": "2013-12-23 00:00:00" }, { "url": "/2023/08/21/doctrine-orm-team-meetup.html", @@ -1998,481 +1818,445 @@ "date": "2023-08-21 00:00:00" }, { - "url": "/2010/08/06/doctrine2-orm-beta3.html", - "slug": "doctrine2-orm-beta3", - "title": "Doctrine ORM Beta 3 released", - "authorName": "romanb", - "authorEmail": "", - "contents": "We would like to announce the immediate release of Doctrine ORM BETA 3:\n\n- [Installation](https://www.doctrine-project.org/projects/orm/2.0/download/2.0.0BETA3)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10060)\n\nWe fixed 45 issues, most of them bugs reported by our users. The ORM\npackage is now in a state where no new features will be added and we\nwill fully concentrate the efforts on fixing bugs and bringing the\nrelease to a stable state.\n\nNotable changes include:\n\n- `EntityManager#merge()` has been improved considerably and now also\n accepts new entities.\n- Uninitialized Proxies can now be serialized and only throw an\n exception when they are unserialized and accessed without being\n merged into the EntityManager.\n- New method `EntityManager#getPartialReference()` that returns a\n partial entity that only contains the entities primary key and won't\n lazy-load (hence \"partial\").\n\nThis release contains three backwards incompatible changes you should\nknow about when upgrading:\n\nChanged SQL implementation of Postgres and Oracle DateTime types\n================================================================\n\nThe DBAL Type \"datetime\" included the Timezone Offset in both Postgres\nand Oracle. As of this version they are now generated without Timezone\n(TIMESTAMP WITHOUT TIME ZONE instead of TIMESTAMP WITH TIME ZONE). See\n[this comment to Ticket\nDBAL-22](https://www.doctrine-project.org/jira/browse/DBAL-22?focusedCommentId=13396&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_13396)\nfor more details as well as migration issues for PostgreSQL and Oracle.\n\nBoth Postgres and Oracle will throw Exceptions during hydration of\nObjects with \"DateTime\" fields unless migration steps are taken!\n\nRemoved multi-dot/deep-path expressions in DQL\n==============================================\n\nThe support for implicit joins in DQL through the multi-dot/Deep Path\nExpressions was dropped. For example:\n\n SELECT u FROM User u WHERE u.group.name = ?1\n\n\"u.group.name\" is a nested path expression that is an implicit join.\nInternally the DQL parser would rewrite these queries to:\n\n SELECT u FROM User u JOIN u.group g WHERE g.name = ?1\n\nThis explicit notation will be the only supported notation as of now.\nThe internal handling of nested path expressions for implicit joins in\nthe DQL Parser was too complex and error prone in edge cases and\nrequired special treatment for several features we added. Note that this\ndoes not remove any existing functionality, only a convenience notation\nthat can be expressed otherwise. Hence the generated SQL of both\nnotations is exactly the same.\n\nDefault Allocation Size for Sequences\n=====================================\n\nThe default allocation size for sequences has been changed from 10 to 1.\nThis step was made to not cause confusion with users and also because it\nis partly some kind of premature optimization.\n\nWhat next\n=========\n\nIt seems likely that we will not be able to hold the anticipated release\ndate of September 1st for the final release. Instead September 1st will\nlikely see the last beta release, BETA 4, after which we hope to enter\nthe release candiates soon, followed by the stable release.\n", - "date": "2010-08-06 00:00:00" + "url": "/2015/04/02/orm-2-5-0.html", + "slug": "orm-2-5-0", + "title": "Doctrine ORM 2.5.0 Release", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.0`.\n\nThis release spans over almost 2 years of development, and is a major\neffort by the team and the community to make the ORM more robust and\nperformant.\n\n[457\nissues](?jql=project%20%3D%20DDC%20AND%20fixVersion%20%3D%202.5%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC)\nwere resolved in this release, so we are very proud of the work being\ndone by the community and the core team.\n\nWhat is new in 2.5.x?\n=====================\n\nDoctrine ORM 2.5.0 comes with a set of major improvements:\n\n- The Second-level Cache, a component that greatly improves ORM\n performance\n- Embeddable classes, allowing for a more fine-grained design of your\n entities without having to resort to one-to-one associations for\n Value Objects\n- Entity type specific event listeners, for improved event handling\n performance\n- Improvements in the Criteria Collection filtering API, now also\n supporting `EXTRA_LAZY` filtering\n\nWhat has to be done to upgrade to 2.5.x?\n========================================\n\nSome backwards incompatible changes were also involved in this release:\nto read them, along with a more extensive list of the 2.5.0 changes,\nplease consult [the upgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nStability\n=========\n\nWe currently do not have a release schedule for Doctrine ORM `2.6.0`.\n\nAs of today, Doctrine ORM `2.5.x` is our stable distribution, and will\nreceive regular bugfix releases.\n\nDoctrine ORM `2.4.8` will be the last bugfix release for the `2.4.x`\nseries. Further releases will only occur in the eventuality of a\nsecurity issue being discovered.\n\nWe will also keep patching previous versions of the ORM in the\neventuality of a security issue being discovered.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"~2.5.0\"\n }\n}\n```\n\nChanges since 2.4.0\n===================\n\nThis is a list of issues resolved in `2.5.0` since `2.4.0`:\n\nNew Feature\n-----------\n\n- [DDC-93](https://github.com/doctrine/orm/issues/1581) - It\n would be nice if we could have support for ValueObjects\n- [DDC-1149](https://github.com/doctrine/orm/issues/1749)\n -Optimize OneToMany and ManyToMany without join\n- [DDC-1216](https://github.com/doctrine/orm/issues/1823)\n -A way to mark an entity to always use result cache. Like\n @UseResultCache class annotation.\n- [DDC-1247](https://github.com/doctrine/orm/issues/1856)\n -Implement AnnotationDriver::addExcludePath\n- [DDC-1563](https://github.com/doctrine/orm/issues/2199)\n -Result cache for repository queries\n- [DDC-2021](https://github.com/doctrine/orm/issues/2698)\n -Array Data in Member OF\n- [DDC-2773](https://github.com/doctrine/orm/issues/3520)\n -[\\#835](https://github.com/doctrine/orm/pull/835) Value\n objects (Based on \\#634)\n- [DDC-2959](https://github.com/doctrine/orm/issues/3722)\n -[\\#937](https://github.com/doctrine/orm/pull/937)\n Extra-lazy for containsKey on collections\n- [DDC-3117](https://github.com/doctrine/orm/issues/3893)\n -[\\#1027](https://github.com/doctrine/orm/pull/1027) Support\n for Partial Indexes for PostgreSql and Sqlite\n- [DDC-3161](https://github.com/doctrine/orm/issues/3941)\n -[\\#1054](https://github.com/doctrine/orm/pull/1054)\n SQLFilters enahancements\n- [DDC-3186](https://github.com/doctrine/orm/issues/3968)\n -[\\#1069](https://github.com/doctrine/orm/pull/1069) added\n method to be able to reuse the console application\n- [DDC-3231](https://github.com/doctrine/orm/issues/4019)\n -[\\#1089](https://github.com/doctrine/orm/pull/1089) Entity\n repository generator default repository\n- [DDC-3300](https://github.com/doctrine/orm/issues/4094)\n -[\\#1130](https://github.com/doctrine/orm/pull/1130) Added\n resolve entities support in discrim. map\n- [DDC-3385](https://github.com/doctrine/orm/issues/4187)\n -[\\#1181](https://github.com/doctrine/orm/pull/1181) Support\n fetching entities by aliased name\n- [DDC-3462](https://github.com/doctrine/orm/issues/4272)\n -[\\#1230](https://github.com/doctrine/orm/pull/1230) Allow\n dumping SQL query when passing DQL on cli\n- [DDC-3503](https://github.com/doctrine/orm/issues/4317)\n -[\\#1257](https://github.com/doctrine/orm/pull/1257) Resolve\n target entity also in discriminator map (allows interfaces and\n custom names in discriminator map)\n- [DDC-3567](https://github.com/doctrine/orm/issues/4386)\n -[\\#1303](https://github.com/doctrine/orm/pull/1303) make\n QueryBuilder::getAllAliases public\n\nImprovement\n-----------\n\n- [DDC-54](https://github.com/doctrine/orm/issues/5047)\n -Trigger postLoad events and callbacks after associations have been\n initialized\n- [DDC-1590](https://github.com/doctrine/orm/issues/2227)\n -Fix Inheritance in Code-Generation\n- [DDC-1787](https://github.com/doctrine/orm/issues/2441)\n -Fix for JoinedSubclassPersister, multiple inserts with versioning\n throws an optimistic locking exception\n- [DDC-1858](https://github.com/doctrine/orm/issues/2519)\n -LIKE and IS NULL operators not supported in HAVING clause\n- [DDC-2052](https://github.com/doctrine/orm/issues/2732)\n -Custom tree walkers are not allowed to add new components to the\n query\n- [DDC-2061](https://github.com/doctrine/orm/issues/2742)\n -Matching Criteria on a PersistentCollection only works on OneToMany\n associations\n- [DDC-2128](https://github.com/doctrine/orm/issues/2815)\n -[\\#507](https://github.com/doctrine/orm/pull/507) Now\n MetaDataFilter takess also regexp. For example whern you want to\n- [DDC-2183](https://github.com/doctrine/orm/issues/2876)\n -Second Level Cache improvements\n- [DDC-2210](https://github.com/doctrine/orm/issues/2907)\n -PHP warning in ProxyFactory when renaming proxy file\n- [DDC-2217](https://github.com/doctrine/orm/issues/2914)\n -Return a lazy collection from\n PersistentCollection::match(\\$criteria)\n- [DDC-2319](https://github.com/doctrine/orm/issues/3023)\n -[\\#590](https://github.com/doctrine/orm/pull/590) DQL\n Query: process ArrayCollection values to ease development\n- [DDC-2534](https://github.com/doctrine/orm/issues/3258)\n -[\\#711](https://github.com/doctrine/orm/pull/711) Coveralls\n code coverage\n- [DDC-2538](https://github.com/doctrine/orm/issues/3262)\n -[\\#713](https://github.com/doctrine/orm/pull/713) Quick\n grammar fix\n- [DDC-2544](https://github.com/doctrine/orm/issues/3269)\n -[\\#717](https://github.com/doctrine/orm/pull/717) Allow\n query parameters starting with an underscore\n- [DDC-2546](https://github.com/doctrine/orm/issues/3271)\n -[\\#719](https://github.com/doctrine/orm/pull/719) Access\n properties via static:: instead of self::.\n- [DDC-2615](https://github.com/doctrine/orm/issues/3347)\n -LIKE operator not supported in HAVING clause\n- [DDC-2636](https://github.com/doctrine/orm/issues/3370)\n -Handle SQLite with dot notation in @Table and @JoinTable\n- [DDC-2639](https://github.com/doctrine/orm/issues/3373)\n -[\\#771](https://github.com/doctrine/orm/pull/771) Added\n indexBy option to createQueryBuilder\n- [DDC-2770](https://github.com/doctrine/orm/issues/3517)\n -[\\#833](https://github.com/doctrine/orm/pull/833)\n Generate-Entities-Console-Command: Adding an 'avoid backup' flag\n- [DDC-2789](https://github.com/doctrine/orm/issues/3537)\n -[\\#844](https://github.com/doctrine/orm/pull/844) Teach\n orm:validate-schema to --skip-mapping and --skip-sync\n- [DDC-2794](https://github.com/doctrine/orm/issues/3543)\n -the Paginator does not support arbitrary join\n- [DDC-2814](https://github.com/doctrine/orm/issues/3566)\n -[\\#858](https://github.com/doctrine/orm/pull/858) lifts an\n unnecessary restriction on ResultSetMappingBuilder\n- [DDC-2824](https://github.com/doctrine/orm/issues/3577)\n -[\\#863](https://github.com/doctrine/orm/pull/863) The new\n configuration option: defaultQueryHints\n- [DDC-2861](https://github.com/doctrine/orm/issues/3617)\n -[\\#881](https://github.com/doctrine/orm/pull/881) Fix\n persistence exception on a table with a schema on a platform without\n schema support\n- [DDC-2865](https://github.com/doctrine/orm/issues/3621)\n -[\\#882](https://github.com/doctrine/orm/pull/882) Efficient\n counting on Criteria\n- [DDC-2868](https://github.com/doctrine/orm/issues/3624)\n -[\\#885](https://github.com/doctrine/orm/pull/885) Add\n support for ManyToMany Criteria\n- [DDC-2926](https://github.com/doctrine/orm/issues/3686)\n -[\\#914](https://github.com/doctrine/orm/pull/914) added\n license badge\n- [DDC-2970](https://github.com/doctrine/orm/issues/3735)\n -[\\#946](https://github.com/doctrine/orm/pull/946) Cleaned\n up unused imports\n- [DDC-2981](https://github.com/doctrine/orm/issues/3745)\n -Multi get for second level cache (Doctrine Cache related)\n- [DDC-2982](https://github.com/doctrine/orm/issues/3746)\n -[\\#954](https://github.com/doctrine/orm/pull/954) Multi Get\n support for Second Level Cache\n- [DDC-2984](https://github.com/doctrine/orm/issues/3748)\n -Support Custom DBAL types to be used as identifiers\n- [DDC-2991](https://github.com/doctrine/orm/issues/3755)\n -[\\#957](https://github.com/doctrine/orm/pull/957) makes\n doctrine less dependent upon the symfony yaml component\n- [DDC-2999](https://github.com/doctrine/orm/issues/3763)\n -[\\#962](https://github.com/doctrine/orm/pull/962) Stop\n executeDeletions when there is nothing to to delete anymore\n- [DDC-3000](https://github.com/doctrine/orm/issues/3767)\n -[\\#963](https://github.com/doctrine/orm/pull/963) SQLFilter\n -- allows to check if a parameter was set\n- [DDC-3004](https://github.com/doctrine/orm/issues/3771)\n -[\\#966](https://github.com/doctrine/orm/pull/966) Simplify\n build matrix\n- [DDC-3005](https://github.com/doctrine/orm/issues/3772)\n -Events::postLoad fires without filled associations\n- [DDC-3014](https://github.com/doctrine/orm/issues/3781)\n -[\\#973](https://github.com/doctrine/orm/pull/973) Added\n index flags support in annotation, xml & yaml mapping drivers.\n- [DDC-3032](https://github.com/doctrine/orm/issues/3801)\n -[\\#980](https://github.com/doctrine/orm/pull/980) Added\n options attribute export to Annotation, Xml & Yaml exporters.\n- [DDC-3039](https://github.com/doctrine/orm/issues/3808)\n -[\\#983](https://github.com/doctrine/orm/pull/983) Added\n MEMBER OF and INSTANCE OF to ExpressionBuilder\n- [DDC-3068](https://github.com/doctrine/orm/issues/3840)\n -EntityManager::find does not accept an array of object as a primary\n key\n- [DDC-3070](https://github.com/doctrine/orm/issues/3843)\n -[\\#1001](https://github.com/doctrine/orm/pull/1001)\n [DDC-3005](https://github.com/doctrine/orm/issues/3772)\n Defer invoking of postLoad event to the end of hydration cycle.\n- [DDC-3076](https://github.com/doctrine/orm/issues/3849)\n -[\\#1006](https://github.com/doctrine/orm/pull/1006)\n Handling invalid discriminator values\n- [DDC-3114](https://github.com/doctrine/orm/issues/3891)\n -[\\#1026](https://github.com/doctrine/orm/pull/1026) Remove\n some redundant clauses\n- [DDC-3133](https://github.com/doctrine/orm/issues/3911)\n -[\\#1036](https://github.com/doctrine/orm/pull/1036) Move\n space addition to implementation.\n- [DDC-3138](https://github.com/doctrine/orm/issues/3916)\n -[\\#1037](https://github.com/doctrine/orm/pull/1037) I can't\n look at those semicolons, sorry ;-)\n- [DDC-3150](https://github.com/doctrine/orm/issues/3929)\n -[\\#1047](https://github.com/doctrine/orm/pull/1047) Minor\n grammatical corrections\n- [DDC-3178](https://github.com/doctrine/orm/issues/3959)\n -[\\#1064](https://github.com/doctrine/orm/pull/1064) remove\n on-update from join-column\n- [DDC-3249](https://github.com/doctrine/orm/issues/4037)\n -[\\#1105](https://github.com/doctrine/orm/pull/1105) Add\n support for nesting embeddables\n- [DDC-3257](https://github.com/doctrine/orm/issues/4046)\n -[\\#1112](https://github.com/doctrine/orm/pull/1112)\n DefaultRepositoryFactory: single repository for aliased entities\n- [DDC-3258](https://github.com/doctrine/orm/issues/4047)\n -[\\#1113](https://github.com/doctrine/orm/pull/1113) Added\n support for composite primary key on findBy methods and Criteria\n- [DDC-3274](https://github.com/doctrine/orm/issues/4064)\n -Improve schema validator error message\n- [DDC-3275](https://github.com/doctrine/orm/issues/4065)\n -[\\#1121](https://github.com/doctrine/orm/pull/1121)\n [DDC-3274](https://github.com/doctrine/orm/issues/4064)\n Improve schema validator error message for invalid bi-directional\n relations\n- [DDC-3276](https://github.com/doctrine/orm/issues/4066)\n -[\\#1122](https://github.com/doctrine/orm/pull/1122) Support\n arithmetic expressions in `COUNT()`\n- [DDC-3304](https://github.com/doctrine/orm/issues/4098)\n -[EntityGenerator] Embeddables properties and methods are broken\n- [DDC-3305](https://github.com/doctrine/orm/issues/4099)\n -[\\#1133](https://github.com/doctrine/orm/pull/1133)\n [Embeddables] Improved exception message\n- [DDC-3307](https://github.com/doctrine/orm/issues/4101)\n -[\\#1135](https://github.com/doctrine/orm/pull/1135)\n [DDC-3304](https://github.com/doctrine/orm/issues/4098)\n Add support for embeddables in entity generator\n- [DDC-3418](https://github.com/doctrine/orm/issues/4223)\n -Indexes not inherited from mapped superclass\n- [DDC-3457](https://github.com/doctrine/orm/issues/4266)\n -[\\#1227](https://github.com/doctrine/orm/pull/1227) Ensure\n query cache is not ArrayCache in production\n- [DDC-3461](https://github.com/doctrine/orm/issues/4271)\n -[\\#1229](https://github.com/doctrine/orm/pull/1229)\n Identity in onetoone association builder\n- [DDC-3477](https://github.com/doctrine/orm/issues/4287)\n -[\\#1238](https://github.com/doctrine/orm/pull/1238) Avoid\n prefixing columns when `false` is assigned to `column-prefix`\n- [DDC-3479](https://github.com/doctrine/orm/issues/4289)\n -[\\#1240](https://github.com/doctrine/orm/pull/1240) Include\n IDs in the exception message to ease debugging\n- [DDC-3483](https://github.com/doctrine/orm/issues/4294)\n -[\\#1243](https://github.com/doctrine/orm/pull/1243) Fixed\n phpunit tests autoload requirements and moved to composer\n autoload-dev\n- [DDC-3486](https://github.com/doctrine/orm/issues/4297)\n -[\\#1245](https://github.com/doctrine/orm/pull/1245)\n Implemented support for one to many extra lazy with joined\n inheritance.\n- [DDC-3487](https://github.com/doctrine/orm/issues/4298)\n -[\\#1246](https://github.com/doctrine/orm/pull/1246) Moved\n delete() and update() to proper locations.\n- [DDC-3490](https://github.com/doctrine/orm/issues/4302)\n -[\\#1248](https://github.com/doctrine/orm/pull/1248)\n improved error handling for invalid association values \\#2\n- [DDC-3492](https://github.com/doctrine/orm/issues/4304)\n -[\\#1249](https://github.com/doctrine/orm/pull/1249) Support\n for extra lazy get for both owning and inverse side on many to many\n associations.\n- [DDC-3495](https://github.com/doctrine/orm/issues/4307)\n -[\\#1251](https://github.com/doctrine/orm/pull/1251) travis:\n optimize to run coverage only once\n- [DDC-3496](https://github.com/doctrine/orm/issues/4308)\n -[\\#1252](https://github.com/doctrine/orm/pull/1252) Include\n className in calls to NamingStrategy joinColumnName method\n- [DDC-3501](https://github.com/doctrine/orm/issues/4315)\n -[\\#1255](https://github.com/doctrine/orm/pull/1255)\n Cleanup: PHP 5.3 support end\n- [DDC-3504](https://github.com/doctrine/orm/issues/4318)\n -[\\#1258](https://github.com/doctrine/orm/pull/1258)\n Classify persisters into more granular namespaces.\n- [DDC-3514](https://github.com/doctrine/orm/issues/4328)\n -LimitSubqueryOutputWalker should not duplicate orderBy clauses\n- [DDC-3521](https://github.com/doctrine/orm/issues/4336)\n -[\\#1269](https://github.com/doctrine/orm/pull/1269)\n [DDC-3520](https://github.com/doctrine/orm/issues/4335)\n self-update composer before install\n- [DDC-3528](https://github.com/doctrine/orm/issues/4343)\n -[\\#1274](https://github.com/doctrine/orm/pull/1274)\n PersistentCollection now extends AbstractLazyCollection.\n- [DDC-3541](https://github.com/doctrine/orm/issues/4358)\n -[\\#1286](https://github.com/doctrine/orm/pull/1286)\n Removing XDebug from non-coverage builds\n- [DDC-3546](https://github.com/doctrine/orm/issues/4363)\n -[\\#1289](https://github.com/doctrine/orm/pull/1289) Improve\n test suite\n- [DDC-3549](https://github.com/doctrine/orm/issues/4366)\n -[\\#1292](https://github.com/doctrine/orm/pull/1292) Mark\n getSelectConditionStatementColumnSQL method as private\n- [DDC-3588](https://github.com/doctrine/orm/issues/4409)\n -[\\#1314](https://github.com/doctrine/orm/pull/1314)\n DATE\\_ADD\n - Support for seconds\n- [DDC-3590](https://github.com/doctrine/orm/issues/4412)\n -[\\#1316](https://github.com/doctrine/orm/pull/1316) Allow\n to join non-public schema tables\n- [DDC-3594](https://github.com/doctrine/orm/issues/4416)\n -[\\#1319](https://github.com/doctrine/orm/pull/1319) travis:\n PHP 7.0 nightly added\n- [DDC-3607](https://github.com/doctrine/orm/issues/4431)\n -[\\#1326](https://github.com/doctrine/orm/pull/1326) Allow\n AssociationBuilder to set a relation as orphan removal\n- [DDC-3630](https://github.com/doctrine/orm/issues/4457)\n -[\\#1343](https://github.com/doctrine/orm/pull/1343) Support\n embeddables in partial object query expression\n [DDC-3621](https://github.com/doctrine/orm/issues/4447)\n- [DDC-2850](https://github.com/doctrine/orm/issues/3605)\n -Allow cascaded clearing of Entities associated to the indicated\n Entity\n\nBugfix\n------\n\n- [DDC-1624](https://github.com/doctrine/orm/issues/2265)\n -Locking CTI doesnt work on SQL Server\n- [DDC-2310](https://github.com/doctrine/orm/issues/3014)\n -Recent changes to DBAL SQL Server platform lock hinting breaks ORM\n SqlWalker in DQL queries with joins\n- [DDC-2352](https://github.com/doctrine/orm/issues/3059)\n -[\\#615](https://github.com/doctrine/orm/pull/615) Update\n SqlWalker.php\n- [DDC-2372](https://github.com/doctrine/orm/issues/3081)\n -[\\#632](https://github.com/doctrine/orm/pull/632) entity\n generator - ignore trait properties and methods\n- [DDC-2504](https://github.com/doctrine/orm/issues/3226)\n -[\\#696](https://github.com/doctrine/orm/pull/696) extra\n lazy joined test\n- [DDC-2559](https://github.com/doctrine/orm/issues/3285)\n -[\\#728](https://github.com/doctrine/orm/pull/728) Color\n message like the update tools\n- [DDC-2561](https://github.com/doctrine/orm/issues/3288)\n -[\\#729](https://github.com/doctrine/orm/pull/729) add\n missing hint about lifecycle callback\n- [DDC-2562](https://github.com/doctrine/orm/issues/3289)\n -[\\#730](https://github.com/doctrine/orm/pull/730) To avoid\n \"SpacingAfterParams\" error with PHPCS Symfony2 coding standard\n- [DDC-2566](https://github.com/doctrine/orm/issues/3293)\n -[\\#732](https://github.com/doctrine/orm/pull/732) Update\n working-with-associations.rst\n- [DDC-2568](https://github.com/doctrine/orm/issues/3295)\n -[\\#733](https://github.com/doctrine/orm/pull/733) Update\n Parser.php\n- [DDC-2572](https://github.com/doctrine/orm/issues/3300)\n -ResolveTargetEntityListener does not work as documented.\n- [DDC-2573](https://github.com/doctrine/orm/issues/3301)\n -[\\#735](https://github.com/doctrine/orm/pull/735) Fix proxy\n performance test\n- [DDC-2575](https://github.com/doctrine/orm/issues/3303)\n -Hydration bug\n- [DDC-2580](https://github.com/doctrine/orm/issues/3309)\n -[\\#739](https://github.com/doctrine/orm/pull/739) Fix\n DDC-2579\n- [DDC-2581](https://github.com/doctrine/orm/issues/3310)\n -[\\#740](https://github.com/doctrine/orm/pull/740)\n Synchronized support of FilterCollection with ODM by adding missing\n method\n- [DDC-2584](https://github.com/doctrine/orm/issues/3313)\n -[\\#743](https://github.com/doctrine/orm/pull/743) Added\n coverage to DDC-2524. Updated DDC-1719 to fix related DBAL bug.\n- [DDC-2588](https://github.com/doctrine/orm/issues/3317)\n -[\\#745](https://github.com/doctrine/orm/pull/745) Update\n basic-mapping.rst\n- [DDC-2591](https://github.com/doctrine/orm/issues/3321)\n -[\\#747](https://github.com/doctrine/orm/pull/747) fix some\n file mode 755-\\>644\n- [DDC-2592](https://github.com/doctrine/orm/issues/3322)\n -[\\#748](https://github.com/doctrine/orm/pull/748) Add hour\n to DATE\\_ADD and DATE\\_SUB\n- [DDC-2603](https://github.com/doctrine/orm/issues/3334)\n -[\\#751](https://github.com/doctrine/orm/pull/751) Added\n coverage for querying support during postLoad.\n- [DDC-2604](https://github.com/doctrine/orm/issues/3335)\n -[\\#752](https://github.com/doctrine/orm/pull/752) ORM side\n fixes.\n- [DDC-2616](https://github.com/doctrine/orm/issues/3348)\n -[\\#759](https://github.com/doctrine/orm/pull/759) Fixed out\n of sync code examples in getting-started.rst\n- [DDC-2624](https://github.com/doctrine/orm/issues/3357)\n -ManyToManyPersister fails to handle cloned PeristentCollections\n- [DDC-2652](https://github.com/doctrine/orm/issues/3388)\n -[\\#777](https://github.com/doctrine/orm/pull/777) Fixed\n typo in mapping documentation\n- [DDC-2653](https://github.com/doctrine/orm/issues/3389)\n -[\\#778](https://github.com/doctrine/orm/pull/778) Fixed\n typo in property mapping\n- [DDC-2654](https://github.com/doctrine/orm/issues/3390)\n -[\\#779](https://github.com/doctrine/orm/pull/779) Fixed\n grammar in custom data types\n- [DDC-2656](https://github.com/doctrine/orm/issues/3392)\n -[\\#780](https://github.com/doctrine/orm/pull/780)\n [DDC-2655](https://github.com/doctrine/orm/issues/3391)\n Don't let getOneOrNullResult throw NoResultException\n- [DDC-2668](https://github.com/doctrine/orm/issues/3405)\n -DQL TRIM function is not converted into TRIM SQL correctly\n- [DDC-2673](https://github.com/doctrine/orm/issues/3411)\n -[\\#785](https://github.com/doctrine/orm/pull/785) Update\n dql-custom-walkers.rst\n- [DDC-2676](https://github.com/doctrine/orm/issues/3414)\n -[\\#786](https://github.com/doctrine/orm/pull/786) Minor\n updates while reading the basic-mapping page\n- [DDC-2678](https://github.com/doctrine/orm/issues/3416)\n -[\\#787](https://github.com/doctrine/orm/pull/787) Update\n DDC719Test.php to be compatible with MsSQL\n- [DDC-2681](https://github.com/doctrine/orm/issues/3420)\n -[\\#790](https://github.com/doctrine/orm/pull/790) HHVM\n compatibility: func\\_get\\_args\n- [DDC-2682](https://github.com/doctrine/orm/issues/3421)\n -[\\#791](https://github.com/doctrine/orm/pull/791)\n Implemented \"contains\" operator for Criteria expressions\n- [DDC-2683](https://github.com/doctrine/orm/issues/3422)\n -[\\#792](https://github.com/doctrine/orm/pull/792)\n [DDC-2668](https://github.com/doctrine/orm/issues/3405)\n Fix trim leading zero string\n- [DDC-2689](https://github.com/doctrine/orm/issues/3428)\n -Doctrine ORM test suite failing on MySQL\n- [DDC-2690](https://github.com/doctrine/orm/issues/3430)\n -Doctrine ORM test suite failing on PostgresSQL\n- [DDC-2696](https://github.com/doctrine/orm/issues/3436)\n -[\\#795](https://github.com/doctrine/orm/pull/795) Update\n query-builder.rst\n- [DDC-2699](https://github.com/doctrine/orm/issues/3439)\n -[\\#797](https://github.com/doctrine/orm/pull/797) CS fixes\n- [DDC-2700](https://github.com/doctrine/orm/issues/3442)\n -[\\#798](https://github.com/doctrine/orm/pull/798)\n Identifier can be empty for MappedSuperclasses\n- [DDC-2702](https://github.com/doctrine/orm/issues/3444)\n -[\\#799](https://github.com/doctrine/orm/pull/799) remove\n unused test case\n- [DDC-2704](https://github.com/doctrine/orm/issues/3446)\n -When using Discriminator EntityManager\\#merge fails\n- [DDC-2706](https://github.com/doctrine/orm/issues/3448)\n -[\\#801](https://github.com/doctrine/orm/pull/801) Update\n SqlWalker.php fixed wrong GROUP BY clause on SQL Server platform\n- [DDC-2707](https://github.com/doctrine/orm/issues/3449)\n -[\\#802](https://github.com/doctrine/orm/pull/802) Respect\n unsigned fields when tables get converted to entities.\n- [DDC-2711](https://github.com/doctrine/orm/issues/3453)\n -[\\#803](https://github.com/doctrine/orm/pull/803) Appended\n newline to (newly) generated files for PSR2 compatibility\n- [DDC-2716](https://github.com/doctrine/orm/issues/3458)\n -[\\#808](https://github.com/doctrine/orm/pull/808) Second\n level cache\n- [DDC-2718](https://github.com/doctrine/orm/issues/3460)\n -[\\#809](https://github.com/doctrine/orm/pull/809) Fix\n DDC-1514 test\n- [DDC-2720](https://github.com/doctrine/orm/issues/3462)\n -[\\#811](https://github.com/doctrine/orm/pull/811) Update\n SingleScalarHydrator error message\n- [DDC-2722](https://github.com/doctrine/orm/issues/3464)\n -[\\#812](https://github.com/doctrine/orm/pull/812) [Doc] add\n direct links to dbal and dql documentation\n- [DDC-2728](https://github.com/doctrine/orm/issues/3470)\n -[\\#815](https://github.com/doctrine/orm/pull/815) Remove\n unused use statement\n- [DDC-2732](https://github.com/doctrine/orm/issues/3475)\n -[\\#816](https://github.com/doctrine/orm/pull/816) Options\n not respected for ID Fields in XML Mapping Driver\n- [DDC-2737](https://github.com/doctrine/orm/issues/3480)\n -[\\#817](https://github.com/doctrine/orm/pull/817) Removed\n \"minimum-stability\" : \"dev\" from composer.json\n- [DDC-2738](https://github.com/doctrine/orm/issues/3481)\n -[\\#818](https://github.com/doctrine/orm/pull/818) Clarified\n tutorial context in section introducing `orm:scehma-tool:*` commnads\n- [DDC-2740](https://github.com/doctrine/orm/issues/3484)\n -[\\#819](https://github.com/doctrine/orm/pull/819) Fixes a\n Fatal Error when using a subexpression in parenthesis\n- [DDC-2741](https://github.com/doctrine/orm/issues/3486)\n -[\\#820](https://github.com/doctrine/orm/pull/820) Added\n support for field options to FieldBuilder\n- [DDC-2750](https://github.com/doctrine/orm/issues/3495)\n -[\\#822](https://github.com/doctrine/orm/pull/822) DDC-2748\n DQL expression \"in\" not working with Collection\n- [DDC-2753](https://github.com/doctrine/orm/issues/3498)\n -[\\#824](https://github.com/doctrine/orm/pull/824)\n s/PostgreSQLPlatform/PostgreSqlPlatform/\n- [DDC-2757](https://github.com/doctrine/orm/issues/3502)\n -Manual transcation handling not possible when transaction fails,\n documentation gives wrong example\n- [DDC-2759](https://github.com/doctrine/orm/issues/3504)\n -ArrayHydration: Only first entity in OneToMany association is\n hydrated\n- [DDC-2760](https://github.com/doctrine/orm/issues/3506)\n -[\\#827](https://github.com/doctrine/orm/pull/827) Added a\n failing test case for DDC-2759.\n- [DDC-2764](https://github.com/doctrine/orm/issues/3510)\n -An orderBy on Criteria leads to DQL semantical error\n- [DDC-2765](https://github.com/doctrine/orm/issues/3511)\n -[\\#830](https://github.com/doctrine/orm/pull/830)\n [DDC-2764](https://github.com/doctrine/orm/issues/3510)\n Prefix criteria orderBy with rootAlias\n- [DDC-2769](https://github.com/doctrine/orm/issues/3515)\n -[\\#832](https://github.com/doctrine/orm/pull/832) Added\n \"readOnly: true\" to YAML reference\n- [DDC-2771](https://github.com/doctrine/orm/issues/3518)\n -[\\#834](https://github.com/doctrine/orm/pull/834) Add\n example use of repositoryClass in YAML\n- [DDC-2774](https://github.com/doctrine/orm/issues/3521)\n -[\\#836](https://github.com/doctrine/orm/pull/836) Update\n annotations-reference.rst\n- [DDC-2775](https://github.com/doctrine/orm/pull/837)\n -Bug with cascade remove\n- [DDC-2782](https://github.com/doctrine/orm/issues/3530)\n -[\\#842](https://github.com/doctrine/orm/pull/842) Added\n EntityManager query creation tests\n- [DDC-2790](https://github.com/doctrine/orm/issues/3539)\n -[\\#845](https://github.com/doctrine/orm/pull/845) Don't\n compute changeset for entities that are going to be deleted\n- [DDC-2792](https://github.com/doctrine/orm/issues/3541)\n -[\\#846](https://github.com/doctrine/orm/pull/846)\n joinColumn is not required in manyToMany\n- [DDC-2798](https://github.com/doctrine/orm/issues/3547)\n -[\\#849](https://github.com/doctrine/orm/pull/849) Error\n with Same Field, Multiple Values, Criteria and QueryBuilder\n- [DDC-2799](https://github.com/doctrine/orm/issues/3548)\n -[\\#850](https://github.com/doctrine/orm/pull/850) Event\n listener to programmatically attach entity listeners.\n- [DDC-2811](https://github.com/doctrine/orm/issues/3563)\n -[\\#854](https://github.com/doctrine/orm/pull/854) fix\n relative path to doctrine/common\n- [DDC-2812](https://github.com/doctrine/orm/issues/3564)\n -[\\#856](https://github.com/doctrine/orm/pull/856) Fix\n dependency for\n tests/Doctrine/Tests/ORM/Functional/ReferenceProxyTest.php\n- [DDC-2827](https://github.com/doctrine/orm/issues/3580)\n -[\\#864](https://github.com/doctrine/orm/pull/864) Updated\n parser to support aggegrate functions in null comparisons\n- [DDC-2831](https://github.com/doctrine/orm/issues/3584)\n -[\\#866](https://github.com/doctrine/orm/pull/866)\n Mentioning the 'refresh' cascading property in the documentation\n list\n- [DDC-2843](https://github.com/doctrine/orm/issues/3597)\n -SchemaTool update SQL always contains queries to set default value\n on columns, even if they haven't changed.\n- [DDC-2847](https://github.com/doctrine/orm/issues/3601)\n -[\\#871](https://github.com/doctrine/orm/pull/871) XCache\n cannot be flushed on the CLI -\\> for pretty much the same reason as\n APC\n- [DDC-2853](https://github.com/doctrine/orm/issues/3608)\n -[\\#873](https://github.com/doctrine/orm/pull/873) Try\n running unit tests on HHVM\n- [DDC-2855](https://github.com/doctrine/orm/issues/3610)\n -[\\#875](https://github.com/doctrine/orm/pull/875) Adding\n tests that confirm that DDC-2845 is fixed\n- [DDC-2856](https://github.com/doctrine/orm/issues/3611)\n -[\\#876](https://github.com/doctrine/orm/pull/876) Fixing\n wrong key for allowing HHVM failures\n- [DDC-2862](https://github.com/doctrine/orm/issues/3618)\n -When update cached entitiy, entity lost OneToOne relationship\n- [DDC-2866](https://github.com/doctrine/orm/issues/3622)\n -[\\#883](https://github.com/doctrine/orm/pull/883)\n [DDC-2862](https://github.com/doctrine/orm/issues/3618)\n Fix non initialized association proxy\n- [DDC-2867](https://github.com/doctrine/orm/issues/3623)\n -[\\#884](https://github.com/doctrine/orm/pull/884) [SLC] Fix\n cache misses using one-to-one inverse side\n- [DDC-2869](https://github.com/doctrine/orm/issues/3625)\n -[\\#886](https://github.com/doctrine/orm/pull/886)\n [DDC-1256](https://github.com/doctrine/orm/issues/1866)\n Fix applying ON/WITH conditions to first join in Class Table\n Inheritance\n- [DDC-2875](https://github.com/doctrine/orm/issues/3632)\n -[\\#890](https://github.com/doctrine/orm/pull/890)\n [DBAL-563] Add general IDENTITY generator type support for sequence\n emulating platforms\n- [DDC-2876](https://github.com/doctrine/orm/issues/3633)\n -[\\#891](https://github.com/doctrine/orm/pull/891) Allow to\n not generate extra use\n- [DDC-2878](https://github.com/doctrine/orm/issues/3635)\n -[\\#893](https://github.com/doctrine/orm/pull/893)\n autoGenerate arg from bool to int\n- [DDC-2880](https://github.com/doctrine/orm/issues/3638)\n -[\\#894](https://github.com/doctrine/orm/pull/894) Fix typos\n -QueryBuilder\n- [DDC-2884](https://github.com/doctrine/orm/issues/3641)\n -[\\#896](https://github.com/doctrine/orm/pull/896) Ensure\n elements preceed\n- [DDC-2885](https://github.com/doctrine/orm/issues/3642)\n -[\\#897](https://github.com/doctrine/orm/pull/897) Respected\n 'inheritanceType' at Entity level\n- [DDC-2889](https://github.com/doctrine/orm/issues/3646)\n -[\\#900](https://github.com/doctrine/orm/pull/900) Fix\n connection mock fetchColumn signature\n- [DDC-2890](https://github.com/doctrine/orm/issues/3648)\n -Paginator generates invalid sql for some dql with\n setUseOutputWalkers(false) and \\$fetchJoinCollection = true\n- [DDC-2903](https://github.com/doctrine/orm/issues/3662)\n -[\\#906](https://github.com/doctrine/orm/pull/906) removed\n erroneous tip\n- [DDC-2907](https://github.com/doctrine/orm/issues/3665)\n -[\\#907](https://github.com/doctrine/orm/pull/907)\n [DDC-1632](https://github.com/doctrine/orm/issues/2273)\n OneToMany Fetch eager\n- [DDC-2908](https://github.com/doctrine/orm/issues/3666)\n -[\\#908](https://github.com/doctrine/orm/pull/908)\n [DDC-2862](https://github.com/doctrine/orm/issues/3618)\n Fix lazy association load\n- [DDC-2913](https://github.com/doctrine/orm/issues/3672)\n -[\\#909](https://github.com/doctrine/orm/pull/909) Fix\n DatabaseDriverTest on SQL Server\n- [DDC-2914](https://github.com/doctrine/orm/issues/3673)\n -[\\#910](https://github.com/doctrine/orm/pull/910)\n [DDC-2310](https://github.com/doctrine/orm/issues/3014)\n Fix SQL generation on table lock hint capable platforms\n- [DDC-2916](https://github.com/doctrine/orm/issues/3675)\n -[\\#911](https://github.com/doctrine/orm/pull/911) fix\n foreach coding style\n- [DDC-2919](https://github.com/doctrine/orm/issues/3678)\n -LockMode::NONE evaluation inconsistencies in ORM\n- [DDC-2921](https://github.com/doctrine/orm/issues/3681)\n -[\\#912](https://github.com/doctrine/orm/pull/912) Avoid\n PersistentCollection::isEmpty() to fully load the collection.\n- [DDC-2931](https://github.com/doctrine/orm/issues/3692)\n -OneToOne self-referencing fails when loading referenced objects\n- [DDC-2933](https://github.com/doctrine/orm/issues/3694)\n -[\\#917](https://github.com/doctrine/orm/pull/917) DDC-2931\n- [DDC-2934](https://github.com/doctrine/orm/issues/3695)\n -[\\#918](https://github.com/doctrine/orm/pull/918) Fix use\n of function in OrderBy\n- [DDC-2935](https://github.com/doctrine/orm/issues/3696)\n -[\\#919](https://github.com/doctrine/orm/pull/919) tests for\n DDC-2890\n- [DDC-2937](https://github.com/doctrine/orm/issues/3700)\n -[\\#920](https://github.com/doctrine/orm/pull/920)\n SingleScalarHydrator reports ambiguous error.\n- [DDC-2943](https://github.com/doctrine/orm/issues/3705)\n -Paginator not work with second level cache in Doctrine 2.5\n- [DDC-2946](https://github.com/doctrine/orm/issues/3708)\n -[\\#926](https://github.com/doctrine/orm/pull/926)\n Feature/console em helper interface\n- [DDC-2947](https://github.com/doctrine/orm/issues/3709)\n -[\\#927](https://github.com/doctrine/orm/pull/927)\n s/EntityManager/EntityManagerInterface/ in a few places\n- [DDC-2948](https://github.com/doctrine/orm/issues/3710)\n -[\\#928](https://github.com/doctrine/orm/pull/928) Support\n PHPUnit 3.8+ Compatibility\n- [DDC-2952](https://github.com/doctrine/orm/issues/3715)\n -[\\#932](https://github.com/doctrine/orm/pull/932)\n [DDC-2919](https://github.com/doctrine/orm/issues/3678)\n Make lock mode usage consistent\n- [DDC-2956](https://github.com/doctrine/orm/issues/3719)\n -[\\#934](https://github.com/doctrine/orm/pull/934) faild\n test with multiple HINT\\_CUSTOM\\_TREE\\_WALKERS\n- [DDC-2957](https://github.com/doctrine/orm/issues/3720)\n -[\\#935](https://github.com/doctrine/orm/pull/935) Remove\n incorrect (outdated) validation for public fields in SchemaValidator\n- [DDC-2958](https://github.com/doctrine/orm/issues/3721)\n -[\\#936](https://github.com/doctrine/orm/pull/936) Making\n testing dependencies explicit\n- [DDC-2961](https://github.com/doctrine/orm/issues/3725)\n -[\\#938](https://github.com/doctrine/orm/pull/938) Missing\n join-tables added in example\n- [DDC-2967](https://github.com/doctrine/orm/issues/3731)\n -[\\#943](https://github.com/doctrine/orm/pull/943) Validate\n embeddables do not contain other embeddables.\n- [DDC-2968](https://github.com/doctrine/orm/issues/3732)\n -[\\#944](https://github.com/doctrine/orm/pull/944) Fixed\n InputOption modes\n- [DDC-2969](https://github.com/doctrine/orm/issues/3733)\n -[\\#945](https://github.com/doctrine/orm/pull/945) Fix CS\n- [DDC-2971](https://github.com/doctrine/orm/issues/3736)\n -[\\#947](https://github.com/doctrine/orm/pull/947) Cleaned\n up further unused imports.\n- [DDC-2974](https://github.com/doctrine/orm/issues/3739)\n -[\\#950](https://github.com/doctrine/orm/pull/950) Can cache\n empty collections\n- [DDC-2975](https://github.com/doctrine/orm/issues/3740)\n -[\\#951](https://github.com/doctrine/orm/pull/951) More\n informational entity not found exception\n- [DDC-2976](https://github.com/doctrine/orm/issues/3741)\n -[\\#952](https://github.com/doctrine/orm/pull/952) Add\n DB-level onDelete CASCADE example\n- [DDC-2989](https://github.com/doctrine/orm/issues/3753)\n -ORM should allow custom index names for foreign associations.\n- [DDC-2996](https://github.com/doctrine/orm/issues/3760)\n -UnitOfWork::recomputeSingleEntityChangeSet() will not add a new\n change set\n- [DDC-2997](https://github.com/doctrine/orm/issues/3761)\n -[\\#960](https://github.com/doctrine/orm/pull/960) allow\n passing EntityManagerInterface when creating a HelperSet\n- [DDC-2998](https://github.com/doctrine/orm/issues/3762)\n -[\\#961](https://github.com/doctrine/orm/pull/961)\n [DDC-2984](https://github.com/doctrine/orm/issues/3748)\n Provide TestCase to reproduce bug\n- [DDC-3002](https://github.com/doctrine/orm/issues/3769)\n -[\\#964](https://github.com/doctrine/orm/pull/964)\n [DDC-2943](https://github.com/doctrine/orm/issues/3705)\n [SLC] Disable slc for pagination queries\n- [DDC-3003](https://github.com/doctrine/orm/issues/3770)\n -[\\#965](https://github.com/doctrine/orm/pull/965) [SLC] Add\n support for criteria\n- [DDC-3008](https://github.com/doctrine/orm/issues/3774)\n -[\\#967](https://github.com/doctrine/orm/pull/967) [SLC] Add\n query builder options\n- [DDC-3009](https://github.com/doctrine/orm/issues/3775)\n -[\\#968](https://github.com/doctrine/orm/pull/968) Test: Add\n failing test\n- [DDC-3010](https://github.com/doctrine/orm/issues/3777)\n -[\\#969](https://github.com/doctrine/orm/pull/969) [Doc]\n added note about Criteria limits on PersistentCollection\n- [DDC-3012](https://github.com/doctrine/orm/issues/3779)\n -[\\#971](https://github.com/doctrine/orm/pull/971) [SLC] Fix\n query association proxy\n- [DDC-3013](https://github.com/doctrine/orm/issues/3780)\n -[\\#972](https://github.com/doctrine/orm/pull/972)\n Capitalize @GeneratedValue (annotations-reference.rst)\n- [DDC-3015](https://github.com/doctrine/orm/issues/3782)\n -[\\#974](https://github.com/doctrine/orm/pull/974) [SLC]\n Resolve association cache entry\n- [DDC-3018](https://github.com/doctrine/orm/issues/3786)\n -DQL \u201cNEW\u201d Operator and Literal type \"String\"\n- [DDC-3021](https://github.com/doctrine/orm/issues/3789)\n -[\\#976](https://github.com/doctrine/orm/pull/976) Add cache\n invalidation strategy to AbstractQuery\n- [DDC-3023](https://github.com/doctrine/orm/issues/3791)\n -[\\#977](https://github.com/doctrine/orm/pull/977) Fix wrong\n annotation\n- [DDC-3028](https://github.com/doctrine/orm/issues/3796)\n -[\\#978](https://github.com/doctrine/orm/pull/978)\n [DDC-2987](https://github.com/doctrine/orm/issues/3751)\n Enable empty prefixes for inlined embeddable\n- [DDC-3033](https://github.com/doctrine/orm/issues/3802)\n -Regression in computeChangeSets (ManyToMany relation)\n- [DDC-3038](https://github.com/doctrine/orm/issues/3807)\n -[\\#982](https://github.com/doctrine/orm/pull/982) Failing\n Test (since commit 53a5a48aed7d87aa1533c0bcbd72e41b686527d8)\n- [DDC-3041](https://github.com/doctrine/orm/issues/3811)\n -[\\#984](https://github.com/doctrine/orm/pull/984) Use\n boolean values for 'unique' attribute\n- [DDC-3042](https://github.com/doctrine/orm/issues/3812)\n -select issue field names with numbers\n- [DDC-3045](https://github.com/doctrine/orm/issues/3815)\n -SQL Injection in Persister API\n- [DDC-3047](https://github.com/doctrine/orm/issues/3817)\n -XML Exporter driver does not export association fetch-mode\n- [DDC-3049](https://github.com/doctrine/orm/issues/3819)\n -[\\#988](https://github.com/doctrine/orm/pull/988) Exporter\n support for association fetch modes\n- [DDC-3054](https://github.com/doctrine/orm/issues/3825)\n -[\\#991](https://github.com/doctrine/orm/pull/991) Ability\n to define custom functions with callback instead of class name\n- [DDC-3058](https://github.com/doctrine/orm/issues/3829)\n -[\\#993](https://github.com/doctrine/orm/pull/993) Update\n JoinColumn.php\n- [DDC-3060](https://github.com/doctrine/orm/issues/3832)\n -[\\#995](https://github.com/doctrine/orm/pull/995) Allow\n cascaded clearing of associated Entities\n- [DDC-3061](https://github.com/doctrine/orm/issues/3833)\n -[\\#996](https://github.com/doctrine/orm/pull/996)\n [DDC-3027](https://github.com/doctrine/orm/issues/3795)\n Embedded in MappedSuperclass\n- [DDC-3065](https://github.com/doctrine/orm/issues/3837)\n -Generated 'IN' clause doesn't handle 'null' values (needs to add\n 'IS NULL' check)\n- [DDC-3067](https://github.com/doctrine/orm/issues/3839)\n -[\\#999](https://github.com/doctrine/orm/pull/999) DDC-3065\n null value in in criteria support\n- [DDC-3069](https://github.com/doctrine/orm/issues/3841)\n -[\\#1000](https://github.com/doctrine/orm/pull/1000)\n [DDC-3068](https://github.com/doctrine/orm/issues/3840)\n EntityManager::find accept array of object as id\n- [DDC-3071](https://github.com/doctrine/orm/issues/3844)\n -[\\#1002](https://github.com/doctrine/orm/pull/1002) Fixed\n wrongly initialized property.\n- [DDC-3074](https://github.com/doctrine/orm/issues/3847)\n -[\\#1004](https://github.com/doctrine/orm/pull/1004) Removed\n all useless occurrence of require\\_once TestInit.php\n- [DDC-3075](https://github.com/doctrine/orm/issues/3848)\n -[\\#1005](https://github.com/doctrine/orm/pull/1005) Added\n support of the subselect expressions into NEW expressions\n- [DDC-3078](https://github.com/doctrine/orm/issues/3851)\n -Doctrine::\\_\\_construct is in an interface\n- [DDC-3080](https://github.com/doctrine/orm/issues/3854)\n -[\\#1008](https://github.com/doctrine/orm/pull/1008)\n DDC-3078 SLC Cache interface ctor removal\n- [DDC-3081](https://github.com/doctrine/orm/issues/3855)\n -[\\#1009](https://github.com/doctrine/orm/pull/1009) HHVM\n compatibility\n- [DDC-3082](https://github.com/doctrine/orm/issues/3856)\n -[\\#1010](https://github.com/doctrine/orm/pull/1010) Fixed\n validation message\n- [DDC-3085](https://github.com/doctrine/orm/issues/3859)\n -NULL comparison are not supported for result variables in the\n HAVING clause\n- [DDC-3092](https://github.com/doctrine/orm/issues/3867)\n -[\\#1012](https://github.com/doctrine/orm/pull/1012) Ddc\n 3078 slc cache interface ctor removal\n- [DDC-3093](https://github.com/doctrine/orm/issues/3868)\n -[\\#1013](https://github.com/doctrine/orm/pull/1013) Remove\n SimpleXmlElement hack\n- [DDC-3095](https://github.com/doctrine/orm/issues/3870)\n -[\\#1014](https://github.com/doctrine/orm/pull/1014) Update\n second level cache doc\n- [DDC-3100](https://github.com/doctrine/orm/issues/3876)\n -[\\#1018](https://github.com/doctrine/orm/pull/1018)\n DBAL-878 Wrong mapping type\n- [DDC-3103](https://github.com/doctrine/orm/issues/3879)\n -Is embedded class information in ClassMetadata is not stored when\n serializing.\n- [DDC-3106](https://github.com/doctrine/orm/issues/3882)\n -[\\#1023](https://github.com/doctrine/orm/pull/1023)\n [DDC-3027](https://github.com/doctrine/orm/issues/3795)\n Avoid duplicated mapping using Embedded in MappedSuperclass\n- [DDC-3107](https://github.com/doctrine/orm/issues/3883)\n -[\\#1024](https://github.com/doctrine/orm/pull/1024)\n [Persister] Remove the insertSql cache\n- [DDC-3108](https://github.com/doctrine/orm/issues/3884)\n -Criteria cannot reference a joined tables' fields when used with an\n ORM QueryBuilder\n- [DDC-3118](https://github.com/doctrine/orm/issues/3894)\n -[\\#1028](https://github.com/doctrine/orm/pull/1028) Add\n method getAssociationsByType to ClassMetadata\n- [DDC-3120](https://github.com/doctrine/orm/issues/3897)\n -Warning: Erroneous data format for unserializing PHP5.6+\n- [DDC-3123](https://github.com/doctrine/orm/issues/3898)\n -Extra updates are not cleaned after execution\n- [DDC-3124](https://github.com/doctrine/orm/issues/3901)\n -[\\#1030](https://github.com/doctrine/orm/pull/1030)\n DDC-3123 extra updates cleanup\n- [DDC-3129](https://github.com/doctrine/orm/issues/3906)\n -[\\#1032](https://github.com/doctrine/orm/pull/1032) Add\n support for optimized contains\n- [DDC-3143](https://github.com/doctrine/orm/issues/3922)\n -[\\#1041](https://github.com/doctrine/orm/pull/1041) Allow\n all EntityManagerInterface implementations\n- [DDC-3151](https://github.com/doctrine/orm/issues/3930)\n -[\\#1048](https://github.com/doctrine/orm/pull/1048) Fix\n typo in exception message\n- [DDC-3152](https://github.com/doctrine/orm/issues/3931)\n -Generating methods does not check for existing methods with\n different case\n- [DDC-3160](https://github.com/doctrine/orm/issues/3940)\n -Regression in reComputeSingleEntityChangeset\n- [DDC-3177](https://github.com/doctrine/orm/issues/3958)\n -[\\#1063](https://github.com/doctrine/orm/pull/1063)\n singularize variable name on add/remove methods for EntityGenerator\n- [DDC-3190](https://github.com/doctrine/orm/issues/3973)\n -[\\#1071](https://github.com/doctrine/orm/pull/1071)\n Setup::createConfiguration breaks Cache interface contract\n- [DDC-3191](https://github.com/doctrine/orm/issues/3974)\n -[\\#1072](https://github.com/doctrine/orm/pull/1072) Fix\n attempt of traversing bool in FileLockRegion\n- [DDC-3192](https://github.com/doctrine/orm/issues/3975)\n -Custom types do not get converted to PHP Value when result is\n gotten from custom query\n- [DDC-3198](https://github.com/doctrine/orm/issues/3981)\n -[\\#1075](https://github.com/doctrine/orm/pull/1075) Fixed\n query cache id generation: added platform to hash\n- [DDC-3199](https://github.com/doctrine/orm/issues/3982)\n -[\\#1076](https://github.com/doctrine/orm/pull/1076) Fix\n switch non-uniform syntax\n- [DDC-3210](https://github.com/doctrine/orm/issues/3996)\n -[\\#1080](https://github.com/doctrine/orm/pull/1080)\n possible fix for DDC-2021\n- [DDC-3214](https://github.com/doctrine/orm/issues/4000)\n -[\\#1082](https://github.com/doctrine/orm/pull/1082) added\n more informative error messages when invalid parameter count\n- [DDC-3223](https://github.com/doctrine/orm/issues/4010)\n -Failing test (get id return string type)\n- [DDC-3225](https://github.com/doctrine/orm/issues/4012)\n -[\\#1087](https://github.com/doctrine/orm/pull/1087) Remove\n the error control operator\n- [DDC-3227](https://github.com/doctrine/orm/issues/4014)\n -[\\#1088](https://github.com/doctrine/orm/pull/1088) Fix the\n composer autoload paths for the doctrine CLT\n- [DDC-3233](https://github.com/doctrine/orm/issues/4021)\n -[\\#1092](https://github.com/doctrine/orm/pull/1092)\n Arbitrary Join count walkers solution\n- [DDC-3237](https://github.com/doctrine/orm/issues/4025)\n -[\\#1096](https://github.com/doctrine/orm/pull/1096) Changes\n for grammar and clarity\n- [DDC-3239](https://github.com/doctrine/orm/pull/1097)\n -[\\#1097](https://github.com/doctrine/orm/pull/1097)\n `expandParameters`/`getType` in BasicEntityPersister seems to really\n cover just few cases\n- [DDC-3240](https://github.com/doctrine/orm/issues/4028)\n -[\\#1098](https://github.com/doctrine/orm/pull/1098)\n \\#DDC-1590: Fix Inheritance in Code-Generation\n- [DDC-3254](https://github.com/doctrine/orm/issues/4043)\n -[\\#1111](https://github.com/doctrine/orm/pull/1111) Fix\n inheritance hierarchy wrong exception message\n- [DDC-3269](https://github.com/doctrine/orm/issues/4058)\n -[\\#1120](https://github.com/doctrine/orm/pull/1120)\n [DDC-3205](https://github.com/doctrine/orm/issues/3990)\n Metadata info\n- [DDC-3272](https://github.com/doctrine/orm/issues/4062)\n -EntityGenerator writes 'MappedSuperClass' instead of\n 'MappedSuperclass'\n- [DDC-3278](https://github.com/doctrine/orm/issues/4068)\n -[\\#1123](https://github.com/doctrine/orm/pull/1123) Fixed\n the structure of the reverse-engineered mapping\n- [DDC-3283](https://github.com/doctrine/orm/issues/4074)\n -[\\#1125](https://github.com/doctrine/orm/pull/1125) Update\n improving-performance.rst\n- [DDC-3288](https://github.com/doctrine/orm/issues/4079)\n -[\\#1126](https://github.com/doctrine/orm/pull/1126) Fixed\n new line in docblock\n- [DDC-3293](https://github.com/doctrine/orm/issues/4085)\n -XML Mappings disallow disabling column prefix for embeddables\n- [DDC-3302](https://github.com/doctrine/orm/issues/4096)\n -[\\#1132](https://github.com/doctrine/orm/pull/1132)\n DDC-3272 entity generator mapped superclass casing\n- [DDC-3310](https://github.com/doctrine/orm/issues/4105)\n -[\\#1138](https://github.com/doctrine/orm/pull/1138) Join\n column index names\n- [DDC-3318](https://github.com/doctrine/orm/issues/4113)\n -[\\#1143](https://github.com/doctrine/orm/pull/1143) Fixed a\n bug so that a versioned entity with a oneToOne id can be created\n- [DDC-3322](https://github.com/doctrine/orm/issues/4118)\n -[\\#1146](https://github.com/doctrine/orm/pull/1146) Allow\n orderBy to reference associations\n- [DDC-3336](https://github.com/doctrine/orm/issues/4133)\n -Undefined property: Doctrine::\\$field\n- [DDC-3341](https://github.com/doctrine/orm/issues/4139)\n -SessionValidator gives an error message on orderBy association, but\n it is no error.\n- [DDC-3343](https://github.com/doctrine/orm/issues/4141)\n -`PersistentCollection::removeElement` schedules an entity for\n deletion when relationship is EXTRA\\_LAZY, with `orphanRemoval`\n false.\n- [DDC-3346](https://github.com/doctrine/orm/issues/4144)\n -findOneBy returns an object with partial collection for the\n properties with mapping oneToMany/Fetch Eager\n- [DDC-3350](https://github.com/doctrine/orm/issues/4149)\n -[\\#1160](https://github.com/doctrine/orm/pull/1160) \\#1159\n -multiple entity managers per repository factory should be supported\n- [DDC-3355](https://github.com/doctrine/orm/issues/4154)\n -[\\#1164](https://github.com/doctrine/orm/pull/1164)\n [QueryBuilder] Remove unused method parameters to run on HHVM/PHP7\n- [DDC-3358](https://github.com/doctrine/orm/issues/4157)\n -[\\#1166](https://github.com/doctrine/orm/pull/1166) Fixing\n HHVM+XSD validation tests as of documented HHVM inconsistencies\n- [DDC-3368](https://github.com/doctrine/orm/issues/4168)\n -[\\#1172](https://github.com/doctrine/orm/pull/1172) Don't\n initialize detached proxies when merging them.\n- [DDC-3370](https://github.com/doctrine/orm/issues/4171)\n -[\\#1173](https://github.com/doctrine/orm/pull/1173) Fix\n merging of entities with associations to identical entities.\n- [DDC-3378](https://github.com/doctrine/orm/issues/4179)\n -[\\#1176](https://github.com/doctrine/orm/pull/1176) Support\n merging entities with composite identities defined through to-one\n associations\n- [DDC-3379](https://github.com/doctrine/orm/issues/4180)\n -[\\#1177](https://github.com/doctrine/orm/pull/1177) Ensure\n metadata cache is not ArrayCache in production\n- [DDC-3380](https://github.com/doctrine/orm/issues/4182)\n -[\\#1178](https://github.com/doctrine/orm/pull/1178) Fixing\n associations using UUIDs\n- [DDC-3387](https://github.com/doctrine/orm/issues/4189)\n -[\\#1182](https://github.com/doctrine/orm/pull/1182) \\#1086\n identifier type in proxies\n- [DDC-3394](https://github.com/doctrine/orm/issues/4197)\n -UOW CreateEntity failure with zerofill columns\n- [DDC-3404](https://github.com/doctrine/orm/issues/4208)\n -[\\#1188](https://github.com/doctrine/orm/pull/1188) Fixed\n counting exception\n- [DDC-3419](https://github.com/doctrine/orm/issues/4224)\n -[\\#1196](https://github.com/doctrine/orm/pull/1196) Inherit\n indexes from mapped superclass\n- [DDC-3425](https://github.com/doctrine/orm/issues/4231)\n -[\\#1202](https://github.com/doctrine/orm/pull/1202) Checks\n key exists rather than isset\n- [DDC-3427](https://github.com/doctrine/orm/issues/4233)\n -Doctrineexplicitly accepts EntityManager\n- [DDC-3428](https://github.com/doctrine/orm/issues/4234)\n -[\\#1204](https://github.com/doctrine/orm/pull/1204) Fix\n sequence-generator in MetaData exporter for XML Driver.\n- [DDC-3429](https://github.com/doctrine/orm/issues/4235)\n -[\\#1205](https://github.com/doctrine/orm/pull/1205) Hotfix\n -\\#1200 symfony 2.7 deprecation fixes\n- [DDC-3430](https://github.com/doctrine/orm/issues/4237)\n -[\\#1206](https://github.com/doctrine/orm/pull/1206)\n matching should not change critera\n- [DDC-3431](https://github.com/doctrine/orm/issues/4238)\n -[\\#1207](https://github.com/doctrine/orm/pull/1207)\n Embedded classes reflection new instance creation with internal PHP\n classes\n- [DDC-3432](https://github.com/doctrine/orm/issues/4239)\n -[\\#1208](https://github.com/doctrine/orm/pull/1208)\n DDC-3427\n - class metadata factory should accept `EntityManagerInterface`\n instances\n- [DDC-3433](https://github.com/doctrine/orm/issues/4240)\n -[\\#1210](https://github.com/doctrine/orm/pull/1210)\n DDC-3336\n - undefined property with paginator walker and scalar expression in\n ORDER BY clause\n- [DDC-3434](https://github.com/doctrine/orm/issues/4241)\n -LimitSubqueryOutputWalker does not retain correct ORDER BY\n expression fields when dealing with HIDDEN sort fields\n- [DDC-3435](https://github.com/doctrine/orm/issues/4242)\n -[\\#1211](https://github.com/doctrine/orm/pull/1211)\n DDC-3434\n - paginator ignores `HIDDEN` fields in `ORDER BY` query\n- [DDC-3436](https://github.com/doctrine/orm/issues/4243)\n -[\\#1212](https://github.com/doctrine/orm/pull/1212)\n [DDC-3108](https://github.com/doctrine/orm/issues/3884)\n Fix regression where join aliases were no longer accessible in\n Criteria expressions\n- [DDC-3437](https://github.com/doctrine/orm/issues/4244)\n -[\\#1213](https://github.com/doctrine/orm/pull/1213) fix\n instantiation of embedded object in ReflectionEmbeddedProperty\n- [DDC-3439](https://github.com/doctrine/orm/issues/4246)\n -[\\#1216](https://github.com/doctrine/orm/pull/1216) test\n XML export driver, the field options, for \\#1214\n- [DDC-3452](https://github.com/doctrine/orm/issues/4261)\n -[\\#1222](https://github.com/doctrine/orm/pull/1222)\n Embeddables in metadata builder\n- [DDC-3454](https://github.com/doctrine/orm/issues/4263)\n -[\\#1224](https://github.com/doctrine/orm/pull/1224) Updated\n setParameters function for not replace all parameters\n- [DDC-3466](https://github.com/doctrine/orm/issues/4276)\n -[\\#1233](https://github.com/doctrine/orm/pull/1233) [Minor]\n Refactoring to avoid duplicate code\n- [DDC-3470](https://github.com/doctrine/orm/issues/4280)\n -[\\#1235](https://github.com/doctrine/orm/pull/1235)\n Consistent return type confirming with interface\n- [DDC-3478](https://github.com/doctrine/orm/issues/4288)\n -[\\#1239](https://github.com/doctrine/orm/pull/1239) Fix\n index duplication for unique association join columns\n- [DDC-3482](https://github.com/doctrine/orm/issues/4293)\n -[\\#1242](https://github.com/doctrine/orm/pull/1242)\n Attempting to lock a proxy object fails as UOW doesn't init proxy\n first\n- [DDC-3493](https://github.com/doctrine/orm/issues/4305)\n -New (PHP 5.5) \"class\" keyword - wrong parsing by EntityGenerator\n- [DDC-3494](https://github.com/doctrine/orm/issues/4306)\n -[\\#1250](https://github.com/doctrine/orm/pull/1250) Test\n case for \"class\" keyword\n- [DDC-3502](https://github.com/doctrine/orm/issues/4316)\n -[\\#1256](https://github.com/doctrine/orm/pull/1256)\n DDC-3493\n - fixed EntityGenerator parsing for php 5.5 \"::class\" syntax\n- [DDC-3506](https://github.com/doctrine/orm/issues/4320)\n -[\\#1259](https://github.com/doctrine/orm/pull/1259) Hotfix:\n Cache region should not mutate injected cache instance settings\n- [DDC-3513](https://github.com/doctrine/orm/issues/4327)\n -[\\#1262](https://github.com/doctrine/orm/pull/1262) Fixes\n the broken DQL command\n- [DDC-3517](https://github.com/doctrine/orm/issues/4331)\n -[\\#1265](https://github.com/doctrine/orm/pull/1265) Fix\n error undefined index \"targetEntity\" in persister\n- [DDC-3524](https://github.com/doctrine/orm/issues/4339)\n -[\\#1272](https://github.com/doctrine/orm/pull/1272)\n [DDC-2704](https://github.com/doctrine/orm/issues/3446)\n -merge inherited transient properties - merge properties into\n uninitialized proxies\n- [DDC-3534](https://github.com/doctrine/orm/issues/4352)\n -[\\#1280](https://github.com/doctrine/orm/pull/1280)\n [DDC-3346](https://github.com/doctrine/orm/issues/4144)\n \\#1277 find one with eager loads is failing\n- [DDC-3536](https://github.com/doctrine/orm/issues/4349)\n -[\\#1281](https://github.com/doctrine/orm/pull/1281)\n Hotfix/\\#1169 extra lazy one to many should not delete referenced\n entities\n- [DDC-3538](https://github.com/doctrine/orm/issues/4355)\n -[\\#1283](https://github.com/doctrine/orm/pull/1283) \\#1267\n -order by broken in pagination logic (reverts \\#1220)\n- [DDC-3544](https://github.com/doctrine/orm/issues/4361)\n -[\\#1288](https://github.com/doctrine/orm/pull/1288) Hotfix\n -\\#1169 - extra lazy one to many must be no-op when not doing orphan\n removal\n- [DDC-3551](https://github.com/doctrine/orm/issues/4369)\n -[\\#1294](https://github.com/doctrine/orm/pull/1294) Avoid\n Connection error when calling ClassMetadataFactor::getAllMetadata()\n- [DDC-3554](https://github.com/doctrine/orm/issues/4372)\n -[\\#1295](https://github.com/doctrine/orm/pull/1295) Fix\n join when recreation of query from parts.\n- [DDC-3564](https://github.com/doctrine/orm/issues/4383)\n -[\\#1301](https://github.com/doctrine/orm/pull/1301) Add\n failing test with ToOne SL2 association\n- [DDC-3566](https://github.com/doctrine/orm/issues/4385)\n -[\\#1302](https://github.com/doctrine/orm/pull/1302) Store\n column values of not cache-able associations\n- [DDC-3585](https://github.com/doctrine/orm/issues/4406)\n -[\\#1311](https://github.com/doctrine/orm/pull/1311)\n [DDC-3582](https://github.com/doctrine/orm/issues/4403)\n Wrong class is instantiated when using nested embeddables\n- [DDC-3586](https://github.com/doctrine/orm/issues/4407)\n -[\\#1312](https://github.com/doctrine/orm/pull/1312) Add\n proper pluralization into UpdateCommand\n- [DDC-3587](https://github.com/doctrine/orm/issues/4408)\n -[\\#1313](https://github.com/doctrine/orm/pull/1313) Added\n programmatical support to define indexBy on root aliases.\n- [DDC-3597](https://github.com/doctrine/orm/issues/4419)\n -[\\#1321](https://github.com/doctrine/orm/pull/1321)\n embeddedClasses support in mapped superclasses\n- [DDC-3606](https://github.com/doctrine/orm/issues/4430)\n -[\\#1325](https://github.com/doctrine/orm/pull/1325) fixed\n PostgreSQL and Oracle pagination issues\n- [DDC-3608](https://github.com/doctrine/orm/issues/4432)\n -[\\#1327](https://github.com/doctrine/orm/pull/1327)\n Properly generate default value from yml & xml mapping\n- [DDC-3616](https://github.com/doctrine/orm/issues/4441)\n -[\\#1333](https://github.com/doctrine/orm/pull/1333) Allow\n DateTimeImmutable as parameter value\n- [DDC-3619](https://github.com/doctrine/orm/issues/4444)\n -spl\\_object\\_hash collision\n- [DDC-3622](https://github.com/doctrine/orm/issues/4448)\n -[\\#1336](https://github.com/doctrine/orm/pull/1336) Fix UoW\n warning with custom id object types\n- [DDC-3623](https://github.com/doctrine/orm/issues/4449)\n -[\\#1337](https://github.com/doctrine/orm/pull/1337)\n Paginator OrderBy fix take 2\n- [DDC-3624](https://github.com/doctrine/orm/issues/4450)\n -[\\#1338](https://github.com/doctrine/orm/pull/1338)\n [DDC-3619](https://github.com/doctrine/orm/issues/4444)\n Update identityMap when entity gets managed again\n- [DDC-3625](https://github.com/doctrine/orm/issues/4451)\n -[\\#1339](https://github.com/doctrine/orm/pull/1339)\n [DDC-2224](https://github.com/doctrine/orm/issues/2922)\n Honor convertToDatabaseValueSQL() in DQL query parameters\n- [DDC-3629](https://github.com/doctrine/orm/issues/4455)\n -[\\#1342](https://github.com/doctrine/orm/pull/1342)\n Paginator functional tests\n- [DDC-3631](https://github.com/doctrine/orm/issues/4458)\n -[\\#1344](https://github.com/doctrine/orm/pull/1344) Fix\n tests for SLC console commands failing due to console output\n decoration\n- [DDC-3632](https://github.com/doctrine/orm/issues/4459)\n -[\\#1345](https://github.com/doctrine/orm/pull/1345) Fix\n crashes in ConvertMappingCommand and GenerateEntitiesCommand...\n- [DDC-3634](https://github.com/doctrine/orm/issues/4461)\n -[\\#1346](https://github.com/doctrine/orm/pull/1346) Fix:\n generated IDs are converted to integer\n- [DDC-3641](https://github.com/doctrine/orm/issues/4469)\n -[\\#1350](https://github.com/doctrine/orm/pull/1350)\n Assigned default value to array\n- [DDC-3643](https://github.com/doctrine/orm/issues/4471)\n -[\\#1352](https://github.com/doctrine/orm/pull/1352) fix\n EntityGenerator RegenerateEntityIfExists\n- [DDC-3645](https://github.com/doctrine/orm/issues/4473)\n -[\\#1353](https://github.com/doctrine/orm/pull/1353)\n Paginator fixes take3\n- [DDC-3650](https://github.com/doctrine/orm/issues/4479)\n -[\\#1357](https://github.com/doctrine/orm/pull/1357) Drop\n useless execution bit\n\nDocumentation\n-------------\n\n- [DDC-2510](https://github.com/doctrine/orm/issues/3233)\n -[\\#700](https://github.com/doctrine/orm/pull/700) Update\n getting-started.rst\n- [DDC-2511](https://github.com/doctrine/orm/issues/3234)\n -[\\#701](https://github.com/doctrine/orm/pull/701)\n list\\_bugs.php needs to call to getters for protected vars\n- [DDC-2549](https://github.com/doctrine/orm/issues/3274)\n -[\\#721](https://github.com/doctrine/orm/pull/721) Updated\n batch-processing link extension\n- [DDC-2553](https://github.com/doctrine/orm/issues/3280)\n -[\\#723](https://github.com/doctrine/orm/pull/723) Remove\n extra semicolon before -\\>setParameter() calls\n- [DDC-2571](https://github.com/doctrine/orm/issues/3299)\n -[\\#734](https://github.com/doctrine/orm/pull/734) Cleaned\n up documentation\n- [DDC-2620](https://github.com/doctrine/orm/issues/3353)\n -[\\#762](https://github.com/doctrine/orm/pull/762) YAML\n mapping documentation of uniqueConstraint\n- [DDC-2755](https://github.com/doctrine/orm/issues/3500)\n -[\\#825](https://github.com/doctrine/orm/pull/825) Spelling\n fix\n- [DDC-2777](https://github.com/doctrine/orm/issues/3524)\n -[\\#838](https://github.com/doctrine/orm/pull/838) Spelling\n fix\n- [DDC-2778](https://github.com/doctrine/orm/issues/3525)\n -[\\#839](https://github.com/doctrine/orm/pull/839) Spelling\n fix\n- [DDC-2801](https://github.com/doctrine/orm/issues/3552)\n -[\\#851](https://github.com/doctrine/orm/pull/851)\n Documentation about how to use INSTANCE OF in inheritance\n- [DDC-2819](https://github.com/doctrine/orm/issues/3571)\n -[\\#860](https://github.com/doctrine/orm/pull/860) Mention\n SQL Anywhere in basic mapping documentation\n- [DDC-2821](https://github.com/doctrine/orm/issues/3574)\n -[\\#862](https://github.com/doctrine/orm/pull/862) Added a\n note about changing the fetch mode for to-many relations\n- [DDC-2834](https://github.com/doctrine/orm/issues/3587)\n -[\\#868](https://github.com/doctrine/orm/pull/868) Added\n documentation section for Memcached\n- [DDC-2846](https://github.com/doctrine/orm/issues/3600)\n -[\\#870](https://github.com/doctrine/orm/pull/870)\n Documenting interface methods (based on entity manager)\n- [DDC-2848](https://github.com/doctrine/orm/issues/3602)\n -[\\#872](https://github.com/doctrine/orm/pull/872) Doctrine\n 2.4 now supports SQLite ALTER TABLE\n- [DDC-2873](https://github.com/doctrine/orm/issues/3630)\n -[\\#888](https://github.com/doctrine/orm/pull/888) Add an\n example to doc of YAML mapping\n- [DDC-2887](https://github.com/doctrine/orm/issues/3644)\n -[\\#898](https://github.com/doctrine/orm/pull/898) Added\n note to STI\n- [DDC-2925](https://github.com/doctrine/orm/issues/3685)\n -[\\#913](https://github.com/doctrine/orm/pull/913) Added\n exception class names\n- [DDC-2928](https://github.com/doctrine/orm/issues/3688)\n -[\\#915](https://github.com/doctrine/orm/pull/915) Improved\n DQL's \"new\" operator documentation\n- [DDC-2963](https://github.com/doctrine/orm/issues/3727)\n -[\\#940](https://github.com/doctrine/orm/pull/940) Fixed\n typo & horizontal scrolling\n- [DDC-2979](https://github.com/doctrine/orm/issues/3742)\n -[\\#953](https://github.com/doctrine/orm/pull/953) Update\n doc with latest news about extra lazy assoc\n- [DDC-2985](https://github.com/doctrine/orm/issues/3749)\n -[\\#955](https://github.com/doctrine/orm/pull/955) iteration\n risk note\n- [DDC-3019](https://github.com/doctrine/orm/issues/3785)\n -[\\#975](https://github.com/doctrine/orm/pull/975) Added\n info about automatic discriminator map\n- [DDC-3048](https://github.com/doctrine/orm/issues/3818)\n -[\\#987](https://github.com/doctrine/orm/pull/987) Fixes\n typo in dql-doctrine-query-language.rst\n- [DDC-3053](https://github.com/doctrine/orm/issues/3824)\n -[\\#990](https://github.com/doctrine/orm/pull/990) Typo in\n documentation\n- [DDC-3057](https://github.com/doctrine/orm/issues/3828)\n -[\\#992](https://github.com/doctrine/orm/pull/992) Fixed\n typos\n- [DDC-3059](https://github.com/doctrine/orm/issues/3830)\n -[\\#994](https://github.com/doctrine/orm/pull/994) Update\n EntityGenerator comment\n- [DDC-3073](https://github.com/doctrine/orm/issues/3846)\n -@Column options\n- [DDC-3077](https://github.com/doctrine/orm/issues/3850)\n -[\\#1007](https://github.com/doctrine/orm/pull/1007) Minor\n dockblock change\n- [DDC-3086](https://github.com/doctrine/orm/issues/3860)\n -[\\#1011](https://github.com/doctrine/orm/pull/1011) Single\n quotes can't nest\n- [DDC-3097](https://github.com/doctrine/orm/issues/3872)\n -[\\#1015](https://github.com/doctrine/orm/pull/1015) Add\n ExpressionBuilder::contains() to docs\n- [DDC-3111](https://github.com/doctrine/orm/issues/3888)\n -[\\#1025](https://github.com/doctrine/orm/pull/1025) Removed\n duplicate entry in documentation TOC.\n- [DDC-3127](https://github.com/doctrine/orm/issues/3904)\n -[\\#1031](https://github.com/doctrine/orm/pull/1031)\n Documentation for \\#991\n- [DDC-3131](https://github.com/doctrine/orm/issues/3909)\n -[\\#1034](https://github.com/doctrine/orm/pull/1034) Update\n caching.rst\n- [DDC-3139](https://github.com/doctrine/orm/issues/3917)\n -[\\#1038](https://github.com/doctrine/orm/pull/1038) Add\n documentation for the `HIDDEN` keyword in DQL\n- [DDC-3140](https://github.com/doctrine/orm/issues/3919)\n -[\\#1039](https://github.com/doctrine/orm/pull/1039) Add yml\n example to single table inheritance\n- [DDC-3144](https://github.com/doctrine/orm/issues/3924)\n -[\\#1042](https://github.com/doctrine/orm/pull/1042) Fix\n second level cache doc\n- [DDC-3145](https://github.com/doctrine/orm/issues/3923)\n -[\\#1044](https://github.com/doctrine/orm/pull/1044) Use of\n -\\>andWhere() whithout any -\\>where() before is valid\n- [DDC-3166](https://github.com/doctrine/orm/issues/3946)\n -[\\#1058](https://github.com/doctrine/orm/pull/1058) Drop\n Unicode character\n- [DDC-3168](https://github.com/doctrine/orm/issues/3948)\n -[\\#1059](https://github.com/doctrine/orm/pull/1059) fix\n spacing for yaml example\n- [DDC-3185](https://github.com/doctrine/orm/issues/3967)\n -[\\#1068](https://github.com/doctrine/orm/pull/1068) Fix\n typo in documentation\n- [DDC-3216](https://github.com/doctrine/orm/issues/4002)\n -[\\#1083](https://github.com/doctrine/orm/pull/1083)\n [DDC-3073](https://github.com/doctrine/orm/issues/3846)\n Add documentation about how to map column options\n- [DDC-3217](https://github.com/doctrine/orm/issues/4003)\n -[\\#1084](https://github.com/doctrine/orm/pull/1084) Update\n advanced-field-value-conversion-using-custom-mapping-types.rst\n- [DDC-3253](https://github.com/doctrine/orm/issues/4042)\n -[\\#1110](https://github.com/doctrine/orm/pull/1110) Changed\n table name to be more appropriate.\n- [DDC-3261](https://github.com/doctrine/orm/issues/4050)\n -Bad link in 34.3 Advanced Configuration - Connection Options\n- [DDC-3262](https://github.com/doctrine/orm/issues/4051)\n -[\\#1115](https://github.com/doctrine/orm/pull/1115) Fix\n wrong variable name\n- [DDC-3266](https://github.com/doctrine/orm/issues/4055)\n -[\\#1116](https://github.com/doctrine/orm/pull/1116)\n [DDC-3265](https://github.com/doctrine/orm/issues/4054)\n Fix DocBlock\n- [DDC-3292](https://github.com/doctrine/orm/issues/4084)\n -[\\#1127](https://github.com/doctrine/orm/pull/1127)\n Document embeddables column prefixing\n- [DDC-3324](https://github.com/doctrine/orm/issues/4120)\n -[\\#1147](https://github.com/doctrine/orm/pull/1147)\n Extended the docs for mapping attributes precision and scale\n- [DDC-3326](https://github.com/doctrine/orm/issues/4122)\n -[\\#1148](https://github.com/doctrine/orm/pull/1148)\n [DWEB-118] Fixed small typo in documentation about extra lazy\n associations\n- [DDC-3347](https://github.com/doctrine/orm/issues/4145)\n -[\\#1157](https://github.com/doctrine/orm/pull/1157) Fixing\n calls of schema-update tools\n- [DDC-3348](https://github.com/doctrine/orm/issues/4146)\n -[\\#1158](https://github.com/doctrine/orm/pull/1158) Update\n QueryBuilder reference documentation.\n- [DDC-3351](https://github.com/doctrine/orm/issues/4150)\n -[\\#1161](https://github.com/doctrine/orm/pull/1161) Fixing\n error with from() parameters in example\n- [DDC-3353](https://github.com/doctrine/orm/issues/4152)\n -[\\#1163](https://github.com/doctrine/orm/pull/1163) Update\n xml-mapping.rst\n- [DDC-3388](https://github.com/doctrine/orm/issues/4190)\n -[\\#1183](https://github.com/doctrine/orm/pull/1183) Update\n tools.rst\n- [DDC-3389](https://github.com/doctrine/orm/issues/4191)\n -[\\#1184](https://github.com/doctrine/orm/pull/1184)\n Postgres SERIAL is not a post-insert identifier generation strategy\n- [DDC-3408](https://github.com/doctrine/orm/issues/4212)\n -[\\#1190](https://github.com/doctrine/orm/pull/1190)\n Document that AUTOGENERATE\\_ constants are allowed\n- [DDC-3411](https://github.com/doctrine/orm/issues/4216)\n -[\\#1192](https://github.com/doctrine/orm/pull/1192) Fixed a\n very minor typo\n- [DDC-3417](https://github.com/doctrine/orm/issues/4222)\n -[\\#1195](https://github.com/doctrine/orm/pull/1195)\n Correction Events.rs - Entity Listeners Resolver\n- [DDC-3420](https://github.com/doctrine/orm/issues/4226)\n -[\\#1198](https://github.com/doctrine/orm/pull/1198) Tables\n for buttons.\n- [DDC-3421](https://github.com/doctrine/orm/issues/4227)\n -[\\#1199](https://github.com/doctrine/orm/pull/1199) minor\n typo\n- [DDC-3456](https://github.com/doctrine/orm/issues/4265)\n -[\\#1226](https://github.com/doctrine/orm/pull/1226) Update\n Travis badges to use the SVG version\n- [DDC-3465](https://github.com/doctrine/orm/issues/4275)\n -[\\#1232](https://github.com/doctrine/orm/pull/1232)\n Explicit example of partial indexes\n- [DDC-3471](https://github.com/doctrine/orm/issues/4281)\n -[\\#1236](https://github.com/doctrine/orm/pull/1236) Minor\n docs fix: missing word 'do'\n- [DDC-3484](https://github.com/doctrine/orm/issues/4295)\n -[\\#1244](https://github.com/doctrine/orm/pull/1244) Change\n \\$this return type to static in AbstractQuery\n- [DDC-3499](https://github.com/doctrine/orm/issues/4311)\n -[\\#1253](https://github.com/doctrine/orm/pull/1253) Fix\n dead link\n- [DDC-3516](https://github.com/doctrine/orm/issues/4330)\n -[\\#1264](https://github.com/doctrine/orm/pull/1264) Add\n Changelog/Migration to 2.5 documentation chapter.\n- [DDC-3523](https://github.com/doctrine/orm/issues/4338)\n -[\\#1271](https://github.com/doctrine/orm/pull/1271) Update\n migration\\_2\\_5.rst\n- [DDC-3526](https://github.com/doctrine/orm/issues/4341)\n -[\\#1273](https://github.com/doctrine/orm/pull/1273)\n Incorrect @throws doc. in getSingleScalarResult\n- [DDC-3533](https://github.com/doctrine/orm/issues/4351)\n -[\\#1279](https://github.com/doctrine/orm/pull/1279)\n [Doc][Reference][2nd level cache]\n- [DDC-3542](https://github.com/doctrine/orm/issues/4359)\n -[\\#1287](https://github.com/doctrine/orm/pull/1287) Typo\n fix\n- [DDC-3547](https://github.com/doctrine/orm/issues/4364)\n -[\\#1290](https://github.com/doctrine/orm/pull/1290) [Doc]\n [Reference] [Second Level Cache]\n- [DDC-3555](https://github.com/doctrine/orm/issues/4373)\n -[\\#1296](https://github.com/doctrine/orm/pull/1296) Flip\n key value in \\$namespaces array\n- [DDC-3556](https://github.com/doctrine/orm/issues/4374)\n -[\\#1297](https://github.com/doctrine/orm/pull/1297)\n [DDC-3480](https://github.com/doctrine/orm/issues/4291)\n Docs: Embeddable supported mappings\n- [DDC-3557](https://github.com/doctrine/orm/issues/4375)\n -[\\#1298](https://github.com/doctrine/orm/pull/1298) Docs:\n Remove empty pages from TOC\n- [DDC-3559](https://github.com/doctrine/orm/issues/4377)\n -[\\#1299](https://github.com/doctrine/orm/pull/1299) Fixed\n missing quote in one DQL example\n- [DDC-3570](https://github.com/doctrine/orm/issues/4390)\n -[\\#1305](https://github.com/doctrine/orm/pull/1305)\n Documentation : fix table prefix with STI\n- [DDC-3595](https://github.com/doctrine/orm/issues/4417)\n -[\\#1320](https://github.com/doctrine/orm/pull/1320) Fix\n 'entitiy' typo in Getting Started tutorial\n- [DDC-3599](https://github.com/doctrine/orm/issues/4421)\n -[\\#1322](https://github.com/doctrine/orm/pull/1322) Typo in\n documentation\n- [DDC-3611](https://github.com/doctrine/orm/issues/4435)\n -[\\#1329](https://github.com/doctrine/orm/pull/1329) Fix for\n inconsistent use of getSQLDeclaration\n- [DDC-3613](https://github.com/doctrine/orm/issues/4438)\n -[\\#1330](https://github.com/doctrine/orm/pull/1330) Fix\n @Column options sections in documentation\n- [DDC-3614](https://github.com/doctrine/orm/issues/4439)\n -[\\#1331](https://github.com/doctrine/orm/pull/1331) [DOCS]\n Fixed class name in aggregate fields example\n- [DDC-3617](https://github.com/doctrine/orm/issues/4442)\n -[\\#1334](https://github.com/doctrine/orm/pull/1334) Changed\n some wrong usage of the @internal phpdoc\n- [DDC-3620](https://github.com/doctrine/orm/issues/4446)\n -[\\#1335](https://github.com/doctrine/orm/pull/1335) Fix\n AbstractQuery::getParameter() documented return type\n- [DDC-3627](https://github.com/doctrine/orm/issues/4453)\n -[\\#1341](https://github.com/doctrine/orm/pull/1341) [doc]\n Minor fixes and typos\n- [DDC-3648](https://github.com/doctrine/orm/issues/4476)\n -[\\#1355](https://github.com/doctrine/orm/pull/1355) [Docs]\n TablePrefix example - Check for being the owning side\n- [DDC-3651](https://github.com/doctrine/orm/issues/4480)\n -[\\#1358](https://github.com/doctrine/orm/pull/1358) Update\n docs for clear-cache commands\n\nPlease report any issues you may have with the update on the mailing\nlist or on [JIRA](https://www.doctrine-project.org/jira/browse/DDC).\n", + "date": "2015-04-02 00:00:00" }, { - "url": "/2010/04/20/orm-is-not-a-choice.html", - "slug": "orm-is-not-a-choice", - "title": "ORM is Not a Choice", - "authorName": "romanb", - "authorEmail": "", - "contents": "**NOTE** When speaking of \"ORM\" or \"object-relational mapping\" in\n: this post I am referring to the act of mapping an [object-oriented\n domain model](https://martinfowler.com/eaaCatalog/domainModel.html)\n to a relational database. There are other, alternative forms of\n object-relational mapping.\n\n\"Should I use an ORM?\" is a frequently asked question that somehow\nmisses the point, because ORM is usually not some optional thing you can\neither use or not. The choices are elsewhere. Furthermore, if there is a\ndislike for ORM tools it helps to clarify what exactly is the cause. The\ncause can be a dislike of object-oriented domain models. For example, if\nyou prefer to separate data from behavior/logic, as [I've read recently\non Twitter](https://twitter.com/elazar/status/12492601691) , then it is a\nsign that you don't like domain models, at least not rich ones, maybe\n[anemic ones](https://martinfowler.com/bliki/AnemicDomainModel.html) ,\nand you probably don't like OOP much at all then, because bundling data\nwith behavior is what OO is about, usually.\n\n> **NOTE** It's OK not to like OOP these days. Its not the holy grail\n> anymore, mostly due to the usually messy concurrency characteristics\n> and problems resulting from typical object-oriented design which\n> revolves around imperative programming with direct manipulation of\n> mutable state, but that does not apply to PHP as much as to some other\n> languages due to its thread-confined nature/execution model.\n\nYou can not use a relational database in combination with an\nobject-oriented domain model without mapping.\n\nThe choices that lead to the need for ORM are the following:\n\n- *You can choose to use a relational database or not.*\n- *You can choose to create an object-oriented domain model or not.*\n\nIf you want a relational database and you want an object-oriented domain\nmodel, you need ORM, there is no choice. If you choose to use a\nrelational database but not an object-oriented domain model, you might\nneed some other form of object-relational or other mapping, depending on\nhow you want to model your application and your business logic around\nthe data in particular.\n\nPeople not being aware of the above two choices, especially the second\none, is unfortunately what makes some of them \"choose ORM\" and then\nsometimes getting frustrated. Using an ORM without even having or\nwanting a domain model and with the head still exclusively full of\ntables and rows, which are at the beginning and at the end of every\nthought about the software being built, is a wrong choice. With these\npreconditions, ORM quickly becomes a pain, and its wrong. Forcing your\nrelational data into objects even though you don't really know what to\ndo with them, maybe it just seems nice to have them as \"data\ncontainers\", is the wrong motivation. If you don't want to combine your\nbusiness data with your business behavior, something that can be done\nnicely in an OO domain model, then there is not much value in having\nobjects wrapped around your data. Some other, wrong motivations for\n\"choosing an ORM\", at least when they are the main motivations, are:\n\n- Database vendor independence\n- \"Hiding SQL\"\n\nThese are just additional benefits you can get but they are not the main\npurpose of an ORM tool. Then what is the main purpose? *State\nmanagement. Synchronizing the state of your in-memory object model with\na relational database for the purpose of persistent storage.* Neither\ndoes an ORM need to be database vendor independent, nor does it need to\nhide SQL to do this. Everything else is icing on the cake. If all you\nwant is to centralize your database access paths, which is a good thing\nfor caching and all, you don't need an ORM for that either, any database\naccess layer, existing or self-made, will do.\n\nI hope it is a bit clearer now that ORM is not a choice but a need that\nresults out of other choices.\n", - "date": "2010-04-20 00:00:00" + "url": "/2017/10/24/odm-1-2-0-and-1-1-7.html", + "slug": "odm-1-2-0-and-1-1-7", + "title": "Doctrine MongoDB ODM 1.2.0 and 1.1.7 Released", + "authorName": "Andreas Braun", + "authorEmail": "alcaeus@alcaeus.org", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM [1.2.0](https://github.com/doctrine/mongodb-odm/releases/tag/1.2.0)\nand [1.1.7](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.7).\n\nMongoDB ODM 1.1.7\n=================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/1.1.x/CHANGELOG-1.1.md#117-2017-10-23).\nA full list of issues and pull requests included in this release may be\nfound in the [1.1.7\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1.7).\n\nWhat is new in 1.2.0?\n=====================\n\nDoctrine MongoDB ODM 1.2.0 introduces the following new features:\n\n- The `readOnly` mapping option allows you to map immutable documents.\n- With `slaveOkay` being deprecated, you can now specify a\n `readPreference` for your documents. This `readPreference` will\n automatically be applied to all queries for those mapped documents.\n- With `dbRef` only offering limited support in aggregation pipeline\n queries, there's a new reference storage strategy called `ref` that\n stores references as objects (without \"\\$\"-prefixed field names),\n allowing you to use it with discriminators and aggregation pipeline\n queries.\n- When mapping inverse references, you may now specify fields that\n will be primed when the reference is resolved. This saves you from\n writing a dedicated repository method for the sole purpose of\n priming references.\n- The `odm:schema:validate` command validates the document mapping to\n help you spot mistakes.\n- A new builder for aggregation pipeline queries, including support\n for marshalling results into read-only documents.\n- Query result documents that can be used to hydrate results from an\n aggregation pipeline query. These documents cannot be written back\n to the database.\n\nUpgrading to 1.2.0\n==================\n\nThe new version requires PHP 5.6. Running on PHP 7+ requires the use of\na polyfill for the legacy driver, e.g.\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter). When\nrunning on PHP 5.6, MongoDB ODM requires version 1.6.7 or newer of the\nlegacy MongoDB driver.\n\nSeveral features have been deprecated in this release and will be\ndropped in the 2.0 release. To see this, please view the [UPGRADE\ndocument](https://github.com/doctrine/mongodb-odm/blob/1.2.x/UPGRADE-1.2.md).\n\nInstallation\n============\n\nYou can install the new version of MongoDB ODM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.2.0\"\n }\n}\n```\n\nStability and upcoming releases\n===============================\n\nAs of today, Doctrine MongoDB ODM `1.2.0` is the stable distribution.\nThere is no release schedule for an upcoming version yet.\n\n`1.1.7` is the last release of the `1.1.x` development line and will no\nlonger receive bug fixes. Instead, we will focus on developing MongoDB\nODM 2.0 with native support for the new MongoDB driver. This release\nwill require at least PHP 7.1 and contain several BC breaking changes.\nTo ease the migration process, we will release a `1.3.0` which will be\nbackwards compatible to the `1.2.x` line and only deprecate features to\nbe removed in 2.0. The `1.x` line of MongoDB ODM will not receive any\nnew features.\n", + "date": "2017-10-24 00:00:00" }, { - "url": "/2021/11/26/dbal-3.2.0.html", - "slug": "dbal-3.2.0", - "title": "New Release: Doctrine DBAL 3.2.0", - "authorName": "Sergei Morozov", - "authorEmail": "morozov@tut.by", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL 3.2.0. As most of the minor releases, this one\nfocuses on new features, improvements and deprecations of the old APIs. Here are some details on the most significant\nfeatures and improvements:\n\n## Platform-aware schema comparison ([#4746](https://github.com/doctrine/dbal/pull/4746))\n\nUp until this release, the logic of comparing database schemas had a major design flaw: it took into account only the\nabstract schema definitions without taking the target platform into account.\n\nThis flaw would lead to multiple issues which shared the same root cause: the two definitions could be considered\ndifferent by the DBAL, but they would produce the same DDL.\n\nFor instance, consider the two column definitions:\n\n```php\n// old schema\n$column1 = new Column('contents', Type::getType('text'));\n\n// new schema\n$column2 = new Column('contents', Type::getType('text'), ['default' => 'Hello, world!']);\n```\n\nIf we compared them with the comparator, we'd get a diff:\n\n```php\n$comparator = new Comparator();\n$comparator->diffColumn($column1, $column2);\n// array(1) {\n// [0] =>\n// string(7) \"default\"\n// }\n```\n\nThis might be valid for the platforms that support the `DEFAULT` constraint on `TEXT` columns but isn't valid for those\nthat don't support it (e.g. MySQL). Regardless of the diff, both definitions would produce the same DDL on MySQL:\n\n```sql\ncontents LONGTEXT NOT NULL\n```\n\nAn attempt to migrate the old schema to the new one would produce a false-positive diff but applying it wouldn't result\nin any schema changes.\n\nA false-negative diff was also possible. Consider these following example:\n\n```php\n// old schema\n$column1 = new Column('settings', Type::getType('json'));\n\n// new schema\n$column2 = new Column('settings', Type::getType('json'), ['length' => 16777215]);\n```\n\nComparison of the above column definitions should have triggered a diff on MySQL and migrate the underlying column\nfrom `TEXT` to `MEDIUMTEXT` but it didn't, because the DBAL would ignore the length of the `TEXT` columns.\n\nApart from that, the DBAL would compare only a subset of the definitions, so some column options as the character set\nand collation weren't taken into account during comparison at all.\n\n### The new approach\n\nInstead of comparing abstract definitions on a per-property basis, the new implementation compares the DDL that is generated from both definitions for the target database platform. If the definitions produce the same DDL, they are considered equal. According to the tests and the number of resolved issues, this approach should be more accurate and less error-prone.\n\nImplementing this approach was impossible without introducing a new API which rendered the existing API obsolete.\n\nPrior to DBAL `3.2.0`, the schema comparator could be only instantiated directly via the `new` keyword:\n\n```php\n$comparator = new Comparator();\n```\n\nInstantiated like this, the comparator doesn't have a notion of the target database platform and cannot perform the comparison properly. That is why, this way of instantiation is deprecated in favor of instantiating the comparator by the schema manager:\n\n```php\n$schemaManager = $connection->createSchemaManager();\n$comparator = $schemaManager->createComparator();\n```\n\nThis way, the schema manager can instantiate a platform-specific comparator and provide it with the necessary context (e.g. the default collation used by the database).\n\nWhile the old API is still available, it is recommended to use the new API for more accurate comparison.\n\n## Support for `psr/cache` ([#4620](https://github.com/doctrine/dbal/pull/4620))\n\nSince the Doctrine Cache library is being sunset, the new DBAL release introduced the ability to use a PSR-6 compatible implementation for result caching.\n\nWhile both the `doctrine/cache` and `psr/cache` APIs will be supported until the next major DBAL release, we recommend users to switch to a PSR-6 compatible implementation in their projects.\n\n## Support for `psr/log` ([#4967](https://github.com/doctrine/dbal/pull/4967))\n\nThe `SQLLogger` interface was designed long ago and has certain limitations: there is no way to log messages at different logger levels and it is really challenging to extend the logger functionality without introducing breaking API changes.\n\nThe new DBAL release introduces a new middleware that can delegate logging to a PSR-3 compatible implementation.\n\nNote that the new logger won't produce the messages identical to the ones produced by the old one. If you have any processes built around analysing log messages, you may need to make some changes before adopting the new API.\n\n## Always cache the full result ([#5003](https://github.com/doctrine/dbal/pull/5003))\n\nThe implementation of the result cache prior to DBAL 3.2.0 would store the result set in the cache only once it was fetched completely. It led to the following issues:\n\n1. If the result isn't yet cached and its consumer didn't fetch it completely, the query would be executed again.\n2. In case of a cache miss, the DBAL would `get()` the cache entry twice: once to fetch the data and once to merge the just fetched result with other results that may be stored in the cache.\n\nThe new implementation stores the results in the cache right after they were fetched. It simplifies the caching layer significantly and makes its behavior more straightforward.\n\n## Add events for Transaction begin/commit/rollback ([#4622](https://github.com/doctrine/dbal/pull/4622))\n\nThe new DBAL version introduces three more transaction-related events:\n\n- `onTransactionBegin`,\n- `onTransactionCommit`,\n- `onTransactionRollBack`.\n\nSubscribing to those might be helpful if the application logic integrates the database transaction flow with the business logic implemented outside the database. For instance, in the filesystem.\n\n## Basic exception handling in IBM DB2 and SQL Server drivers ([#4929](https://github.com/doctrine/dbal/pull/4929), [#4928](https://github.com/doctrine/dbal/pull/4928))\n\nThe DBAL provides a mechanism that converts driver-specific error codes to portable error-specific exceptions. For instance an attempt to insert `NULL` into a column that has a `NOT NULL` constraint applied will result in error with the code `1566` on MySQL and in `ORA-01400` on Oracle. The DBAL will convert these two errors to a portable `NotNullConstraintViolationException`.\n\nHistorically, the DBAL drivers based on the `ibm_db2`, `sqlsrv` and `pdo_sqlsrv` extensions did not support this feature and would thow a generic `DriverException`.\n\nAs of DBAL 3.2.0, this feature is supported by all bundled drivers.\n\n## Improved `AbstractPlatform::getLengthExpression()` ([#4855](https://github.com/doctrine/dbal/pull/4855))\n\nAlthough the `LENGTH` expression was implemented for all supported database platforms, the different implementations didn't have consistent semantics:\n\n1. Most implementations would return the length in characters (Unicode code points), which is the most expected behavior.\n2. The implementations for MySQL and IBM DB2 would return the number of bytes. It worked fine for the strings that consisted only of the ANSI characters, but an attempt to use it with a wider range of characters would produce an unexpected result. For instance, the length of the string `'\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0438\u0440!'` might be reported as `19` instead of `12`.\n\nAs of DBAL 3.2.0, all platforms return the length in Unicode points according to the character set used by the database connection. Note, SQL Server supports UTF-8 only as of SQL Server 2019.\n\nYou can find more details in the [release notes](https://github.com/doctrine/dbal/releases/tag/3.2.0).\n", - "date": "2021-11-26 00:00:00" + "url": "/2015/12/31/cache-1-6-0.html", + "slug": "cache-1-6-0", + "title": "Cache 1.6.0 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine Cache\n[1.6.0](https://github.com/doctrine/cache/releases/tag/v1.5.2).\n\nCache 1.6.0\n===========\n\nSupport for PHP versions below 5.5.0 was removed: please remember that\nif you are still using PHP 5.4.x or lower, the PHP project [does not\nprovide support for those versions\nanymore](https://secure.php.net/supported-versions.php).\n[\\#109](https://github.com/doctrine/cache/pull/109)\n\nNative [APCu](https://github.com/krakjoe/apcu) support was introduced:\nif you run newer versions of APCu, then you can use the new\n[ApcuCache](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/ApcuCache.php)\nadapter. [\\#115](https://github.com/doctrine/cache/pull/117)\n\nA\n[MultiPutCache](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/MultiPutCache.php)\ninterface was introduced: the\n[CacheProvider](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/CacheProvider.php)\nimplements it by default now. This interface can lead to improved\nperformance when saving multiple keys at once, if your cache adapter\nsupports such an operation.\n[\\#117](https://github.com/doctrine/cache/pull/117)\n\nThe\n[ArrayCache](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/ArrayCache.php)\nnow honors the given cache entries TTL, making it possible to use it\neven in long running processes without the risk of dealing with stale\ndata. [\\#130](https://github.com/doctrine/cache/pull/130)\n\nInstallation\n============\n\nYou can install the Cache component using the following `composer.json`\ndefinitions:\n\n```bash\ncomposer require doctrine/cache:^1.6\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-12-31 00:00:00" }, { - "url": "/2022/01/11/orm-2.11.html", - "slug": "orm-2.11", - "title": "New Release: Doctrine ORM 2.11 with Enums, Virtual Columns, Read-Only Properties, Nested Attributes and more", - "authorName": "Benjamin Eberlei", - "authorEmail": "kontakt@beberlei.de", - "contents": "We have released a new minor version 2.11 of Doctrine ORM with several improvements\nand new features.\n\n[See all changes and contributors in the\nChangelog](https://github.com/doctrine/orm/releases/tag/2.11.0) on Github.\n\nThis blog post gives an overview over all the new features and improvements\nthat are user facing. Please see the changelog and UPGRADE notes for new\ndeprecations.\n\n## PHP 8.1 Enum Support\n\nWith PHP 8.1 the language has first class support for enumerations and Doctrine\nORM 2.11 supports the mapping of database values to [Backed\nEnums](https://www.php.net/manual/en/language.enumerations.backed.php).\n\nThe support is not integrated on DBAL Type level, but using a new mapping option\ncalled `enumType` on column/field declaration level:\n\n```php\nenum Suit: string {\n case Hearts = 'H';\n case Diamonds = 'D';\n case Clubs = 'C';\n case Spades = 'S';\n}\n\n#[Entity]\nclass Card\n{\n /** ... */\n\n #[Column(type: 'string', enumType: Suit::class)]\n public $suit;\n}\n```\n\n## Virtual and Generated Columns\n\nThere has been constant demand for this feature for a long time, to add support\nfor columns that are not insertable/updatable and might have their value\nupdated on the database side.\n\nWe have worked along the lines of Java Persistence API support of `insertable`,\n`updatable` and `generated` options for field mappings.\n\nThere are two major use cases for this:\n\n1. Map a column several times, for example with join columns:\n\n```php\n#[Entity]\nclass User\n{\n #[ManyToOne(targetEntity: Country:class), JoinColumn(name: \"country_code\", referencedColumnName: \"country_code\")]\n public $country;\n\n #[Column(type: \"string\", name: \"country_code\", insertable: false, updatable: false)]\n public $countryCode;\n}\n```\n\n2. Columns updated by the database\n\n```php\n#[Entity]\nclass Article\n{\n #[Column(type: \"datetime\",\n columnDefinition: \"TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\",\n insertable: false,\n updatable: false,\n generated: \"ALWAYS\")]\n public $created;\n}\n```\n\n## Support for Readonly Properties\n\nAnother PHP 8.1 feature is the new readonly keyword that prevents the value of\na property to be written again after it has been initialized in the constructor\nof an object.\n\nWith ORM 2.11 the support now works as you would expect with no additional\nmapping options necessary:\n\n```php\n#[Entity, Table(name: 'author')]\nclass Author\n{\n #[Column, Id, GeneratedValue]\n private readonly int $id;\n\n #[Column]\n private readonly string $name;\n}\n```\n\n## AssociationOverrides and AttributeOverrides in Attribute Driver\n\nThe new `AttributeDriver` for PHP 8 did not support the equivalent mapping\noptions for association and attribute overrides that are available for XML and\nAnnotation mapping, because in PHP 8.0 it was not possible to nest complex\nattributes. \n\nWith the support now available in PHP 8.1 we have added these attributes.\n\n```php\nsetSchemaIgnoreClasses([$fqcn]);\n$config->getSchemaIgnoreClasses();\n```\n", - "date": "2022-01-11 00:00:00" - }, - { - "url": "/2012/12/05/doctrine-2-3-1.html", - "slug": "doctrine-2-3-1", - "title": "Doctrine 2.3.1 relased", - "authorName": "Benjamin Eberlei", + "url": "/2011/07/04/doctrine-2-1.html", + "slug": "doctrine-2-1", + "title": "Doctrine 2.1 released", + "authorName": "beberlei", "authorEmail": "", - "contents": "**05.12.2012**\n\nWe have released the first mini release in the 2.3 cycle. Due to high\nworkload of all the participating developers we couldn't release this\nearlier. We hope to release 2.3.2 in a much shorter period from now.\n\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10325)\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10323)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) , download, PEAR or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.1\"\n }\n }\n", - "date": "2012-12-05 00:00:00" + "contents": "We finished all the outstanding work on the Doctrine 2.1 branch and\nreleased the first final version. Almost all of the code was kept\nbackwards compatible. There are only some slight changes that are\nexplained in the [UPGRADE\\_TO\\_2\\_1 file](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-21).\n\nThis release is packed with new features and optimizations:\n\n- **Indexed associations:** You can force Doctrine to hydrate\n collection elements by using a field of the target entity as key,\n for example the ID or any unique field. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/working-with-indexed-associations.html).\n- **Extra Lazy Collections:** Instead of always initializing the\n complete collection in memory you can now mark a collection as extra\n lazy, leading to special SQL executed for Collection\\#count(),\n Collection\\#contains() and Collection\\#slice(). This allows to\n implement efficient pagination on collections without having to use\n DQL. It also allows to save some memory for common use-cases with\n very large collections. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/extra-lazy-associations.html).\n- **Identity through Foreign Entities or derived entities:** You can\n now use a foreign key as identifier of an entity. This translates to\n using @Id on a @ManyToOne or @OneToOne association. You can read up\n on this [feature in the\n tutorial](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/composite-primary-keys.html#identity-through-foreign-entities).\n- **Persister Refactoring:** Instead of reimplementing hydration in\n the persisters we now use the hydration mechanism that is used by\n DQL aswell. Sadly this drops performance for hydration in the\n persisters by 5-25% for some use-cases. It starts with a drop of 5%\n for a few hydrations and increases in the number of different\n hydrations you are doing in a request. As a benefit we could remove\n tons of code and use several optimizations that actually increase\n performance when using fetch=\"EAGER\" in ManyToOne and OneToOne\n associations. Furthermore inverse OneToOne associations previously\n always executed an additional query, which is now replaced with a\n join.\n- **Temporary fetch mode in DQL** On a DQL Query you can now call\n \\`\\$query-\\>setFetchMode(\\$\\`className, \\$assocName, \\$fetchMode) to\n temporarily set the fetch mode to a value different from the one\n defined in the Association Mapping. If you set a ManyToOne or\n OneToOne association to eager fetching Doctrine will use a batch\n WHERE id IN (..) query to fetch all entities in a single query after\n the original query was completed.\n- **Binding Arrays to a Query:** Doctrine now implements low-level\n support for binding arrays to named or positional parameters. This\n is possible with the Doctrine::TYPE\\_INT\\_ARRAY and\n Doctrine::TYPE\\_STR\\_ARRAY parameters that you have to pass as types\n to a query you want to use this feature in. EntityRepository now\n supports passing arrays as values to a field and uses an IN query.\n- **EntityRepository Limit and OrderBy:** The method\n EntityRepository\\#findBy() now accepts additional parameters for\n ordering, limit and offset.\n- **ResultSetMapping Helper:** There is now a class that simplifies\n populating a ResultSetMapping based on an existing ClassMetadata\n instance.\n- **Zero Based Parameters in Queries:** You can now start with the\n parameter ?0 in DQL queries.\n- **Named DQL Queries in Metadata:** You can add dql queries in the\n mapping files using @NamedQueries(@NamedQuery(name=\"foo\",\n query=\"DQL\")) and access them through\n \\$em-\\>getRepository()-\\>getNamedQuery().\n- **Date related DQL functions:** Suport for DATE\\_ADD(), DATE\\_SUB()\n and DATE\\_DIFF() in DQL.\n- **New console command orm:info:** Gives details about all registered\n entities and if their mappings are valid or not.\n- **Read Only Entities:** You can set the attribute readOnly=true on\n an entity. This will only allow to persist new instances of this\n entity or removing them, they will never be considered for updating,\n thus allowing for performance optimizations where these entities are\n not considered in the UnitOfWork changeset computations.\n- **SQL Query Object:** There is now an SQL Query object in the\n Doctrine project. You can create an instance with\n \\$connection-\\>createQueryBuilder().\n- **Automatic Parameter Type Inference:** For certain parameters types\n such as integer and DateTime ORM Query::setParameter can now\n automatically infer the type instead of requiring manually passing\n the values as third parameter.\n- **AnnotationReader Refactoring** - The annotation reader is now much\n more powerful and also allows for giving you error advices if you\n configure it this way. See the\n [documentation](https://www.doctrine-project.org/docs/common/2.1/en/reference/annotations.html)\n on all the changes and how Annotations work in 2.1.\n\nSee the changelogs for a list of all changes:\n\n- [Doctrine ORM 2.1\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022)\n- [Doctrine DBAL 2.1\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10068)\n- [Doctrine Common 2.1\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10123)\n\nYou can grab the code from our [downloads\nsection](https://www.doctrine-project.org/projects) , from\n[PEAR](http://pear.doctrine-project.org) or directly from\n[Github](https://github.com/doctrine).\n\nI will announce winners of the backwards compatibility competition in\nthe next weeks and send out gifts. The team thanks all contributors and\nbug-reporters for helping making Doctrine 2.1 a stable release. The next\nrelease of Doctrine 2.2 is scheduled for December 2011. We havent quite\nmade up our mind on the roadmap yet, but expect a post on this issue\nsoon.\n", + "date": "2011-07-04 00:00:00" }, { - "url": "/2015/01/12/dbal-244-251.html", - "slug": "dbal-244-251", - "title": "DBAL 2.4.4 and 2.5.1 released", - "authorName": "Steve M\u00fcller", - "authorEmail": "deeky666@googlemail.com", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.4.4 and 2.5.1. Various bugs that prevented users from upgrading to\nDBAL 2.5.x have been fixed in DBAL 2.5.1, along with some others. DBAL\n2.4.4 only contains backported bug fixes addressed since the release of\nDBAL 2.5.0.\n\nThe index renaming feature introduced in DBAL 2.5.0 caused trouble for\nsome MySQL users utilizing ORM's schema tool to upgrade their schemas\nwhere the schema tool was generating invalid `DROP INDEX` /\n`CREATE INDEX` SQL. Fixing this issue was only possible by introducing a\nminor BC break (change in behaviour), please see `UPGRADE.md` for more\ninformation (we know that this is a patch release but we are actually\nreverting a BC break here). MariaDB users had problems upgrading to DBAL\n2.5.0 because of the new platform detection feature not taking MariaDB\nbackends into account. Additionally, some minor bugs around schema\ncreation / introspection and DDL in various platforms were fixed.\n\nPlease note that this release does `not yet` include a fix for users\nhaving problems with the DBAL connection not being lazy anymore since\nDBAL 2.5.0 when retrieving the underlying platform. Unfortunately we did\nnot find a good solution for this issue yet. Until the issue is fixed\nplease directly set the platform version as a workaround by using the\n`serverVersion` configuration option described in the\n[documentation](https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/configuration.html#automatic-platform-version-detection)\nif you are encountering any problems.\n\nYou can find all the changes on JIRA:\n\n- [DBAL\n 2.4.4](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10725)\n - 9 issues fixed\n- [DBAL\n 2.5.1](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10727)\n - 24 issues fixed\n\nYou can install the DBAL using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/dbal\": \"2.4.4\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-01-12 00:00:00" + "url": "/2008/07/01/introducing-the-doctrine-forum.html", + "slug": "introducing-the-doctrine-forum", + "title": "Introducing the Doctrine Forum", + "authorName": "jwage", + "authorEmail": "", + "contents": "For those of you who are not keen on using the mailing list or irc for\ngetting help with Doctrine, we now have a public Forum, powered by\nPHPBB3(which is very nice btw). Please contact me at jonwage at\ngmail.com if you would like a forum for your language added or if you\nare interested in being a moderator.\n", + "date": "2008-07-01 00:00:00" }, { - "url": "/2015/01/25/orm-2-5-0-alpha-2.html", - "slug": "orm-2-5-0-alpha-2", - "title": "Doctrine ORM 2.5.0-alpha2 Pre-Release", + "url": "/2015/11/02/cache-1-4-4_and-1-5-1.html", + "slug": "cache-1-4-4_and-1-5-1", + "title": "Cache 1.4.4 and 1.5.1 Released", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability Doctrine ORM\n`2.5.0-alpha2`.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the ORM.\n\nWe encourage all of our users to help us by trying out this alpha\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nThis pre-release is not yet at feature-freeze, therefore we urge\ncontributors to contact us if there is any change that requires our\nattention before we reach the beta (feature-freeze) release stage.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n- `2.5.0-beta1` on `2015-02-02`\n- `2.5.0-beta2` on `2015-02-09`\n- `2.5.0` on `2015-02-16`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nAdditionally, we will delay the release if any newly introduced critical\nbugs are detected, as it already happened with this `2.5.0-alpha2`\nrelease.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-alpha2\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-alpha1\n==========================\n\nThis is a list of issues solved in `2.5.0-alpha2` since `2.5.0-alpha1`:\n\n- [[DDC-3517]](https://github.com/doctrine/orm/issues/4331)\n [[GH-1265]](https://github.com/doctrine/orm/pull/1265) Fix\n error undefined index \"targetEntity\"\n- [[DDC-3516]](https://github.com/doctrine/orm/issues/4330)\n [[GH-1264]](https://github.com/doctrine/orm/pull/1264) Add\n Changelog/Migration to 2.5 documentation chapter.\n- [[DDC-3520]](https://github.com/doctrine/orm/issues/4335)\n [[DDC-3521]](https://github.com/doctrine/orm/issues/4336)\n [[GH-1269]](https://github.com/doctrine/orm/pull/1269)\n `self-update` composer before install\n- [[DDC-3526]](https://github.com/doctrine/orm/issues/4341)\n [[GH-1273]](https://github.com/doctrine/orm/pull/1273)\n Incorrect `@throws` doc. in `getSingleScalarResult`\n- [[DDC-3465]](https://github.com/doctrine/orm/issues/4275)\n [[GH-1232]](https://github.com/doctrine/orm/pull/1232)\n Explicit example of partial indexes\n- [[DDC-3300]](https://github.com/doctrine/orm/issues/4094)\n [[DDC-3503]](https://github.com/doctrine/orm/issues/4317)\n [[GH-1130]](https://github.com/doctrine/orm/pull/1130)\n [[GH-1232]](https://github.com/doctrine/orm/pull/1232) Resolve\n target entity also in discriminator map (allows interfaces and\n custom names in discriminator map)\n- [[DDC-3378]](https://github.com/doctrine/orm/pull/1176)\n [[GH-1176]](https://github.com/doctrine/orm/pull/1176) Support\n merging entities with composite identities defined through to-one\n associations\n- [[DDC-3533]](https://github.com/doctrine/orm/issues/4351)\n [[GH-1279]](https://github.com/doctrine/orm/pull/1279) Fixed\n typos and grammar in the second level cache documentation\n- [[DDC-3343]](https://github.com/doctrine/orm/issues/4141)\n [[DDC-3536]](https://github.com/doctrine/orm/issues/4349)\n [[DDC-3544]](https://github.com/doctrine/orm/issues/4361)\n [[GH-1281]](https://github.com/doctrine/orm/pull/1281)\n [[GH-1288]](https://github.com/doctrine/orm/pull/1288)\n [[GH-1169]](https://github.com/doctrine/orm/pull/1169)\n Entities should not be deleted when using `EXTRA_LAZY` and\n `one-to-many`\n- [[DDC-3538]](https://github.com/doctrine/orm/issues/4355)\n [[DDC-3519]](https://github.com/doctrine/orm/issues/4333)\n [[GH-1283]](https://github.com/doctrine/orm/pull/1283)\n [[GH-1267]](https://github.com/doctrine/orm/pull/1267)\n Reverted [\\#1220](https://github.com/doctrine/orm/pull/1220),\n fixed order in pagination logic\n- [[DDC-2704]](https://github.com/doctrine/orm/issues/3446)\n [[DDC-3524]](https://github.com/doctrine/orm/issues/4339)\n [[GH-1272]](https://github.com/doctrine/orm/pull/1272) merge\n inherited transient properties - merge properties into uninitialized\n proxies\n- [[DDC-3346]](https://github.com/doctrine/orm/issues/4144)\n [[DDC-3531]](https://github.com/doctrine/orm/issues/4347)\n [[DDC-3534]](https://github.com/doctrine/orm/issues/4352)\n [[GH-1280]](https://github.com/doctrine/orm/pull/1280)\n [[GH-1277]](https://github.com/doctrine/orm/pull/1277) fixed\n `findOne*` operations when using a `EAGER` `*-to-many` association\n- [[DDC-3541]](https://github.com/doctrine/orm/issues/4358)\n [[GH-1286]](https://github.com/doctrine/orm/pull/1286)\n Removing XDebug from non-coverage builds\n- [[DDC-3546]](https://github.com/doctrine/orm/issues/4363)\n [[GH-1289]](https://github.com/doctrine/orm/pull/1289) Improve\n test suite performance\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", - "date": "2015-01-25 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine Cache\n[1.4.4](https://github.com/doctrine/cache/releases/tag/v1.4.4) and\n[1.5.1](https://github.com/doctrine/cache/releases/tag/v1.5.1).\n\nCache 1.4.4\n===========\n\nThis release fixes the version number reported in\n[Doctrine/Common/Cache/Version::VERSION](https://github.com/doctrine/cache/blob/v1.5.1/lib/Doctrine/Common/Cache/Version.php)\n\nAdditionally, a flaw in `CacheProvider#fetchMultiple()` was fixed:\n`null` and false-y values being fetched were considered cache misses,\nbut are now correctly included in the results\n([\\#104](https://github.com/doctrine/cache/pull/104)).\n\nYou can find the complete changelog for this release in the [v1.4.4\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.4.4).\n\nCache 1.5.1\n===========\n\nThis release includes all the fixes mentioned in the above `1.4.4`\npatch.\n\nYou can find the complete changelog for this release in the [v1.5.1\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.5.1).\n\nInstallation\n============\n\nYou can install the Cache component using Composer either of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.4.4\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.5.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-11-02 00:00:00" }, { - "url": "/2010/08/24/doctrine-orm-version-1-2-3-released.html", - "slug": "doctrine-orm-version-1-2-3-released", - "title": "Doctrine ORM Version 1.2.3 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "", - "date": "2010-08-24 00:00:00" + "url": "/2015/03/25/orm-2-5-0-rc-1.html", + "slug": "orm-2-5-0-rc-1", + "title": "Doctrine ORM 2.5.0-RC1 Release Candidate", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n`2.5.0-RC1`.\n\nThis is a release candidate meant to allow users and contributors to\nverify the stability of the next iteration of the ORM.\n\nWe encourage all of our users to help us by trying out this release.\nPlease report any possible problems or incompatibilities that may have\nbeen introduced during development.\n\nWhat is new in 2.5.x?\n=====================\n\nWe are currently in the process of documenting all the changes and new\nfeatures that were introduced in Doctrine ORM 2.5.x.\n\nYou can find the current state of the 2.5.0 changes overview in [the\nupgrade\nnotes](http://docs.doctrine-project.org/en/latest/changelog/migration_2_5.html).\n\nRelease RoadMap\n===============\n\nWe expect to release following versions of the ORM in the next days:\n\n> - `2.5.0` on `2015-04-02`\n\nPlease note that these dates may change depending on the availability of\nour team.\n\nWe also apologise for the major delays in this beta release, which are\ncaused by the scarce availability of the core team in these months.\n\nInstallation\n============\n\nYou can install this version of the ORM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"2.5.0-RC1\"\n },\n \"minimum-stability\": \"dev\"\n}\n```\n\nChanges since 2.5.0-beta1\n=========================\n\nThis is a list of issues solved in `2.5.0-RC1` since `2.5.0-beta1`:\n\n- [[DDC-3632](https://github.com/doctrine/orm/issues/4459)] -\n [[GH-1345](https://github.com/doctrine/orm/pull/1345)] Fix crashes in ``ConvertMappingCommand`and`GenerateEntitiesCommand`` when using entities with joined table inheritance\n- [[DDC-3634](https://github.com/doctrine/orm/issues/4461)] -\n [[GH-1346](https://github.com/doctrine/orm/pull/1346)] Fix: generated IDs are converted to integer even when they are big integers\n- [[DDC-3630](https://github.com/doctrine/orm/issues/4457)]\n [[DDC-3621](https://github.com/doctrine/orm/issues/4447)] -\n [[GH-1343](https://github.com/doctrine/orm/pull/1343)] Support embeddables in partial object query expression\n- [[DDC-3623](https://github.com/doctrine/orm/issues/4449)]\n [[DDC-3629](https://github.com/doctrine/orm/issues/4455)] -\n [[GH-1337](https://github.com/doctrine/orm/pull/1337)]\n [[GH-1342](https://github.com/doctrine/orm/pull/1342)] Paginator functional tests and sorting corrections\n- [[DDC-2224](https://github.com/doctrine/orm/issues/2922)]\n [[DDC-3625](https://github.com/doctrine/orm/issues/4451)] -\n [[GH-1339](https://github.com/doctrine/orm/pull/1339)] Honor `convertToDatabaseValueSQL` in DQL query\n: parameters and caches\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DDC).\n", + "date": "2015-03-25 00:00:00" }, { - "url": "/2008/06/11/one-more-0-11-release-candidate.html", - "slug": "one-more-0-11-release-candidate", - "title": "One more 0.11 Release Candidate", + "url": "/2008/10/02/first-symfony-1-1-workshop-in-atlanta-usa.html", + "slug": "first-symfony-1-1-workshop-in-atlanta-usa", + "title": "First symfony 1.1 workshop in Atlanta, USA", "authorName": "jwage", "authorEmail": "", - "contents": "Well, we discovered some bugs in the last RC of 0.11 so we have decided\nto have another release candidate to make sure the 0.11 branch is a\nsolid major release of Doctrine. As always the changelog can be read in\nthe CHANGELOG in svn or on the website. Hopefully this will really be\nthe last release candidate of 0.11 and we will release a stable version.\nOnce 0.11 is released we plan to immediately begin working on 0.11.1 bug\nfix release as well as a new 0.12 branch which will bring some new\nfeatures as well as dozens of bug fixes. Thanks for all the\ncontributions from the core developers and community for this release.\n", - "date": "2008-06-11 00:00:00" - }, - { - "url": "/2014/02/21/security_in_doctrine.html", - "slug": "security_in_doctrine", - "title": "Security in Doctrine", - "authorName": "default", - "authorEmail": "", - "contents": "When using Doctrine in a project it is always a security critical\ncomponent because it talks directly to your database. As such security\nis very important to us. In security however, context is important and\nproviding you with query capabilities we have to expose you to the risk\nof SQL injections.\n\nDoctrine cannot prevent you from building SQL injections into your\napplications and so can no other DBAL, because it would require hiding\nSQL completely. But hiding SQL completely is not wanted, because it is\nsuch a powerful language.\n\nTherefore it is still your responsibility to make sure that you are\nusing Doctrine correctly when working with SQL.\n\nBut how would you know how to do so? Until now we had some small bits\nabout security here and there in the documentation, mostly in the\nchapters about Query objects. We came to the conclusion that this is not\nenough.\n\nThat conclusion sinked in with a security issue we became aware of last\nmonth, where one Doctrine user reported that one of the core\n`Doctrine\\DBAL\\Connection` APIs is supposedly vulnerable to SQL\ninjection. When you use `$connection->insert($tableName, $values)`, then\nboth the table name and the keys (columns) of the `$values` array are\nnot escaped, because we assume they are never user input.\n\nWe evaluated this issue together with [Padraic\nBrady](http://blog.astrumfutura.com/) (a known PHP security researcher)\nand came to the conclusion that this is not a security issue for us.\nWhy? Because we don't think this part of the API can be secured and\ntrying will make our users feel safe, when they are not. Using the DBAL\nAPIs directly always posed a much higher risk than using just the ORM.\n\nYou might think we are nuts by just claiming a non issue, but consider\nthe assumptions we make about tables and columns and our reasoning:\n\n- Quoting identifiers is bad, because it changes them from\n case-insensitive to case-sensitive. Even more weird, Oracle unquoted\n identifiers are uppercased, PostgreSQL unquoted identifiers are\n lowercased. MySQL casing is based on a config option. Doctrine 1.\\*\n had various unfixable bugs because of identifier quoting, which is\n why we decided that Doctrine will not use automatic identifier\n quoting.\n\n- The APIs of `Connection#insert()`, `Connection#update()` and\n `Connection#delete()` therefore accept both quoted and unquoted\n table/column identifiers, because quoting is the users choice.\n\n- A mechanism to detect SQL injection in strings that can be either\n quoted or unquoted is impossible to write completely secure. There\n are too many edge cases to consider and there is a realistic chance\n to miss one of them.\n\n- If you provide an API that is just secure in 99.999% of all cases,\n then you should not claim it is secure at all.\n\nAt this point you can still think we are wrong releasing insecure\nsoftware, however let me ask back: Isn't PHP shipping insecure software\nby providing PDO? SQL injection is possible by using PDO wrong. I can\nenumerate lots of libraries where security is the developers\nresponsibility: Template engines, authentication libraries and so on.\n\nA proper secured system requires knowledge about the context. That is\nwhy any kind of database abstraction layers can never fully protect you\nfrom SQL injection, because it does not know the context you are using\nit in.\n\nTo avoid secret knowledge about our security assumptions we are now\nstarting to be completely explicit about these issues. Both DBAL and ORM\nnow contain a \\`SECURITY.md\\` file, which contains basic information\nabout security and links to much more detailed documentation chapters on\nDoctrine security.\n\nWe have made an effort to list all the functions and operations that are\nsafe from SQL injection. There are not very many of them in the DBAL,\nbecause it is such a low level library. The ORM however is pretty\nsecure, except when concatenating user input into DQL and SQL queries.\n\nRead all the information about Security in Doctrine in the\ndocumentation.\n\n- [DBAL\n Security](https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/security.html)\n- [ORM\n Security](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/security.html)\n\n", - "date": "2014-02-21 00:00:00" - }, - { - "url": "/2020/04/10/doctrine-migrations-3.0.html", - "slug": "doctrine-migrations-3.0", - "title": "Released doctrine/migrations 3.0-alpha", - "authorName": "Asmir Mustafic", - "authorEmail": "goetas@gmail.com", - "contents": "[`doctrine/migrations` 3.0-alpha](https://github.com/doctrine/migrations) \n has been [published](https://github.com/doctrine/migrations/tree/3.0.0-alpha1) on the 29th March 2020. \n\nThe upcoming 3.0 new major release is the result of almost 6 months of work and brings\n a completely refactored/rewritten internal structure and some interesting new features. \n \n### Why a new major release?\n\nThe `doctrine/migrations` `v1.x` codebase is 10 years old, and in the past years a lot of features have been added on top of its\ninitial architecture. \n`doctrine/migrations` `2.0` was released a bit more than a year ago. This major release did a bit of cleanup, \nbut the general structure remained the same.\nIn this schema you can see the dependencies between classes in the latest `2.3.x` branch:\n\n
    \n\n
    \nThe red lines are circular dependencies (and we already know that in software development circular dependencies are not \na good thing).\n\nIn `doctrine/migrations` `3.x`, most of the internal classes have been re-written and dependency injection has been \nwidely adopted. \nIn this schema you can see the dependencies between classes in the latest `master` branch (release v3.0):\n\n
    \n\n
    \n\nAs you can see the circular dependencies are gone. This has been possible thanks to extensive use of dependency injection\nand applying SOLID principles.\nTo reduce future backward incompatibilities, many classes have been marked as `final` or as `@internal` while \nkeeping the functionalities intact. Extensibility is still possible by using dependency injection and providing \nclasses implementing dedicated interfaces.\n\n_These schemas have been generated using [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) \nwith [this configuration](https://gist.github.com/goetas/e6343746a6ccd6ebb191cbbd675898e0)._\n\n\n### New features and improvements\n\nBeside the code quality improvements, there is a a long list of improvements (see below), but \n**the main user-facing feature is the ability to collect migrations from multiple folders/namespaces and\nto specify dependencies between migrations.**\n\nHere a (probably not complete) list of improvements implemented in the upcoming `3.0` release: \n\n- ability to collect migrations from multiple folders/namespaces and to specify dependencies between migrations\n- `doctrine/migrations` will write to your database only when running migrations \n(previously the metadata table was created on the very first command run even if it was a read-only command)\n- Output verbosity can be controlled using the `-v`, `-vv` or `-vvv` command parameters\n- Use of dependency injection allows you to decorate/replace most services\n- Removed usage of console helpers to provide the connection or entity manager in favor of dependency injection\n- Introduced `migrations:list` command to list the available/executed migrations\n- Introduced `migrations:sync-metadata-storage` command to explicitly update the metadata schema in case a newer version \nintroduces changes to the metadata table\n- Multiple migrations can be passed to the `migrations:execute` command\n- More organized output of the `migrations:status` command\n- Configurations and Dependency Factory are read-only during the migration process\n- The `down()` migration is optional now\n- Multi-namespace migrations\n- Custom migrations metadata storage\n- Added warning when using the `migrations:diff` if there are not executed migrations\n\n### Backward compatibility\n\nIn `doctrine/migrations` `3.0` a lot of things changed, but for end-users most of the things will look the same.\nYour migration files do not need any update.\n\nYou will have to change your configuration files, as the configuration format has changed.\nThe [official documentation](https://www.doctrine-project.org/projects/doctrine-migrations/en/latest/reference/configuration.html#configuration) contains more information about these changes.\nThis documentation should be particularly helpful if you did also some custom integration with third party frameworks \nor libraries.\n\nIf you wrote custom event listeners, please take a look at them as the method signatures for event listeners have been updated.\n \n\n### Symfony Integration\n\nIf you are using [DoctrineMigrationsBundle](https://github.com/doctrine/DoctrineMigrationsBundle) then things are even \neasier: the 2.3.0 release introduced some deprecation notices and if you have already solved them \nyour configuration is already compatible. If you want you can have a look to the latest configuration format \navailable on the [official documentation](https://www.doctrine-project.org/projects/doctrine-migrations-bundle/en/3.0/index.html#configuration).\nYou can look more in detail to which changes are needed in the [upgrading](https://github.com/doctrine/DoctrineMigrationsBundle/blob/master/UPGRADE.md) document.\n\n### What is next\n\nIn the upcoming weeks, we will be preparing the first beta release and starting the process to reach a stable release.\n**To be able to deliver a good stable release it is important that you test the pre-release and share your feedback!**\n\nTo try the alpha version, you can run:\n\n```bash\ncomposer require 'doctrine/migrations:^3.0@alpha'\n``` \n\nIf you are using Symfony: \n\n```bash\ncomposer require 'doctrine/doctrine-migrations-bundle:^3.0@alpha' 'doctrine/migrations:^3.0@alpha'\n``` \n\nYou can be also more brave trying the development versions by specifying `@dev` instead of `@alpha` \nwhen requiring the composer dependencies above.\n\nYou can also have a look at the [release notes](https://github.com/doctrine/migrations/releases/tag/3.0.0-alpha1) \nand the [upgrading](https://github.com/doctrine/migrations/blob/3.0.0-alpha1/UPGRADE.md) document.\n\nSimilarly you can also have a look at the [release notes](https://github.com/doctrine/DoctrineMigrationsBundle/releases/tag/3.0.0-alpha.1) \nand the [upgrading](https://github.com/doctrine/DoctrineMigrationsBundle/blob/3.0.0-alpha.1/UPGRADE.md) document for the Symfony bundle.\n\nIn the alpha release, breaking changes are still possible. \nIn the beta, release breaking changes are possible but will happen\nonly if we will find very unexpected behaviors. \nWhen the alpha and beta phase will be completed, a stable version will be made available. \n\n\n## Note\n\nThis post was initially published on [https://www.goetas.com/blog/released-doctrinemigrations-30-alpha/](https://www.goetas.com/blog/released-doctrinemigrations-30-alpha/).\n", - "date": "2020-04-10 00:00:00" + "contents": "

    \n\nThree years after the launch of symfony as an Open-Source project,\nSensio Labs is very proud to announce its new offices in the USA.\n\n

    \n\nTo celebrate, we organize our first symfony training in Atlanta between\nOctober 29th and 31th. The training will be based on the latest symfony\n1.1 and will be held in Atlanta (at the \"1230 Peachtree St N.E.\nPromenade II\").\n\n

    \n\nThis symfony workshop will be given by a symfony expert coming from\nFrance and Jonathan Wage, the Doctrine lead developer, and a seasoned\nsymfony developer.??A symfony workshop is an interactive training\nsession during which you will learn how to develop high-quality web\napplications fast and efficiently with symfony. After three days of\nsymfony immersion, guided by Sensio experts sharing their knowledge and\nexperience, you will know enough techniques and methodology to become\nfluent in agile web development with symfony. You can find more\ninformation and subscribe online on our website.\n\n

    \n\nIf you want more information, feel free to contact Nicolas Blin at\nNicolas.blin [at] sensio.com.Sensio Labs\n\n

    \n\nSensio Labs helps its customers with their Internet strategy and\ndevelops their applications around the best Open-Source frameworks.\n\n

    \n\nSensio Labs created symfony a Web application framework in PHP. Sensio\nLabs plays a major role in the Open-Source world. The company has 10\nyears of experience in development of high value web applications with\nmore than 500 projects for key accounts in many countries.\n\n

    \n\n\n", + "date": "2008-10-02 00:00:00" }, { - "url": "/2010/06/15/doctrine2-beta2-released.html", - "slug": "doctrine2-beta2-released", - "title": "Doctrine2 BETA2 Released", + "url": "/2011/08/26/doctrine2-1-1.html", + "slug": "doctrine2-1-1", + "title": "DBAL and ORM 2.1.1 maintenance releases", "authorName": "beberlei", "authorEmail": "", - "contents": "Today we are happy to announce the immediate availability of the second\nbeta version of Doctrine2. This is the first release after the\n[split](https://www.doctrine-project.org/2010/05/27/bringing-it-all-together.html)\nof Doctrine2 into three independent projects, Common, DBAL and ORM. This\nchange took longer than we expected but we are back to our SVN\nproductivity now and strive to surpass it utilizing Git.\n\nBeta 2 is a completely backwards compatible release and over 60 issues\nand bugs have been closed in total. The following larger changes have\nbeen introduced from Doctrine2 Beta 1:\n\nCommon\n======\n\n- Added ClassLoader\\#classExists as well as\n ClassLoader\\#getClassLoader methods\n [DCOM-7](https://github.com/doctrine/common/issues/669)\n- Changes to Annotation Parser with regards to Autoloading Annotation\n Classes\n\nDBAL\n====\n\n- New Driver support for Microsoft PDO Sqlsrv Extension\n [DBAL-10](https://github.com/doctrine/dbal/issues/927)\n- Fixed Mssql/Sqlsrv Platforms and SchemaManager\n [DBAL-8](https://github.com/doctrine/dbal/issues/2031)\n- New Driver and Platform Support for DB2 (PDO\\_DB2 and IBM\\_DB2\n Extensions)\n [DDC-494](https://github.com/doctrine/orm/issues/4999)\n\nORM\n===\n\n- Basic Pessimistic Locking support using FOR UPDATE or vendor\n specific shared locks\n [DDC-178](https://github.com/doctrine/orm/issues/2432)\n- Added a Validate Mapping CLI Task\n [DDC-515](https://github.com/doctrine/orm/issues/5023)\n\nDownload\n--------\n\nYou can get the code a few different ways which are described in detail\n[here](https://www.doctrine-project.org/projects/orm/2.0/download/2.0.0BETA2).\nIf you have any issues with Doctrine you can report them on\n[Jira](https://www.doctrine-project.org/jira).\n\nContributions\n-------------\n\nWe thank all the contributors and early adopters for their extensive\nfeedback and reports. If you are interesting in contributing to the\nDoctrine project too, check out our new [contributors\nguide](https://www.doctrine-project.org/contribute) and\n[community](https://www.doctrine-project.org/community) page for\ninformation about how you can get involved!\n", - "date": "2010-06-15 00:00:00" + "contents": "We released the DBAL and ORM 2.1.1 maintenance versions today that\nseveral issues with both packages. You can see the changelog of both\npackages on Jira:\n\n- [ORM Changelog (22 issues\n fixed)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10153)\n- [DBAL Changelog (4 issues\n fixed)](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10156)\n\nPlease report any problems with these packages to the Jira tracker or\nthe mailing list.\n\nYou can download the packages through PEAR or our download sections\nwithin each project.\n", + "date": "2011-08-26 00:00:00" }, { - "url": "/2009/11/23/new-doctrine-core-team-member.html", - "slug": "new-doctrine-core-team-member", - "title": "New Doctrine Core Team Member", - "authorName": "jwage", + "url": "/2012/01/03/doctrine2-2-beta2.html", + "slug": "doctrine2-2-beta2", + "title": "Doctrine 2.2 Beta 2", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "Today I am very excited to announce to you all that we have officially\ninvited Benjamin Eberlei, also known as beberlei in IRC, to join the\ncore Doctrine team. He has steadily contributed to Doctrine 2 and has\nbeen very helpful. We are confident that he will be a great new addition\nto the team.\n\nBenjamin is a contributor to the Zend Framework as well so he will be\nresponsible for leading the integration between the projects. You can\nread a little more about Benjamin on his [about\npage](https://www.doctrine-project.org/contributor/beberlei).\n", - "date": "2009-11-23 00:00:00" + "contents": "Sadly we did not manage to hold our schedule with a 2.2 release in 2011,\nwe had to do some larger changes before the final release. This means we\nare releasing another Beta of Doctrine DBAL and ORM. The final release\nis rescheduled to 19th January.\n\n- DBAL Changelog\n \\<[https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10189](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10189)\\>\\`\\_\n- ORM Changelog\n \\<[https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10188](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10188)\\>\\`\\_\n\nPlease try and test this code with your production applications and\nreport any backwards compatibility breaks to the [Bug\nTracker](https://www.doctrine-project.org/jira) or the Mailing List. See\nthe\n[UPGRADE\\_2\\_2](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-22)\nfile to see backwards incompatible changes.\n\nYou can install the Beta through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) by download or through\n[Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.0-BETA2\" }\n>\n> }\n", + "date": "2012-01-03 00:00:00" }, { - "url": "/2008/06/16/getting-started-with-doctrine-and-symfony-1-1.html", - "slug": "getting-started-with-doctrine-and-symfony-1-1", - "title": "Getting started with Doctrine and symfony 1.1", + "url": "/2008/04/21/0-11-0-release-candidate-1.html", + "slug": "0-11-0-release-candidate-1", + "title": "0.11.0 Release Candidate 1", "authorName": "jwage", "authorEmail": "", - "contents": "Today, over on the symfony-project blog. A short tutorial on how to get\nstarted using Doctrine and symfony 1.1 has been published. As of symfony\n1.1, Doctrine is officially supported by symfony and this is the first\nstep of many to make Doctrine the default ORM in symfony. Over the\ncoming months, much of the symfony + Propel documentation will be ported\nto work with Doctrine. The tutorial can be read here.\n", - "date": "2008-06-16 00:00:00" + "contents": "

    \n\nToday I am happy to announce the first release candidate for the next\nmajor version of Doctrine, 0.11. The 0.11 version of Doctrine brings\nover 50 addressed tickets, a few new features, a few performance\nimprovements and lots of updates to the documentation/manual.\n\n

    \n\n\u00a0\n\n

    \n\nHere are the highlights:\n\n

    \n\n- \\*Table.php classes are no longer generated by default when\n generating models from an existing database schema. This also means\n that ATTR\\_AUTOLOAD\\_TABLE\\_CLASSES now defaults to FALSE\n\n

    \n\n> - Fixed some serious hydration bugs.\n\n

    \n\n> - Improved the hydration performance for large (joined) result sets.\n\n

    \n\n> - Application-level cascading deletes are back.\n\n

    \n\n> We encourage everyone to test this release candidate thoroughly.\n> Please report any issues through trac.\n\n

    \n\n> You can view the complete changelog for this release here.\n\n

    \n\n\n", + "date": "2008-04-21 00:00:00" }, { - "url": "/2011/06/18/doctrine-2-1-rc1.html", - "slug": "doctrine-2-1-rc1", - "title": "Doctrine 2.1 Release Candidate 1", - "authorName": "beberlei", + "url": "/2013/11/12/doctrine-2-4-1.html", + "slug": "doctrine-2-4-1", + "title": "Doctrine 2.4.1 released", + "authorName": "Benjamin Eberlei", "authorEmail": "", - "contents": "Doctrine 2.1 is feature complete and we packaged up the first release\ncandidate to celebrate this day. So far we got exactly one backwards\ncompability complaint that was immediately fixed. You only have about 10\ndays to verify that this release candidate is working with your existing\n2.0 code-bases. If you find some problems please report a bug on\n[Jira](https://www.doctrine-project.org). We will provide everyone with\nmugs/tshirts who is finding incompatible changes.\n\nWe plan to release only 1-2 bugfix releases of the 2.0.x branch, which\nshould give you lots of motivation to try out 2.1 with your projects.\n\nWe integrated a pretty substantial Annotation Reader refactoring just\ntoday. Please test if this still works with your code-base using\nannotations. See the [UPGRADE\\_TO\\_2\\_1 file](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-21)\nfor some information. You might need to adjust your bootstrapping code\nto get it working.\n\nThe task now until the final release on june 30th will be to update the\ndocumentation with all the changes that have landed in Doctrine 2.1. We\nalready created a 2.0.x branch of the docs that will freeze the current\nstate for those staying on 2.0. Additionally we will squash all the last\nbugs that we find.\n\nGrab the new code in the downloads section or on our [PEAR\nchannel](http://pear.doctrine-project.org)\n", - "date": "2011-06-18 00:00:00" + "contents": "Today we released Doctrine DBAL 2.4.1 and ORM 2.4.1 versions. It\nincludes an important fix for a regression with array hydration. In\ntotal 6 tickets have been closed in both releases.\n\nSee all the changes:\n\n- [Doctrine ORM v2.4.1\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10528)\n- [Doctrine DBAL v2.4.1\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10527)\n\nInstallation\n============\n\nYou can install Doctrine using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/common\": \"2.4.*\",\n \"doctrine/dbal\": \"2.4.1\",\n \"doctrine/orm\": \"2.4.1\"\n }\n}\n~~~~\n", + "date": "2013-11-12 00:00:00" }, { - "url": "/2011/05/14/doctrine-maintenance-may11.html", - "slug": "doctrine-maintenance-may11", - "title": "Maintenance Releases 2.0.5 for DBAL and ORM", - "authorName": "beberlei", + "url": "/2010/05/27/bringing-it-all-together.html", + "slug": "bringing-it-all-together", + "title": "Bringing it all together", + "authorName": "jwage", "authorEmail": "", - "contents": "Slightly behind schedule we released the next round of maintenance\nversions of Doctrine DBAL (2.0.5) and ORM (2.0.5) today. It also\nincludes a Security fix for DBAL in combination with PDO MySQL and\ncharsets that was closed in PHP 5.3.6. If you are using 5.3.6, you\nshould now use the \"charset\" option in DriverManager::getConnection()\ninstead of the MysqlSessionInit listener.\n\n- [DBAL Changelog (4 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10132)\n- [ORM Changelog (15 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10133)\n\nYou can grab the packages from the download page or our [Github\nrepository](https://github.com/doctrine).\n\nPlease report any problems to the Jira Bugtracker.\n", - "date": "2011-05-14 00:00:00" + "contents": "Recently we've been making some pretty serious changes around here. This\nblog post aims to overview it all and make sure people are aware of what\nis going on!\n\nWebsite Changes\n===============\n\nA few weeks ago I made some\n[updates](https://www.doctrine-project.org/blog/a-few-website-changes) to\nthe Doctrine website. Some said it looked like we took a step backwards.\nWell, we kind of did. I had to rip apart the website, remove old legacy\ncode and reorganize things so that it can be integrated with the changes\nwe wanted to make next. So I've sort of had to tear it all apart and put\nit back together a new way. It's been a bumpy road but we're starting to\nget the remaining issues worked out.\n\nThe Switch to git\n=================\n\nThe next big change we wanted to make was to switch to\n[github.com](https://www.doctrine-project.org) for our source control.\nThis has a lot of impact on the project since everything is built around\nthe source control, including the website. That is why the previous\nchange was necessary in order to make this move complete.\n\nSplitting Doctrine 2 Sources\n============================\n\nThe next step for us was to split the Doctrine 2 sources into separate\nrepositories on github. So now the source code of the Common, DBAL, and\nORM packages are truly separated.\n\n- [Common](https://github.com/doctrine/common)\n- [DBAL](https://github.com/doctrine/dbal)\n- [ORM](https://github.com/doctrine/orm)\n\nThis means the packages can evolve independently and will be maintained\nseparately from now on. The website also has dedicated project pages for\nthe [DBAL](https://www.doctrine-project.org/projects/dbal) and\n[ORM](https://www.doctrine-project.org/projects/orm) with plenty of\ndocumentation.\n\nBringing it all together\n========================\n\nThe last piece that brings it all together is the new [Guide for\nDoctrine Contributors and\nCollaborators](https://www.doctrine-project.org/contribute). Now that\nwe've moved to git we had to reinvent a lot of stuff we had already\nlearned for SVN. Thanks to our git mentor David Abdemoulaie\n([hobodave](https://www.twitter.com/hobodave)) we have figured out a\nworkable solution for dealing with the project dependencies via git\nsubmodules that does most of what we want. Through this process we all\nworked on some new documentation that detailed how contributors and\ncollaborators for the Doctrine Project should work. We really hope that\nthis will help get people involved with the project and mature things\nmore.\n", + "date": "2010-05-27 00:00:00" }, { - "url": "/2016/09/10/orm-2-5-5.html", - "slug": "orm-2-5-5", - "title": "Doctrine ORM 2.5.5 Released", + "url": "/2015/12/25/orm-2-5-3.html", + "slug": "orm-2-5-3", + "title": "Doctrine ORM 2.5.3 Released", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n[2.5.5](https://github.com/doctrine/orm/releases/tag/v2.5.5).\n\nFollowing issues were fixed:\n\n> - Embeddable classes are now allowed in inheritance trees\n> [\\#4097](https://github.com/doctrine/orm/issues/4097)\n> - Removed some object hash collisions caused by entity merging\n> [\\#1465](https://github.com/doctrine/orm/pull/1465)\n> - Allowed usage of mathematical operators in DQL `HAVING` clauses\n> [\\#5598](https://github.com/doctrine/orm/pull/5598)\n> - Fixed cloning of proxies with private properties at multiple\n> inheritance levels\n> [\\#5755](https://github.com/doctrine/orm/pull/5755)\n> - Entity insertions are correctly cleared when a specific entity is\n> to be cleared\n> [\\#5849](https://github.com/doctrine/orm/issues/5849)\n> - Corrected hydration of fetch-joins that use composite keys\n> [\\#5762](https://github.com/doctrine/orm/issues/5762)\n> - Metadata exporters now only export the owning side metadata in a\n> one-to-one relation\n> [\\#5858](https://github.com/doctrine/orm/issues/5858)\n> - Corrected hydration of JTI entities when `NULL` is retrieved for a\n> `simple_array` or `json_array` field\n> [\\#5989](https://github.com/doctrine/orm/issues/5989)\n> - Correctly expire L2 cache query caches, based on entity region\n> cache timestamp\n> [\\#6001](https://github.com/doctrine/orm/issues/6001)\n\nInstallation\n============\n\nYou can install the ORM component using Composer:\n\n```bash\ncomposer require doctrine/orm:^2.5.5\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/orm/issues).\n", - "date": "2016-09-10 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n[2.5.3](https://github.com/doctrine/orm/releases/tag/v2.5.3).\n\nDependency constraints on the\n[doctrine/common](https://github.com/doctrine/common) component\nsupported versions were corrected, allowing users to install\n`doctrine/common` version `2.6.*` together with the ORM. This also means\nthat PHP 7 scalar type-hints and return type declarations are now\nreflected in the generated proxy classes.\n[\\#4884](https://github.com/doctrine/orm/issues/4884)\n\nMerging versioned entities caused the merged instance to have a `null`\nversion: this is now fixed.\n[\\#1573](https://github.com/doctrine/orm/issues/1573)\n\nIt was impossible to use interface names when referencing entity types\nin DQL: it is now possible to do so when using the\n[ResolveTargetEntityListener](https://github.com/doctrine/orm/blob/v2.5.3/lib/Doctrine/ORM/Tools/ResolveTargetEntityListener.php).\n[\\#1573](https://github.com/doctrine/orm/issues/1573)\n\nInstallation\n============\n\nYou can install the ORM component using Composer:\n\n```bash\ncomposer require doctrine/orm:~2.5.3\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/orm/issues).\n", + "date": "2015-12-25 00:00:00" }, { - "url": "/2009/09/14/moving-to-jira.html", - "slug": "moving-to-jira", - "title": "Moving to JIRA", - "authorName": "romanb", + "url": "/2007/11/02/beta-2.html", + "slug": "beta-2", + "title": "Beta 2", + "authorName": "jwage", "authorEmail": "", - "contents": "While we really like Trac, especially its subversion integration, it has\na lot of shortcomings for bigger projects in the area of project &\nissue/ticket management. Hence we decided to evaluate alternatives and\nended up with choosing [JIRA](https://www.atlassian.com/software/jira).\nIts normally not free software but the generous guys from Atlassian\ngranted us a free open source license. A big thanks from all of us to\nAtlassian for their support of open source projects.\n\nFrom now on all the project management, release management and\nissue/ticket management will happen in our [new JIRA\ninstance](https://www.doctrine-project.org/jira). While it is open for\neveryone in read-only mode, we strongly encourage you to create an\naccount soon so that you can create/modify/comment issues and content in\nJIRA.\n\nTrac is from now on closed for tickets. All new tickets need to be\nreported through JIRA. We are not going to automatically import all\ntickets from Trac to JIRA because that does not work very well and would\nrequire to import all user accounts as well, which can not be done\neasily either. We will continue to work on the \"old\" tickets, always\nstarting with porting a ticket over to JIRA before working on it. If you\nwant to help, you recreate tickets that are especially important to you\nin JIRA yourself. You can still log in to Trac and view tickets for the\npurpose of migrating them to JIRA but you can not modify them or create\nnew ones.\n\n> **CAUTION** When you recreate an issue in JIRA, please make sure you\n> close the issue in Trac with the resolution: \"migrated\".\n\nTrac will not be completely shut down, however. The following\nfunctionality will stay open:\n\n- Wiki\n- Timeline\n- Browse Source\n\nThat is, the wiki and the subversion integration. We basically use Trac\nas the subversion viewer that we coupled with JIRA. Any changeset\nnumbers or file references in JIRA issues will link to the\nchangesets/sources in Trac.\n\nWe're looking forward to working with JIRA and we think it is an\nimprovement for all users. We hope you enjoy all the new functionality\nprovided by JIRA, like voting for issues that are important to you,\ntracking issues and much more.\n\nSo, head over to our [JIRA instance](https://www.doctrine-project.org/jira) ,\ncreate an account and start creating issues and explore the features.\n", - "date": "2009-09-14 00:00:00" + "contents": "The Doctrine team is proud to announce that we have scheduled the\nrelease of the second beta snapshot for November 31st, 2007. This is\nvery exciting news for the Doctrine team and community.\n\nThis means Doctrine is nearing a real release candidate :) As you all\nknow, we had a RC1 that was released a little while back, but it was a\nmistake to call it an RC since we planned on still making many changes\nthat would break BC. We have corrected ourselves and renamed it Beta1.\nWe will continue with beta releases until we are comfortable with\nreleasing a true RC1.\n", + "date": "2007-11-02 00:00:00" }, { - "url": "/2010/09/01/birthday-release-party.html", - "slug": "birthday-release-party", - "title": "Birthday Release Party", - "authorName": "romanb", + "url": "/2008/08/08/creating-a-unit-of-work-using-doctrine.html", + "slug": "creating-a-unit-of-work-using-doctrine", + "title": "Creating a Unit of Work Using Doctrine", + "authorName": "jwage", "authorEmail": "", - "contents": "Today is Jonathan's birthday and in order to celebrate properly we're\nrolling out three new releases.\n\nDoctrine Common RC1\n===================\n\nThe first release candidate of the Doctrine Common project.\n\n- [Installation](https://www.doctrine-project.org/projects/common/2.0/download/2.0.0RC1)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10081)\n\nDoctrine DBAL BETA4\n===================\n\nThe last beta release of the Doctrine DBAL project.\n\n- [Installation](https://www.doctrine-project.org/projects/dbal/2.0/download/2.0.0BETA4)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10071)\n\nDoctrine ORM BETA4\n==================\n\nThe last beta release of the Doctrine ORM project.\n\n- [Installation](https://www.doctrine-project.org/projects/orm/2.0/download/2.0.0BETA4)\n- [Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10072)\n\nAgain we want to thank everyone who participated in the ongoing\ndevelopment efforts, whether it was through bug reports, comments,\ncritique, praise and/or actual code contributions.\n\nWhat next\n=========\n\nSome might know that we originally planned to release 2.0 stable today\nbut we're simply not there yet. However, things are going quite well and\nwe're confident that the final releases of the 2.0 versions are close.\nThe ORM and DBAL now enter a final phase of bug-fixing to resolve any\nissues we find critical for the final releases and will then follow the\nCommon project into RC (release candidate) status.\n", - "date": "2010-09-01 00:00:00" + "contents": "I am happy to introduce the latest contribution to the 1.0 cookbook,\nCreating a Unit of Work Using Doctrine by Jon Lebensold. Big thanks to\nhim, he reached out to me wanting to contribute something to the project\nso he offered to add this great recipe to the cookbook. It properly\ndemonstrates the unit of work pattern for saving and deleting Doctrine\nobjects. If you are interested in contributing to Doctrine, adding\nsomething to the cookbook is a great way to help out by only giving 1\nhour of your time. Contact me at jonwage [at] gmail.com if you are\ninterested in contributing.\n", + "date": "2008-08-08 00:00:00" }, { - "url": "/2008/07/24/taking-advantage-of-column-aggregation-inheritance.html", - "slug": "taking-advantage-of-column-aggregation-inheritance", - "title": "Taking Advantage of Column Aggregation Inheritance", + "url": "/2009/06/30/doctrine-orm-for-php-available-in-print.html", + "slug": "doctrine-orm-for-php-available-in-print", + "title": "Doctrine ORM for PHP available in print", "authorName": "jwage", "authorEmail": "", - "contents": "Today I have published another tutorial in the 1.0 Cookbook. This recipe\nsolves the same situation where you want to allow address properties on\nmultiple records. This approach is a much more normalized implementation\ncompared to using templates/behaviors and it allows for multiple\naddresses instead of only one. Check it out in the cookbook here. Enjoy!\n", - "date": "2008-07-24 00:00:00" - }, - { - "url": "/2018/07/12/common-2-9-and-dbal-2-8-and-orm-2-6-2.html", - "slug": "common-2-9-and-dbal-2-8-and-orm-2-6-2", - "title": "Phasing out Doctrine Common & release of DBAL 2.8 and ORM 2.6.2", - "authorName": "Michael Moravec", - "authorEmail": "doctrine@majkl.me", - "contents": "### Common 2.9 and phasing out the package\n\nAs another step in the ongoing effort to eliminate `doctrine/common`,\nthere are now three new separate Doctrine packages:\n\n * [`doctrine/persistence`](https://github.com/doctrine/persistence)\n * [`doctrine/event-manager`](https://github.com/doctrine/event-manager)\n * [`doctrine/reflection`](https://github.com/doctrine/reflection)\n\nThis release introduces the following deprecations:\n\n * `Doctrine\\Common\\Proxy` component is deprecated, use\n [`ocramius/proxy-manager`](https://github.com/ocramius/ProxyManager) instead;\n * `Doctrine\\Common\\Util\\Debug` is deprecated, use\n [`symfony/var-dumper`](https://github.com/symfony/var-dumper) instead;\n * `Doctrine\\Common\\Lexer` is deprecated, use `Doctrine\\Common\\Lexer\\AbstractLexer`\n from [`doctrine/lexer`](https://github.com/doctrine/lexer) or migrate to\n [hoa/compiler](https://github.com/hoaproject/Compiler) instead;\n * `Doctrine\\Common\\Util\\Inflector` is deprecated, use `Doctrine\\Common\\Inflector\\Inflector`\n from [`doctrine/inflector`](https://github.com/doctrine/inflector) instead;\n * `Doctrine\\Common\\Util\\ClassUtils` is deprecated without replacement;\n * `Doctrine\\Common\\Version` is deprecated, refrain from checking Common version at runtime;\n * `Doctrine\\Common\\CommonException` is deprecated without replacement.\n\nIn addition to that, there will be no `doctrine/common` 3.0 and the package\nwill be gradually phased out.\n\nVersion 2.x will be maintained at least until ORM 3.0 is released, ensuring\ncompatibility with the latest PHP and providing bugfixes, but it will\nno longer ship any new features.\n\nFor complete release notes,\n[visit GitHub](https://github.com/doctrine/common/releases/tag/v2.9.0).\n\n### DBAL 2.8.0\n\nDBAL 2.8.0 is a minor release of Doctrine DBAL that aggregates over\n30 fixes and improvements developed over the last 3 months.\n\nThe dependency on `doctrine/common` is removed. DBAL now\ndepends on `doctrine/cache` and `doctrine/event-manager` instead.\n\nFor complete release notes,\n[visit GitHub](https://github.com/doctrine/dbal/releases/tag/v2.8.0).\n\n### ORM 2.6.2\n\nORM 2.6.2 comes as a regular bugfix release.\n\nIt no longer uses the long ago deprecated Lexer and Inflector from `doctrine/common`.\n\nFor complete release notes,\n[visit GitHub](https://github.com/doctrine/orm/releases/tag/v2.6.2).\n", - "date": "2018-07-12 00:00:00" + "contents": "Last night the [Doctrine ORM for\nPHP](https://www.amazon.com/Doctrine-ORM-PHP-Jonathan-Wage/dp/2918390038/ref=sr_1_1?ie=UTF8&s=books&qid=1246303098&sr=8-1)\nbook became available on the Amazon website. This is our first official\npiece of published documentation and we are very excited and proud to\nsee this.\n\nIf you are an existing or new Doctrine user, it is much appreciated if\nyou purchase a copy. Since Doctrine is an open source project we don't\nmake any money directly from it. Doctrine is all possible because of the\ncontributors and the companies that fund it, like [Sensio\nLabs](https://sensiolabs.com). So it is a very nice gesture, even if\nyou are already a Doctrine expert, to purchase a copy of the book to\nshow your appreciation and support for the project.\n", + "date": "2009-06-30 00:00:00" }, { - "url": "/2013/11/12/doctrine-2-4-1.html", - "slug": "doctrine-2-4-1", - "title": "Doctrine 2.4.1 released", - "authorName": "Benjamin Eberlei", + "url": "/2009/10/06/doctrine-1-2-nearing-stable-release.html", + "slug": "doctrine-1-2-nearing-stable-release", + "title": "Doctrine 1.2 Nearing Stable Release", + "authorName": "jwage", "authorEmail": "", - "contents": "Today we released Doctrine DBAL 2.4.1 and ORM 2.4.1 versions. It\nincludes an important fix for a regression with array hydration. In\ntotal 6 tickets have been closed in both releases.\n\nSee all the changes:\n\n- [Doctrine ORM v2.4.1\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10528)\n- [Doctrine DBAL v2.4.1\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10527)\n\nInstallation\n============\n\nYou can install Doctrine using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/common\": \"2.4.*\",\n \"doctrine/dbal\": \"2.4.1\",\n \"doctrine/orm\": \"2.4.1\"\n }\n}\n~~~~\n", - "date": "2013-11-12 00:00:00" + "contents": "Today I am happy to release to you the second ALPHA release of Doctrine\n1.2. Honestly, we didn't receive many reports of regressions or problems\nwith the new things in Doctrine 1.2 and we know lots of people have\nupgraded and using it so we feel it is a pretty stable release already.\n\nYou can view what all changed in this release by checking the\n[changelog](https://www.doctrine-project.org/change_log/1_2_0_ALPHA2) and\nyou can snag it from the\n[download](https://www.doctrine-project.org/download) page.\n\nWe hope that everything goes fine from here and the next release will be\nBETA1 followed by an RC and stable release. Please give 1.2 a try and\nreport any regressions to us so that we can be sure to get them fixed\nbefore the final stable release.\n", + "date": "2009-10-06 00:00:00" }, { - "url": "/2009/10/07/doctrine-2-documentation.html", - "slug": "doctrine-2-documentation", - "title": "Doctrine 2 Documentation", + "url": "/2009/06/26/what-s-new-in-doctrine-1-2.html", + "slug": "what-s-new-in-doctrine-1-2", + "title": "What's new in Doctrine 1.2", "authorName": "jwage", "authorEmail": "", - "contents": "Did you know that Doctrine 2 is already very well documented? I've\nnoticed recently that some people seem to think we don't have any\ndocumentation for it, and that upgrading will not be possible for many\nmonths to come.\n\nWe have an almost complete manual on Doctrine 2 which is the same\nconcept of \"Guide to Doctrine for PHP\" for Doctrine 1. It covers all the\ncore concepts of Doctrine 2 as well as information on how to get\nstarted, code examples, best practices, etc.\n\nThe Guide to Doctrine for PHP starts off with the following chapters...\n\n- [Introduction](https://www.doctrine-project.org/projects/doctrine-orm/en/current/tutorials/getting-started.html)\n- [Architecture](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/architecture.html)\n- [Configuration](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/configuration.html)\n- [Basic\n Mapping](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/basic-mapping.html)\n- [...and\n more](https://www.doctrine-project.org/projects/doctrine-orm/en/current/)\n\nThe following chapters have been completed and updated recently...\n\n- [Events](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/events.html)\n- [Tools](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/tools.html)\n\nWe also have a cookbook with a few articles already too...\n\n- [Implementing ArrayAccess for domain\n objects](https://www.doctrine-project.org/projects/doctrine-orm/en/current/cookbook/implementing-arrayaccess-for-domain-objects.html)\n- [Implementing the NOTIFY changetracking\n policy](https://www.doctrine-project.org/projects/doctrine-orm/en/current/cookbook/implementing-the-notify-changetracking-policy.html)\n\nWe hope this helps you a little bit with getting started using Doctrine\n2 and that you enjoy it! :)\n", - "date": "2009-10-07 00:00:00" + "contents": "This week I have been working on the next major version of Doctrine,\n1.2. This version will possibly be the last 1.x version before we really\nbegin to push 2.0 hard.\n\nThe 1.2 release should be a decent release for you all and I think it\nhas some interesting features that should really spark some growth in\nthe community around Doctrine. Here are some highlights.\n\nHighlights\n==========\n\n- Major cleanup, removing deprecated methods, removed accessor string\n support for performance fix\n- Option to disable cascading saves by default for performance\n improvement\n- Changes to migrations to better handle migrating multiple databases\n- More configuration options\n- Configure a child `Doctrine_Query` class to use\n- Configure a child `Doctrine_Collection` class to use\n- Refactored hydration implementation to be completely driver based\n- Write your own hydration drivers to process query statements\n- Refactored Doctrine connections to be completely driver based\n- Write your own connection drivers for Doctrine\n- Other small changes and improvements across the code base\n\nDoctrine Extensions\n===================\n\nAll the above changes lend themselves well to creating extensions and\nbehaviors for Doctrine. This has led to the creation of the Doctrine\n[extensions](https://www.doctrine-project.org/extensions) repository.\n\nYou can now write standalone code bundled as a Doctrine extension that\ncan be dropped in to an extensions folder and loaded by Doctrine. So now\nwhen you all write custom behaviors and custom extensions you can make\nthem available for other people to use and drop in to projects.\n\nI have started the repository by committing the\n[Sortable](https://www.doctrine-project.org/extension/Sortable/1_2-1_0)\nbehavior which was contributed by a Doctrine user on our trac. So\nwhoever you are, if you would like to maintain this extension please\ncontact me.\n\nFollow 1.2 Development\n======================\n\nIf you want to know more about Doctrine 1.2 you can read the [What's new\nin Doctrine 1.2](https://www.doctrine-project.org/upgrade/1_2) document\nwhich will be kept up to date as we develop and change things in 1.2!\n\n> **CAUTION** Some of the implemented features in 1.2 are still being\n> discussed and debated so they may change or be completely removed if\n> decided so. If you have any input or suggestions on the provided\n> features, let us know ASAP.\n", + "date": "2009-06-26 00:00:00" }, { - "url": "/2009/02/03/doctrine-1-0-7-is-available.html", - "slug": "doctrine-1-0-7-is-available", - "title": "Doctrine 1.0.7 is Available!", + "url": "/2008/09/30/get-expert-training.html", + "slug": "get-expert-training", + "title": "Get Expert Training", "authorName": "jwage", "authorEmail": "", - "contents": "Today I have made available [Doctrine\n1.0.7](https://www.doctrine-project.org/download) , the latest bug fix\nrelease for the 1.0 version of Doctrine. This release is a significant\none with a few dozen bugs fixed. Below is a list that highlights some of\nthe fixes.\n\nHighlights\n==========\n\n- [r5361] Fixed NestedSet to not create column for root column if it\n already exists (closes \\#1817)\n- [r5419] Fixes \\#1856. Added checking to schema file to ensure\n correct file extension (format).\n- [r5429] Fixes issue with generated count queries (closes \\#1766)\n- [r5438] Fixes issue with saveRelated() being called too early\n (closes \\#1865)\n- [r5441] Fixing generated models to adhere to coding standard of\n using 4 spaces (closes \\#1846)\n- [r5459] Fixes issue with I18n and column aliases (closes \\#1824)\n\nLots of other fixes have been made in this release so if you want to see\na list of all the changes be sure to check the\n[changelog](https://www.doctrine-project.org/change_log/1_0_7).\n", - "date": "2009-02-03 00:00:00" + "contents": "

    \n\nToday I am happy to introduce the first training course offered on\nDoctrine 1.0. These courses are brought to you by SensioLabs, the\ncreators of the symfony MVC Framework. In addition to the Doctrine\ncourses they offer ones on symfony and PHP. Below is a list of some of\nthe upcoming events that you can register for today!\n\n

    • \n\nNov 03: Atlanta, USA (Doctrine 1.0 - English)\n\n
    • \n\nSep 24: Paris, France (symfony 1.0 - English)\n\n
    • \n\nOct 22: Paris, France (symfony 1.1 - Francais)\n\n
    • \n\nOct 22: Montpellier (symfony 1.1 - Francais)\n\n

    \n\nThe workshops are a three day event and include lunch everyday,\nmid-morning and mid-afternoon snacks, a copy of all the presented\nmaterial on a stick and example code. The workshop runs from 9am -5pm on\nthe first 2 days and from 9am - 4:30pm on the last day. You can learn\nmore about the available training sessions here.\n\n

    \n\n\n", + "date": "2008-09-30 00:00:00" }, { - "url": "/2015/12/08/jira-issues-migration.html", - "slug": "jira-issues-migration", - "title": "Jira Issues Migration", - "authorName": "", + "url": "/2008/03/01/0-10-2-released.html", + "slug": "0-10-2-released", + "title": "0.10.2 Released", + "authorName": "jwage", "authorEmail": "", - "contents": "We have started the migration of all our Jira tickets to Github Issues.\n\nThese last months we had a lot of troubles with our Jira and we just\ncannot find the time to update and maintain it anymore. On top of it,\nspam is causing more maintenance for us deleting user accounts and\ntickets. Sadly ther seeems to be no appropriate spam protection plugins\nand we couldn't prevent this.\n\nWe are by no means unsatisfied with Jira, and to be honest we have been\nfighting this migration step as long as possible. Github Issues is a\nsmall fish against Jira's powers, especially issue filtering, bulk\noperations and the Agile board. But for Doctrine its best to migrate to\nGithub to reduce our maintenance and operations overhead and more\ntightly integrate with the tooling we already have.\n\nFor now Common, DBAL and ORM issues have been imported into Github using\nthe [amazing Importer\nAPI](https://gist.github.com/jonmagic/5282384165e0f86ef105). Even though\nthis API is still in Beta, it works quite flawlessly. If you are\ninterested in our migration scripts see [this repository in\nGithub](https://github.com/doctrine/jira-github-issues). They are very\nlow-level and procedural but get the job done.\n\nJira has been changed into Read-Only mode for Common, DBAL and ORM\nprojects, please use the Github based issue trackers instead from now\non:\n\n- [ORM](https://github.com/doctrine/orm/issues)\n- [DBAL](https://github.com/doctrine/dbal/issues)\n- [Common](https://github.com/doctrine/common/issues)\n\nWhat is still missing?\n======================\n\n- Versions from Jira need to be exported and imported into Github\n releases with their release date, changelog and description.\n\n- Permanent redirects for both Jira versions and issues to their\n respective Github counterparts have to be prepared and dynamically\n generated from our webserver, when we decommission Jira. This will\n help us keep deeplinks to Jira issues.\n\n- Cleanup, categorize and prepare the newly imported Github issues.\n\nWe hope to complete this steps this week. The last one will take a bit\nlonger.\n\nWhat we could not import\n========================\n\nWe were not able to import attachments, issue status transitions and\nuser/reporter assignments between Jira and Github. This information will\nbe lost once we disable Jira.\n", - "date": "2015-12-08 00:00:00" + "contents": "Today we have released Doctrine 0.10.2. This is a bug fix only release.\nIt brings many new bugs fixes to the 0.10 branch. We will continue with\npoint releases on the 0.10 branch until the 0.9 branch is completely\nphased out. Thanks for using Doctrine :)\n", + "date": "2008-03-01 00:00:00" }, { - "url": "/2010/05/12/a-few-website-changes.html", - "slug": "a-few-website-changes", - "title": "Website Updates", + "url": "/2008/01/29/using-doctrine-with-codeigniter.html", + "slug": "using-doctrine-with-codeigniter", + "title": "Using Doctrine with CodeIgniter", "authorName": "jwage", "authorEmail": "", - "contents": "As you probably already noticed, the Doctrine website looks a little bit\ndifferent. In preparation for the Doctrine 2.0 release, the website\nneeded to be improved a little bit to better handle the multiple\nversions and projects under the Doctrine umbrella. Along the way I did a\nlittle spring cleaning of some code from the early Doctrine days as\nwell!\n\nYou can now find dedicated sections of the website for both the Object\nRelational Mapper and Database Abstraction Layer projects:\n\n- [ORM Project](https://www.doctrine-project.org/projects/orm)\n- [DBAL Project](https://www.doctrine-project.org/projects/dbal)\n\nThe new website also introduces a new API Documentation thanks to [PHP\nDoctor](http://peej.github.com/phpdoctor/)!\n\n- [Doctrine 2 ORM API\n Documentation](https://www.doctrine-project.org/projects/orm/2.0/api)\n- [Doctrine 2 DBAL API\n Documentation](https://www.doctrine-project.org/projects/dbal/2.0/api)\n\nIf you have any problems with the website please let me know by e-mail\nat jonwage [at] gmail.com.\n", - "date": "2010-05-12 00:00:00" + "contents": "If you use the PHP MVC framework, CodeIgniter, and want to use Doctrine,\nhere is a tutorial on how to integrate Doctrine with your CodeIgniter\napplications. It was fairly simple and took me about 15 minutes to\nfigure out a nice and clean implementation. The wiki page can be found\nhere.\n", + "date": "2008-01-29 00:00:00" }, { - "url": "/2010/12/12/doctrine2-orm-rc2-released.html", - "slug": "doctrine2-orm-rc2-released", - "title": "Doctrine DBAL RC5 and ORM RC2 released", - "authorName": "beberlei", + "url": "/2008/08/25/pre-1-0-updates-and-1-0-0-rc1-released.html", + "slug": "pre-1-0-updates-and-1-0-0-rc1-released", + "title": "Pre 1.0 Updates and 1.0.0-RC1 Released", + "authorName": "jwage", "authorEmail": "", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL RC5\nand Doctrine ORM RC2. There have been almost only minor bugfixes in both\npackages that came up in the last week.\n\nThere is one notable change in ORM: If you execute a DQL Query before\nRC2 a flush would be issued on the EntityManager if there were pending\ninsertions. This flush has now been removed. It was never documented to\nbe executed, so we don't think this will cause major pain to anyone.\nJust make sure to call flush explicitly whenever you need it.\n\nSee the changelogs for both projects:\n\n- [DBAL RC5\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10113)\n- [ORM RC2\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10112)\n\nBoth DBAL and ORM are essentially bug-free. All the still open bug\nreports are either:\n\n- Improvement/feature requests (only marked as bug)\n- Minor and will be fixed in 2.1, because they need some refactorings.\n We will make sure that they appear in the Known Issues section\n before the final release.\n- Some trivial bugs in Tools/Console namespace that don't affect the\n core of the ORM. We are waiting for more feedback on those issues.\n\nExpect these Release Candidates to be tagged as final if no critical or\nmajor issues are discovered in the next week.\n\nYou can grab the code from our [downloads\nsection](https://www.doctrine-project.org/projects) or [directly from\nGithub](https://github.com/doctrine/orm/commits/2.0.0RC2).\n\nIn these last days before the final release we will focus on the\ndocumentation. As you might have noticed we already switched the ORM\ndocumentation to be rendered with Sphinx and ReStructured Text. You are\nnow able to search the docs. We will update the layout to be more\nDoctrine friendly and migrate the other packages to Sphinx/ReST in the\nnext days.\n", - "date": "2010-12-12 00:00:00" + "contents": "

    \n\nToday we have a few updates for the project to announce. You can read\nabout whats new below.\n\n

    \n\nDoctrine Release Candidate 1 Released\n\n

    \n\nThe first release candidate of Doctrine 1.0 has been made available.\nDoctrine 1.0 is still scheduled to be released on September 1st 2008.\nYou can download Doctrine here.\n\n

    \n\nNew Domain! www.doctrine-project.org\n\n

    \n\nWe have decided to ditch the old phpdoctrine.org domain in favor of\ndoctrine-project.org. The main reason is due to licensing complications\nand us not being technically allowed to have the name PHP in our project\nname.\n\n

    \n\nMinor Website Ideas\n\n

    \n\nWe have updated the website with some minor asthetic changes, primarily\nto the homepage.\n\n

    \n\n\n", + "date": "2008-08-25 00:00:00" }, { - "url": "/2010/02/18/symfony-live-2010.html", - "slug": "symfony-live-2010", - "title": "Symfony Live 2010", + "url": "/2008/06/21/doctrine-in-your-language.html", + "slug": "doctrine-in-your-language", + "title": "Doctrine in your language", "authorName": "jwage", "authorEmail": "", - "contents": "This past week I had the pleasure of spending time in Paris, France for\nthe [2010 Symfony Live](https://live.symfony.com/) conference. My\nfirst Symfony event was [Symfony Camp](http://www.symfonycamp.com) in\n2008 which was a great success. I also attended the first Symfony Live\nlast year where I spoke about [Sympal](http://www.sympalphp.org) and\nDoctrine. This time around the Symfony conference was an even bigger\nsuccess! The community around Symfony and Doctrine has grown a great\namount over the years and the event shows that! Many great speakers and\ntopics were present at the conference and it was very exciting to get to\nbe a part of it.\n\nOn the first day of the conference I was invited to speak about the\nlatest Doctrine 2! This is perfect timing as Fabien Potencier made\navailable the source code of [Symfony\n2](http://www.symfony-reloaded.org) the following day. I am very excited\nabout what the future holds for PHP in the coming years as Symfony 2 and\nDoctrine 2 are really revolutionary PHP projects!\n\nYou can find the presentations given at the conference related to\nDoctrine below:\n\n- [Using Doctrine\n Migrations](https://www.slideshare.net/denderello/symfony-live-2010-using-doctrine-migrations)\n- [Doctrine 2: Not the same Old PHP\n ORM](https://www.slideshare.net/jwage/doctrine-2-not-the-same-old-php-orm)\n\n", - "date": "2010-02-18 00:00:00" + "contents": "I have been waiting for this day for some time, the day we have the\nmanual in a 2nd language. For many months the website has been capable\nof handling multiple languages but the features have not been exposed\nuntil now. Thanks to Masaki and Takeshi, two very experienced Japanese\nsymfony + Doctrine developers, we now have the Doctrine manual available\nin Japenese. The primary text of the website will also be translated in\nthe following weeks. If you are interested in having the Doctrine\nwebsite and manual in your language, please contact me so we can make\narrangements for you to have access to easily provide translations.\n", + "date": "2008-06-21 00:00:00" }, { - "url": "/2009/07/27/doctrine-1-0-11-and-1-1-3-released.html", - "slug": "doctrine-1-0-11-and-1-1-3-released", - "title": "Doctrine 1.0.11 and 1.1.3 Released", + "url": "/2008/07/20/doctrine-gets-its-first-employee.html", + "slug": "doctrine-gets-its-first-employee", + "title": "Doctrine gets its first employee", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am happy to introduce two new maintenance releases for Doctrine,\n1.0.11 and 1.1.3. As always these are regular maintenance releases and\ncontain dozens of bug fixes. Below you will find links to view the\nchangelogs for both releases.\n\n- [Doctrine 1.0.11\n Changelog](https://www.doctrine-project.org/change_log/1_0_11)\n- [Doctrine 1.1.3\n Changelog](https://www.doctrine-project.org/change_log/1_1_3)\n\nIt is recommended that you upgrade as soon as possible. You can download\nthe new versions from the\n[download](https://www.doctrine-project.org/download) page.\n", - "date": "2009-07-27 00:00:00" + "contents": "

    \n\nStarting in September 2008, I will begin working full-time on Doctrine!\nThis great opportunity has been allowed by Sensio, the creators of the\nsymfony MVC Framework. This arrangement will allow many great new things\nto happen for Doctrine. Below you will find a list of some of the things\nyou can look forward to:\n\n

    • \n\nCore Development\n\n
    • \n\nThe Doctrine Book\n\n
    • \n\nTravel to conferences\n\n
    • \n\nDoctrine Evangelism\n\n
    • \n\nCommercial/Paid Support\n\n
    • \n\nWorkshops\n\n
    • \n\nCertifications\n\n

    \n\nThis is also good news for the symfony project as it is due to\nofficially support Doctrine as its primary ORM in future versions. I\nwill also be helping the core symfony team with the official integration\nof Doctrine with sfDoctrinePlugin.\n\n

    \n\n\n", + "date": "2008-07-20 00:00:00" }, { - "url": "/2008/07/21/plug-and-play-schema-information-with-templates.html", - "slug": "plug-and-play-schema-information-with-templates", - "title": "Plug and Play Schema Information With Templates", - "authorName": "jwage", + "url": "/2011/03/06/doctrine-oxm-intro.html", + "slug": "doctrine-oxm-intro", + "title": "A Doctrine OXM Introduction", + "authorName": "richardfullmer", "authorEmail": "", - "contents": "Check out the latest addition to the Doctrine Cookbook. We have added a\nshort little tutorial on how to use Doctrine templates to solve a real\nworld problem to allow Address attributes on many records easily. We\nwill be publishing many more tutorials in the coming weeks. If you're\ninterested in contributing a tutorial please contact me at jonwage [at]\ngmail.com.\n", - "date": "2008-07-21 00:00:00" + "contents": "Greetings programmers!\n\nSome of you may have noticed a new project being hosted by Doctrine's\n[github](https://github.com/doctrine) named [Object XML\nMapper(OXM)](https://github.com/doctrine/oxm). The OXM is the newest\nmember of the Doctrine family, and serves as persistence and marshalling\nframework for PHP objects to XML, and back again. I'd like to take a\nmoment to introduce myself, the company I work for, and the pain points\nbehind the project's inception.\n\nWe at [Opensoft](http://www.opensoftdev.com/) have always been fans of\nopen source software, and love to give back to the community. I recently\nwas required to implement some vendor specific XML within a corporate\nPHP application. The XML itself had the following requirements and pain\npoints:\n\n- 900+ page specification... over 600 unique XML elements.\n- The XML is used as a workflow. Lots of pull xml, alter it slightly,\n and save it back\n- The XML must be available to the end user upon request.\n- Some of the XML had to be able to be sent via POST to other\n services, and parse responses back\n\nWorking with objects is so much better than working with such complex\nXML.\n\nAs a PHP enthusiest and fan of Doctrine, I created a small project that\nwas capable of marshalling, unmarshalling, and persisting PHP objects to\nXML using [Doctrine Common](https://github.com/doctrine/common) package\nas a base, and many ideas from the ORM, and ODM projects. The Java\n[Castor](http://www.castor.org) project also brought a lot of ideas to\ngive a high degree of control to the developer during the\n(un)marshalling process. ClassMetadata is collected for each @XmlEntity\nclass and used to perform the mapping from PHP objects to native XML.\n\nRight now, the API is still quite unstable, but we're working to change\nthat. Currently Doctrine users should find a lot of familiarity between\nOXM and other Doctrine initiatives. We've tried to stay as close to the\nDoctrine ways of doing things as possible. If you feel like this project\ncould help you make working with XML better, please send me a line, fork\nthe project, and send some pull requests!\n\nEnjoy!\n", + "date": "2011-03-06 00:00:00" }, { - "url": "/2015/03/22/data-fixtures-1-0-1.html", - "slug": "data-fixtures-1-0-1", - "title": "Doctrine Data Fixtures 1.0.1", - "authorName": "Sebastien Lavoie", + "url": "/2015/05/22/doctrine-mongodb-odm-release-1-0-0-beta13.html", + "slug": "doctrine-mongodb-odm-release-1-0-0-beta13", + "title": "Doctrine MongoDB ODM release 1.0.0-BETA13", + "authorName": "Maciej Malarz", + "authorEmail": "malarzm@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM 1.0.0-BETA13.\n\nWhat is new in 1.0.0-BETA13?\n============================\n\nAll issues and pull requests in this release may be found under the\n[1.0.0-BETA13 milestone on\ngithub](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.0-BETA13).\nHere is the highlight of most important features:\n\natomicSet and atomicSetArray strategies for top-level collections\n-----------------------------------------------------------------\n\n[\\#1096](https://github.com/doctrine/mongodb-odm/pull/1096) introduces\ntwo new collection update strategies, `atomicSet` and `atomicSetArray`.\nUnlike existing strategies (e.g. `pushAll` and `set`), which update\ncollections in a separate query after the parent document, the atomic\nstrategy ensures that the collection and its parent are updated in the\nsame query. Any nested collections (within embedded documents) will also\nbe included in the atomic update, irrespective of their update\nstrategies.\n\nCurrently, atomic strategies may only be specified for collections\nmapped directly in a document class (i.e. not collections within\nembedded documents). This strategy may be especially useful for highly\nconcurrent applications and/or versioned document classes (see:\n[\\#1094](https://github.com/doctrine/mongodb-odm/pull/1094)).\n\nReference priming improvements\n------------------------------\n\n[\\#1068](https://github.com/doctrine/mongodb-odm/pull/1068) moves the\nhandling of primed references to the Cursor object, which allows ODM to\ntake the skip and limit options into account and avoid priming more\nreferences than are necessary.\n\n[\\#970](https://github.com/doctrine/mongodb-odm/pull/970) now allows\nreferences within embedded documents to be primed by fixing a previous\nparsing limitation with dot syntax in field names.\n\nNew defaultDiscriminatorValue mapping\n-------------------------------------\n\n[\\#1072](https://github.com/doctrine/mongodb-odm/pull/1072) introduces\na `defaultDiscriminatorValue` mapping, which may be used to specify a\ndefault discriminator value if a document or association has no\ndiscriminator set.\n\nNew Integer and Bool annotation aliases\n---------------------------------------\n\n[\\#1073](https://github.com/doctrine/mongodb-odm/pull/1073) introduces\n`Integer` and `Bool` annotations, which are aliases of `Int` and\n`Boolean`, respectively.\n\nAdd millisecond precision to DateType\n-------------------------------------\n\n[\\#1063](https://github.com/doctrine/mongodb-odm/pull/1063) adds\nmillisecond precision to ODM's DateType class (note: although PHP\nsupports microsecond precision, dates in MongoDB are limited to\nmillisecond precision). This should now allow ODM to roundtrip dates\nfrom the database without a loss of precision.\n\nNew Hydrator generation modes\n-----------------------------\n\nPreviously, the `autoGenerateHydratorClasses` ODM configuration option\nwas a boolean denoting whether to always or never create Hydrator\nclasses. As of\n[\\#953](https://github.com/doctrine/mongodb-odm/pull/953), this option\nnow supports four modes:\n\n- `AUTOGENERATE_NEVER = 0` (same as `false`)\n- `AUTOGENERATE_ALWAYS = 1` (same as `true`)\n- `AUTOGENERATE_FILE_NOT_EXISTS = 2`\n- `AUTOGENERATE_EVAL = 3`\n\nSupport for custom DocumentRepository factory\n---------------------------------------------\n\n[\\#892](https://github.com/doctrine/mongodb-odm/pull/892) allows users\nto define a custom repository class via the `defaultRepositoryClassName`\nconfiguration option. Alternatively, a custom factory class may also be\nconfigured, which allows users complete control over how repository\nclasses are instantiated.\n\nCustom repository and factory classes must implement\n`Doctrine\\Common\\Persistence\\ObjectRepository` and\n`Doctrine\\ODM\\MongoDB\\Repository\\RepositoryFactory`, respectively.\n\nStay tuned, there is a lot more to come soon!\n---------------------------------------------\n", + "date": "2015-05-22 00:00:00" + }, + { + "url": "/2016/09/09/dbal-2-5-5.html", + "slug": "dbal-2-5-5", + "title": "Doctrine DBAL 2.5.5 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n[2.5.5](https://github.com/doctrine/dbal/releases/tag/v2.5.5).\n\nThis release contains a huge amount of fixes, specifically:\n\n> - Parsing of SQL strings containing single quotes\n> [\\#842](https://github.com/doctrine/common/pull/842)\n> - Listing foreign key names when no DB name is used (use current DB\n> instead) [\\#856](https://github.com/doctrine/common/pull/856)\n> - Verifying if table names correspond on dropped foreign keys\n> [\\#861](https://github.com/doctrine/common/pull/861)\n> - Quoting identifiers in `DROP` DDL statements\n> [\\#862](https://github.com/doctrine/common/pull/862)\n> - Removing leading slash from database/schema names when using DSNs\n> [\\#863](https://github.com/doctrine/common/pull/863)\n> - Stopped using `template1` as default database in Postgres\n> [\\#2279](https://github.com/doctrine/common/pull/2279)\n> - Allowing `\"path\"` instead of `\"dbname\"` in SQLite connections\n> [\\#2267](https://github.com/doctrine/common/pull/2267)\n> - Correcting DB2 boolean columns schema introspection\n> [\\#2277](https://github.com/doctrine/common/pull/2277)\n> - Correcting OCI8 parameter binding, which was broken by upgrading\n> to PHP 7.0 [\\#2434](https://github.com/doctrine/common/pull/2434)\n> - Quoting reserved table names when using `TRUNCATE`\n> [\\#2270](https://github.com/doctrine/common/pull/2270)\n> - Fixing of DSN parsing when no schema is in the path\n> [\\#2287](https://github.com/doctrine/common/pull/2287)\n> - Correcting query builder, which was adding a `FROM` clause even\n> with no arguments for it\n> [\\#2292](https://github.com/doctrine/common/pull/2292)\n> - Correcting altering primary key with `AUTO_INCREMENT` on MySQL\n> (requires dropping/re-adding PK)\n> [\\#2303](https://github.com/doctrine/common/pull/2303)\n> - Moving DB2 pagination (query modification) offset/limit count\n> result to the end of the results\n> [\\#2310](https://github.com/doctrine/common/pull/2310)\n> - Handling `Throwable` exceptions thrown in\n> `Connection#transactional()`\n> [\\#2390](https://github.com/doctrine/common/pull/2390)\n> - Correcting logging of parameters passed to a statement via\n> `bindParam()`\n> [\\#2440](https://github.com/doctrine/common/pull/2440)\n> - Allowing installation of `symfony/console:^3.0`\n> [\\#2484](https://github.com/doctrine/common/pull/2484)\n> - Correcing MySQLi statements, which were returning `null` instead\n> of `false` on no results\n> [\\#2497](https://github.com/doctrine/common/pull/2497)\n\nInstallation\n============\n\nYou can install the DBAL component using Composer:\n\n```bash\ncomposer require doctrine/dbal:^2.5.5\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/dbal/issues).\n", + "date": "2016-09-09 00:00:00" + }, + { + "url": "/2012/09/17/doctrine-2-3-rc4.html", + "slug": "doctrine-2-3-rc4", + "title": "Doctrine 2.3.0 RC4 released", + "authorName": "beberlei", "authorEmail": "", - "contents": "We are happy to announce the immediate availability Doctrine Data\nFixtures `1.0.1`.\n\nIn all [semver](https://semver.org/) fashion, this is a bug fix release.\n\nWhat is new in 1.0.x?\n=====================\n\nPlease report any issues you may have with the update on\n[Github](https://github.com/doctrine/data-fixtures/issues).\n\n- Added Travis:\n [69c2230](https://github.com/doctrine/data-fixtures/commit/69c2230dd15413cac013626729c30923632cf313)\n- Now supports table quoting for dropping joined tables:\n [\\#180](https://github.com/doctrine/data-fixtures/pull/180)\n- Fixed ProxyReferenceRepository which was forcing to have a getId:\n [8ffac1c](https://github.com/doctrine/data-fixtures/commit/8ffac1c63f34124f693b93889fa32f4036eb241b)\n- Fixed identifiers retrieval on ReferenceRepository if Entity is not\n yet managed my UnitOfWork:\n [dfc0dc9](https://github.com/doctrine/data-fixtures/commit/dfc0dc9a3f6258c878768218fe49cc092ea8a8d1)\n- Doctrine dependencies relaxed:\n [83a910f](https://github.com/doctrine/data-fixtures/commit/83a910f62b01715f3ed7317f5a4996417a698177)\n- Fix purging non-public schema tables:\n [\\#171](https://github.com/doctrine/data-fixtures/pull/171)\n\nRelease RoadMap\n===============\n\nWe expect to release following versions containing the pending patches\nin the next days:\n\n> - `1.1.0` on `2015-03-26`\n> - `1.2.0` within `2015-04`\n\nPlease note that these dates may change depending on the availability of\nour team.\n", - "date": "2015-03-22 00:00:00" + "contents": "**17.9.2012**\n\nWe released another release candidate of our upcoming Doctrine 2.3.0\nversion. This includes the Common, DBAL and ORM packages.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nSee the [2.3 Beta blog\npost](https://www.doctrine-project.org/2012/07/16/doctrine-2-3-beta.html) for\nsome information about changes in 2.3.\n\nYou can install the release candidate through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-RC4\"\n },\n \"minimum-stability\": \"dev\"\n }\n\nIf you find any problems with your applications please report them on\nour [bugtracker](https://www.doctrine-project.org/jira).\n\nWe hope to release the final version of Doctrine 2.3 after this release\ncandidate. Please test your applications with this.\n", + "date": "2012-09-17 00:00:00" }, { - "url": "/2019/05/21/monetizing-open-source.html", - "slug": "monetizing-open-source", - "title": "Monetizing Open Source", - "authorName": "Jonathan H. Wage", - "authorEmail": "jonwage@gmail.com", - "contents": "In our quest to make Doctrine financially sustainable, we have created\nDoctrine Company, LLC under which the team can conduct business. We've had a strong\n10 years of open source success but we believe that in order for Doctrine to be\ntruly sustainable and to last another decade, we need to diversify and monetize\nthe project. It is our goal to be able to generate enough money through the project\nto fund full or part time work on the project. Below you will find details of some\nof our monetization efforts.\n\n## Patreon\n\nPatreon is a platform that allows open source maintainers, artists, creators, etc. to create\nrelationships with their users and offer them benefits for becoming a patron.\n\nIf you would like to make a donation to the project, Patreon is the place to do it.\nDepending on the tier, we offer a few different benefits:\n\n- A mention on Twitter.\n- Your name and website link on the Doctrine website.\n- Priority responses to Stack Overflow or GitHub issues/PRs.\n- Placement on a [Partners](/partners.html) page on the Doctrine website, with your logo, link, and a paragraph advertising your company's services.\n\n[Become a Patreon](https://www.patreon.com/phpdoctrine) of Doctrine today!\n\n## Consulting\n\nUnder the Doctrine Company, we are providing [consulting and training](/consulting.html)\nservices to companies that use PHP. The services we offer are not limited to Doctrine itself.\nOur team specializes in producing high quality PHP. Whether you are starting a new project or\nmodernizing a legacy application, we can help your team level up their skills with tools\nlike the following:\n\n- [Doctrine DBAL](/projects/dbal.html) - Connect to your favorite RDBMS using Doctrine's database abstraction library.\n- [Doctrine Database Migrations](/projects/migrations.html) - Safely manage your database schema and keep it up to date.\n- [Doctrine ORM](/projects/orm.html) - Represent your domain model cleanly with plain old PHP objects and ensure the integrity of your data.\n- [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) - Keep aesthetic debates out of your code reviews by adopting a coding standard and enforcing it in your build process. We can help integrate Doctrine's own [coding standard](/projects/coding-standard.html) into your project or help codify your own.\n- [Psalm](https://psalm.dev/) / [PHPStan](https://github.com/phpstan/phpstan) - Statically analyze your codebase and find bugs that would otherwise only be found at runtime in production.\n\nIf you are interested, take a look at our [Consulting](/consulting.html) page or contact\nus at [consulting@doctrine-project.org](mailto:consulting@doctrine-project.org) for more\ninformation.\n\n## Events\n\nWe will host regular monthly webinars using [Zoom](https://zoom.us/). Each month we will have different topics\npresented to you by members of the Doctrine Core team or greater PHP community. We already have\nsome great topics lined up for the next few months:\n\n- [Doctrine for Beginners on June 25th](/events/2/doctrine-for-beginners.html)\n- [Getting Started with Doctrine MongoDB ODM on July 16th](/events/3/getting-started-with-doctrine-mongodb-odm.html)\n- [PHP Internals for the Inquisitive Developer on September 10th](/events/1/php-internals-for-the-inquisitive-developer.html)\n\n## Tidelift\n\n[Tidelift](https://tidelift.com) is a managed open source subscription service backed by\ncreators and maintainers. Development teams get better maintained open source. Maintainers\nget paid.\n\nWe have partnered with Tidelift as a maintainer to guarantee a high level of maintenance for their\ncustomers. In return, Tidelift pays Doctrine maintainers a percentage of what the customer pays.\nTidelift is attempting to create a marketplace of open source maintainers and customers with the\ngoal of providing higher levels of confidence for commercial entities when using open source. This\ncan sometimes be one of the biggest challenges for using open source in the corporate world.\nTidelift is taking a unique approach to solving this problem and we are excited to be a part of it!\n\n## Carbon Ads\n\nOne of the most valuable assets we have besides software is our website and the traffic we\nreceive every month. You may have noticed some subtle ad placements on our website. These\ntext-based ads are provided by [Carbon Ads](https://www.carbonads.net/) which is an ad network\noptimized for reaching designers and developers. We understand ads can be annoying and we hope that\nour users understand the trade-off we've made by choosing to place ads on our website.\n\n## Partners\n\nFinally, we are partnering with commercial entities and other projects that use Doctrine to cross\npromote each other. Through our partner network we hope to introduce our users to vetted services\nand offerings from which they can benefit. Thanks to our [Partners](/partners.html) for supporting\nDoctrine.\n", - "date": "2019-05-21 00:00:00" + "url": "/2009/10/07/doctrine-2-documentation.html", + "slug": "doctrine-2-documentation", + "title": "Doctrine 2 Documentation", + "authorName": "jwage", + "authorEmail": "", + "contents": "Did you know that Doctrine 2 is already very well documented? I've\nnoticed recently that some people seem to think we don't have any\ndocumentation for it, and that upgrading will not be possible for many\nmonths to come.\n\nWe have an almost complete manual on Doctrine 2 which is the same\nconcept of \"Guide to Doctrine for PHP\" for Doctrine 1. It covers all the\ncore concepts of Doctrine 2 as well as information on how to get\nstarted, code examples, best practices, etc.\n\nThe Guide to Doctrine for PHP starts off with the following chapters...\n\n- [Introduction](https://www.doctrine-project.org/projects/doctrine-orm/en/current/tutorials/getting-started.html)\n- [Architecture](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/architecture.html)\n- [Configuration](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/configuration.html)\n- [Basic\n Mapping](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/basic-mapping.html)\n- [...and\n more](https://www.doctrine-project.org/projects/doctrine-orm/en/current/)\n\nThe following chapters have been completed and updated recently...\n\n- [Events](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/events.html)\n- [Tools](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/tools.html)\n\nWe also have a cookbook with a few articles already too...\n\n- [Implementing ArrayAccess for domain\n objects](https://www.doctrine-project.org/projects/doctrine-orm/en/current/cookbook/implementing-arrayaccess-for-domain-objects.html)\n- [Implementing the NOTIFY changetracking\n policy](https://www.doctrine-project.org/projects/doctrine-orm/en/current/cookbook/implementing-the-notify-changetracking-policy.html)\n\nWe hope this helps you a little bit with getting started using Doctrine\n2 and that you enjoy it! :)\n", + "date": "2009-10-07 00:00:00" }, { - "url": "/2008/10/26/symfony-doctrine-schema-manager.html", - "slug": "symfony-doctrine-schema-manager", - "title": "symfony Doctrine Schema Manager", + "url": "/2008/09/01/doctrine-1-0-released.html", + "slug": "doctrine-1-0-released", + "title": "Doctrine 1.0 Released", "authorName": "jwage", "authorEmail": "", - "contents": "As you all probably know, Doctrine has been tightly integrated with [a\nfew](http://trac.doctrine-project.org/wiki/integrate) different PHP\nframeworks. Since symfony was my choice of framework a few years back, I\nhave dedicated a lot of time towards working on the integration between\nthe two.\n\nSomething I've always thought would be fun to build and has been one of\nthe most requested items by users is a nice web based interface for\nmanaging your schema and generate your models from it. With the [new\nform\nframework](https://symfony.com/blog/spice-up-your-forms-with-some-nice-widgets-and-validators)\nas of [symfony\n1.1](https://symfony.com/blog/the-wait-is-over-symfony-1-1-released)\n, you can build rich forms with a nice OOP interface. This made it\nextremely easy to make the schema manager feature of the\n[sfDoctrineManagerPlugin](http://www.symfony-project.com/plugins/sfDoctrineManagerPlugin).\nIt was as simple as automatically generating a set of forms from the\nschema information data structure inside of Doctrine.\n\n[![sfDoctrineManagerPlugin](http://www.symfony-project.org/uploads/plugins/5e25c2c7775a8ed169e2d9a6de8e2d1d98ffd110.png)](http://www.symfony-project.com/plugins/sfDoctrineManagerPlugin)\n\nThis symfony plugin allows you to manage all your schema information\nfrom a nice web based interface. You can create new schemas or load your\nexisting schemas to edit. More information about it as well as screen\nshots can be found\n[here](http://www.symfony-project.com/plugins/sfDoctrineManagerPlugin).\n", - "date": "2008-10-26 00:00:00" + "contents": "

    \n\nToday I am extremely happy to introduce the first stable version of\nDoctrine, 1.0.0. If you've been around for a while, then you know this\nis a long time coming. We've been hard at work on Doctrine for nearly 3\nyears and it is finally time to release a version we will support with\nbug fix releases every month. This 1.0 release will be maintained until\nMarch 1st 2010. Now we have 1.0, what is next? Below are some highlights\nof what to expect in the future of Doctrine.\n\n

    • \n\nDoctrine 2.0 - We've been working in trunk on Doctrine 2.0 for quite\nsometime now and this is the next really big milestone for the project.\nAs we work on 2.0 we will backport things for intermediate major\nversions(1.1, 1.2, etc.)\n\n
    • \n\nThe Doctrine Company? - We'll be working on a new side to the Doctrine\nproject for organizing commercial support contracts, trainings,\nseminars, certifications, training material and much more.\n\n
    • \n\nDoctrine supported by symfony 1.2 - We will be contributing to the\nintegration process of Doctrine with sfDoctrinePlugin. 1.2 will be the\nfirst symfony release to bundle Doctrine and support it.\n\n
    • \n\nMore and Better Documentation - Expect updated documentation as well as\nsome new pieces introduced. Doctrine Book?\n\n

    \n\nWhat are you waiting for? Download Doctrine 1.0 now and give it a try.\nCheck out the Cookbook and Manual to help you get started. The My First\nProject Tutorial is good for just getting started and getting your feet\nwet.\n\n

    \n\n\n", + "date": "2008-09-01 00:00:00" }, { - "url": "/2011/01/30/doctrine-maintenance-jan2011.html", - "slug": "doctrine-maintenance-jan2011", - "title": "Maintenance Releases 2.0.1 of Common, DBAL and ORM", + "url": "/2010/03/29/doctrine2-custom-dql-udfs.html", + "slug": "doctrine2-custom-dql-udfs", + "title": "Extending DQL in Doctrine 2: User-Defined Functions", "authorName": "beberlei", "authorEmail": "", - "contents": "We released the first maintenance versions of Common, DBAL and ORM\ntoday. See the changelogs for more information:\n\n- [ORM, 26 Bugs\n fixed](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10114)\n- [DBAL, 1 Bug\n fixed](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10115)\n- Common, no known bugs\n\nWe also optimized the build process, so that the Version Classes in the\nGit Tags do not contain the \"-DEV\" suffix anymore.\n\nYou can get the code from [Git](https://github.com/doctrine) , [our PEAR\nchannel](http://pear.doctrine-project.org) or from the [download\nsection](https://www.doctrine-project.org/projects) of the website.\n", - "date": "2011-01-30 00:00:00" + "contents": "By default DQL supports a limited subset of all the vendor-specific SQL\nfunctions common between all the vendors. However in many cases once you\nhave decided on a specific database vendor, you will never change it\nduring the life of your project. This decision for a specific vendor\npotentially allows you to make use of powerful SQL features that are\nunique to the vendor.\n\n> **Note**\n>\n> It is worth to mention that Doctrine 2 also allows you to handwrite\n> your SQL instead of extending the DQL parser, which is sort of an\n> advanced extension point. You can map arbitrary SQL to your objects\n> and gain access to vendor specific functionalities using the\n> `EntityManager#createNativeQuery()` API.\n\nThe DQL Parser has hooks to register functions that can then be used in\nyour DQL queries and transformed into SQL, allowing to extend Doctrines\nQuery capabilities to the vendors strength. This post explains the\nUsed-Defined Functions API (UDF) of the Dql Parser and shows some\nexamples to give you some hints how you would extend DQL.\n\nThere are three types of functions in DQL, those that return a numerical\nvalue, those that return a string and those that return a Date. Your\ncustom method has to be registered as either one of those. The return\ntype information is used by the DQL parser to check possible syntax\nerrors during the parsing process, for example using a string function\nreturn value in a math expression.\n\nRegistering your own DQL functions\n==================================\n\nYou can register your functions adding them to the ORM configuration:\n\n~~~~ {.sourceCode .php}\naddCustomStringFunction($name, $class);\n$config->addCustomNumericFunction($name, $class);\n$config->addCustomDatetimeFunction($name, $class);\n\n$em = EntityManager::create($dbParams, $config);\n~~~~\n\nThe `$name` is the name the function will be referred to in the DQL\nquery. `$class` is a string of a class-name which has to extend\n`Doctrine\\ORM\\Query\\Node\\FunctionNode`. This is a class that offers all\nthe necessary API and methods to implement a UDF.\n\nIn this post we will implement some MySql specific Date calculation\nmethods, which are quite handy in my opinion:\n\nDate Diff\n=========\n\n[Mysql's DateDiff\nfunction](http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediff)\ntakes two dates as argument and calculates the difference in days with\n`date1-date2`.\n\nThe DQL parser is a top-down recursive descent parser to generate the\nAbstract-Syntax Tree (AST) and uses a TreeWalker approach to generate\nthe appropriate SQL from the AST. This makes reading the\nParser/TreeWalker code managable in a finite amount of time.\n\nThe `FunctionNode` class I referred to earlier requires you to implement\ntwo methods, one for the parsing process (obviously) called `parse` and\none for the TreeWalker process called `getSql()`. I show you the code\nfor the DateDiff method and discuss it step by step:\n\n~~~~ {.sourceCode .php}\nmatch(Lexer::T_IDENTIFIER); // (2)\n $parser->match(Lexer::T_OPEN_PARENTHESIS); // (3)\n $this->firstDateExpression = $parser->ArithmeticPrimary(); // (4)\n $parser->match(Lexer::T_COMMA); // (5)\n $this->secondDateExpression = $parser->ArithmeticPrimary(); // (6)\n $parser->match(Lexer::T_CLOSE_PARENTHESIS); // (3)\n }\n\n public function getSql(\\Doctrine\\ORM\\Query\\SqlWalker $sqlWalker)\n {\n return 'DATEDIFF(' .\n $this->firstDateExpression->dispatch($sqlWalker) . ', ' .\n $this->secondDateExpression->dispatch($sqlWalker) .\n ')'; // (7)\n }\n}\n~~~~\n\nThe Parsing process of the DATEDIFF function is going to find two\nexpressions the date1 and the date2 values, whose AST Node\nrepresentations will be saved in the variables of the DateDiff\nFunctionNode instance at (1).\n\nThe parse() method has to cut the function call \"DATEDIFF\" and its\nargument into pieces. Since the parser detects the function using a\nlookahead the T\\_IDENTIFIER of the function name has to be taken from\nthe stack (2), followed by a detection of the arguments in (4)-(6). The\nopening and closing parenthesis have to be detected also. This happens\nduring the Parsing process and leads to the generation of a DateDiff\nFunctionNode somewhere in the AST of the dql statement.\n\nThe `ArithmeticPrimary` method call is the most common denominator of\nvalid EBNF tokens taken from the [DQL EBNF\ngrammer](https://www.doctrine-project.org/documentation/manual/2_0/en/dql-doctrine-query-language#ebnf)\nthat matches our requirements for valid input into the DateDiff Dql\nfunction. Picking the right tokens for your methods is a tricky\nbusiness, but the EBNF grammer is pretty helpful finding it, as is\nlooking at the Parser source code.\n\nNow in the TreeWalker process we have to pick up this node and generate\nSQL from it, which apprently is quite easy looking at the code in (7).\nSince we don't know which type of AST Node the first and second Date\nexpression are we are just dispatching them back to the SQL Walker to\ngenerate SQL from and then wrap our DATEDIFF function call around this\noutput.\n\nNow registering this DateDiff FunctionNode with the ORM using:\n\n~~~~ {.sourceCode .php}\naddCustomStringFunction('DATEDIFF', 'DoctrineExtensions\\Query\\MySql\\DateDiff');\n~~~~\n\nWe can do fancy stuff like:\n\n [sql]\n SELECT p FROM DoctrineExtensions\\Query\\BlogPost p WHERE DATEDIFF(CURRENT_TIME(), p.created) < 7\n\nDate Add\n========\n\nOften useful it the ability to do some simple date calculations in your\nDQL query using [MySql's DATE\\_ADD\nfunction](http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add).\n\nI'll skip the bla and show the code for this function:\n\n~~~~ {.sourceCode .php}\nmatch(Lexer::T_IDENTIFIER);\n $parser->match(Lexer::T_OPEN_PARENTHESIS);\n\n $this->firstDateExpression = $parser->ArithmeticPrimary();\n\n $parser->match(Lexer::T_COMMA);\n $parser->match(Lexer::T_IDENTIFIER);\n\n $this->intervalExpression = $parser->ArithmeticPrimary();\n\n $parser->match(Lexer::T_IDENTIFIER);\n\n /* @var $lexer Lexer */\n $lexer = $parser->getLexer();\n $this->unit = $lexer->token['value'];\n\n $parser->match(Lexer::T_CLOSE_PARENTHESIS);\n }\n\n public function getSql(\\Doctrine\\ORM\\Query\\SqlWalker $sqlWalker)\n {\n return 'DATE_ADD(' .\n $this->firstDateExpression->dispatch($sqlWalker) . ', INTERVAL ' .\n $this->intervalExpression->dispatch($sqlWalker) . ' ' . $this->unit .\n ')';\n }\n}\n~~~~\n\nThe only difference compared to the DATEDIFF here is, we additionally\nneed the `Lexer` to access the value of the `T_IDENTIFIER` token for the\nDate Interval unit, for example the MONTH in:\n\n [sql]\n SELECT p FROM DoctrineExtensions\\Query\\BlogPost p WHERE DATE_ADD(CURRENT_TIME(), INTERVAL 4 MONTH) > p.created\n\nThe above method now only supports the specification using `INTERVAL`,\nto also allow a real date in DATE\\_ADD we need to add some decision\nlogic to the parsing process (makes up for a nice excercise).\n\nNow as you see, the Parsing process doesn't catch all the possible SQL\nerrors, here we don't match for all the valid inputs for the interval\nunit. However where necessary we rely on the database vendors SQL parser\nto show us further errors in the parsing process, for example if the\nUnit would not be one of the supported values by MySql.\n\nConclusion\n==========\n\nNow that you all know how you can implement vendor specific SQL\nfunctionalities in DQL, we would be excited to see user extensions that\nadd vendor specific function packages, for example more math functions,\nXML + GIS Support, Hashing functions and so on.\n\nFor 2.0 we will come with the current set of functions, however for a\nfuture version we will re-evaluate if we can abstract even more vendor\nsql functions and extend the DQL languages scope.\n\nCode for this Extension to DQL and other Doctrine Extensions can be\nfound [in my Github DoctrineExtensions\nrepository](https://github.com/beberlei/DoctrineExtensions).\n", + "date": "2010-03-29 00:00:00" }, { - "url": "/2010/02/24/doctrine2-versionable.html", - "slug": "doctrine2-versionable", - "title": "A re-usable Versionable Behavior for Doctrine 2", - "authorName": "beberlei", + "url": "/2008/05/03/website-upgraded-to-symfony-1-1-and-doctrine-0-11.html", + "slug": "website-upgraded-to-symfony-1-1-and-doctrine-0-11", + "title": "Website upgraded to symfony 1.1 and Doctrine 0.11", + "authorName": "jwage", "authorEmail": "", - "contents": "**NOTE** This blog entry relates to an outdated Doctrine 2 Alpha\n: version. Please see the documentation for the most up to date\n behavior. A test-implementation for this behavior is on\n github.com/beberlei/DoctrineExtensions\n\nMy previous post on behaviors in Doctrine 2 generated quite some\ndiscussion about the difference on behaviours that are re-usable across\nmodels and the trivial specific implementations I have shown.\n\nIn this post I will show a re-usable versionable (audit-log) behavior.\nFor this we will need the following ingredients:\n\n- An interface `DoctrineExtensions\\Versionable\\Versionable`\n- A class `DoctrineExtensions\\Versionable\\VersionManager`\n- An event listener `DoctrineExtensions\\Versionable\\VersionListener`\n- A generic entity `DoctrineExtensions\\Versionable\\ResourceVersion`\n\n > **NOTE** The Event API is currently in the central focus of our\n > efforts so the API shown here may change before the first Beta\n > release.\n\nThe workflow is as follows, each Entity that is supposed to be\nversionable has to implement the interface `Versionable` which looks\nlike this:\n\n~~~~ {.sourceCode .php}\nresourceName = get_class($resource);\n $this->resourceId = $resource->getResourceId();\n $this->versionedData = $resource->getVersionedData();\n $this->version = $resource->getCurrentVersion();\n $this->snapshotDate = new \\DateTime(\"now\");\n }\n\n // getters\n}\n~~~~\n\nNow we need to solve the problem of generating the `ResourceVersion`\nwhenever an `Versionable` entity is persisted or updated. This can be\ndone by using the [Doctrine EventManager\nAPI](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/events.html).\nWe will implement the `EventSubscriber` interface and hook into the\n\"onFlush\" event.\n\n~~~~ {.sourceCode .php}\ngetEntityManager();\n $uow = $em->getUnitOfWork();\n\n foreach ($uow->getScheduledEntityInsertions() AS $entity) {\n if ($entity instanceof Versionable) {\n $this->_makeSnapshot($entity);\n }\n }\n\n foreach ($uow->getScheduledEntityUpdates() AS $entity) {\n if ($entity instanceof Versionable) {\n $this->_makeSnapshot($entity);\n }\n }\n }\n\n private function _makeSnapshot($entity)\n {\n $resourceVersion = new ResourceVersion($entity);\n $class = $this->_em->getClassMetadata(get_class($resourceVersion));\n\n $this->_em->persist( $resourceVersion );\n $this->_em->getUnitOfWork()->computeChangeSet($class, $resourceVersion);\n }\n}\n~~~~\n\nHow do we hook this `VersionListener` into the EntityManager? We will\nwrap the VersionManager around it that handles registration and offers\nsome convenience methods to retrieve the versions of a resource.\n\n~~~~ {.sourceCode .php}\n_em = $em;\n $this->_em->getEventManager()->addEventSubscriber(\n new VersionListener()\n );\n }\n\n public function getVersions(Versionable $resource)\n {\n $query = $this->_em->createQuery(\n \"SELECT v FROM DoctrineExtensions\\Versionable\\ResourceVersion v INDEX BY v.version \".\n \"WHERE v.resourceName = ?1 AND v.resourceId = ?2 ORDER BY v.version DESC\");\n $query->setParameter(1, get_class($resource));\n $query->setParameter(2, $resource->getResourceId());\n\n return $query->getResult();\n }\n}\n~~~~\n\nNow using this to retrieve all the versions of a given entity that is\nversionable you would go and:\n\n~~~~ {.sourceCode .php}\ngetVersions($blogPost);\n\necho \"Old Title: \".$versions[$oldVersionNum]->getVersionedData('title');\n\n// Create a new version\n$blogPost->setTitle(\"My very new title\");\n$em->flush();\n~~~~\n\nThis is a first example of how to use the powerful Doctrine 2 Event API.\nIt is certainly not easy to use, as you need to understand the inner\nworkings of the UnitOfWork and the different steps it is in during the\nflush process. However you can generate huge benefits in reusability.\n\nThe versionable behaviour could be extended by the following features:\n\n- Create a new interface `Revertable` that extends `Versionable` and\n add a method `revert(Revertable $resource, $toVersion)` to the\n `VersionManager` that handles the retrieval, invoking of revert and\n such.\n- Create a new interface Diffable with a method diff(\\$aVersion,\n \\$bVersion) and new method diff(Diffable \\$resource, \\$aId, \\$bId)\n to the VersionManager that handles the delegation of a difference\n computation between two versions to the Diffable implementor.\n\nAnother approach would be not to save the complete state of an entity\nduring the flush operation, but only the fields that changed. This is\ngenerally called an *AuditLog*. We could add an `Auditable` interface\nmuch in the same manner than the `Versionable` and retrieve the\nChangeSets of each entity during flush using the following event\nlistener:\n\n~~~~ {.sourceCode .php}\ngetEntityManager();\n $uow = $em->getUnitOfWork();\n\n $changeDate = new DateTime(\"now\");\n $class = $em->getClassMetadata('DoctrineExtensions\\Auditable\\AuditEntry');\n\n foreach ($uow->getScheduledEntityUpdates() AS $entity) {\n if ($entity instanceof Auditable) {\n $changeSet = $uow->getEntityChangeSet($entity);\n\n foreach ($changeSet AS $field => $vals) {\n list($oldValue, $newValue) = $vals;\n $audit = new AuditEntry(\n $entity->getResourceName(),\n $entity->getId(),\n $oldValue,\n $newValue,\n $changeDate\n );\n\n $em->persist($audit);\n $em->getUnitOfWork()\n ->computeChangeSet($class, $audit);\n }\n }\n }\n }\n}\n~~~~\n\nThis approach can also be re-used or combined with several similiar\nbehaviours, like Taggable, Blamable, Commentable.\n", - "date": "2010-02-24 00:00:00" + "contents": "

    \n\nToday I have upgraded the Doctrine website to symfony 1.1 and Doctrine\n0.11. The integration between the symfony framework and Doctrine with\nsfDoctrinePlugin has become pretty complete in the last few days. It now\nhas all the same functionality as the bundled sfPropelPlugin with\nsymfony 1.1 plus dozens more features a long with the Doctrine DBAL and\nORM. The main features introduced to the symfony framework are\nmigrations, DQL, behaviors, inheritance and a sprinkle of additional\nadmin generator features. I have also completely re-ported\nsfGuardDoctrinePlugin from sfGuardPlugin so it is in sync with it and\nhas exactly the same features, nothing more. The removed functionality\nwill be moved to separate plugins that work with sfGuardDoctrinePlugin.\n\n

    \n\nThe source of the Doctrine website can be gotten from svn here\n[http://www.phpdoctrine.org/svnweb](http://www.phpdoctrine.org/svnweb)\n\n

    \n\n\n", + "date": "2008-05-03 00:00:00" }, { - "url": "/2010/12/04/doctrine2-rc1.html", - "slug": "doctrine2-rc1", - "title": "Doctrine ORM RC1 released", - "authorName": "beberlei", + "url": "/2015/03/22/migrations-1-0-0-alpha-3.html", + "slug": "migrations-1-0-0-alpha-3", + "title": "Doctrine Migrations 1.0.0-alpha3 Pre-Release", + "authorName": "Michael Simonson", "authorEmail": "", - "contents": "We are pleased to announce the immediate availability of the first\nRelease Candidate of the Doctrine ORM. Over 2 years of dedicated\ndevelopment will soon lead to the final release. If no non-trival bugs\nare reported in the period of the next 1-2 weeks this release candidate\nwill serve as basis for the final release.\n\nFor this release candidate over 70 tickets were closed. See the\nchangelog for a detailed overview:\n\n- [Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10091)\n\nWe want to thank everybody for their contributions and help.\n", - "date": "2010-12-04 00:00:00" + "contents": "We are happy to announce the immediate availability Doctrine Migrations\n`1.0.0-alpha3`.\n\nThis is a pre-release meant to allow users and contributors to try out\nthe new upcoming features of the migrations.\n\nWe encourage all of our users to help us by trying out this alpha\nrelease. Please report any possible problems or incompatibilities that\nmay have been introduced during development.\n\nWhat is new in 1.0.x?\n=====================\n\nYou can find the current state of the 1.0.0 changes overview in [the\nupgrade\nnotes](https://github.com/doctrine/migrations/blob/master/UPGRADE-1.0.MD).\n\nPlease report any issues you may have with the update on\n[Github](https://github.com/doctrine/migrations/issues).\n", + "date": "2015-03-22 00:00:00" }, { - "url": "/2010/07/20/mixing-types-of-documents.html", - "slug": "mixing-types-of-documents", - "title": "MongoDB ODM: Mixing Types of Documents", + "url": "/2010/06/09/doctrine-mongodb-odm-1-0-0alpha1-released.html", + "slug": "doctrine-mongodb-odm-1-0-0alpha1-released", + "title": "Doctrine MongoDB ODM 1.0.0ALPHA1 Released", "authorName": "jwage", "authorEmail": "", - "contents": "One major advantage to using something like MongoDB is the fact that it\nis schema-less. We can store multiple types of documents in a single\ncollection and we are not limited to a single type of document in\nembedded and referenced documents. This article shows how you can easily\nmix types of documents in collections, embedded and referenced\ndocuments.\n\nMixing Types in Collections\n===========================\n\nIf you don't want to use `SINGLE_COLLECTION` inheritance you can easily\nstore different documents in the same collection by using a\ndiscriminator field. First define an `Article` document that maps to\n`my_documents`:\n\n~~~~ {.sourceCode .php}\nsetTitle('Sample Article');\n// ...\n\n$album = new Album();\n$album->setName('My Album');\n\n$dm->persist($article);\n$dm->persist($album);\n~~~~\n\nFinally, if you retrieve the documents they'll all be retrieved from\n`my_documents` but you will get back the proper PHP classes that created\nthem:\n\n~~~~ {.sourceCode .php}\nfind('Article');\n$albums = $dm->find('Album');\n~~~~\n\nYou can retrieve more then just one document type by specifying an\narray:\n\n~~~~ {.sourceCode .php}\ncreateQuery(array('Article', 'Album'))\n ->execute();\n~~~~\n\nThe returned documents will contain instances of articles and albums!\n\nMixing Types in Embedded Documents\n==================================\n\nYou can store multiple types of documents in embedded documents by\nsimply omitting the `targetDocument` option. First create a `User`\ndocument and embed multiple task documents:\n\n~~~~ {.sourceCode .php}\nfindOne('User', array(...));\n\n$task = new DownloadTask();\n// ...\n\n$user->addTask($task);\n\n$task = new UploadTask();\n// ...\n\n$user->addTask($task);\n\n$dm->flush();\n~~~~\n\nMixing Types in Referenced Documents\n====================================\n\nMixing types in referenced documents works just the same as embedded by\nomitting the `targetDocument` option. In this example a user can add\nreferences to all his favorite albums, songs and books. First define a\n`User` document with a many references property for storing the users\nfavorites:\n\n~~~~ {.sourceCode .php}\naddFavorite($album);\n$user->addFavorite($song);\n$user->addFavorite($book);\n\n$dm->flush();\n~~~~\n\nWhen you retrieve the user and access the `$favorites` the documents\nwill be grouped by type and loaded with one or more `$in` queries:\n\n~~~~ {.sourceCode .php}\nfindOne('User', array(...));\n$favorites = $user->getFavorites();\n\n// Lazily loads references\n// Contains Album, Song and Book instances\nforeach ($favorites as $favorite) {\n // ...\n}\n~~~~\n\nThat is it! It is easy to take advantage of the schema-less features of\nMongoDB with the Doctrine Object Document Mapper (ODM)!\n", - "date": "2010-07-20 00:00:00" + "contents": "Today I am very happy to announce the release of the first alpha version\nof the Doctrine [MongoDB](https://www.mongodb.com/) Object Document\nMapper. This is exciting as it is the beginning of a whole new chapter\nin the life of the Doctrine Project. We hope to continue adding packages\nto allow you to transparently persist your domain objects to a variety\nof different database engines!\n\nFeatures\n========\n\nBelow you will find a list of some of the features provided by the\nDoctrine MongoDB Object Document Mapper:\n\n- Transparent persistence.\n- Map one or many\n [embedded](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/embedded-mapping/en)\n documents.\n- Map one or many\n [referenced](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/reference-mapping/en)\n documents.\n- Create references between documents in different databases.\n- Map documents with\n [Annotations](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/annotations-reference/en)\n ,\n [XML](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/xml-mapping/en#xml-mapping)\n ,\n [YAML](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/yml-mapping/en#yml-mapping)\n or plain old PHP code.\n- Documents can be stored on the\n [MongoGridFS](https://secure.php.net/MongoGridFS).\n- Collection per class(concrete) and single collection\n [inheritance](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/inheritance-mapping/en)\n supported.\n- Map your Doctrine 2 ORM Entities to the ODM and use mixed data\n stores.\n- Inserts are performed using\n [MongoCollection::batchInsert()](http://us.php.net/manual/en/mongocollection.batchinsert.php)\n- Updates are performed using the atomic operators \\$set, \\$pullAll,\n \\$pushAll and \\$increment instead of saving the entire document.\n- [Migrate](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/migrating-schemas/en)\n your schema as your domain model evolves and changes.\n- [Fluent Object Oriented\n Interface](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/query-api/en)\n for building and executing queries.\n- [Map\n Reduce](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/map-reduce/en)\n integration.\n\nYou can continue reading the\n[Introduction](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/introduction/en)\nchapter in the reference documentation to get a grasp of what exactly\nthe Doctrine MongoDB Object Document Mapper does by looking at some\nexamples!\n\nDocumentation\n=============\n\nWant documentation? You got it! Check out the links below to get started\nlearning about the Doctrine MongoDB Object Document Mapper:\n\n- [Reference\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/en)\n- [Getting Started Cookbook\n Article](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/cookbook/getting-started/en)\n- [API\n Documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/api)\n\nWe'll be adding more\n[Cookbook](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/cookbook)\narticles in the coming weeks so check back for more documentation!\n\nDownload\n========\n\nYou can see all the download information for the Doctrine MongoDB ODM on\nthe projects\n[download](https://www.doctrine-project.org/projects/mongodb_odm/download)\npage. You have several ways to get the code which are described below as\nwell:\n\nCheckout from Git\n-----------------\n\n $ git clone git://github.com/doctrine/mongodb-odm.git mongodb_odm\n $ cd mongodb_odm\n $ git checkout 1.0.0ALPHA1\n\nDownload PEAR Package\n---------------------\n\nYou can manually download the PEAR package\n[here](https://www.doctrine-project.org/downloads/DoctrineMongoDBODM-1.0.0ALPHA1.tgz).\nIf you want you can manually unarchive the code or you can\n`pear install` the downloaded package:\n\n $ pear install /path/to/downloads/DoctrineMongoDBODM-1.0.0ALPHA1.tgz\n\nInstall from PEAR\n-----------------\n\nYou can also directly install using our [PEAR\nServer](http://pear.doctrine-project.org):\n\n $ pear install pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0ALPHA1\n\nReporting Issues\n================\n\nIf you encounter any problems with the Doctrine MongoDB Object Document\nMapper you can report new issues to the\n[Jira](https://www.doctrine-project.org/jira/browse/MODM) project. For\nmore information about contributing to Doctrine you can checkout the\ndocumentation for our [Contributor\nWorkflow](https://www.doctrine-project.org/contribute).\n", + "date": "2010-06-09 00:00:00" }, { - "url": "/2015/11/02/cache-1-4-4_and-1-5-1.html", - "slug": "cache-1-4-4_and-1-5-1", - "title": "Cache 1.4.4 and 1.5.1 Released", + "url": "/2021/04/19/dbal-2.13.1-3.1.0.html", + "slug": "dbal-2.13.1-3.1.0", + "title": "New Release: Doctrine DBAL 2.13.1 and 3.1.0 with important Forward Compatibility fix", + "authorName": "Benjamin Eberlei", + "authorEmail": "kontakt@beberlei.de", + "contents": "Last month [we released DBAL\n2.13.0](https://www.doctrine-project.org/2021/03/29/dbal-2.13.html) as an\nimportant push for the ecosystem towards DBAL 3 with an extensive deprecation\nand forward compatibility layer.\n\nWe made a few mistakes, given that the forward compatibility layer is quite complex.\nAs such we have now released Doctrine DBAL 2.13.1 and 3.1.0 with two new APIs\nthat improve the forward compatiblity.\n\nThe problem lies in `Statement::execute()`: 2.13.0 would return a `bool` and\n3.0.0 would return a `Result` from this method. This kind of API change cannot\nbe handled with a forward compatibility.\n\nAs such we introduced two new APIs on `Statement` that replace `execute()`.\nWhen the old code was:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$statement->execute();\n\n$rows = $statement->fetchAll();\n```\n\nThen the new code is now:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$result = $statement->executeQuery();\n\n$rows = $result->fetchAllAssociative();\n```\n\nThe DBAL 2.13 forward compatiblity layer supports both versions of all code and\nreturns a Statement/Result hybrid that has all the APIs that the DBAL Statement\nhad up until version 2.12. This way you can move at your own pace from the old\nto the new API in your code.\n\nThank you again to [mdumoulin](https://github.com/mdumoulin) for the work on\nimproving the forward compatiblity and to [Sergei Morozov](https://twitter.com/srgmrzv)\nfor the thorough reviews and comments.\n\nAgain I want to highlight the Runtime Deprecations library that we introduced\nto support this migration. You can integrate this with your log stack during\ndevelopment and testing:\n\n```php\nuse Doctrine\\Deprecations\\Deprecation;\nuse Monolog\\Logger;\nuse Monolog\\Handler\\StreamHandler;\n\n$log = new Logger('doctrine');\n$log->pushHandler(new StreamHandler('deprecations.log', Logger::INFO));\n\nDeprecation::enableWithPsrLogger($log);\n```\n\nOr alternatively using PHP's global error handler:\n\n```php\nDeprecation::enableWithTriggerError();\n```\n\nSee the [2.13 blog\npost](https://www.doctrine-project.org/2021/03/29/dbal-2.13.html) for more\ninformation about the migration to DBAL 3 and strategy recommendations.\n", + "date": "2021-04-19 00:00:00" + }, + { + "url": "/2012/01/22/dbal-orm-22rc1.html", + "slug": "dbal-orm-22rc1", + "title": "DBAL and ORM 2.2 Release candidates", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "Again with a slight delay we finalized the DBAL and ORM release\ncandidates for the 2.2 branch. There have been some late changes that\nmade the delay necessary:\n\n- DBAL Schema supported was heavily refactored to include the concept\n of \"namespaces\". This abstracts multi-database useage for MySQL and\n Schema support for PostgreSQL.\n- A Paginator was put into the DoctrineORMToolsPagination namespace.\n Its the combination of the original DoctrineExtensions Paginator\n with extensions done in the KnpLabs components and the Pagerfanta\n library.\n\nAs usual you can grab the code from:\n\n- [Packagist](https://packagist.org/packages/doctrine/)\n- [PEAR](http://pear.doctrine-project.org)\n- [Downloads](https://www.doctrine-project.org/projects)\n- [Github](https://github.com/doctrine)\n\nPlease test this code with your applications. If no bugs or\nbackwards-compatible breaks are reported in the next days we will\nrelease the final version on friday.\n", + "date": "2012-01-22 00:00:00" + }, + { + "url": "/2015/10/28/cache-1-4-3_and-1-5-0.html", + "slug": "cache-1-4-3_and-1-5-0", + "title": "Cache 1.4.3 and 1.5.0 Released", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Cache\n[1.4.4](https://github.com/doctrine/cache/releases/tag/v1.4.4) and\n[1.5.1](https://github.com/doctrine/cache/releases/tag/v1.5.1).\n\nCache 1.4.4\n===========\n\nThis release fixes the version number reported in\n[Doctrine/Common/Cache/Version::VERSION](https://github.com/doctrine/cache/blob/v1.5.1/lib/Doctrine/Common/Cache/Version.php)\n\nAdditionally, a flaw in `CacheProvider#fetchMultiple()` was fixed:\n`null` and false-y values being fetched were considered cache misses,\nbut are now correctly included in the results\n([\\#104](https://github.com/doctrine/cache/pull/104)).\n\nYou can find the complete changelog for this release in the [v1.4.4\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.4.4).\n\nCache 1.5.1\n===========\n\nThis release includes all the fixes mentioned in the above `1.4.4`\npatch.\n\nYou can find the complete changelog for this release in the [v1.5.1\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.5.1).\n\nInstallation\n============\n\nYou can install the Cache component using Composer either of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.4.4\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.5.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-11-02 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine Cache\n[1.4.3](https://github.com/doctrine/cache/releases/tag/v1.4.3) and\n[1.5.0](https://github.com/doctrine/cache/releases/tag/v1.5.0).\n\nCache 1.4.3\n===========\n\nThis release fixes some minor issues that prevented various cache\nadapters from correctly reporting success or failure in case of cache\nkey deletion ([\\#95](https://github.com/doctrine/cache/pull/95)).\n\nAnother issue being fixed is related to `CacheProvider#fetchMultiple()`,\nwhich was failing to operate when an empty list was given to it\n([\\#90](https://github.com/doctrine/cache/pull/90)).\n\nAlso, the `CacheProvider` does not store version information internally\nunless `CacheProvider#deleteAll()` was called at least once\n([\\#91](https://github.com/doctrine/cache/pull/91)).\n\nYou can find the complete changelog for this release in the [v1.4.3\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.4.3).\n\nCache 1.5.0\n===========\n\nThis release includes all the changes released with version 1.4.3, as\nwell as further bug fixes and improvements that will require you to\nclean your caches (if file-based) during the upgrade.\n\nPHP7 support is now guaranteed\n([\\#92](https://github.com/doctrine/cache/pull/92)).\n\nFile based caches now use a much lower number of directories\n([\\#94](https://github.com/doctrine/cache/pull/94)).\n\nProper support for wincache multi-get was added\n([\\#97](https://github.com/doctrine/cache/pull/97)).\n\nPredis cache adapter now relies on the `Predis\\ClientInterface`\n([\\#87](https://github.com/doctrine/cache/pull/87)).\n\nYou can find the complete changelog for this release in the [v1.5.0\nrelease notes](https://github.com/doctrine/cache/releases/tag/v1.5.0).\n\nCredits\n=======\n\nWe would like to thank all contributors that patiently supported us in\nfixing the file-based cache directory structure long-standing issues,\nand especially:\n\n> - Tobias [Tobion](https://github.com/Tobion) Schultze\n> - Krzysztof [Crozin](https://github.com/Crozin) \u0141abu\u015b\n> - Steve [kamermans](https://github.com/kamermans) Kamerman\n\nInstallation\n============\n\nYou can install the Cache component using Composer either of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.4.1\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"~1.5.0\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-10-28 00:00:00" }, { - "url": "/2016/06/09/odm-1-1-0-and-1-0-6.html", - "slug": "odm-1-1-0-and-1-0-6", - "title": "Doctrine MongoDB ODM 1.1.0 and 1.0.6 Released", + "url": "/2015/12/25/dbal-2-5-3.html", + "slug": "dbal-2-5-3", + "title": "Doctrine DBAL 2.5.3 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n[2.5.3](https://github.com/doctrine/dbal/releases/tag/v2.5.3).\n\nThe SQLServer platform support for pagination query modification was\ncompletely rewritten, improving stability and code quality as well as\nease of maintenance.\n[\\#818](https://github.com/doctrine/dbal/issues/818)\n\nDependency constraints on the\n[doctrine/common](https://github.com/doctrine/common) component\nsupported versions were corrected, allowing users to install\n`doctrine/common` `2.6.*` together with the DBAL.\n[\\#2268](https://github.com/doctrine/dbal/issues/2268)\n\nInstallation\n============\n\nYou can install the DBAL component using Composer:\n\n```bash\ncomposer require doctrine/dbal:~2.5.3\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/dbal/issues).\n", + "date": "2015-12-25 00:00:00" + }, + { + "url": "/2016/11/22/doctrine-mongodb-release-1.4.0.html", + "slug": "doctrine-mongodb-release-1.4.0", + "title": "Doctrine MongoDB 1.4.0", "authorName": "Andreas Braun", "authorEmail": "alcaeus@alcaeus.org", - "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM [1.1.0](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.0)\nand [1.0.6](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.6).\n\nWhat is new in 1.1.0?\n=====================\n\nDoctrine MongoDB ODM 1.1.0 comes with the following new features: - ODM\nnow supports sharded collections out of the box - Users may provide\ncustom implementations for 1-n associations - Fetch documents in\nread-only mode - Partial indexes, which were introduced in MongoDB 3.2 -\nPHP 7 support - [and much\nmore](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1.0)\n\nPHP 7 support\n=============\n\nRunning MongoDB ODM on PHP 7 requires the new MongoDB driver\n(`ext-mongodb`) which is not directly compatible with ODM. To solve\nthis, you can use a polyfill like\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter), which\nprovides the legacy driver API on top of the new driver. To do so, in\nyour PHP 7 project, add the following Composer directives in addition to\nthe MongoDB ODM requirement:\n\n```json\n{\n \"require\": {\n \"alcaeus/mongo-php-adapter\": \"^1.0\",\n \"ext-mongo\": \"*\"\n }\n}\n```\n\nUpgrading to 1.1.0\n==================\n\nThe new version requires PHP 5.6+; older versions are no longer\nsupported. If you are using an older version, please use Doctrine\nMongoDB ODM 1.0.x or upgrade your PHP version. In addition to these PHP\nversion changes, MongoDB ODM 1.1.0 requires version 1.5 or newer of the\nlegacy MongoDB driver. The new MongoDB driver is supported using\npolyfill (like `mongo-php-adapter` mentioned above).\n\nTo use custom collection classes, you must set a\n\\`persistentCollectionDir\\` in the configuration. This is an optional\nfeature and is not required by default.\n\nSeveral features have been deprecated and will be dropped in the 2.0\nrelease: - All specific type annotations (e.g. \\`@String\\`) have been\ndeprecated. Please use the \\`@Field\\` annotation instead. - The\n\\`Increment\\` type has been deprecated in favor of a storage strategy\ncombined with the \\`Integer\\` and \\`Float\\` type - The \\`simple\\` flag\nfor references has been replaced with \\`storeAs\\`, allowing more\nflexibility.\n\nInstallation\n============\n\nYou can install this version of MongoDB ODM by using Composer and the\nfollowing `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.1.0\"\n }\n}\n```\n\nMongoDB ODM 1.0.6\n=================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#106-2016-06-09).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.6\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.6).\n\nStability\n=========\n\nAs of today, Doctrine MongoDB ODM `1.1.0` is the stable distribution.\nThere is no release schedule for an upcoming version yet.\n\nDue to the requirement changes introduced with MongoDB ODM `1.1.0` we\nhave decided to provide bug fixes as well as security fixes for MongoDB\nODM `1.0.x` for an additional 6 months. After that, `1.0.x` will no\nlonger be supported.\n", - "date": "2016-06-09 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nAbstraction Layer\n[1.4.0](https://github.com/doctrine/mongodb/releases/tag/1.4.0).\n\nPassing context options to the driver\n=====================================\n\nWith this release it's possible to pass driver options to the connection\nclass, which will then be passed on to the MongoDB driver. For example,\nto pass a stream context with SSL context options, you could use the\nfollowing code snippet:\n\n```php\n$context = stream_context_create([\n 'ssl' => [\n 'allow_self_signed' => false,\n ]\n]);\n$connection = new \\Doctrine\\MongoDB\\Connection(null, [], null, null, ['context' => $context]);\n```\n\nPassing multiple expressions to logical operators\n=================================================\n\nThe `addAnd`, `addNor` and `addOr` methods in the query and aggregation\nbuilders now take multiple expression objects. Instead of having to call\nthe method repeatedly, you may call it once with multiple arguments:\n\n```php\n// Before\n$builder\n ->addAnd($someExpression)\n ->addAnd($otherExpression);\n\n// After\n$builder->addAnd($someExpression, $otherExpression);\n```\n\nDeprecations\n============\n\nThe `update` and `multiple` methods in the query have been deprecated in\nfavor of `updateOne` and `updateMany`. These deprecations help people\nusing ODM prepare for the next version of ODM which will utilize the new\nMongoDB library API.\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb/blob/master/CHANGELOG-1.4.md#140-2016-11-22).\nA full list of issues and pull requests included in this release may be\nfound in the [1.4.0\nmilestone](https://github.com/doctrine/mongodb/issues?q=milestone%3A1.4.0).\n\nPHP version support\n===================\n\nWith this release, we have dropped support for PHP 5.5. Users using PHP\n5.5 or older are encouraged to upgrade to a newer PHP version. If you\nare using PHP 7.0 or 7.1, you can use this library by adding a polyfill\nfor `ext-mongo`, like\n[mongo-php-adapter](https://github.com/alcaeus/mongo-php-adapter).\n\nFuture releases\n===============\n\nThis release is the last planned minor release of the MongoDB\nAbstraction Layer, with only bugfixes being done in maintenance\nreleases. The library will not be rewritten to support the new MongoDB\ndriver. Users are encouraged to use the new [MongoDB\nlibrary](https://github.com/mongodb/mongo-php-library). Doctrine\nMongoDB ODM will be adapted to support the new driver and the MongoDB\nlibrary.\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb\": \"^1.4.0\"\n }\n}\n```\n", + "date": "2016-11-22 00:00:00" }, { - "url": "/2010/03/17/doctrine-performance-revisited.html", - "slug": "doctrine-performance-revisited", - "title": "Doctrine Performance Revisited", + "url": "/2010/03/13/doctrine2-validations.html", + "slug": "doctrine2-validations", + "title": "Validation of Doctrine 2 Entities", "authorName": "beberlei", "authorEmail": "", - "contents": "In our ever-lasting quest to provide a powerful, flexible and yet\nperformant ORM experience we are often confronted with benchmarks and\nhave been talking about performance topics since last year in several\ntalks at many different conferences, and Roman has [talked about his\nopinion on such benchmarks on this\nblog](https://www.doctrine-project.org/2009/11/18/php-benchmarking-mythbusters.html).\n\nRecently Francois Zaninotto, lead developer of the soon to be released\nPropel 1.5 (currently in beta) [wrote a blog\npost](http://propel.posterous.com/how-fast-is-propel-15) comparing\nperformance mainly of the different Propel 1.x versions with and without\ncaching and against a PDO benchmark. The benchmark also contains a test\nfor Doctrine 1.2.\n\nIt is important to note that the PDO test only shows the \"baseline\"\nperformance, that is, it does not even remotely \"do the same thing\" as\nthe others. No object creation, no hydration of objects from result\nrows, no identity management, no change tracking, nothing. So dont get\nthe numbers wrong. If you would want to get at least remotely the same\nresult as the ORMs provide with a raw PDO/SQL \"benchmark\", you would\nneed quite some custom coding and, if you dont want to copy/paste all\nday, introduce some abstraction.\n\nThe following scenarios are compared in the benchmark:\n\n> - Scenario 1: Create a new Model object, set its columns, and save\n> it. Tests Model object speed, and INSERT SQL generation.\n> - Scenario 2: Lookup a record by its primary key. Tests basic query\n> and hydration.\n> - Scenario 3: Lookup a record using a complex query. Tests object\n> query speed.\n> - Scenario 4: Lookup 5 records on a simple criterion. Tests\n> hydration speed.\n> - Scenario 5: Lookup a record and hydrate it together with its\n> related record in another table. Tests join hydration speed.\n\nI reproduced the complete table of results here for comparison since my\nmachine is generating very different overall times than the ones\ngenerated by Francois. Each Scenario is executed several times and the\nsum of execution times is printed. After each run the identity maps are\nwiped so that objects are not reused. All the tests use an SQLite\nIn-Memory database, are run on PHP 5.3 and *of course* use an opcode\ncache (APC).\n\nA first version of the corresponding Doctrine 2 benchmarks was added\ntoday [to the SVN repository by\nRoman](http://code.google.com/p/php-orm-benchmark/source/browse/#svn/trunk/doctrine_2)\nThey can all be run from your machine directly after checkout.\n\nHere are my results:\n\n | Insert | findPk | complex| hydrate| with |\n |--------|--------|--------|--------|--------|\n\n> PDOTestSuite | 132 | 149 | 112 | 107 | 109 |\n\n> Propel14TestSuite | 953 | 436 | 133 | 270 | 280 |\n\n> Propel15aLa14TestSuite | 926 | 428 | 143 | 264 | 282 |\n> : Propel15TestSuite | 923 | 558 | 171 | 356 | 385 |\n>\n> Propel15WithCacheTestSuite | 932 | 463 | 189 | 342 | 327 |\n> : Doctrine12TestSuite | 1673 | 2661 | 449 | 1710 | 1832 |\n>\n> Doctrine12WithCacheTestSuite | 1903 | 1179 | 550 | 957 | 722 |\n> : Doctrine2TestSuite | 165 | 426 | 412 | 1048 | 1042 |\n>\n> > Doctrine2WithCacheTestSuite | 176 | 423 | 148 | 606 | 383 |\n\nThese are the key observations for the Doctrine 2 results.\n\nDoctrine 2 Insert Performance\n=============================\n\nThis is mainly a result of the rather strange test. Its basically a\nmass-insert. All the insert tests seem to use a single database\ntransaction, so its comparable to a mass-insert on a single request. As\nsuch the result is not surprising since we know that Doctrine 2 can\neffectively batch inserts. Mind you that mass-inserts are not really a\nfocus of an ORM and not a realistic scenario in most applications. So\ntake this test with a grain of salt, its a mass-insert test. If you're\nlooking for the ORM with the fastest mass-inserts, you can stop now, you\nfound it.\n\nDoctrine 2 Find By Primary Key Performance\n==========================================\n\nDoctrine 2 Find Entity By Primary Key performance seems to be roughly\nthree times as slow as handcrafted PDO (that doesnt do anything besides\nexecuting the query, mind you...). The good results in this test,\nespecially compared to Doctrine 1, come from the fact that there is not\nmuch abstraction for all kinds of find\\*() operations going on. SQL is\ncreated, executed and the results turned into objects without much\nhoopla.\n\nDoctrine 2 Complex Query Performance\n====================================\n\nThe complex query is a scalar count query. See the Doctrine 2 code for\nthis scenario:\n\n~~~~ {.sourceCode .php}\nem->createQuery(\n 'SELECT count(a.id) AS num FROM Author a WHERE a.id > ?1 OR CONCAT(a.firstName, a.lastName) = ?2'\n)->setParameter(1, $this->authors[array_rand($this->authors)]->id)\n ->setParameter(2, 'John Doe')\n ->getSingleScalarResult();\n~~~~\n\nThe getSingleScalarResult() method that executes the query uses a very\nminimalistic hydration mode that only grabs the first value of the first\nresult column. Therefore in combination with the DQL to SQL Query Parser\nCache (Doctrine2WithCacheTestSuite) we get a result almost as fast\nresult as the PDO handcrafted scenario, because we essentially get the\ntransformed SQL query from the cache for this DQL, execute it and grab\nthe value.\n\nHydration Performance (Scenario 4 and 5)\n========================================\n\nIn the field of hydration Doctrine 2 is either equally fast or seems\n\"only\" up to 40% slower than Propel 1.4 or Propel 1.5 based on the two\nscenarios. The main reason here is really only that since Doctrine 2\nprovides transparent persistence, it can not give lazy-loading through\nbase classes, instead it needs to inject proxy objects as stubs into the\nentities. That simply means Doctrine needs to create more objects than\npropel, thats it. Note that once the objects would actually be\nlazy-loaded, Propel would need to create these objects, too. The\ndifference is that Doctrine needs to create them beforehand. When they\nlazy-load, no new object is created, the proxies simply populate\nthemselves with the data.\n\nA main difference, however, is that the hydration code of Doctrine is\ncompletely generic. That means this same code can handle all kinds of\ndifferent SQL results correctly, no matter how many nested joins, scalar\nvalues, aggregate values there are in the result and it can even deal\nwith strangely ordered collections in result sets (You get such stuff\nwith multiple order by clauses on different fields which order in\ndifferent directions. Combine such ordering with joining collections and\nyou get a pretty funky SQL result set).\n\nThe general approach in algorithms from the Doctrine 1.2 Hydrators were\nre-used in Doctrine 2. However, optimizations in the data structures and\nuse of the fastest internal php methods (as fast as you can get with\nphp, you know ;)) made it possible to optimize the code to yield the\nshown results.\n\nInteresting here is maybe that Doctrine 2 without caching is all in all\nstill a lot faster than Doctrine 1 with caching, so this looks like a\ngood improvement. Furthermore, the query cache in Doctrine 2 is very\neffective and almost completely removes all the overhead of DQL. The\nquery cache is what allows us to provide this extremely powerful\nabstraction that is immensely flexible. If you dont like DQL yet, you\nshould read up on domain-specific languages and object query languages\nin particular. It's a gem and cornerstone of this project and if you\ndont like it we can't help you.\n\nHydration with non Object Results\n=================================\n\nPutting aside the boring Propel comparisons, lets get to something\nDoctrine-specific. Because we know that read performance is very\nimportant and object instances are not necessary all the time, Doctrine\n2, just like Doctrine 1, provides many different levels of abstraction\nin-between objects and raw PDO/SQL result sets that you can go up and\ndown as you wish.\n\nThe main two intermediate levels are array graphs and flat, scalar\nresult sets (which are still not the same as the raw SQL result sets\nbecause type conversions and column name to field name conversions still\ntake place).\n\nThese alternative result formats perform as follows:\n\n | Insert | findPk | complex| hydrate| with |\n |--------|--------|--------|--------|--------|\n\n> Dc2ArrayHydrateTestSuite | 172 | 421 | 145 | 332 | 285 |\n> Dc2ScalarHydrateTestSuite | 175 | 424 | 145 | 251 | 245 |\n> Dc2WithoutProxiesTestSuite | 174 | 423 | 148 | 483 | 628 |\n\nThe first method \"Without Proxies\" still creates object instances,\nhowever, it does not replace loose ends of the object graph with\nlazy-load proxies. Be careful with such optimizations in practice\nbecause partial objects can be fragile to work with. The important point\nhere is that different levels of optimization are there when needed,\nbefore you need to finally drop all abstraction and deal with PDO/SQL\ndirectly (which is not bad, you know, just often not very convenient,\nflexible and/or robust against refactorings or schema changes).\n\nThe Array Hydration (getArrayResult()) returns a nested array structure\nthat is comparable to an object graph. Most of the time you can think of\nit as a performant read-only \"view\" of an object graph. In the case of\nBooks with Authors the result looks like:\n\n array(1) {\n [0]=>\n &array(5) {\n [\"id\"]=>\n int(1)\n [\"title\"]=>\n string(6) \"Hello0\"\n [\"isbn\"]=>\n string(4) \"1234\"\n [\"price\"]=>\n float(0)\n [\"author\"]=>\n &array(4) {\n [\"id\"]=>\n int(1143)\n [\"firstName\"]=>\n string(8) \"John1142\"\n [\"lastName\"]=>\n string(7) \"Doe1142\"\n [\"email\"]=>\n NULL\n }\n }\n\nThese array graphs can be built from basically any query. Its backed by\nroughly the same algorithm that allows the arbitrary object hydration\nwith indefinite joins and even scalar and aggregate values in between.\n\nIn the case where your objects implement ArrayAccess, you can often use\nobject and array results interchangeably without the need to update view\ncode.\n\nConclusion\n==========\n\nWhat that all means is mainly that if you have an application that looks\n(almost) exactly like the benchmarking code used here, then you (maybe)\ngot some useful numbers to look at, otherwise ... not.\n\nApart from that we hope this convinces you that we're not wasting your\nCPU cycles on purpose. Doctrine 2 is a huge balancing act between\nflexibility, features and performance and it worked out well so far.\n", - "date": "2010-03-17 00:00:00" + "contents": "While Doctrine 1 had validation nested inside the `Doctrine_Record`\ninstance this is not the case in Doctrine 2 anymore. We won't ship\nDoctrine 2 with any validators, the reason being that we think all the\nframeworks out there already ship with quite decents ones that can be\nintegrated into your Domain easily. Besides us being ORM experts not\nwanting to maintain yet another validation library, moving the\nresponsibility of validation into the domain layer also allows you to\nintegrate it much easier into frameworks form libraries for example.\n\nWhat we do offer are hooks to execute any kind of validation inside the\nDoctrine ORM.\n\nEntities can register lifecycle event methods with Doctrine that are\ncalled on different occasions. For validation we would need to hook into\nthe events called before persisting and updating. Even though we don't\nsupport validation out of the box, the implementation is even simpler\nthan in Doctrine 1 and you will get the additional benefit of being able\nto re-use your validation in any other part of your domain.\n\nSay we have an `Order` with several `OrderLine` instances. We never want\nto allow any customer to order for a larger sum than he is allowed to:\n\n~~~~ {.sourceCode .php}\ncustomer->getOrderLimit();\n\n $amount = 0;\n foreach ($this->orderLines AS $line) {\n $amount += $line->getAmount();\n }\n\n if ($amount > $orderLimit) {\n throw new CustomerOrderLimitExceededException();\n }\n }\n}\n~~~~\n\nNow this is some pretty important piece of business logic in your code,\nenforcing it at any time is important so that customers with a unknown\nreputation don't owe your business too much money.\n\nWe can enforce this constraint in any of the metadata drivers. First\nAnnotations:\n\n~~~~ {.sourceCode .php}\n\n \n \n \n \n \n \n \n\nYAML needs some little change yet, to allow multiple lifecycle events\nfor one method, this will happen before Beta 1 though.\n\nNow validation is performed whenever you call\n`EntityManager#persist($order)` or when you call `EntityManager#flush()`\nand an order is about to be updated. Any Exception that happens in the\nlifecycle callbacks will be catched by the EntityManager and the current\ntransaction is rolled back.\n\nOf course you can do any type of primitive checks, not null,\nemail-validation, string size, integer and date ranges in your\nvalidation callbacks.\n\n~~~~ {.sourceCode .php}\nplannedShipDate instanceof DateTime)) {\n throw new ValidateException();\n }\n\n if ($this->plannedShipDate->format('U') < time()) {\n throw new ValidateException();\n }\n\n if ($this->customer == null) {\n throw new OrderRequiresCustomerException();\n }\n }\n}\n~~~~\n\nWhat is nice about lifecycle events is, you can also re-use the methods\nat other places in your domain, for example in combination with your\nform library. Additionally there is no limitation in the number of\nmethods you register on one particular event, i.e. you can register\nmultiple methods for validation in \"PrePersist\" or \"PreUpdate\" or mix\nand share them in any combinations between those two events.\n\nThere is no limit to what you can and can't validate in \"PrePersist\" and\n\"PreUpdate\" aslong as you don't create new entity instances. This was\nalready discussed in the previous blog post on the Versionable\nextension, which requires another type of event called \"onFlush\".\n\nAlso read:\n\n- [Doctrine 2 Manual:\n Events](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/events.html#lifecycle-events)\n- [Doctrine 2 Blog: A reusable Versionable\n Behaviour](https://www.doctrine-project.org/2010/02/24/doctrine2-versionable.html)\n\n", + "date": "2010-03-13 00:00:00" }, { - "url": "/2009/10/05/second-alpha-release-of-doctrine-2.html", - "slug": "second-alpha-release-of-doctrine-2", - "title": "Second Alpha Release of Doctrine 2", + "url": "/2008/07/25/who-is-behind-doctrine.html", + "slug": "who-is-behind-doctrine", + "title": "Who is behind Doctrine?", "authorName": "jwage", "authorEmail": "", - "contents": "Today we are happy to bring you the second alpha release of the brand\nnew Doctrine 2! This release contains about 70 fixes since the first\nalpha release last month! This is great news as it means Doctrine 2 is\nbecoming more and more stable!\n\nHighlights\n==========\n\nBelow are some highlights for the release.\n\n- CLI refactorings and improvements\n- Fixes to Mapping information drivers\n- Fixes to ClassMetadata export drivers\n- Lots of other bug fixes\n\nIf you're curious about what all was committed in this release you can\ncheck the [change\nlog](https://www.doctrine-project.org/change_log/2_0_0_ALPHA2) page and\nyou can snag the packages from the\n[download](https://www.doctrine-project.org/download) page.\n", - "date": "2009-10-05 00:00:00" + "contents": "Today I have updated the about page on the website so you can get a\nglimpse of who is behind the Doctrine project. Each core contributor\ncontains a brief description of themselves and the role they play in the\nproject. Comments are allowed on each contributors profile so please\nfeel free to express your thanks to them there. Follow the doctrine!\n", + "date": "2008-07-25 00:00:00" }, { - "url": "/2012/05/29/symfony-live-2012-hackday.html", - "slug": "symfony-live-2012-hackday", - "title": "Symfony Live 2012 Hackday", - "authorName": "beberlei", + "url": "/2009/01/12/doctrine-1-1-is-right-around-the-corner.html", + "slug": "doctrine-1-1-is-right-around-the-corner", + "title": "Doctrine 1.1 is right around the corner", + "authorName": "jwage", "authorEmail": "", - "contents": "Next week will be [Symfony Live\n2012](https://paris2012.live.symfony.com/) in Paris and the Doctrine\nDBAL/ORM Team will be represented by Guilherme, Alexander, Marco and me.\nJeremy is also there and knows the MongoDB ODM inside out.\n\nGuilherme and Jeremy will give two talks:\n\n- \"Using MongoDB responsibly\" Jeremy Mikola\n- \"ORMs don't kill your database, developers do!\" Guilherme Blanco\n\nAdditionally all of us will participate in the hackday on saturday.\n\nDoctrine 2.3 is around the corner (propably during July) and we still\nhave some features that we want to finalize and work on together. Feel\nfree to join us if you want to contribute. We are always looking for\ninterested developers that help with tickets, support, documentatation\nor anything else.\n\nDuring the conference you can find us by looking for the [dark blue\nDoctrine\nt-shirts](http://distilleryimage8.instagram.com/30f1aa1ea9d311e1a92a1231381b6f02_7.jpg).\n", - "date": "2012-05-29 00:00:00" - }, - { - "url": "/2020/11/17/dbal-3.0.0.html", - "slug": "dbal-3.0.0", - "title": "New Major Release: Doctrine DBAL 3.0", - "authorName": "Benjamin Eberlei", - "authorEmail": "kontakt@beberlei.de", - "contents": "We have released a new major version of Doctrine DBAL, version 3.0.0. This new\nmajor version comes almost 10 years after DBAL 2.0 was released on December\n2010, then coupled into the ORM 2.0.\n\nToday Doctrine DBAL is released independent of the ORM, thanks to Composer and\nsees its new major version before the ORM.\n\nThis release was made possible foremost by\n[Sergei Morozov](https://twitter.com/srgmrzv), our primary DBAL maintainer, who has\nspent countless hours working on the package since 2016. Thank you!\n\nSee the [Release Notes](https://github.com/doctrine/dbal/releases/tag/3.0.0)\nfor a detailed list of changes.\n\nThis blog post covers a few of the major changes in a bit more detail to give\nyou an idea of what DBAL 3.0 looks like.\n\n### Decouple DBAL from PDO\n\nThe major theme of DBAL 3.0 is the decoupling from PDO. Instead of copying the\nAPI verbatim like DBAL 2.0 did, DBAL 3.0 grows it into a better, more usable\ndirection.\n\nWe extract all fetch-methods from the `Statement` class and moved them to a new\n`Result` class that is returned from `Statement::execute`.\n\nOld code:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$statement->bindParam(1, $value);\n$statement->execute();\n\nwhile ($row = $statement->fetch()) {\n}\n```\n\nNew Code:\n\n```php\n$statement = $connection->prepare('SELECT * FROM tbl WHERE col = ?');\n$statement->bindParam(1, $value);\n$result = $statement->execute();\n\nwhile ($row = $result->fetchAssociative()) {\n}\n```\n\nThe Result Fetching API was improved to use more human-readable names:\n\n```php\n// Old\n$stmt->fetch();\n$stmt->fetch(PDO::FETCH_ARRAY);\n$stmt->fetchColumn();\n$stmt->fetchAll();\n\n// New\n$stmt->fetchAssociative();\n$stmt->fetchNumeric();\n$stmt->fetchOne();\n$stmt->fetchAllAssociative();\n```\n\nMany more changes have been made on the public API and also for the internals,\nbut these are the most visible ones.\n\n### Upgrading to DBAL 3 from 2\n\nDBAL 3 is a real new major release with significant changes to the public API. Depending\non your codebase a migration could require non-trivial work. However we do not intend\nto leave you hanging with DBAL 2 and a future migration:\n\n1. We intend to support DBAL 2.12 a while longer, including support for the\n upcoming PHP 8.0, so that there is no rush for you to upgrade to DBAL 3.\n\n2. DBAL 2.12 already includes forwards compatible API changes for all the new APIs,\n so that you can migrate your code step by step to the new APIs already.\n\n3. Deprecated methods in DBAL 2.12 are tagged with the `@deprecated` doc-block\n and static analysis tools such as Psalm, PHPStan and Phan can already help\n you detect using or calling this deprecated code in your application.\n\n4. We intend to release another version of DBAL 2 which includes\n optional triggering of deprecation messages at runtime similar to how Symfony\n deals with deprecations.\n\nAs you can see, with these approaches it will be possible for you to smoothly migrate\nyour application from DBAL 2 to 3.\n\nAs a note to libraries and frameworks that need to support multiple versions of\nDoctrine DBAL: We recommend you start out with DBAL 2.12 and migrate all usages\nof deprecated APIs to their newer counterparts. Then once you have managed\nthis, you can allow 3.0 and try to get your code working with both versions.\nUnfortunately this may not be possible for all cases, because we could not\nprovide replacement APIs for everything and some features have been dropped\nbetween DBAL 2 and 3.\n\n### Outlook\n\nDBAL 3 is a huge first step towards a modern database abstraction layer,\nindependent from the legacy of PHP and PDO API design. In the future we plan to\nimprove DBAL in other ways that we haven't gotten around yet, such as more API\nmodernization, increased safety with use of strict scalar types in the code\nbase, better error handling and more.\n", - "date": "2020-11-17 00:00:00" + "contents": "1.1 Release Manager\n===================\n\nFirst, I would like to introduce **Guilherme Blanco** as the release\nmanager of **Doctrine 1.1**. This means he will be responsible for\norganizing the tickets and managing the releases for the 1.1 branch from\nnow on. So, if you have any issues you can yell at him :)\n\n1.1 Release Candidate\n=====================\n\nAnother great thing today is that we have made available the first\nrelease candidate of the 1.1 branch. We were originally planning on\nhaving a third beta but as the amount of tickets that came in was\npractically none, we decided to move on to the release candidate stage.\n\nAs always, you can [download\nhere](https://www.doctrine-project.org/download) and check out the\n[change log](https://www.doctrine-project.org/change_log/1_1_0_RC1) and\nthe [upgrade](https://www.doctrine-project.org/upgrade/1_1) document to\nfind out what has changed in 1.1.\n", + "date": "2009-01-12 00:00:00" }, { - "url": "/2009/07/04/major-site-enhancements.html", - "slug": "major-site-enhancements", - "title": "Major Site Enhancements", + "url": "/2009/09/18/doctrine-1-2-0-alpha-released.html", + "slug": "doctrine-1-2-0-alpha-released", + "title": "Doctrine 1.2.0-ALPHA Released", "authorName": "jwage", "authorEmail": "", - "contents": "You've probably noticed over the past few days I have rolled out some\nmajor new site enhancements. You can find more information below about\nall the changes made.\n\nRegister Now!\n=============\n\nI have opened up a new registration portal on the Doctrine website. This\nwill create a login both on the website and Trac and is also connected\nto your SVN account if you choose to request access.\n\nLogin Now!\n==========\n\nOnce you have registered you can login to the\n[website](https://www.doctrine-project.org/login) and\n[Trac](http://trac.doctrine-project.org/login). This will make some\nextra functionality available for you to manage your user information.\n\nNew Extensions Repository\n=========================\n\nA place where you can browse, search and find out what extensions are\navailable for Doctrine. It contains documentation, ability to run the\nunit tests and download the code.\n\nCheck it out [here](https://www.doctrine-project.org/extensions).\n\nUser Documentation Area\n=======================\n\nFor a long time I have wanted to have an area of the website where users\ncould manage as much user contributed documentation as they want. I have\nstarted the new site with a tutorial on [how to write an\nextension](https://www.doctrine-project.org/documentation/user/1_2/en/how-to-write-an-extension).\n\nNew Homepage Look\n=================\n\nI have slightly tweaked the homepage design to match the design of the\nnew Doctrine\n[book](https://www.amazon.com/Doctrine-ORM-PHP-Jonathan-Wage/dp/2918390038/ref=sr_1_1?ie=UTF8&s=books&qid=1246303098&sr=8-1).\nThis is our first book so if you want to support the Doctrine project or\njust want to learn about Doctrine then we suggest you purchase a copy!\n:)\n\nManage your User Account\n========================\n\nCentral location where you can manage all the information you control as\na Doctrine authenticated user. You can see what extensions you've\nwritten, control your user contributed documentation, request SVN access\nand update your account information. Check it out\n[here](https://www.doctrine-project.org/user/account).\n\nThese changes are primarily based around the new extensions repository\nwhich is available for Doctrine 1.2. You can read about what else is new\nin Doctrine 1.2 [here](https://www.doctrine-project.org/upgrade/1_2).\n", - "date": "2009-07-04 00:00:00" + "contents": "Today I am happy to announce the immediate availability of Doctrine\n1.2.0 ALPHA1. As you all may already know, 1.2 will most likely be the\nlast 1.x version and is a LTS(long term support) release. We will post\nthe official support schedule once 1.2 is stable and released.\n\nYou can download Doctrine 1.2.0-ALPHA1 on the\n[download](https://www.doctrine-project.org/download) page just like\nnormal.\n\nThis release contains many changes, bug fixes and enhancements. Some of\nthem are highlighted below.\n\n- Removed string support from attributes system for performance\n increase\n- Cleaned up and removed deprecated code\n- Added ability to configure base Table, Query and Collection classes\n- Added ability to register custom hydrator and connection drivers\n- Enhanced Table magic finders to include conditions\n- Introduced Doctrine Extensions Repository\n- On Demand Hydration for better performance and less memory usage\n- Other various bug fixes, convenience enhancements and other minor\n performance improvements\n\nYou can view the full details of all the changes in the [upgrade\nfile](https://www.doctrine-project.org/upgrade/1_2). We use this to\ndocument all major changes so that upgrading is easier for you.\n", + "date": "2009-09-18 00:00:00" }, { - "url": "/2015/12/25/orm-2-5-3.html", - "slug": "orm-2-5-3", - "title": "Doctrine ORM 2.5.3 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n[2.5.3](https://github.com/doctrine/orm/releases/tag/v2.5.3).\n\nDependency constraints on the\n[doctrine/common](https://github.com/doctrine/common) component\nsupported versions were corrected, allowing users to install\n`doctrine/common` version `2.6.*` together with the ORM. This also means\nthat PHP 7 scalar type-hints and return type declarations are now\nreflected in the generated proxy classes.\n[\\#4884](https://github.com/doctrine/orm/issues/4884)\n\nMerging versioned entities caused the merged instance to have a `null`\nversion: this is now fixed.\n[\\#1573](https://github.com/doctrine/orm/issues/1573)\n\nIt was impossible to use interface names when referencing entity types\nin DQL: it is now possible to do so when using the\n[ResolveTargetEntityListener](https://github.com/doctrine/orm/blob/v2.5.3/lib/Doctrine/ORM/Tools/ResolveTargetEntityListener.php).\n[\\#1573](https://github.com/doctrine/orm/issues/1573)\n\nInstallation\n============\n\nYou can install the ORM component using Composer:\n\n```bash\ncomposer require doctrine/orm:~2.5.3\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/orm/issues).\n", - "date": "2015-12-25 00:00:00" + "url": "/2008/01/25/a-few-updates-for-2008.html", + "slug": "a-few-updates-for-2008", + "title": "A few updates for 2008", + "authorName": "jwage", + "authorEmail": "", + "contents": "Some of these announcements are a little late but I think they deserve a\nproper announcement.\n\nFirst, we have setup a way for you to give us all your money :) Please\nfeel free to give a little. The purpose of the Doctrine donation\ncollection is simple. The creators of Doctrine don't work on this great\nproduct for any money. The contributions are made out of the pure\nenjoyment of working on a great open source project such as Doctrine. It\nis not totally clear what *exactly* the donations will be used for now,\nbut in the future they may be used to fund infrastructure expenses\nrequired by the project, sending developers to conferences, marketing,\nor even split amongst the developers of Doctrine. So if you or your\ncompany uses Doctrine and are happy with it, a donation to further the\nproject would be much appreciated.\n\nSecondly, we have made some updates to the website. Specifically the\nDownload page. It now has proper links to packages and svn for each\nrelease of Doctrine. These packages are generated nightly from the\nsource in svn.\n\nFinally, as some of you all may already know, we have finally gotten our\nrelease/package management under control and you can expect stability in\nthe area of releases, branches and BC breaks!\n", + "date": "2008-01-25 00:00:00" }, { - "url": "/2009/08/07/doctrine2-batch-processing.html", - "slug": "doctrine2-batch-processing", - "title": "Doctrine 2 Batch Processing", - "authorName": "romanb", + "url": "/2012/05/28/doctrine-2-1-7-released.html", + "slug": "doctrine-2-1-7-released", + "title": "Doctrine 2.1.7 released", + "authorName": "beberlei", "authorEmail": "", - "contents": "**TIP** Disclaimer: In general, an ORM is surely not the best tool\n: for the job for mass data movements, however, it can be a convenient\n alternative if the performance is sufficient. Every RDBMS has its\n own highly efficient commands for such operations. For maximum\n efficiency you should consult the manual of your RDBMS.\n\n **NOTE** The hardware used for the following tests: MBP, Intel Core\n 2 Duo 2.53 Ghz, 4GB DDR3 RAM, 7200rpm HDD.\n\nA lot of people have encountered the infamous \"memory exhausted\" errors\nwhen using Doctrine for bulk operations or in long-running scripts. This\nis a problem that is the result of 2 things:\n\n- The often unnecessarily intertwined architecture of Doctrine 1.x.\n- The simple garbage collector of PHP \\< 5.3.\n\n > **NOTE** If you did not know it yet, basically every circular\n > reference between objects (and that is every bidirectional\n > relationship!) is a potential memory leak in PHP \\< 5.3.\n\nNow, the PHP team did their homework and introduced a new garbage\ncollector in PHP 5.3 (that is enabled by default, thank god!) that is\ncapable of properly detecting cyclic references that are not referenced\nany longer from the outside.\n\nIn Doctrine 2 we did our part of the homework to address this issue and\nredesigned the Doctrine core from scratch. The result is a much better\nuser experience, as I will demonstrate with some examples.\n\nMass inserts\n============\n\nThe first thing we will look at is mass inserts. In Doctrine 2 there is\na special pattern that can be used for mass inserts that looks as\nfollows:\n\n~~~~ {.sourceCode .php}\nsetFoo('...');\n // ... set more data\n $em->persist($obj);\n if (($i % $batchSize) == 0) {\n $em->flush();\n $em->clear();\n }\n}\n~~~~\n\nI used this pattern to create a little demonstration that looks like\nthis in a PHPUnit test:\n\n~~~~ {.sourceCode .php}\n_em created in setUp()\necho \"Memory usage before: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n$s = microtime(true);\n$batchSize = 20;\nfor ($i=1; $i<=10000; ++$i) {\n $user = new CmsUser;\n $user->status = 'user';\n $user->username = 'user' . $i;\n $user->name = 'Mr.Smith-' . $i;\n $this->_em->persist($user);\n if (($i % $batchSize) == 0) {\n $this->_em->flush();\n $this->_em->clear();\n }\n}\n\n//gc_collect_cycles(); // explained later!\necho \"Memory usage after: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n\n$e = microtime(true);\necho ' Inserted 10000 objects in ' . ($e - $s) . ' seconds' . PHP_EOL;\n~~~~\n\nAs you can see, we insert a total of 10000 objects. On running this code\nthrough PHPUnit, using an SQLite in-memory database, I got the following\noutput:\n\n Memory usage before: 5034.03515625 KB\n Memory usage after: 6726.3515625 KB\n Inserted 10000 objects in 3.165983915329 seconds\n\nWe can see the following:\n\n- The insertion of 10000 objects through Doctrine into an SQLite\n in-memory database took roughly 3 seconds, not too bad.\n- Memory usage increased by roughly 1.7MB, not too bad either.\n\nIf you are now still not satisfied and wonder where the 1.7MB are going,\nhere is the answer: A small part of that is occupied by objects that\nwere created on-demand internally by Doctrine, these will stay pretty\nconstant, however. But the majority of this 1.7MB has simply not yet\nbeen reclaimed (but is eliglible for garbage collection for the new\ngarbage collector!). To prove that, I can just uncomment the\ngc\\_collect\\_cycles() function call. Here's the result:\n\n Memory usage before: 5034.3828125 KB\n Memory usage after: 5502.21484375 KB\n Inserted 10000 objects in 3.1807188987732 seconds\n\nMuch better! And to prove that the \\~500KB occupied by Doctrine are\nconstant, I simply made it 20000 objects. Here is the result:\n\n Memory usage before: 5034.3828125 KB\n Memory usage after: 5502.21484375 KB\n Inserted 20000 objects in 6.6149919033051 seconds\n\nWe can see the following things:\n\n- Memory usage is constant, the second batch of 10000 objects did not\n result in additional memory usage.\n- The mass insertion strategy scales almost linearly. 10k objects took\n \\~3.2 seconds and 20k objects took \\~6.6 seconds.\n\nNote: You do not really need to call gc\\_collect\\_cycles(). This should\njust demonstrate that the memory can be reclaimed. PHP would reclaim\nthat memory anyway when it needs to.\n\nEven better, when testing the peak memory usage\n(memory\\_get\\_peak\\_usage()) it turned out that the memory usage never\ngrew beyond \\~10MB in between. If you choose a larger batch size the\npeak memory usage will be higher and vice versa.\n\nMass object processing\n======================\n\nNow we take a look at mass-processing objects, which means loading 10000\nobjects from the database and doing something with each of them. The\nclue here is the new support for iterative (step-by-step) hydration in\nDoctrine 2. The pattern for these kinds of tasks looks as follows:\n\n~~~~ {.sourceCode .php}\n_em->createQuery(\"\");\n$iterableResult = $q->iterate();\nwhile (($row = $iterableResult->next()) !== false) {\n // do stuff with the data in the row, $row[0] is always the object\n $this->_em->detach($row[0]); // detach from Doctrine, so that it can be GC'd immediately\n }\n~~~~\n\nSo instead of using `$q->execute()` or `$q->getResult()` or similar, we\nuse `$q->iterate()` which returns an instance of `IterableResult` that\nallows us to iterate over the result step by step. The important part\nfor not running out of memory is the line where the created object is\ndetached from Doctrine, which results in Doctrine removing any internal\nreferences to that object, Doctrine no longer \"knows\" about that object.\n\nI used this pattern to iterate through the just inserted 10000 objects\nas follows:\n\n~~~~ {.sourceCode .php}\n_em->createQuery(\"select u from Doctrine\\Tests\\Models\\CMS\\CmsUser u\");\n$iterableResult = $q->iterate();\n\necho \"Memory usage before: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n\nwhile (($row = $iterableResult->next()) !== false) {\n // ... I could do some stuff here\n $this->_em->detach($row[0]);\n}\n\necho \"Memory usage after: \" . (memory_get_usage() / 1024) . \" KB\" . PHP_EOL;\n~~~~\n\nThe following is the result:\n\n Memory usage before: 6578.58984375 KB\n Memory usage after: 6581.71875 KB\n\nThe result is pretty acceptable. Here is the same again, this time for\n20000 objects, again to prove that the small memory increase is\nconstant:\n\n Memory usage before: 6578.23828125 KB\n Memory usage after: 6581.359375 KB\n\nGood stuff!\n\n> **NOTE** If you're thinking that I waited ages until the 10k or 20k\n> objects were hydrated, that was not the case. 10k or 20k objects\n> (without associations) are hydrated in seconds.\n\nMore information on bulk operations with Doctrine 2 can be found in the\n(very new) online manual that is still a work in progress:\n\nhttps://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/batch-processing.html#batch-processing\n\nUPDATE\n======\n\nSome people seem to be wondering why Doctrine does not use multi-inserts\n(insert into (...) values (...), (...), (...), ...\n\nFirst of all, this syntax is only supported on mysql and newer\npostgresql versions. Secondly, there is no easy way to get hold of all\nthe generated identifiers in such a multi-insert when using\nAUTO\\_INCREMENT or SERIAL and an ORM needs the identifiers for identity\nmanagement of the objects. Lastly, insert performance is rarely the\nbottleneck of an ORM. Normal inserts are more than fast enough for most\nsituations and if you really want to do fast bulk inserts, then a\nmulti-insert is not the best way anyway, i.e. Postgres COPY or Mysql\nLOAD DATA INFILE are several orders of magnitude faster.\n\nThese are the reasons why it is not worth the effort to implement an\nabstraction that performs multi-inserts on mysql and postgresql in an\nORM.\n\nI hope that clears up some questionmarks.\n", - "date": "2009-08-07 00:00:00" + "contents": "We released version 2.1.7 of the Doctrine ORM and DBAL today, fixing a\ntotal of 18 bugs.\n\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10198)\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10200)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) ,\n[PEAR](http://pear.doctrine-project.org) , download from the website or\nthrough [Composer](https://packagist.org):\n\n~~~~ {.sourceCode .yaml}\n{\n \"require\":\n {\n \"doctrine/orm\": \"2.1.7\"\n }\n}\n~~~~\n", + "date": "2012-05-28 00:00:00" }, { - "url": "/2015/04/14/annotations-1-2-4.html", - "slug": "annotations-1-2-4", - "title": "Doctrine Annotations 1.2.4 Release", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine\nCollections `1.2.4`.\n\nThis release fixes a minor issue\n([\\#51](https://github.com/doctrine/annotations/pull/51)) with highly\nconcurrent I/O and the `FileCacheReader#saveCacheFile()` method.\n\nInstallation\n============\n\nYou can install this version of Doctrine Annotations by using Composer\nand the following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/annotations\": \"1.2.4\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DCOM).\n", - "date": "2015-04-14 00:00:00" - }, - { - "url": "/2019/01/09/migrations-2-0-stable.html", - "slug": "migrations-2-0-stable", - "title": "Migrations 2.0 Stable Released", - "authorName": "Jonathan H. Wage", - "authorEmail": "jonwage@gmail.com", - "contents": "Today we are very excited to announce the stable release of Doctrine Migrations 2.0.\nAlmost 10 years ago on Mar 23, 2010, the [first commit](https://github.com/doctrine/migrations/commit/8f198ef623051a5eeb21d93bfc7a8a49efbe9d63) of the 1.0 codebase was created.\nThe history of the Doctrine Migrations project actually even goes back further to the\ndays of Doctrine1 ORM but this was before the days of GitHub, Composer, etc and I think\nsome of that history has been lost. It is amazing to look back over the last decade at\nhow much the PHP eco-system has changed. It makes us appreciate all the great tools we\nhave, even with all their flaws.\n\n## What is in 2.0?\n\nThe 2.0 release should be a relatively easy upgrade for most people. The primary goal of the\n2.0 release was to modernize the codebase according to Doctrine Coding Standards, PHPStan and\nall of the other standardized Doctrine project infrastructure that has evolved over the last\nfew years. This will ensure the project is alive and relevant for another decade.\n\nIn addition to upgrading the infrastructure of the project, it came with a few new nice features:\n\n - [724: Allow migrations in sub namespace to be loaded if the migration is in the namespace configured.](https://github.com/doctrine/migrations/pull/724) thanks to @jwage\n - [693: Allow Migration Classes to be in Multiple Namespaces](https://github.com/doctrine/migrations/pull/693) thanks to @chrisguitarguy and @liquorvicar\n - [683: Implement all or nothing transaction strategy for migrations.](https://github.com/doctrine/migrations/pull/683) thanks to @jwage and @stof\n\nYou can view the full changelog in the release on [GitHub](https://github.com/doctrine/migrations/releases/tag/v2.0.0).\n\nThis release contains **36** resolved issues with **71** pull requests coming from **18** different\ncontributors. Thanks to the following people for their help with this release:\n\n- [@jwage](https://github.com/jwage)\n- [@theofidry](https://github.com/theofidry)\n- [@localheinz](https://github.com/localheinz)\n- [@Majkl578](https://github.com/Majkl578)\n- [@greg0ire](https://github.com/greg0ire)\n- [@lcobucci](https://github.com/lcobucci)\n- [@emodric](https://github.com/emodric)\n- [@PowerKiKi](https://github.com/PowerKiKi)\n- [@MasterOdin](https://github.com/MasterOdin)\n- [@Piskvor](https://github.com/Piskvor)\n- [@aik099](https://github.com/aik099)\n- [@chrisguitarguy](https://github.com/chrisguitarguy)\n- [@stof](https://github.com/stof)\n- [@bostjan](https://github.com/bostjan)\n- [@weaverryan](https://github.com/weaverryan)\n- [@SlvrEagle23](https://github.com/SlvrEagle23)\n- [@jaikdean](https://github.com/jaikdean)\n- [@liquorvicar](https://github.com/liquorvicar)\n", - "date": "2019-01-09 00:00:00" - }, - { - "url": "/2014/02/08/orm-235-234.html", - "slug": "orm-235-234", - "title": "ORM 2.4.2 and 2.3.5 released", - "authorName": "Benjamin Eberlei", - "authorEmail": "", - "contents": "*Published: 08.02.2014*\n\nWe are happy to announce the immediate availability of Doctrine ORM\n2.3.5 and 2.4.2. Both versions fix 17 and 12 bugs respectively.\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.3.5](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10521)\n - 17 issues fixed\n- [ORM\n 2.4.2](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10621)\n 12 issues fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.2\"\n }\n}\n~~~~\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.3.5\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2014-02-08 00:00:00" - }, - { - "url": "/2016/09/09/dbal-2-5-5.html", - "slug": "dbal-2-5-5", - "title": "Doctrine DBAL 2.5.5 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n[2.5.5](https://github.com/doctrine/dbal/releases/tag/v2.5.5).\n\nThis release contains a huge amount of fixes, specifically:\n\n> - Parsing of SQL strings containing single quotes\n> [\\#842](https://github.com/doctrine/common/pull/842)\n> - Listing foreign key names when no DB name is used (use current DB\n> instead) [\\#856](https://github.com/doctrine/common/pull/856)\n> - Verifying if table names correspond on dropped foreign keys\n> [\\#861](https://github.com/doctrine/common/pull/861)\n> - Quoting identifiers in `DROP` DDL statements\n> [\\#862](https://github.com/doctrine/common/pull/862)\n> - Removing leading slash from database/schema names when using DSNs\n> [\\#863](https://github.com/doctrine/common/pull/863)\n> - Stopped using `template1` as default database in Postgres\n> [\\#2279](https://github.com/doctrine/common/pull/2279)\n> - Allowing `\"path\"` instead of `\"dbname\"` in SQLite connections\n> [\\#2267](https://github.com/doctrine/common/pull/2267)\n> - Correcting DB2 boolean columns schema introspection\n> [\\#2277](https://github.com/doctrine/common/pull/2277)\n> - Correcting OCI8 parameter binding, which was broken by upgrading\n> to PHP 7.0 [\\#2434](https://github.com/doctrine/common/pull/2434)\n> - Quoting reserved table names when using `TRUNCATE`\n> [\\#2270](https://github.com/doctrine/common/pull/2270)\n> - Fixing of DSN parsing when no schema is in the path\n> [\\#2287](https://github.com/doctrine/common/pull/2287)\n> - Correcting query builder, which was adding a `FROM` clause even\n> with no arguments for it\n> [\\#2292](https://github.com/doctrine/common/pull/2292)\n> - Correcting altering primary key with `AUTO_INCREMENT` on MySQL\n> (requires dropping/re-adding PK)\n> [\\#2303](https://github.com/doctrine/common/pull/2303)\n> - Moving DB2 pagination (query modification) offset/limit count\n> result to the end of the results\n> [\\#2310](https://github.com/doctrine/common/pull/2310)\n> - Handling `Throwable` exceptions thrown in\n> `Connection#transactional()`\n> [\\#2390](https://github.com/doctrine/common/pull/2390)\n> - Correcting logging of parameters passed to a statement via\n> `bindParam()`\n> [\\#2440](https://github.com/doctrine/common/pull/2440)\n> - Allowing installation of `symfony/console:^3.0`\n> [\\#2484](https://github.com/doctrine/common/pull/2484)\n> - Correcing MySQLi statements, which were returning `null` instead\n> of `false` on no results\n> [\\#2497](https://github.com/doctrine/common/pull/2497)\n\nInstallation\n============\n\nYou can install the DBAL component using Composer:\n\n```bash\ncomposer require doctrine/dbal:^2.5.5\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/dbal/issues).\n", - "date": "2016-09-09 00:00:00" - }, - { - "url": "/2009/08/22/transactions-and-performance.html", - "slug": "transactions-and-performance", - "title": "Transactions and Performance", - "authorName": "romanb", + "url": "/2009/06/05/doctrine-statistics.html", + "slug": "doctrine-statistics", + "title": "Doctrine Statistics", + "authorName": "jwage", "authorEmail": "", - "contents": "In this post I want to clarify some things about transactions and\nperformance of PHP applications in general. I want to show you that it\nis very easy to lose a lot of performance without using any \"heavy\"\nframework at all and I also want to show that frameworks can actually\nhelp you avoid a lot of these problems transparently. I want to\nsensibilize you for the fact that there are a lot of factors in PHP\napplication performance and that you can very easily lose the\nperformance that you hoped to gain by not using framework X or Z or\nbuilding your own (\"Not Invented Here\"-syndrome) by several orders of\nmagnitude through rather trivial errors or misconceptions.\n\nGiven a MySql database with InnoDB tables, which of the following code\nsnippets that insert 20 users do you think is faster? First the Doctrine\n(2) version:\n\n~~~~ {.sourceCode .php}\nname = 'Guilherme';\n $user->status = 'Slave';\n $user->username = 'gblanco';\n $em->persist($user);\n}\n\n$s = microtime(true);\n$em->flush();\n$e = microtime(true);\necho ($e - $s) . \"
    \";\n~~~~\n\nNow the good old mysql\\_query version:\n\n~~~~ {.sourceCode .php}\n\";\n~~~~\n\nEven this comparison is not fair since flush() is doing a lot more stuff\nbut anyhow. The results might surprise some of you:\n\n Doctrine 2: 0.0094 seconds\n mysql_query: 0.0165 seconds\n\nYes, our good old mysql\\_query code is almost twice as slow even though\nit does a lot less, provides no features, no abstraction, no basic\nprotection against SQL injection, etc. Why is that? The answer is:\ntransactions. In the Doctrine 2 example, Doctrine takes over transaction\nmanagement for us and efficiently executes all inserts in a single,\nshort transaction. In the plain mysql\\_query example, there is no\ntransaction demarcation and since MySql by default operates in\nautocommit mode, every mysql\\_query call will implicitly commit the\ntransaction and start a new one. Thats 20 transactions. Here is the\nrevised code of the second example with proper transaction demarcation:\n\n~~~~ {.sourceCode .php}\n\";\n~~~~\n\nThe result:\n\n mysql_query: 0.0028 seconds\n\nThats a huge difference. We can conclude:\n\n**Bad or no transaction management/demarcation can reduce performance by\nseveral orders of magnitude.**\n\nMany people are used to autocommit mode without really being aware of\nwhat it is doing. It does not mean there is no transaction unless you\nissue START/BEGIN TRANSACTION or PDO\\#beginTransaction(). It means after\nevery single query a transaction is committed automatically and a new\none started. Methods like PDO\\#beginTransaction() merely suspend\nautocommit mode for a short duration (until you call\nPDO\\#commit()/PDO\\#rollback()).\n\nTo clarify:\n\n**You can not talk to your database outside of a transaction.**\n\nEven SELECT queries get wrapped in a small transaction in autocommit\nmode. However since SELECT statements usually don't result in any write\nlocks (like INSERT/UPDATE/DELETE) the penalty of these transactions is\nusually not that big.\n\nDoctrine 2 can help a lot here. You can modify your objects anywhere,\npersist and delete objects anywhere and once you call\n`EntityManager#flush()` Doctrine 2 will efficiently make all updates in\na single transaction.\n\nWhat I wanted to highlight with this post is that there are a lot of\nfactors that influence the performance of your application, and raw\nexecution speed of the code is certainly not one of the most influential\nones. You can very easily lose 10 times the performance by trivial\nthings such as the one shown above (bad/no transaction demarcation) than\nwhat you gained by choosing some \"ultra lightweight\" PHP framework or a\nhomegrown solution.\n\nThere are many more factors, like network load, inefficient database\nindices or no indices, and much more. Don't just always look at the raw\nexecution speed of your code. Use code that is well tested, established,\nused by lots of people and developed by lots of people. Don't reinvent\nthe wheel and use existing tools or help make existing tools better!\n(Oh, and use the right tool for the job, of course!)\n\nMost of the time when you think your own solutions are much better and\nhave a lot less bugs than existing ones then thats most likely just\nbecause noone else is using it and so the bugs are never found :-).\n\nPS: If you're still confused by the autocommit mode, let me recommend\nthis excellent page from the Hibernate project: [Non-transactional data\naccess and the auto-commit mode](https://www.hibernate.org/403.html)\n", - "date": "2009-08-22 00:00:00" + "contents": "On October 18th of 2007 I implemented Google Analytics which allowed me\nto track the statistics of the website. On that first day of statistics\ngathered we had 93 visitors and yesterday we had a little over 1500!\nNeedless to say that is pretty exciting!\n\nHere is a graph from google analytics that illustrates the growth.\n\nHere are some more statistics gathered:\n\nGoogle Analytics\n================\n\n| Statistics | | | ----- | ------ | | Visits | 607,035 | | Absolute\nUnique Visitors | 232,366 | | Pageviews | 2,331,993 | | Average\nPageviews | 3.84 | | Time on Site | 00:05:02 | | Bounce Rate | 42.31% |\n| New Visits | 38.19% |\n\nDownloads\n=========\n\n| Version | \\# | | ---------- | ---| | 0.9 | 126 | | 0.10 | 7521 | |\n0.11 | 6691 | | 1.0 | 20300 | | 1.1 | 9539 |\n\n> **NOTE** **These statistics don't count downloads through other\n> sources such as symfony, Doctrine SVN, etc. They only track the\n> downloads through the Doctrine website on the\n> [Download](https://www.doctrine-project.org/download) page.**\n\nHopefully I can make this same post a year from now about the same thing\nand Doctrine will have grown with many new versions.\n", + "date": "2009-06-05 00:00:00" }, { - "url": "/2009/02/04/using-behaviors-to-share-relationship-properties.html", - "slug": "using-behaviors-to-share-relationship-properties", - "title": "Using Behaviors to Share Relationship Properties", + "url": "/2010/07/20/mixing-types-of-documents.html", + "slug": "mixing-types-of-documents", + "title": "MongoDB ODM: Mixing Types of Documents", "authorName": "jwage", "authorEmail": "", - "contents": "Define The Schema\n=================\n\nIn this article we will demonstrate some more ways to add functionality\nto Doctrine by using the behavior system. We will call this behavior\n`SharedProperties` and it allows you to share properties between your\nmodels and one-to-one relationships. Here is an example schema that will\nmake use of the behavior we will write.\n\n [yml]\n Entity:\n actAs:\n Sluggable:\n fields: [name]\n Timestampable:\n columns:\n name: string(255)\n is_active:\n type: boolean\n default: false\n\n BlogPost:\n actAs:\n SharedProperties:\n relations: [Entity]\n columns:\n title: \"string(255)\"\n body: clob\n\n User:\n actAs:\n SharedProperties:\n relations: [Entity]\n columns:\n username: string(255)\n password: string(255)\n\n Administrator:\n actAs:\n SharedProperties:\n relations: [User]\n columns:\n responsibilities: string(255)\n\nThe schema should be somewhat self-explanatory. Each model that acts as\n`SharedProperties` you must specify an array of model names or existing\nrelationship aliases. Our behavior will automatically add foreign keys\nfor the list of models and instantiate a one-to-one relationship between\nthe models automatically.\n\nWrite the Template\n==================\n\nLets write the first part of our template that simply adds a column for\neach of the listed `relations`:\n\n~~~~ {.sourceCode .php}\n_options = $options;\n }\n\n public function setTableDefinition()\n {\n foreach ($this->_options['relations'] as $relation) {\n $columnName = Doctrine_Inflector::tableize($relation) . '_id';\n if (!$this->_table->hasColumn($columnName)) {\n $this->hasColumn($columnName, 'integer');\n }\n }\n }\n}\n\n**NOTE** You will notice we add columns for each of the\n``relations`` specified if the column does not already exist. We\nwill use these columns to automatically create the\nrelationships/foreign keys between the models if they don't already\nexist in the next step.\n~~~~\n\nEnhance the Template\n====================\n\nNow lets enhance our template and add a `setUp()` method to instantiate\nour relationships between the list of `relations` and the columns we\nadded in the previous step:\n\n~~~~ {.sourceCode .php}\n_options['relations'] as $model) {\n $table = $this->_table;\n $local = Doctrine_Inflector::tableize($model) . '_id';\n $foreign = Doctrine::getTable($model)->getIdentifier();\n $this->_makeRelation($table, $model, $local, $foreign, true);\n }\n\n foreach ($this->_options['relations'] as $model) {\n $table = Doctrine::getTable($model);\n $local = $table->getIdentifier();\n $foreign = Doctrine_Inflector::tableize($model) . '_id';\n $this->_makeRelation($table, $this->_table->getOption('name'), $table->getIdentifier(), $foreign);\n }\n }\n\n protected function _makeRelation(Doctrine_Table $table, $model, $local, $foreign, $cascade = false)\n {\n if (!$table->hasRelation($model)) {\n $options = array('local' => $local, 'foreign' => $foreign);\n if ($cascade) {\n $options['onDelete'] = 'CASCADE';\n }\n $table->bind(array($model, $options), Doctrine_Relation::ONE);\n }\n }\n}\n~~~~\n\nGenerated SQL\n=============\n\nThis code we've added now makes a one-to-one relationship between the\nmodels that act as `SharedProperties` and the list of models specified.\nSo for example, `Entity` has one `BlogPost` and `BlogPost` has one\n`Entity`. The above models at this point would generate the following\nSQL:\n\n [sql]\n CREATE TABLE administrator (id BIGINT AUTO_INCREMENT, responsibilities VARCHAR(255), user_id BIGINT, INDEX user_id_idx (user_id), PRIMARY KEY(id)) ENGINE = INNODB;\n\n CREATE TABLE blog_post (id BIGINT AUTO_INCREMENT, title VARCHAR(255), body LONGTEXT, entity_id BIGINT, INDEX entity_id_idx (entity_id), PRIMARY KEY(id)) ENGINE = INNODB;\n\n CREATE TABLE entity (id BIGINT AUTO_INCREMENT, name VARCHAR(255), is_active TINYINT(1) DEFAULT '0', slug VARCHAR(255), created_at DATETIME, updated_at DATETIME, UNIQUE INDEX sluggable_idx (slug), PRIMARY KEY(id)) ENGINE = INNODB;\n\n CREATE TABLE user (id BIGINT AUTO_INCREMENT, username VARCHAR(255), password VARCHAR(255), entity_id BIGINT, INDEX entity_id_idx (entity_id), PRIMARY KEY(id)) ENGINE = INNODB;\n\n ALTER TABLE administrator ADD FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE;\n\n ALTER TABLE blog_post ADD FOREIGN KEY (entity_id) REFERENCES entity(id) ON DELETE CASCADE;\n\n ALTER TABLE user ADD FOREIGN KEY (entity_id) REFERENCES entity(id) ON DELETE CASCADE;\n\nSharing Properties/Methods\n==========================\n\nNow to get to the fun, the main purpose of doing all this is to share\nthe properties of these relationships. We can accomplish this by using\nthe `Doctrine_Record_Filter` feature and some magic PHP `__call()`\nfunctionality. First lets modify our template to attach a new record\nfilter.\n\n> **TIP** Records filters in Doctrine allow you to handle all unknown\n> properties access on a Doctrine object. This allows us to forward the\n> calls on to the relationships so you can access properties from them.\n\n~~~~ {.sourceCode .php}\n_table->unshiftFilter(new SharedPropertiesFilter($this->_options));\n }\n\n // ...\n}\n~~~~\n\nNow that we have attached our filter we need to write that class:\n\n~~~~ {.sourceCode .php}\n_options = $options;\n }\n\n public function init()\n {\n foreach ($this->_options['relations'] as $model) {\n $this->_table->getRelation($model);\n }\n }\n\n public function filterSet(Doctrine_Record $record, $name, $value)\n {\n foreach ($this->_options['relations'] as $model) {\n try {\n $record->$model->$name = $value;\n return $record;\n } catch (Exception $e) {}\n }\n throw new Doctrine_Record_UnknownPropertyException(sprintf('Unknown record property / related component \"%s\" on \"%s\"', $name, get_class($record)));\n }\n\n public function filterGet(Doctrine_Record $record, $name)\n {\n foreach ($this->_options['relations'] as $model) {\n try {\n return $record->$model->$name;\n } catch (Exception $e) {}\n }\n throw new Doctrine_Record_UnknownPropertyException(sprintf('Unknown record property / related component \"%s\" on \"%s\"', $name, get_class($record)));\n }\n}\n~~~~\n\nNow you can see this filter checks to see if the property exists on any\nof the `relations` specified otherwise throws the normal\n`Doctrine_Record_UnknownPropertyException`.\n\nThe last thing we need to do is add a magic `__call()` function to our\ntemplate to handle the forwarding of any unknown methods to the\n`relations`:\n\n~~~~ {.sourceCode .php}\ngetInvoker();\n foreach ($this->_options['relations'] as $model) {\n try {\n return call_user_func_array(array($invoker->$model, $method), $arguments);\n } catch (Exception $e) {\n continue;\n }\n }\n }\n}\n~~~~\n\nThis is required if we have functions defined on the models and want to\nbe able to access these methods. So for example if we were to add a\n`setPassword()` method to the generated `User` class like the following:\n\n~~~~ {.sourceCode .php}\n_set('password', md5($password));\n }\n}\n~~~~\n\nWithout the above `__call()` function we would not be able to do the\nfollowing:\n\n~~~~ {.sourceCode .php}\nsetPassword('new_password');\n\n**TIP** **Auto Accessor and Mutator Overriding**\n\nIf you want Doctrine to automatically override accessors with\nmatching ``set*()`` and ``get*()`` functions then you need to\nenable the ``auto_accessor_override`` attribute in your\nconfiguration where you create your connections and set Doctrine\nattributes:\n~~~~\n\n~~~~ {.sourceCode .php}\nsetAttribute('auto_accessor_override', true);\n\nNow with that attribute the following is possible. Instead of\nhaving to call the method ``setPassword()``, Doctrine sees you are\nsetting the ``password`` and a method named ``setPassword()``\nexists so it uses it to do the mutating.\n~~~~\n\n~~~~ {.sourceCode .php}\npassword = 'new_password';\n~~~~\n\nExample Usage\n=============\n\nThat is it! Our behavior is implemented and we are ready to write some\ncode that use our new models.\n\nCreating New Records\n--------------------\n\n~~~~ {.sourceCode .php}\nname = 'Jonathan H. Wage';\n$admin->username = 'jwage';\n$admin->password = 'changeme';\n$admin->is_active = 1;\n$admin->responsibilities = 'Train all the PHP developers!';\n$admin->save();\n~~~~\n\nNow that code results in the following structure being persisted to the\ndatabase:\n\n~~~~ {.sourceCode .php}\ntoArray(true));\n/*\nArray\n(\n [id] => 2\n [responsibilities] => Train all the PHP developers!\n [user_id] => 2\n [User] => Array\n (\n [id] => 2\n [username] => jwage\n [password] => 4cb9c8a8048fd02294477fcb1a41191a\n [entity_id] => 3\n [Entity] => Array\n (\n [id] => 3\n [name] => Jonathan H. Wage\n [is_active] => 1\n [slug] => jonathan-h-wage\n [created_at] => 2009-02-04 16:01:12\n [updated_at] => 2009-02-04 16:01:12\n )\n\n )\n\n)\n*/\n~~~~\n\nData Fixtures\n-------------\n\nSimilarly, the following data fixtures would be possible:\n\n [yml]\n BlogPost:\n BlogPost_1:\n name: Test Blog Post\n title: \"This is a test blog post\"\n body: This is a test blog post\n\n Administrator:\n Administrator_1:\n name: Test Manager\n username: jwage\n password: changeme\n responsibilities: Overseeing development department\n\nQuerying For and Accessing Data\n-------------------------------\n\nYou can query for these relationships as well:\n\n~~~~ {.sourceCode .php}\nfrom('Administrator a')\n ->leftJoin('a.User u')\n ->leftJoin('u.Entity e')\n ->where('u.username = ?', 'jwage');\n\n$user = $q->fetchOne();\necho $user['created_at'];\n~~~~\n\nThe above code would output the value of the `created_at` column that\nactually exists in the `Entity` model that is available through the\n`Administrator->User->Entity` relations.\n", - "date": "2009-02-04 00:00:00" + "contents": "One major advantage to using something like MongoDB is the fact that it\nis schema-less. We can store multiple types of documents in a single\ncollection and we are not limited to a single type of document in\nembedded and referenced documents. This article shows how you can easily\nmix types of documents in collections, embedded and referenced\ndocuments.\n\nMixing Types in Collections\n===========================\n\nIf you don't want to use `SINGLE_COLLECTION` inheritance you can easily\nstore different documents in the same collection by using a\ndiscriminator field. First define an `Article` document that maps to\n`my_documents`:\n\n~~~~ {.sourceCode .php}\nsetTitle('Sample Article');\n// ...\n\n$album = new Album();\n$album->setName('My Album');\n\n$dm->persist($article);\n$dm->persist($album);\n~~~~\n\nFinally, if you retrieve the documents they'll all be retrieved from\n`my_documents` but you will get back the proper PHP classes that created\nthem:\n\n~~~~ {.sourceCode .php}\nfind('Article');\n$albums = $dm->find('Album');\n~~~~\n\nYou can retrieve more then just one document type by specifying an\narray:\n\n~~~~ {.sourceCode .php}\ncreateQuery(array('Article', 'Album'))\n ->execute();\n~~~~\n\nThe returned documents will contain instances of articles and albums!\n\nMixing Types in Embedded Documents\n==================================\n\nYou can store multiple types of documents in embedded documents by\nsimply omitting the `targetDocument` option. First create a `User`\ndocument and embed multiple task documents:\n\n~~~~ {.sourceCode .php}\nfindOne('User', array(...));\n\n$task = new DownloadTask();\n// ...\n\n$user->addTask($task);\n\n$task = new UploadTask();\n// ...\n\n$user->addTask($task);\n\n$dm->flush();\n~~~~\n\nMixing Types in Referenced Documents\n====================================\n\nMixing types in referenced documents works just the same as embedded by\nomitting the `targetDocument` option. In this example a user can add\nreferences to all his favorite albums, songs and books. First define a\n`User` document with a many references property for storing the users\nfavorites:\n\n~~~~ {.sourceCode .php}\naddFavorite($album);\n$user->addFavorite($song);\n$user->addFavorite($book);\n\n$dm->flush();\n~~~~\n\nWhen you retrieve the user and access the `$favorites` the documents\nwill be grouped by type and loaded with one or more `$in` queries:\n\n~~~~ {.sourceCode .php}\nfindOne('User', array(...));\n$favorites = $user->getFavorites();\n\n// Lazily loads references\n// Contains Album, Song and Book instances\nforeach ($favorites as $favorite) {\n // ...\n}\n~~~~\n\nThat is it! It is easy to take advantage of the schema-less features of\nMongoDB with the Doctrine Object Document Mapper (ODM)!\n", + "date": "2010-07-20 00:00:00" }, { - "url": "/2014/02/21/doctrine_2_5_beta3.html", - "slug": "doctrine_2_5_beta3", - "title": "Doctrine DBAL 2.5 BETA3", - "authorName": "default", + "url": "/2011/06/17/doctrine-2-0-6.html", + "slug": "doctrine-2-0-6", + "title": "Doctrine 2.0.6 DBAL and ORM Releases", + "authorName": "beberlei", "authorEmail": "", - "contents": "We have released the BETA3 of DBAL 2.5 after some more work on the many\nnew features. For early testers, we have refactored the Exception\nsupport again and removed the constants in favour of a nicely designed\nException hierarchy. Many other issues were fixed and we hope this will\nbe the last beta release before a release candidate in early March and a\nfinal release in March as well.\n\nFor details about all the new features in DBAL 2.5, see the [previous\nrelease blog\npost](https://www.doctrine-project.org/2014/01/01/dbal-242-252beta1.html)\nand the [Jira\nRelease](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10523).\n\nYou can install the BETA through Composer with the following version\nconstraint::\n\n {\n \"require\": {\n \"doctrine/dbal\": \"2.5.0@beta\"\n }\n }\n\nDBAL 2.5 is backwards compatible to 2.4 and earlier in everything except\nsmall details (See UPGRADE.md). You can even test Doctrine DBAL 2.5 with\na stable DBAL 2.4 version.\n\nIf you find any problems with this beta, please report a bug [on\nJira](https://www.doctrine-project.org/jira).\n", - "date": "2014-02-21 00:00:00" + "contents": "On wednesday we released Doctrine 2.0.6 of DBAL and ORM. Both versions\ninclude some bugfixes, DBAL for identifier quoting with MSSQL and issues\nwith cascade remove, inheritance and the XML driver for the ORM.\n\nSee the changelogs for more details:\n\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10140)\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10141)\n\nGrab the download from our [PEAR\nChannel](http://pear.doctrine-project.org) or from the download section\nof our website.\n", + "date": "2011-06-17 00:00:00" }, { "url": "/2015/11/06/doctrine-inflector-1-1-0.html", @@ -2484,175 +2268,166 @@ "date": "2015-11-06 00:00:00" }, { - "url": "/2008/03/01/0-10-2-released.html", - "slug": "0-10-2-released", - "title": "0.10.2 Released", - "authorName": "jwage", - "authorEmail": "", - "contents": "Today we have released Doctrine 0.10.2. This is a bug fix only release.\nIt brings many new bugs fixes to the 0.10 branch. We will continue with\npoint releases on the 0.10 branch until the 0.9 branch is completely\nphased out. Thanks for using Doctrine :)\n", - "date": "2008-03-01 00:00:00" + "url": "/2016/09/10/orm-2-5-5.html", + "slug": "orm-2-5-5", + "title": "Doctrine ORM 2.5.5 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n[2.5.5](https://github.com/doctrine/orm/releases/tag/v2.5.5).\n\nFollowing issues were fixed:\n\n> - Embeddable classes are now allowed in inheritance trees\n> [\\#4097](https://github.com/doctrine/orm/issues/4097)\n> - Removed some object hash collisions caused by entity merging\n> [\\#1465](https://github.com/doctrine/orm/pull/1465)\n> - Allowed usage of mathematical operators in DQL `HAVING` clauses\n> [\\#5598](https://github.com/doctrine/orm/pull/5598)\n> - Fixed cloning of proxies with private properties at multiple\n> inheritance levels\n> [\\#5755](https://github.com/doctrine/orm/pull/5755)\n> - Entity insertions are correctly cleared when a specific entity is\n> to be cleared\n> [\\#5849](https://github.com/doctrine/orm/issues/5849)\n> - Corrected hydration of fetch-joins that use composite keys\n> [\\#5762](https://github.com/doctrine/orm/issues/5762)\n> - Metadata exporters now only export the owning side metadata in a\n> one-to-one relation\n> [\\#5858](https://github.com/doctrine/orm/issues/5858)\n> - Corrected hydration of JTI entities when `NULL` is retrieved for a\n> `simple_array` or `json_array` field\n> [\\#5989](https://github.com/doctrine/orm/issues/5989)\n> - Correctly expire L2 cache query caches, based on entity region\n> cache timestamp\n> [\\#6001](https://github.com/doctrine/orm/issues/6001)\n\nInstallation\n============\n\nYou can install the ORM component using Composer:\n\n```bash\ncomposer require doctrine/orm:^2.5.5\n```\n\nPlease report any issues you may have with the update on the [issue\ntracker](https://github.com/doctrine/orm/issues).\n", + "date": "2016-09-10 00:00:00" }, { - "url": "/2010/07/12/doctrine2-large-collections.html", - "slug": "doctrine2-large-collections", - "title": "Working with Large Collections in Doctrine2", - "authorName": "beberlei", + "url": "/2008/08/27/release-candidate-2-available.html", + "slug": "release-candidate-2-available", + "title": "Release Candidate 2 Available", + "authorName": "jwage", "authorEmail": "", - "contents": "If you access a collection of Entity A pointing to Entity B, Doctrine2\nalways initializes the complete collection for you. For small\ncollections up to around 100 entities this won't be a problem, however\nas soon as collections get (much) bigger than this you can get into\nserious trouble.\n\nBy default Doctrine2 can only optimize adding new entities to a\ncollection for you. This operation does not initialize the collection.\nThis will only get you bigger collections though, reading them is still\na pain.\n\nWe already got requests from several development teams for better\nfunctionality in this regard and we are planning to add a solution to\nthis problem that is not constraining your domain model with technical\nblurp. However this solution is currently on our schedule for the 2.1\nrelease of Doctrine only.\n\nUntil then I wrote a very little extension for Doctrine2 that allows you\nto work with large collections. It has two methods that compute the\nfollowing data for any given `PersistentCollection`:\n\n- Total Number of Elements in the Collection\n- A slice of entities from the collection using a sql limit (or\n alternative)\n\nYou can get this extension from the [DoctrineExtensions Github\nrepository](https://github.com/beberlei/DoctrineExtensions).\n\nWorking with a LargeCollection\n==============================\n\nThe `LargeCollection` class is a handler to work with large\nPersistentCollections. You can instantiate it by passing an\n`EntityManager` instance:\n\n~~~~ {.sourceCode .php}\ncount($article->getComments());\n~~~~\n\nYou can retrieve a slice of entities from the collection by calling:\n\n~~~~ {.sourceCode .php}\ngetSliceQuery($article->getComments(), $limit = 30);\n~~~~\n\nAs you can see this is very simple to use, but also missing some bits:\n\n- In your domain models you sometimes don't want to return the\n `Collections` instance but call `toArray()` to encapsulate the\n Collections API inside the Entity. For this two new methods are\n required to access to the persistent collections from the inside of\n an entity.\n- The `remove`, `removeElement`, `contains` and `containsKey` methods\n could also be added to the large collection handler, making direct\n calls to the underlying UnitOfWork API.\n- A method that returns an `IterableResult` for any given collection.\n This would allow to iterate the complete collection on a row-by-row\n basis, which would eliminate possible max memory problems compared\n to the complete hydration of a collection.\n- Methods link()/unlink() like described in\n [DDC-128](https://github.com/doctrine/orm/issues/1892)\n\nI hope I got your attention and maybe someone has an interest in\nextending the LargeCollection a little bit more.\n", - "date": "2010-07-12 00:00:00" + "contents": "

    \n\nOnly two days after making available the first release candidate we have\nprepared the second release candidate and made it available for\ndownload. This release contains dozens and dozens of bug fixes as well\nas a few new minor features required to fill some holes/gaps in the 1.0\nAPI before releasing. Below are some highlights of this release.\n\n

    • \n\n\\#1077 - Implemented Accessor Overriding\n\n
    • \n\n\\#1331 - Implemented orWhere() support to Doctrine\\_Query API\n\n
    • \n\nFinished Searchable Behavior API and added Documentation\n\n
    • \n\n\\#1319 - Added relationship reverse engineering support for MSSQL\n\n
    • \n\nCompleted Named Query Supportand added Documentation\n\n
    • \n\nTurned Portability Mode off by Default\n\n
    • \n\n100+ changeses/70+ Tickets Closed\n\n

    \n\nWe will have one more release candidate on either Friday or Saturday of\nthis week and Doctrine 1.0 Stable will be released Monday September 1st\n2008. If you haven't given the 1.0 branch a try yet, please do so and\nreport any issues to us so that we can get them fixed before Monday.\nThanks!\n\n

    \n\n\n", + "date": "2008-08-27 00:00:00" }, { - "url": "/2008/02/14/doctrine-all-grown-up.html", - "slug": "doctrine-all-grown-up", - "title": "Doctrine all grown up", + "url": "/2010/07/21/mongodb-odm-query-builder-api.html", + "slug": "mongodb-odm-query-builder-api", + "title": "MongoDB ODM: Query Builder API", "authorName": "jwage", "authorEmail": "", - "contents": "

    \n\nOver the past several months, Doctrine has done some growing up. While\nthe code has been under constant development for over 2 years, it hasn't\nbeen until the last 6 months that Doctrine has gotten a proper home and\ninfrastructure to support the growth of the project over the coming\nyears. Some of the things we've been able to accomplish are listed\nbelow:\n\n

    • \n\nStandardized svn and trac urls to svn/trac.phpdoctrine.org\n\n
    • \n\nBrand new design and official logo by Phu Son\n\n
    • \n\nSetup donation collections for the Doctrine project\n\n
    • \n\nMigrated doctrine.pengus.net to phpdoctrine.org permanently\n\n
    • \n\nInitiated proper package/release branch management to ensure stability\nfor our users\n\n
    • \n\nAnd of course continuing development towards 1.0\n\n

    \n\nAll these things are great for the project and we hope it serves the\nproject well in the long run. Now we have some plans from today on. Soon\nwe will begin to phase out the 0.9 branch completely and it will be\nreplaced with the 0.10 branch. In the coming days we will release 0.9.1\nand 0.10.1. The next release after that will be 0.10.2 and the 0.9\nbranch will officially not be supported any longer. Everyone will be\nrecommended to upgrade to 0.10.2. On another note, trunk development\ntowards 1.0 has been furious in the past month or so. Romanb has\nspearheaded the re factorings required to bring Doctrine to the level\nrequired for a 1.0 release. We will continue developing in trunk towards\n1.0 while maintaining the 0.10.x branch bringing you bug fixes daily.\n\n

    \n\n\n", - "date": "2008-02-14 00:00:00" + "contents": "The Doctrine MongoDB Object Document Mapper includes a fluent object\noriented API for building queries to execute against MongoDB. Recently\nsome changes were made to the API to simplify it and make it more\nreadable. This blog post aims to demonstrate and introduce the new API\nto you!\n\nQuery Types\n===========\n\nThe API still supports all the types of queries you would expect:\n\n- [find](#find)\n- [insert](#insert)\n- [update](#update)\n- [delete](#delete)\n\nContinue reading to see examples for each of the above types of queries!\n\n\\#\\# Find\n\nYou can easily find documents by just creating a new `Query` object with\nthe `createQuery()` method. A new `Query` object defaults to a `find`\nquery so you just need to pass the name of the document to query for:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User');\n~~~~\n\nYou can change the document being queried for by using the `find()`\nmethod:\n\n~~~~ {.sourceCode .php}\nfind('Project');\n~~~~\n\nConditions\n----------\n\nYou can limit the returned documents by specifying some conditions:\n\n~~~~ {.sourceCode .php}\nfield('title')->equals('The Doctrine Project');\n~~~~\n\nMaybe you want to only return projects created after today:\n\n~~~~ {.sourceCode .php}\nfield('createdAt')->greaterThan(new MongoDate(time()));\n~~~~\n\nYou can even a condition on an embedded document:\n\n~~~~ {.sourceCode .php}\nfield('profile.firstName')->equals('Jonathan');\n~~~~\n\nAlso, you can add a condition for a referenced document to filter by id:\n\n~~~~ {.sourceCode .php}\nfield('account.$id')->equals($accountId);\n~~~~\n\nThe `field()` method specifies the current field to add the conditions\nto. You can optionally use the magical `__call()` feature of the `Query`\nobject to specify the current field as well:\n\n~~~~ {.sourceCode .php}\ncreatedAt()->greaterThan(new MongoDate(time()));\n~~~~\n\nAll the methods you'd expect can be used in combination with the\n`field()` method for adding conditions to your query:\n\n- equal(\\$value)\n- where(\\$javascript)\n- not(\\$value)\n- in(\\$values)\n- notIn(\\$values)\n- notEqual(\\$value)\n- greaterThan(\\$value)\n- greaterThanOrEq(\\$value)\n- lessThan(\\$value)\n- lessThanOrEq(\\$value)\n- range(\\$start, \\$end)\n- size(\\$size)\n- exists(\\$bool)\n- type(\\$type)\n- all(\\$values)\n- mod(\\$mod)\n\n\\#\\# Insert\n\nYou can easily insert new documents using the `Query` API as well. Just\nuse the `insert()` method in combination with `field()` and `set()`:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->insert()\n ->field('username')->set('jwage')\n ->field('password')->set('password');\n~~~~\n\nIf you want to set the new document to insert you can use the\n`setNewObj()` method:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->insert()\n ->setNewObj(array(\n 'username' => 'jwage',\n 'password' => 'password'\n ));\n~~~~\n\n\\#\\# Update\n\nIf you want to update a document you can use the `update()` method in\ncombination with `field()`, `set()` and conditions. Here is an example\nwhere we create a query to update a user with the username `jwage` and\ngive him a new password:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->update()\n ->field('password')->set('newpassword')\n ->field('username')->equals('jwage');\n~~~~\n\n\\#\\# Delete\n\nYou can delete documents as well by using the `delete()` method in\ncombination with conditions. Here is an example where we create a query\nto delete the user document with a username of `jwage`:\n\n~~~~ {.sourceCode .php}\ncreateQuery('User')\n ->delete()\n ->field('username')->equals('jwage');\n~~~~\n\nAs you can see the fluent API makes it a bit easier to express queries\nthat are easy to read in the same way you would read english from left\nto right. We hope to enhance and improve this API even more before we\nrelease the stable 1.0 version.\n\nYou can read more about the Query Builder API in the\n[documentation](https://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/query-builder-api/en#query-builder-api).\n", + "date": "2010-07-21 00:00:00" }, { - "url": "/2010/07/07/implementing-aggregate-fields.html", - "slug": "implementing-aggregate-fields", - "title": "Implementing Aggregate Fields with Doctrine 2", + "url": "/2016/07/27/doctrine-mongodb-odm-release-1.1.1.html", + "slug": "doctrine-mongodb-odm-release-1.1.1", + "title": "Doctrine MongoDB ODM release 1.1.1 ", + "authorName": "Maciej Malarz", + "authorEmail": "malarzm@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine MongoDB\nODM\n[1.1.1](https://github.com/doctrine/mongodb-odm/releases/tag/1.1.1).\n\nBug fixes in this release\n=========================\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.1.md#111-2016-07-27).\nA full list of issues and pull requests included in this release may be\nfound in the [1.1.1\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.1.1).\n\nInstallation\n============\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.1.1\"\n }\n}\n```\n\nFuture Releases\n===============\n\nWork on the much anticipated 2.0 version of MongoDB ODM with support for\nthe new MongoDB driver is beginning; however we are unable to set a\nrelease date yet. Development will likely take some time and thus we\nhave scheduled a 1.2 version to be released before 2.0. Version 1.2 will\ninclude all features planned for 2.0 that can be introduced in a\nbackward compatible way as well as new deprecation notices for\nfunctionality we plan to remove in 2.0, which we hope will ease future\nmigration.\n\nDoctrine MongoDB ODM release 1.0.7\n==================================\n\nWe are also happy to announce the immediate availability of Doctrine\nMongoDB ODM\n[1.0.7](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.7).\n\nNotable fixes may be found in the\n[changelog](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#107-2016-07-27).\nA full list of issues and pull requests included in this release may be\nfound in the [1.0.7\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.7).\n\nYou can install the latest version using the following `composer.json`\ndefinitions:\n\n```json\n{\n \"require\": {\n \"doctrine/mongodb-odm\": \"^1.0.7\"\n }\n}\n```\n", + "date": "2016-07-27 00:00:00" + }, + { + "url": "/2012/05/29/symfony-live-2012-hackday.html", + "slug": "symfony-live-2012-hackday", + "title": "Symfony Live 2012 Hackday", "authorName": "beberlei", "authorEmail": "", - "contents": "You will often come across the requirement to display aggregate values\nof data that can be computed by using the MIN, MAX, COUNT or SUM SQL\nfunctions. For any ORM this is a tricky issue traditionally. Doctrine 2\noffers several ways to get access to these values and this article will\ndescribe all of them from different perspectives.\n\nYou will see that aggregate fields can become very explicit features in\nyour domain model and how this potentially complex business rules can be\neasily tested.\n\nAn example model\n================\n\nSay you want to model a bank account and all their entries. Entries into\nthe account can either be of positive or negative money values. Each\naccount has a credit limit and the account is never allowed to have a\nbalance below that value.\n\nFor simplicity we live in a world were money is composed of integers\nonly. Also we omit the receiver/sender name, stated reason for transfer\nand the execution date. These all would have to be added on the `Entry`\nobject.\n\nOur entities look like:\n\n~~~~ {.sourceCode .php}\nno = $no;\n $this->maxCredit = $maxCredit;\n $this->entries = new \\Doctrine\\Common\\Collections\\ArrayCollection();\n }\n}\n\n/**\n * @Entity\n */\nclass Entry\n{\n /** @Id @GeneratedValue @Column(type=\"integer\") */\n private $id;\n\n /**\n * @ManyToOne(targetEntity=\"Account\", inversedBy=\"entries\")\n */\n private $account;\n\n /**\n * @Column(type=\"integer\")\n */\n private $amount;\n\n public function __construct($account, $amount)\n {\n $this->account = $account;\n $this->amount = $amount;\n // more stuff here, from/to whom, stated reason, execution date and such\n }\n\n public function getAmount()\n {\n return $this->amount;\n }\n}\n~~~~\n\nUsing DQL\n=========\n\nThe Doctrine Query Language allows you to select for aggregate values\ncomputed from fields of your Domain Model. You can select the current\nbalance of your account by calling:\n\n~~~~ {.sourceCode .php}\ncreateQuery($dql)\n ->setParameter(1, $myAccountId)\n ->getSingleScalarResult();\n~~~~\n\nThe `$em` variable in this (and forthcoming) example holds the Doctrine\n`EntityManager`. We create a query for the SUM of all amounts (negative\namounts are withdraws) and retrieve them as a single scalar result,\nessentially return only the first column of the first row.\n\nThis approach is simple and powerful, however it has a serious drawback.\nWe have to execute a specific query for the balance whenever we need it.\n\nTo implement a powerful domain model we would rather have access to the\nbalance from our `Account` entity during all times (even if the Account\nwas not persisted in the database before!).\n\nAlso an additional requirement is the max credit per `Account` rule.\n\nWe cannot reliably enforce this rule in our `Account` entity with the\nDQL retrieval of the balance. There are many different ways to retrieve\naccounts. We cannot guarantee that we can execute the aggregation query\nfor all these use-cases, let alone that a userland programmer checks\nthis balance against newly added entries.\n\nUsing your Domain Model\n=======================\n\n`Account` and all the `Entry` instances are connected through a\ncollection, which means we can compute this value at runtime:\n\n~~~~ {.sourceCode .php}\nentries AS $entry) {\n $balance += $entry->getAmount();\n }\n return $balance;\n }\n}\n~~~~\n\nNow we can always call `Account::getBalance()` to access the current\naccount balance.\n\nTo enforce the max credit rule we have to implement the \"Aggregate Root\"\npattern as described in Eric Evans book on Domain Driven Design.\nDescribed with one sentence, an aggregate root controls the instance\ncreation, access and manipulation of its children.\n\nIn our case we want to enforce that new entries can only added to the\n`Account` by using a designated method. The `Account` is the aggregate\nroot of this relation. We can also enforce the correctness of the\nbi-directional `Account` \\<-\\> `Entry` relation with this method:\n\n~~~~ {.sourceCode .php}\nassertAcceptEntryAllowed($amount);\n\n $e = new Entry($this, $amount);\n $this->entries[] = $e;\n return $e;\n }\n}\n~~~~\n\nNow look at the following test-code for our entities:\n\n~~~~ {.sourceCode .php}\nassertEquals(0, $account->getBalance());\n\n $account->addEntry(500);\n $this->assertEquals(500, $account->getBalance());\n\n $account->addEntry(-700);\n $this->assertEquals(-200, $account->getBalance());\n }\n\n public function testExceedMaxLimit()\n {\n $account = new Account(\"123456\", $maxCredit = 200);\n\n $this->setExpectedException(\"Exception\");\n $account->addEntry(-1000);\n }\n}\n~~~~\n\nTo enforce our rule we can now implement the assertion in\n`Account::addEntry`:\n\n~~~~ {.sourceCode .php}\ngetBalance() + $amount;\n $allowedMinimalBalance = ($this->maxCredit * -1);\n if ($futureBalance < $allowedMinimalBalance) {\n throw new Exception(\"Credit Limit exceeded, entry is not allowed!\");\n }\n }\n}\n~~~~\n\nWe haven't talked to the entity manager for persistence of our account\nexample before. You can call `EntityManager::persist($account)` and then\n`EntityManager::flush()` at any point to save the account to the\ndatabase. All the nested `Entry` objects are automatically flushed to\nthe database also.\n\n~~~~ {.sourceCode .php}\naddEntry(500);\n$account->addEntry(-200);\n$em->persist($account);\n$em->flush();\n~~~~\n\nThe current implementation has a considerable drawback. To get the\nbalance, we have to initialize the complete `Account::$entries`\ncollection, possibly a very large one. This can considerably hurt the\nperformance of your application.\n\nUsing an Aggregate Field\n========================\n\nTo overcome the previously mentioned issue (initializing the whole\nentries collection) we want to add an aggregate field called \"balance\"\non the Account and adjust the code in `Account::getBalance()` and\n`Account:addEntry()`:\n\n~~~~ {.sourceCode .php}\nbalance;\n }\n\n public function addEntry($amount)\n {\n $this->assertAcceptEntryAllowed($amount);\n\n $e = new Entry($this, $amount);\n $this->entries[] = $e;\n $this->balance += $amount;\n return $e;\n }\n}\n~~~~\n\nThis is a very simple change, but all the tests still pass. Our account\nentities return the correct balance. Now calling the\n`Account::getBalance()` method will not occour the overhead of loading\nall entries anymore. Adding a new Entry to the `Account::$entities` will\nalso not initialize the collection internally.\n\nAdding a new entry is therefore very performant and explictly hooked\ninto the domain model. It will only update the account with the current\nbalance and insert the new entry into the database.\n\nTackling Race Conditions with Aggregate Fields\n==============================================\n\nWhenever you denormalize your database schema race-conditions can\npotentially lead to inconsistent state. See this example:\n\n~~~~ {.sourceCode .php}\nfind('Bank\\Entities\\Account', $accId);\n\n// request 2 account\n$account2 = $em->find('Bank\\Entities\\Account', $accId);\n\n$account1->addEntry(-200);\n$account2->addEntry(-200);\n\n// now request 1 and 2 both flush the changes.\n~~~~\n\nThe aggregate field `Account::$balance` is now -200, however the SUM\nover all entries amounts yields -400. A violation of our max credit\nrule.\n\nYou can use both optimistic or pessimistic locking to save-guard your\naggregate fields against this kind of race-conditions. Reading Eric\nEvans DDD carefully he mentions that the \"Aggregate Root\" (Account in\nour example) needs a locking mechanism.\n\nOptimistic locking is as easy as adding a version column:\n\n~~~~ {.sourceCode .php}\nfind('Bank\\Entities\\Account', $accId, LockMode::PESSIMISTIC_READ);\n~~~~\n\nKeeping Updates and Deletes in Sync\n===================================\n\nThe example shown in this article does not allow changes to the value in\n`Entry`, which considerably simplifies the effort to keep\n`Account::$balance` in sync. If your use-case allows fields to be\nupdated or related entities to be removed you have to encapsulate this\nlogic in your \"Aggregate Root\" entity and adjust the aggregate field\naccordingly.\n\nConclusion\n==========\n\nThis article described how to obtain aggregate values using DQL or your\ndomain model. It showed how you can easily add an aggregate field that\noffers serious performance benefits over iterating all the related\nobjects that make up an aggregate value. Finally I showed how you can\nensure that your aggregate fields do not get out of sync due to\nrace-conditions and concurrent access.\n", - "date": "2010-07-07 00:00:00" + "contents": "Next week will be [Symfony Live\n2012](https://paris2012.live.symfony.com/) in Paris and the Doctrine\nDBAL/ORM Team will be represented by Guilherme, Alexander, Marco and me.\nJeremy is also there and knows the MongoDB ODM inside out.\n\nGuilherme and Jeremy will give two talks:\n\n- \"Using MongoDB responsibly\" Jeremy Mikola\n- \"ORMs don't kill your database, developers do!\" Guilherme Blanco\n\nAdditionally all of us will participate in the hackday on saturday.\n\nDoctrine 2.3 is around the corner (propably during July) and we still\nhave some features that we want to finalize and work on together. Feel\nfree to join us if you want to contribute. We are always looking for\ninterested developers that help with tickets, support, documentatation\nor anything else.\n\nDuring the conference you can find us by looking for the [dark blue\nDoctrine\nt-shirts](http://distilleryimage8.instagram.com/30f1aa1ea9d311e1a92a1231381b6f02_7.jpg).\n", + "date": "2012-05-29 00:00:00" }, { - "url": "/2015/04/15/cache-1-4-1.html", - "slug": "cache-1-4-1", - "title": "Cache 1.4.1 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Cache\n1.4.1.\n\nThis release fixes a series of bugs related with `null`, `false` or\ntruncated data in the `SQLite3` and `Memcache` adapters\n([\\#62](https://github.com/doctrine/cache/pull/62),\n[\\#65](https://github.com/doctrine/cache/pull/65),\n[\\#67](https://github.com/doctrine/cache/pull/67)).\n\nImprovements have been made to reduce the `SQLite3` cache adapter memory\nusage ([\\#64](https://github.com/doctrine/cache/pull/64)).\n\nIf you use an opcode cache such as OPCache (available since PHP 5.5),\nyou will get major performance improvements in read operations in the\n`PhpFileCache`, which shouldn't cause any stat calls at all now\n([\\#69](https://github.com/doctrine/cache/pull/69)).\n\nMulti-get support was built into the `Redis` adapter\n([\\#60](https://github.com/doctrine/cache/pull/60)).\n\nA new `VoidCache` adapter has been introduced - useful for testing\n([\\#61](https://github.com/doctrine/cache/pull/61)).\n\nYou can find the complete changelog for this release in the [release\nnotes](https://github.com/doctrine/cache/releases/tag/v1.4.1).\n\nYou can install the Cache component using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/cache\": \"1.4.1\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-04-15 00:00:00" + "url": "/2016/02/02/doctrine_module_1_0_0_stable_release.html", + "slug": "doctrine_module_1_0_0_stable_release", + "title": "DoctrineModule 1.0.0 we have a stable release", + "authorName": "Gianluca Arbezzano", + "authorEmail": "gianarb92@gmail.com", + "contents": "We are happy to announce the first stable release for DoctrineModule!\n[1.0.0](https://github.com/doctrine/DoctrineModule/releases/tag/1.0.0)\nis ready to go after a couple of years of work.\n\nThe [\"Initial\nCommit\"](https://github.com/doctrine/DoctrineModule/commit/13ededfcf10f9db6a4113cd9bdb4956ea145b6cd)\ndates back to the date Oct 22, 2011 after 4 years, we are ready.\n\nThanks at all for yours contributions!\n\nUpdate your composer configuration to use the stable version of this\nproject.\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-module\": \"~1.0\"\n }\n}\n```\n\nChanges since 0.10.0\n====================\n\nThis is a list of issues resolved in `1.0.0` since `0.10.0`:\n\n- [[\\#523]](https://github.com/doctrine/DoctrineModule/pull/523)\n Remove deprecated api call from test\n- [[\\#547]](https://github.com/doctrine/DoctrineModule/pull/547) Allow\n for the use of ZendCacheServiceStorageCacheAbstractServiceFactory\n\nPlease report any issues you may have with the update on the mailing\nlist or on [GitHub](https://github.com/doctrine/DoctrineModule/issues).\n\nRemember to read [our\ndocumentation](https://github.com/doctrine/DoctrineModule/tree/master/docs)\nand improve it with your knowledge.\n", + "date": "2016-02-02 00:00:00" }, { - "url": "/2008/11/25/doctrine-1-0-4-released.html", - "slug": "doctrine-1-0-4-released", - "title": "Doctrine 1.0.4 Released", + "url": "/2011/02/19/doctrine-mongodb-odm-beta2-released.html", + "slug": "doctrine-mongodb-odm-beta2-released", + "title": "Doctrine MongoDB ODM BETA2 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Today we are happy to introduce the immediate availability of Doctrine\n1.0.4. This is a major bug fix release for the 1.0 branch of Doctrine.\nIt contains over 75 bug fixes and it is recommended that you upgrade as\nsoon as possible. As always you can view the [change\nlog](https://www.doctrine-project.org/change_log/1_0_4) on the website\nand [download here](https://www.doctrine-project.org/download).\n", - "date": "2008-11-25 00:00:00" - }, - { - "url": "/2014/09/23/orm-245.html", - "slug": "orm-245", - "title": "ORM 2.4.5 released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.5, which fixes [an HHVM/PHP7 issue related with\nfunc\\_get\\_args()](https://3v4l.org/NIqRh).\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.5](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10722)\n - 1 issue fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.5\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2014-09-23 00:00:00" + "contents": "After a long wait, I am happy to bring you the second beta release of\nthe new Doctrine persistence layer for [MongoDB](https://www.mongodb.com).\nThis release includes dozens of bug fixes and improvements and it is\nrecommended that you upgrade as soon as possible. You can learn about\nhow to get the code here.\n\nAbout the Release\n=================\n\nMy full-time job is working at OpenSky, where we use the MongoDB ODM and\nmany of the improvements and work are a result of the development we've\nbeen doing there. The changelog is very large as the development spanned\nalmost 5 months with commits from over 15 developers all over the world.\nHere are some of the people who've contributed this release:\n\n- [avalanche123](https://github.com/avalanche123)\n- [bobthecow](https://github.com/bobthecow)\n- [kriswallsmith](https://github.com/kriswallsmith)\n- [jmikola](https://github.com/jmikola)\n- [ornicar](https://github.com/ornicar)\n- [jseverson](https://github.com/jseverson)\n- [pgodel](https://github.com/pgodel)\n- [weaverryan](https://github.com/weaverryan)\n- [docteurklein](https://github.com/docteurklein)\n- [ThomasAdam](https://github.com/ThomasAdam)\n- [dan](https://github.com/dan)\n- [fabpot](https://github.com/fabpot)\n- [IamPersistent](https://github.com/IamPersistent)\n- [igorw](https://github.com/igorw)\n- [Vrtak-CZ](https://github.com/Vrtak-CZ)\n\nDocumentation\n=============\n\nCheck out the\n[documentation](https://www.doctrine-project.org/docs/mongodb_odm/1.0/en)\nas it is has been completely updated and improved for this release. We\nfully migrated the docs to use reST and Sphinx to generate our\ndocumentation so it is much improved over the previous versions.\n\nDoctrine Project as a Whole\n===========================\n\nThe MongoDB ODM is one of a few new projects under the Doctrine\numbrella. You may also want to take a look at the CouchDB ODM and the\nPHP Content Repository ODM. These projects are all very exciting for the\nDoctrine Project but more for PHP as a whole. They are a new generation\nof libraries built for PHP 5.3 that bring a higher level of code quality\nto your PHP projects.\n\nIf you encounter any problems, bugs or issues please report them in\nJira. If you have any questions you can try a mailing list or IRC. Read\nmore about the Doctrine community here.\n", + "date": "2011-02-19 00:00:00" }, { - "url": "/2008/04/30/wow-1000-tickets.html", - "slug": "wow-1000-tickets", - "title": "Wow! 1000 tickets", + "url": "/2009/11/10/doctrine-1-2-0-beta2-released.html", + "slug": "doctrine-1-2-0-beta2-released", + "title": "Doctrine 1.2.0-BETA2 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Last night the 1000th ticket came rolling in. This is just a reminder to\nthe fact that Doctrine while still young, has had a very long and\nevolutionary life so far. The growth this first quarter in the community\nand contributions from all over the world really shows that Doctrine has\na bright future in PHP and I look forward to seeing all the doors that\nDoctrine will open. Thanks everyone!\n", - "date": "2008-04-30 00:00:00" - }, - { - "url": "/2015/12/31/cache-1-6-0.html", - "slug": "cache-1-6-0", - "title": "Cache 1.6.0 Released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine Cache\n[1.6.0](https://github.com/doctrine/cache/releases/tag/v1.5.2).\n\nCache 1.6.0\n===========\n\nSupport for PHP versions below 5.5.0 was removed: please remember that\nif you are still using PHP 5.4.x or lower, the PHP project [does not\nprovide support for those versions\nanymore](https://secure.php.net/supported-versions.php).\n[\\#109](https://github.com/doctrine/cache/pull/109)\n\nNative [APCu](https://github.com/krakjoe/apcu) support was introduced:\nif you run newer versions of APCu, then you can use the new\n[ApcuCache](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/ApcuCache.php)\nadapter. [\\#115](https://github.com/doctrine/cache/pull/117)\n\nA\n[MultiPutCache](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/MultiPutCache.php)\ninterface was introduced: the\n[CacheProvider](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/CacheProvider.php)\nimplements it by default now. This interface can lead to improved\nperformance when saving multiple keys at once, if your cache adapter\nsupports such an operation.\n[\\#117](https://github.com/doctrine/cache/pull/117)\n\nThe\n[ArrayCache](https://github.com/doctrine/cache/blob/v1.6.0/lib/Doctrine/Common/Cache/ArrayCache.php)\nnow honors the given cache entries TTL, making it possible to use it\neven in long running processes without the risk of dealing with stale\ndata. [\\#130](https://github.com/doctrine/cache/pull/130)\n\nInstallation\n============\n\nYou can install the Cache component using the following `composer.json`\ndefinitions:\n\n```bash\ncomposer require doctrine/cache:^1.6\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-12-31 00:00:00" - }, - { - "url": "/2019/05/30/doctrine-webinars.html", - "slug": "doctrine-webinars", - "title": "Doctrine Webinars", - "authorName": "Jonathan H. Wage", - "authorEmail": "jonwage@gmail.com", - "contents": "As mentioned in the [Monetizing Open Source](/2019/05/21/monetizing-open-source.html) blog post,\nDoctrine will be regularly organizing online [webinars](/events.html) hosted with [Zoom](https://zoom.us/).\nYou can join from anywhere in the world with a laptop and an internet connection. We will\nhave topics presented by Doctrine core team members and members of the community.\n\nTo get things started we have a few webinars scheduled for the next few months:\n\n- [Doctrine for Beginners](/events/2/doctrine-for-beginners.html) on June 25th by Jonathan Wage\n- [Getting Started with Doctrine MongoDB ODM](/events/3/getting-started-with-doctrine-mongodb-odm.html) on July 16th by Andreas Braun\n- [PHP Internals for the Inquisitive Developer](/events/1/php-internals-for-the-inquisitive-developer.html) on September 10th by Jeremy Mikola\n\nDon't see something that you are interested in? [Suggest](https://www.doctrine-project.org/events/suggest.html) an event topic you would like to see and we will see what we can do. We will be publishing new events in the coming weeks so check back soon!\n", - "date": "2019-05-30 00:00:00" + "contents": "Today I am happy to bring you the second beta of the latest Doctrine 1.2\nversion. This is a solid bug fix release and we're getting very close to\na stable 1.2 version of Doctrine! It is recommended that you upgrade and\n[report](https://www.doctrine-project.org/jira) any issues in\n[Jira](https://www.doctrine-project.org/jira) to help us test for\nregressions between 1.1 and 1.2.\n\nTake a look at the\n[changelog](https://www.doctrine-project.org/change_log/1_2_0_BETA2) and\ntry it out by [downloading](https://www.doctrine-project.org) it.\n", + "date": "2009-11-10 00:00:00" }, { - "url": "/2014/12/20/annotations-123.html", - "slug": "annotations-123", - "title": "Annotations 1.2.3 released", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of\n`doctrine/annotations` 1.2.3.\n\nThe release includes fixes for regressions that were introduced by some\nbug-fixes in version 1.2.2:\n\n- [49: \\#46 - applying correct chmod() to generated cache\n file](https://github.com/doctrine/annotations/pull/49)\n- [50: Hotfix: match escaped quotes (revert\n \\#44)](https://github.com/doctrine/annotations/pull/50)\n\nYou can install the Annotations library using Composer and the following\n`composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/annotations\": \"1.2.3\"\n }\n}\n~~~~\n", - "date": "2014-12-20 00:00:00" + "url": "/2008/07/02/doctrine-1-0-and-symfony-1-2.html", + "slug": "doctrine-1-0-and-symfony-1-2", + "title": "Doctrine 1.0 and symfony 1.2", + "authorName": "jwage", + "authorEmail": "", + "contents": "This morning Fabien from the symfony project announced the roadmap for\nthe next major version of symfony, 1.2. He announced that Doctrine would\nbe officially supported as a \"first class citizen.\" The time couldn't be\nbetter as symfony 1.2 is scheduled to be released in October and\nDoctrine is slated to release 1.0 around the same time. This is good\nnews for Doctrine, symfony and more importantly PHP in general. I look\nforward to seeing what comes of all this in the coming months.\n", + "date": "2008-07-02 00:00:00" }, { - "url": "/2010/07/30/doctrine-mongodb-odm-1-0-0alpha2-released.html", - "slug": "doctrine-mongodb-odm-1-0-0alpha2-released", - "title": "Doctrine MongoDB ODM 1.0.0ALPHA2 Released", + "url": "/2008/05/31/0-11-0-rc3-released.html", + "slug": "0-11-0-rc3-released", + "title": "0.11.0-RC3 Released", "authorName": "jwage", "authorEmail": "", - "contents": "Today I am happy to bring you the second alpha release of the brand new\nDoctrine MongoDB Object Document Mapper (ODM). The release contains\nseveral bug fixes and a few enhancements. You now have the ability to\nmix types of documents in references and embedded documents. You can\nread the [blog\npost](https://www.doctrine-project.org/2010/07/20/mixing-types-of-documents.html)\nabout mixing types of documents to learn more.\n\n

    \n\nBug\n\n

    \n
      \n
    • \n\n[MODM-12] - Undefined variable error\n\n
    • \n
    • \n\n[MODM-13] - Problems with merge()\n\n
    • \n
    • \n\n[MODM-14] - Default database when @Document annotation does not contain\na db attribute.\n\n
    • \n
    • \n\n[MODM-16] - loadById failing on custom ids\n\n
    • \n
    • \n\n[MODM-17] - Multiple array / object with same content/properties do not\nget persisted\n\n
    • \n
    • \n\n[MODM-19] - Field annotation missing \"name\" support\n\n
    • \n
    • \n\n[MODM-20] - SINGLE\\_COLLECTION inheritance does not work\n\n
    • \n
    • \n\n[MODM-21] - AnnotationDriver doesn't allow custom types\n\n
    • \n
    • \n\n[MODM-22] - Document incorrectly scheduled for update\n\n
    • \n
    • \n\n[MODM-25] - AnnotationDriver.php Line 175\n\n
    • \n
    • \n\n[MODM-28] - xml mapping : embedded-document node is ignored, can't\npersist\n\n
    • \n
    \n\n

    \n\nImprovement\n\n

    \n
      \n
    • \n\n[MODM-24] - Hydratation of extra fields\n\n
    • \n
    • \n\n[MODM-26] - MongoCursor doesn't implement Countable interface\n\n
    • \n
    \n\nDownload\n========\n\nYou can directly download the PEAR package file\n[here](https://www.doctrine-project.org/downloads/DoctrineMongoDBODM-1.0.0ALPHA2.tgz).\nYou can manually extract the code or you can install the PEAR package\nfile locally.\n\n $ pear install /path/to/DoctrineMongoDBODM-1.0.0ALPHA2.tgz\n\nOr you can checkout from github:\n\n $ git clone git://github.com/doctrine/mongodb-odm.git mongodb_odm\n $ cd mongodb_odm\n $ git checkout 1.0.0ALPHA2\n\nAnd you can also install via PEAR:\n\n $ pear install pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0ALPHA2\n", - "date": "2010-07-30 00:00:00" + "contents": "A little late, but the third release candidate of the 0.11.0 version of\nDoctrine has been released. This will be the last scheduled release\ncandidate before 0.11 becomes the latest stable version of Doctrine.\nThis release contains dozens of bug fixes and a few small enhancements.\nThe change log can be read here.\n", + "date": "2008-05-31 00:00:00" }, { - "url": "/2009/10/02/doctrine-fedora-package.html", - "slug": "doctrine-fedora-package", - "title": "Doctrine Fedora Package", + "url": "/2008/10/02/doctrine-1-1-development-begins.html", + "slug": "doctrine-1-1-development-begins", + "title": "Doctrine 1.1 Development Begins", "authorName": "jwage", "authorEmail": "", - "contents": "Thanks to Christof Damian, a loyal Doctrine user, if you are a Fedora\nuser you can now yum install the latest stable version of Doctrine.\nBelow is what you can run from the command line to get it!\n\n yum install php-doctrine-Doctrine\n\nEnjoy and let us know if you have any issues. Thanks\n", - "date": "2009-10-02 00:00:00" + "contents": "", + "date": "2008-10-02 00:00:00" }, { - "url": "/2009/11/16/doctrine-1-2-0-beta3-released.html", - "slug": "doctrine-1-2-0-beta3-released", - "title": "Doctrine 1.2.0 BETA3 Released", + "url": "/2015/12/04/common-2-5-2-and-2-6-0.html", + "slug": "common-2-5-2-and-2-6-0", + "title": "Common 2.5.2 and 2.6.0 Released", + "authorName": "Marco Pivetta", + "authorEmail": "ocramius@gmail.com", + "contents": "We are happy to announce the immediate availability of Doctrine Common\n[2.5.2](https://github.com/doctrine/common/releases/tag/v2.5.2) and\n[2.6.0](https://github.com/doctrine/common/releases/tag/v2.6.0).\n\nCommon 2.5.2\n============\n\n`chmod()` warnings caused by proxy generation are now silenced\n[\\#383](https://github.com/doctrine/common/pull/383)\n[DCOM-299](https://github.com/doctrine/common/issues/611).\n\n`SymfonyFileLocator#getAllClassNames()` was dropping some classes: now\nfixed [\\#384](https://github.com/doctrine/common/pull/384)\n[DCOM-301](https://github.com/doctrine/common/issues/615).\n\nCorrected fatal error triggered by\n`AbstractManagerRegistry#getManagerForClass()` when no parent class is\nfound for a proxy [\\#387](https://github.com/doctrine/common/pull/387)\n[DCOM-303](https://github.com/doctrine/common/issues/617).\n\nYou can find the complete changelog for this release in the [v2.5.2\nrelease\nnotes](https://www.doctrine-project.org/jira/projects/DCOM/versions/10820).\n\nCommon 2.6.0\n============\n\nThis release includes all of the fixes reported above for 2.5.2, as well\nas following changes:\n\nProxy generation now supports PHP 7.0+ scalar type hints and return\ntypes [\\#376](https://github.com/doctrine/common/pull/376)\n[DCOM-294](https://github.com/doctrine/common/issues/606).\n\nSwitched autoloading to PSR-4\n[\\#389](https://github.com/doctrine/common/pull/389)\n[DCOM-305](https://github.com/doctrine/common/issues/619).\n\nAdded a `.gitattributes` to the repositories, reducing the size of the\npackage that is installed by composer\n[\\#380](https://github.com/doctrine/common/pull/380)\n[DCOM-296](https://github.com/doctrine/common/issues/608).\n\nYou can find the complete changelog for this release in the [v2.6.0\nrelease\nnotes](https://www.doctrine-project.org/jira/projects/DCOM/versions/10735).\n\nInstallation\n============\n\nYou can install the Common component using Composer and one of the\nfollowing `composer.json` definitions:\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.5.2\"\n }\n}\n```\n\n```json\n{\n \"require\": {\n \"doctrine/common\": \"~2.6.01\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2015-12-04 00:00:00" + }, + { + "url": "/2009/05/28/doctrine-database-abstraction-layer.html", + "slug": "doctrine-database-abstraction-layer", + "title": "Doctrine Database Abstraction Layer", "authorName": "jwage", "authorEmail": "", - "contents": "We're getting very close to a stable Doctrine 1.2 with the latest BETA3\nbeing released today. This will most likely be the last beta release\nbefore our first release candidate next week. If everything goes as\nplanned we will have a stable release hopefully a little before the end\nof November.\n\nYou can view the [change\nlog](https://www.doctrine-project.org/change_log/1_2_0_BETA3) or\n[download](https://www.doctrine-project.org/download#1_2) this release\nnow. If you find any issues please open tickets in\n[Jira](https://www.doctrine-project.org/jira).\n", - "date": "2009-11-16 00:00:00" + "contents": "One of the greatest advantages to using Doctrine is what is under the\nhood that powers it. That is the database abstraction layer. This\npowerful layer is based off of a lot of different code from various\npopular PHP projects such as PEAR MDB2 and Zend\\_Db. It provides you a\nnice intuitive interface for retrieving information about your database\nschema as well as issuing DDL statements to change it.\n\nPublic Method Index\n===================\n\nThe database abstraction layer features the following methods in 1.x and\nsome new methods added in 2.0.\n\n1.x Methods\n-----------\n\n- listDatabases()\n- listFunctions()\n- listTriggers()\n- listSequences()\n- listTableConstraints()\n- listTableColumns()\n- listTableIndexes()\n- listTables()\n- listUsers()\n- listViews()\n- dropDatabase()\n- dropTable()\n- dropIndex()\n- dropConstraint()\n- dropForeignKey()\n- dropSequence()\n- createDatabase()\n- createTable()\n- createSequence()\n- createConstraint()\n- createIndex()\n- createForeignKey()\n- alterTable()\n\nNew Methods in 2.0\n------------------\n\n- renameTable()\n- addTableColumn()\n- removeTableColumn()\n- changeTableColumn()\n- renameTableColumn()\n- dropView()\n- createView()\n\nSome 2.0 Examples\n=================\n\nHere are some code examples using the Doctrine 2.0 Database Abstraction\nLayer. We'll show you how you can execute these examples yourself by\nchecking out Doctrine 2.0 from SVN and setting up a PHP script to test\nwith.\n\n> **TIP** The database abstraction layer can be used standalone so if\n> you just want a nice standard layer for communicating with your\n> database then Doctrine works for you too.\n\nCheckout Doctrine\n-----------------\n\n $ svn co http://svn.doctrine-project.org/trunk doctrine2\n $ cd doctrine2\n\nCreate Test Script\n------------------\n\nCreate a new PHP script anywhere on your server and name it `test.php`.\nNow lets initialize Doctrine so we can work with it. First we need to\nset our `ClassLoader`.\n\n~~~~ {.sourceCode .php}\nsetBasePath('Doctrine', __DIR__ . '/lib');\n~~~~\n\nCreate Connection\n-----------------\n\nNow we need to create our `Connection` instance.\n\n~~~~ {.sourceCode .php}\n 'pdo_mysql',\n 'dbname' => 'mysql',\n 'user' => 'root',\n 'password' => ''\n);\n$driver = new \\Doctrine\\DBAL\\Driver\\PDOMySql\\Driver;\n$conn = new \\Doctrine\\DBAL\\Connection($connectionOptions, $driver);\n\n**NOTE** Notice how we are temporarily connecting to the special\ndatabase for MySQL named ``mysql``. We'll use this database to\nconnect to so we can create our test database.\n~~~~\n\nNow we can simply retrieve the `SchemaManager` instance from the\n`Connection` driver and begin to execute some of the methods we listed\nabove.\n\n~~~~ {.sourceCode .php}\ngetSchemaManager();\n~~~~\n\nThe first thing we could do is create the database by calling the\n`createDatabase()` method on the `$sm` instance.\n\n~~~~ {.sourceCode .php}\ncreateDatabase('doctrine2test');\n~~~~\n\nNow that we have the database created, change your `$connectionOptions`\nkey `dbname` to specify `doctrine2test` so that we connect to the new\ndatabase that we just created.\n\n~~~~ {.sourceCode .php}\n 'pdo_mysql',\n 'dbname' => 'doctrine2test',\n 'user' => 'root',\n 'password' => ''\n);\n\n// ...\n~~~~\n\nNow we can begin adding things to the new database. For example we could\nissue a command to create a new table.\n\n~~~~ {.sourceCode .php}\n array(\n 'type' => \\Doctrine\\DBAL\\Type::getType('integer'),\n 'autoincrement' => true,\n 'primary' => true,\n 'notnull' => true\n ),\n 'test' => array(\n 'type' => \\Doctrine\\DBAL\\Type::getType('string'),\n 'length' => 255\n )\n);\n\n$options = array();\n\n$sm->createTable('new_table', $columns, $options);\n~~~~\n\nThen after creating the table I can later add a new column to it.\n\n~~~~ {.sourceCode .php}\n \\Doctrine\\DBAL\\Type::getType('string'),\n 'length' => 255\n);\n\n$sm->addTableColumn('new_table', 'new_column', $column);\n~~~~\n\nOr I could even drop the table completely.\n\n~~~~ {.sourceCode .php}\ndropTable('new_table');\n\n**NOTE** Not all of the above listed methods are supported by every\nsingle DBMS. If your DBMS does not support the functionality then\nDoctrine will throw exceptions accordingly.\n~~~~\n\nAll the above example are very simple schema changes but Doctrine is\ncapable of manipulating very complex schemas from a standardized\nprogrammatic interface. The Doctrine Migrations extension makes use of\nthis layer heavily to do all the operations for changing your database\nschemas.\n", + "date": "2009-05-28 00:00:00" }, { - "url": "/2011/06/17/doctrine-2-0-6.html", - "slug": "doctrine-2-0-6", - "title": "Doctrine 2.0.6 DBAL and ORM Releases", + "url": "/2012/09/05/doctrine-2-3-rc3.html", + "slug": "doctrine-2-3-rc3", + "title": "Doctrine 2.3.0 RC3 released", "authorName": "beberlei", "authorEmail": "", - "contents": "On wednesday we released Doctrine 2.0.6 of DBAL and ORM. Both versions\ninclude some bugfixes, DBAL for identifier quoting with MSSQL and issues\nwith cascade remove, inheritance and the XML driver for the ORM.\n\nSee the changelogs for more details:\n\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10140)\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10141)\n\nGrab the download from our [PEAR\nChannel](http://pear.doctrine-project.org) or from the download section\nof our website.\n", - "date": "2011-06-17 00:00:00" + "contents": "**5.9.2012**\n\nWe released another release candidate of our upcoming Doctrine 2.3.0\nversion. This includes the Common, DBAL and ORM packages.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nSee the [2.3 Beta blog\npost](https://www.doctrine-project.org/2012/07/16/doctrine-2-3-beta.html) for\nsome information about changes in 2.3.\n\nYou can install the release candidate through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0-RC3\"\n },\n \"minimum-stability\": \"dev\"\n }\n\nIf you find any problems with your applications please report them on\nour [bugtracker](https://www.doctrine-project.org/jira).\n\nWhen no blocking issues occur we will release the 2.3.0 final on the\nweekend.\n", + "date": "2012-09-05 00:00:00" }, { - "url": "/2014/10/06/orm-246.html", - "slug": "orm-246", - "title": "ORM 2.4.6 released", + "url": "/2015/04/14/collections-1-3-0.html", + "slug": "collections-1-3-0", + "title": "Doctrine Collections 1.3.0 Release", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.6.\n\nWe fixed a PHP 5.6 compatibility issue which prevented usage of entities\nextending from internal PHP classes or implementing the `Serializable`\ninterface with the ORM:\n[DDC-3120](https://github.com/doctrine/orm/issues/3897).\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.6](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10723)\n - 2 issues fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.6\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2014-10-06 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine\nCollections `1.3.0`.\n\nInstallation\n============\n\nYou can install this version of Doctrine Common by using Composer and\nthe following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/collections\": \"1.3.0\"\n }\n}\n```\n\nChanges since 1.3.0\n===================\n\nThis is a list of issues solved in `1.3.0` since `1.2.0`:\n\n- [[26]](https://github.com/doctrine/collections/pull/26): Explicit\n casting of first and max results in the criteria API\n- [[30]](https://github.com/doctrine/collections/pull/30): typo fixes\n- [[31]](https://github.com/doctrine/collections/pull/31): CS fixes\n and tidy up of the tests\n- [[36]](https://github.com/doctrine/collections/pull/36): Tidy up and\n CS fixes\n- [[42]](https://github.com/doctrine/collections/pull/42): small style\n changes to comply with PSR2\n- [[47]](https://github.com/doctrine/collections/pull/47): Added build\n status badge\n- [[49]](https://github.com/doctrine/collections/pull/49): Keep keys\n when using `ArrayCollection#matching()`\n- [[52]](https://github.com/doctrine/collections/pull/52): Made\n `AbstractLazyCollection#$initialized` protected for extensibility.\n- [[56]](https://github.com/doctrine/collections/pull/56): travis: PHP\n 7.0 nightly added + few improvements\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DCOM).\n", + "date": "2015-04-14 00:00:00" }, { - "url": "/2021/05/24/orm2.9.html", - "slug": "orm2.9", - "title": "New Release: Doctrine ORM 2.9 with Attributes, Typed Properties, more", - "authorName": "Benjamin Eberlei", - "authorEmail": "kontakt@beberlei.de", - "contents": "We have released a new minor version 2.9 of Doctrine ORM, the first version\nwith support for using PHP 8 Attributes as a new driver for mapping entities\nand several other changes. [See all changes and contributors in the\nChangelog](https://github.com/doctrine/orm/releases/tag/2.9.0) on Github.\n\n## Attributes Mapping Driver\n\nThe following code example shows many of the mappings that are re-using\nthe annotation classes for familiarity:\n\n```php\nuse Doctrine\\DBAL\\Types\\Types;\nuse Doctrine\\ORM\\Mapping AS ORM;\n\n#[ORM\\Entity(repositoryClass: PostRepository::class)]\nclass Post\n{\n #[ORM\\Column(type: Types::INTEGER)]\n #[ORM\\Id, ORM\\GeneratedValue(strategy: 'AUTO')]\n private ?int $id;\n\n #[ORM\\Column(type: Types::BOOLEAN)]\n private bool $published = false;\n\n #[ORM\\Column(type: Types::SIMPLE_ARRAY)]\n private array $text = [];\n\n #[ORM\\ManyToOne(targetEntity: User::class)]\n public $author;\n\n #[ORM\\ManyToMany(targetEntity: Tag::class)]\n #[ORM\\JoinTable(name: \"post_tags\")]\n #[ORM\\JoinColumn(name: \"post_id\", referencedColumnName: \"id\")]\n #[ORM\\InverseJoinColumn(name: \"tag_id\", referencedColumnName: \"id\")]\n public Collection $tags;\n}\n```\n\n## Typed Property Defaults\n\nSince PHP 7.4 types can be declared on class properties and Doctrine now\nuses these type declarations to reduce amount of mapping boilerplate:\n\n- Columns don't need the type definitions\n- ManyToOne and OneToOne don't need target entity definitions\n\nExample:\n\n```php\nuse Doctrine\\ORM\\Mapping AS ORM;\n\n#[ORM\\Entity(repositoryClass: UserRepository::class)]\nclass User\n{\n #[ORM\\Id, ORM\\Column, ORM\\GeneratedValue]\n public ?int $id = null;\n\n #[ORM\\Column]\n public \\DateTime $created;\n\n #[ORM\\ManyToOne]\n public Email $email;\n}\n```\n\n## Psalmified APIs\n\nImproved the documentation to make sure static analysis tools and IDEs know\nabout the right entity classes returned from `EntityManager`,\n`EntityRepository` and other public ORM APIs. This includes generics support\nwhen you extend `EntityRepository`.\n\n```php\nuse Doctrine\\ORM\\EntityRepository;\nuse App\\Entity\\User;\n\n/**\n * @template-extends EntityRepository\n */\nclass UserRepository extends EntityRepository\n{\n}\n```\n\n## Query::HINT_READ_ONLY\n\nA new query hint is added that allows hydrating entities through DQL that are\nmarked as read only for the unit of work session, as long as they are not yet\nloaded as writeable:\n\n```php\n$dql = 'SELECT u FROM ' . ReadOnlyEntity::class . ' u WHERE u.id = ?1';\n\n$query = $entityManager->createQuery($dql);\n$query->setParameter(1, $user->id);\n$query->setHint(Query::HINT_READ_ONLY, true);\n\n$user = $query->getSingleResult();\n```\n\n## Index/UniqueConstraints using Field Names\n\nInstead of specifying column names for an index or unique-constraint declaration\nyou can now alternatively use field names.\n\n```php\n\nuse Doctrine\\ORM\\Mapping AS ORM;\n\n#[ORM\\Entity]\n#[ORM\\Index(fields: [\"isPublished\"])]\nclass Post\n{\n #[ORM\\Column]\n public bool $isPublished = false;\n}\n```\n\nThis simplifies mapping as the column names passed through the naming strategy\ndo not need to be known.\n\n## INDEX BY Associations\n\nPreviously DQL `INDEX BY` was not possible for assocations, now you can:\n\n```php\n$dql = 'SELECT p, u FROM Post INDEX BY p.author JOIN p.author u WHERE p.id = 3';\n```\n\n## Deprecations\n\nDoctrine ORM 2.9 rethinks deprecations and integrates with our new\n[doctrine/deprecations](https://github.com/doctrine/deprecations/) library.\n\n- Undeprecate `merge()` and `detach()` as no replacements are available yet\n- Notify Persist Change Tracking: Use Explicit Change Tracking instead\n- DQL `SELECT PARTIAL` syntax, use Value Objects with `SELECT NEW` instead\n- `EntityManager::flush()` with arguments\n- `EntityManager::clear()` with arguments (use detach)\n- Named Queries in Mapping (use Repository)\n- `cli-config.php` for console command configuration, inject `EntityManagerProvider` instead.\n- Deprecate `doctrine/cache` for metadata caching, use PSR-6 cache instead\n\n## Cache Deprecations and PSR-6 \n\nOver the next versions we will deprecate use of doctrine/cache and replace it\nwith PSR-6. If you are still using doctrine/cache code in your own application\nmake sure to force the versions to \"^1.10\" in composer.json.\n[Details](https://github.com/doctrine/cache/issues/354)\n\n## PHP 7.1 Support\n\nORM 2.9 reintroduces PHP 7.1 support, because it wasn't technically unsupported\nanyways. No changes were necessary to the code to allow it again except in the\ntestsuite.\n\nThe PHP 7.1 support was re-added to allow a very broad approach to prepare for\nsome of the deprecations that are introduced in ORM 2 and will be removed in\nversion 3.0.\n\n## Coding Standard Support\n\nDoctrine ORM 2.9 now supports and fully validates against Doctrine Coding\nStandard version 9.0+. This greatly improves automatic pull request checks as\nall new violations in a PR get caught and inlined into the PR as comments.\n", - "date": "2021-05-24 00:00:00" + "url": "/2017/07/25/php-7.1-requirement-and-composer.html", + "slug": "php-7.1-requirement-and-composer", + "title": "PHP 7.1 requirement for Doctrine packages", + "authorName": "Andreas Braun", + "authorEmail": "alcaeus@alcaeus.org", + "contents": "A few days ago, the Doctrine team released new versions of many\npackages, dropping support for PHP 5.6 and 7.0, as well as HHVM. The\naffected packages are:\n\n- doctrine/common 2.8.0\n- doctrine/dbal 2.6.0\n- doctrine/collections 1.5.0\n- doctrine/inflector 1.2.0\n- doctrine/cache 1.7.0\n- doctrine/instantiator 1.1.0\n- doctrine/annotations 1.5.0\n\nSince many people are encountering issues with these updates, here are a\nfew suggestions to ensure your code continues working as usual.\n\nComposer version constraints\n============================\n\nChances are your version constraints in `composer.json` look something\nlike this:\n\n```json\n{\n \"require\": {\n \"doctrine/orm\": \"^2.5\"\n }\n}\n```\n\nThe `^2.5` constraint resolves to: `>= 2.5.0 && <= 2.999999.999999`.\nThis is intended: our projects all follow [Semantic\nVersioning](https://semver.org/), so you can safely install a new minor\nversion without having to fear BC breaks.\n\nWhen determining what version to install, composer employs a SAT solver\nto make sure all dependencies are fulfilled. In our example above, the\nSAT solver finds a version newer than 2.5 that satisfies all\nrequirements.\n\nMaking sure you get a compatible version\n========================================\n\nWhen you run `composer update` the next time, you'll automatically\nreceive updates for the packages mentioned above, provided that you are\nrunning on PHP 7.1. If you are running an older PHP version, composer\nwill not install a version that requires PHP 7.1, since its requirements\nare not fulfilled.\n\nA common problem is people running a newer PHP version on their\ndeveloper machines than on their production servers. In this case,\nrunning `composer update` on a developer machine (with PHP 7.1) might\nhappily pull in an update that simply won't work when deployed on a\nproduction machine running PHP 5.6.\n\nTo make sure this doesn't happen to you, there are two choices:\n\n- run `composer update` on a machine with the same PHP version that\n you use in production\n- use the\n [platform.config](https://getcomposer.org/doc/06-config.md#platform)\n config setting in `composer.json` to override your local PHP\n version.\n\nWhy dropping PHP support in a minor version is not a BC break\n=============================================================\n\nOne question we frequently hear is, \"isn't dropping support for a PHP\nversion a BC break\"? In a nutshell, no. A BC break happens when there is\nan incompatible change that your package manager can't handle. For\nexample, changing a method signature in a minor version is a no-go,\nsince the composer version constraints mentioned above assume any minor\nupgrade can safely be used.\n\nHowever, when we drop support for an older version of PHP, composer will\nnot consider the new version if the PHP version requirement is no longer\nfulfilled. Thus, you won't end up with a fatal error due to a wrong\nmethod signature, you just won't get the new version.\n", + "date": "2017-07-25 00:00:00" }, { - "url": "/2009/01/28/cookbook-recipe-relation-dql-behavior.html", - "slug": "cookbook-recipe-relation-dql-behavior", - "title": "Cookbook Recipe: Relation DQL Behavior", + "url": "/2007/10/09/new-website.html", + "slug": "new-website", + "title": "New Website", "authorName": "jwage", "authorEmail": "", - "contents": "Today I will teach you how to write a simple Doctrine behavior. You will\nlearn some of the basics of creating a behavior and you will gain some\npretty cool functionality for your relationships.\n\nWe will write a behavior called `RelationDql` which allows you to add\ndefault query parts that are automatically added to your queries when\nyou reference the specified relationships. So first we will get started\nby looking at an example schema we can apply this to.\n\nHere is an example schema where we have a `Site`, `BlogPost` and `Tag`\nmodel:\n\n [yml]\n Site:\n columns:\n name: string(255)\n\n BlogPost:\n actAs: [Timestampable]\n columns:\n title: \"string(255)\"\n body: clob\n site_id: integer\n relations:\n Site:\n foreignAlias: BlogPosts\n Tags:\n class: Tag\n refClass: BlogPostTag\n foreignAlias: BlogPosts\n\n Tag:\n columns:\n name: string(255)\n\n BlogPostTag:\n columns:\n blog_post_id:\n type: integer\n primary: true\n tag_id:\n type: integer\n primary: true\n relations:\n BlogPost:\n foreignAlias: BlogPostTags\n Tag:\n foreignAlias: BlogPostTags\n\nThis is a fairly simple schema as you can see, but what if we want to\nhave a relationship on the `Site` model to retrieve the latest five\n`BlogPost` records or order the `Tags` relationship alphabetically by\ndefault?\n\nLets modify our schema to take into account a new behavior that we will\nwrite in the next step. First modify the `Site` model and a relationship\nnamed `LatestBlogPosts`:\n\n [yml]\n Site:\n actAs:\n RelationDql:\n relations:\n LatestBlogPosts:\n orderBy: %s.created_at DESC\n limit: 5\n columns:\n name: string(255)\n relations:\n LatestBlogPosts:\n autoComplete: false\n class: BlogPost\n local: id\n foreign: site_id\n\n **TIP** The ``autoComplete`` option is set to ``false`` so that the\n relationship is not reflected and added to the opposite end,\n ``BlogPost`` automatically.\n\nNow lets modify the `BlogPost` model to change the `Tags` relationship\nso that it is ordered alphabetically by name by default:\n\n [yml]\n BlogPost:\n actAs:\n Timestampable:\n RelationDql:\n relations:\n Tags:\n orderBy: %s.name ASC\n columns:\n title: \"string(255)\"\n body: clob\n site_id: integer\n relations:\n Site:\n foreignAlias: BlogPosts\n Tags:\n class: Tag\n refClass: BlogPostTag\n foreignAlias: BlogPosts\n\n **TIP** The ``relations`` array is an array of changes to make to\n the DQL query. The key can be any valid function on the\n ``Doctrine_Query`` API and the value is of course the parameter to\n pass to the function.\n\nNow that we have our schemas modified to take into account the new\n`RelationDql` behavior we need to actually write the code:\n\n~~~~ {.sourceCode .php}\n_options = $options;\n }\n\n public function setTableDefinition()\n {\n $this->_table->addRecordListener(new RelationDqlListener($this->_options));\n }\n}\n~~~~\n\nThe template is very simple. It only attaches a record listener to the\ninvoking table. Their is where most of the magic happens. So now lets\ndefine the `RelationDqlListener` class:\n\n~~~~ {.sourceCode .php}\n array());\n\n public function __construct($options)\n {\n $this->_options = $options;\n }\n\n public function preDqlSelect(Doctrine_Event $event)\n {\n $query = $event->getQuery();\n\n if (empty($this->_options['relations']))\n {\n throw new Doctrine_Exception(\n 'You must specify at least one relationship to add DQL to'\n );\n }\n\n $relations = $this->_options['relations'];\n\n $components = $this->_getDqlCallbackComponents($query);\n foreach ($components as $alias => $component)\n {\n if (isset($component['relation']) && isset($relations[$component['relation']->getAlias()]))\n {\n $dqls = $relations[$component['relation']->getAlias()];\n foreach ($dqls as $func => $dql)\n {\n $dql = str_replace('%s', $alias, $dql);\n $query->$func($dql);\n }\n unset($relations[$component['relation']->getAlias()]);\n }\n }\n }\n\n protected function _getDqlCallbackComponents($query)\n {\n $params = $query->getParams();\n $componentsBefore = array();\n if ($query->isSubquery()) {\n $componentsBefore = $query->getQueryComponents();\n }\n\n $copy = $query->copy();\n $copy->getSqlQuery($params);\n $componentsAfter = $copy->getQueryComponents();\n\n if ($componentsBefore !== $componentsAfter) {\n return array_diff($componentsAfter, $componentsBefore);\n } else {\n return $componentsAfter;\n }\n }\n}\n~~~~\n\nSo now we have the behavior defined so lets look at some example DQL\nqueries and the SQL that is outputted:\n\n> **TIP** Remember, in order for the dql callbacks to be executed we\n> must enable an attribute first.\n\n~~~~ {.sourceCode .php}\nsetAttribute('use_dql_callbacks', true);\n~~~~\n\n~~~~ {.sourceCode .php}\nselect('s.name, p.title, p.created_at')\n ->from('Site s')\n ->leftJoin('s.LatestBlogPosts p');\n\necho $q->getSql();\n~~~~\n\nThe above would output the following SQL:\n\n [sql]\n SELECT s.id AS s__id, s.name AS s__name, b.id AS b__id, b.title AS b__title, b.created_at AS b__created_at FROM site s LEFT JOIN blog_post b ON s.id = b.site_id ORDER BY b.created_at DESC LIMIT 5\n\n **NOTE** Notice how the ``ORDER BY`` and ``LIMIT`` were added to\n the query.\n\nNow lets look at an example that involves the `BlogPost` tags:\n\n~~~~ {.sourceCode .php}\nfrom('BlogPost p')\n ->leftJoin('p.Tags t');\n\necho $q->getSql();\n~~~~\n\nThe above would output the following SQL query:\n\n [sql]\n SELECT b.id AS b__id, b.title AS b__title, b.body AS b__body, b.site_id AS b__site_id, b.created_at AS b__created_at, b.updated_at AS b__updated_at, t.id AS t__id, t.name AS t__name FROM blog_post b LEFT JOIN blog_post_tag b2 ON b.id = b2.blog_post_id LEFT JOIN tag t ON t.id = b2.tag_id ORDER BY t.name ASC\n\nAs you can see the `ORDER BY` clause to order the related tags by `name`\nwas added for us.\n\nPretty cool huh? You can use this in your projects to make your\nrelationships a little nicer.\n", - "date": "2009-01-28 00:00:00" + "contents": "As you all may have noticed, we have put up an actual website. The\nmanual, api documentation, and trac are now all available from the same\ninterface/design. However, the design you see now is only temporary and\na new design will be implemented in the near future. We have also added\nthe ability to comment on manual chapters/sections, blog posts, and api\ndocumentation classes.\n", + "date": "2007-10-09 00:00:00" }, { - "url": "/2010/11/18/doctrine2-behavioral-extensions.html", - "slug": "doctrine2-behavioral-extensions", - "title": "Doctrine2 Behavioral Extensions", - "authorName": "gmorkevicius", + "url": "/2008/07/24/taking-advantage-of-column-aggregation-inheritance.html", + "slug": "taking-advantage-of-column-aggregation-inheritance", + "title": "Taking Advantage of Column Aggregation Inheritance", + "authorName": "jwage", "authorEmail": "", - "contents": "These behavioral extensions will give you another view on Doctrine2\ncapabilities handling behaviors through the EventListeners. These\nextensions operate like some of the most commonly used behaviors,\nleaving the domain objects as clean as possible. Annotations makes it\neasy to understand an intended behavior of properties on your Entities.\n\n
    \n
    \n

    \n\nHi, my name is Gediminas Morkevicius, I have 4 year experience in C++\nand PHP 5 and I'm very keen on new technologies and Doctrine2 is one of\nthem. Development is not only a job for me, but it is my lifestyle and\nI'm pleased to give some love back to Doctrine2.\n\n

    \n

    \n\nI would like to thank Doctrine2 and Symfony2 teams for these wonderful\nprojects. They have great potential.\n\n

    \n
    \n
    \n\n **NOTE** This blog entry relates to Doctrine2 Beta4 ORM version and\n could possibly be outdated depending on what the current version of\n Doctrine2 is at the time of you reading this post. Then integrating\n these extensions on your project it is recommended to use latest\n Doctrine2 library packages, because where are most recent updates\n used on extensions for metadata caching and annotations.\n\n
    \n\nContent:\n\n- Introduction on behavioral extensions\n- Setup and autoloading\n- Translatable extension\n- Tree extension\n- Sluggable extension\n- Timestampable extension\n- All nested together\n\nFirst of all, this post intends to give an example on how \"behaviors\"\ncan be implemented through the Doctrine2 EventListeners. All these\nbehavioral extensions can be nested and support flush operation which\ncan include lots of update, insert and remove actions. This is the most\ncommon issue when behavior development process is started.\n\nFurthermore, all extensions are mapped by annotations consequently\nleaving domain objects clean from interfaces and their methods. Plus,\nthe performance speed is even greater if cache driver is used, because\nmetadata for single Entity is mapped and validated only once.\n\nBefore we begin exploring the extensions, I\\`m glad to mention that\nthese extensions are already available on Symfony2 Bundle ported by\nChristophe Coevoet.\n\n\\#\\# Setting up the autoloader and listeners\n\nFirst of all, download this library from public github repository and\nsetup the autoloading for extensions:\n\n~~~~ {.sourceCode .php}\nregister();\n~~~~\n\nTranslatable behavior will need additional annotation driver for\nTranslation Entity metadata. The example below illustrates the chain\ndriver implementation:\n\n~~~~ {.sourceCode .php}\nnewDefaultAnnotationDriver(\n '/path/to/library/DoctrineExtensions/lib/Gedmo/Translatable/Entity'\n);\n$chainDriverImpl->addDriver($yourDefaultDriverImpl, 'Entity');\n$chainDriverImpl->addDriver($translatableDriverImpl, 'Gedmo\\Translatable');\n$doctrineOrmConfig->setMetadataDriverImpl($chainDriverImpl);\n~~~~\n\nAttaching the Event Listeners on the event manager\n==================================================\n\n~~~~ {.sourceCode .php}\naddEventSubscriber(new \\Gedmo\\Timestampable\\TimestampableListener());\n// sluggable\n$evm->addEventSubscriber(new \\Gedmo\\Sluggable\\SluggableListener());\n// tree\n$evm->addEventSubscriber(new \\Gedmo\\Tree\\TreeListener());\n// translatable\n$translationListener = new \\Gedmo\\Translatable\\TranslationListener();\n$translationListener->setTranslatableLocale('en_us');\n// in real world app the locale should be loaded from session, example:\n// Session::getInstance()->read('locale');\n$evm->addEventSubscriber($translationListener);\n// now this event manager should be passed to entity manager constructor\n\n**NOTE** It is recommended to attach TranslationListener as the\nlast whereas sluggable extension must create a slug before\ntranslating it.\n~~~~\n\n\\#\\# Translatable\n\nTranslatable behavior offers a very handy solution for translating\nspecific record fields into different languages. Furthermore, it loads\nthe translations automatically for the currently used locale. Locale can\nbe set by TranslationListener during it's initialization or later. It\nalso leaves the possibility to force a specific locale directly on the\nEntity itself.\n\nFeature list:\n\n- Translates all records automatically when object hydration is used\n- Supports a separate translation table for each Entity\n- There can be a default locale specified, which would force entity to\n leave its original translation in default locale.\n\nTranslatable annotations:\n=========================\n\n- @gedmo:Translatable indicates that the column is translatable\n- @gedmo:TranslationEntity(class=\"my\") this class annotation tells to\n use specified Entity to store translations\n- @gedmo:Locale or @gedmo:Language indicates that the column must not\n be mapped and that it may be used to override TranslationListener\\`s\n locale\n\nTranslatable Entity example:\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setContent($content)\n {\n $this->content = $content;\n }\n\n public function getContent()\n {\n return $this->content;\n }\n\n public function setTranslatableLocale($locale)\n {\n $this->locale = $locale;\n }\n}\n~~~~\n\nThere is no need for any additional operations while working with\nTranslatable Entities. All processing is done by event listener, just\nlike in good old behaviors. Except that in Doctrine2 the code is simpler\nand easy to understand and you may inspect it and customize if you see\nany point in doing that.\n\nHere are standard usage examples, the locale was set to \"en\\_us\" on\nlistener:\n\n~~~~ {.sourceCode .php}\nsetTitle('my title in en');\n$article->setContent('my content in en');\n$em->persist($article);\n$em->flush();\n~~~~\n\nThis inserted an article and populated the translations for it in\n\"en\\_us\" locale. Now lets translate it into another language:\n\n~~~~ {.sourceCode .php}\nfind('Entity\\Article', 1 /*article id*/);\n$article->setTitle('my title in de');\n$article->setContent('my content in de');\n$article->setTranslatableLocale('de_de'); // change locale\n$em->persist($article);\n$em->flush();\n~~~~\n\nThis updated an article and inserted the translations for it in \"de\\_de\"\nlocale. The TranslationRepository gives some handy methods on retrieving\nall translations:\n\n~~~~ {.sourceCode .php}\nclear(); // ensure the cache is clean\n$article = $em->find('Entity\\Article', 1 /*article id*/);\n$repository = $em->getRepository('Gedmo\\Translatable\\Entity\\Translation');\n$translations = $repository->findTranslations($article);\n/* $translations contains:\nArray (\n [de_de] => Array\n (\n [title] => my title in de\n [content] => my content in de\n )\n\n [en_us] => Array\n (\n [title] => my title in en\n [content] => my content in en\n )\n)*/\n// the locale now is \"en_us\" and current article::title in db is \"my title in de\"\necho $article->getTitle();\n// prints: \"my title in en\" because it loads the translation automatically\n~~~~\n\nUsing the \"default locale\":\n===========================\n\nIn some cases we need the default translation as a fallback if record\ndoes not have a translation on globally used locale. In that case\nTranslationListener uses the current value of Entity. But there is a way\nto specify a default locale which would force Entity to keep\nit`s field value on default locale. And if record has already been translated in this locale, the record will not update it`s\nvalue, only insert a new translation into translation table. You can\nspecify the default locale on TranslationListener\\`s initialization:\n\n~~~~ {.sourceCode .php}\nsetDefaultLocale('en_us');\n~~~~\n\nUsing a diferent Translation Entity for translation storage:\n============================================================\n\nIn some cases when there are thousands of records we would like to have\na single table for translations of this Entity in order to increase the\nperformance on translation loading speed. The example below will show\nhow to specify a diferent Entity for your translations by extending the\ntranslation mapped superclass. Thanks to Christophe Coevoet for the idea\non translation abstraction.\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setParent(Category $parent)\n {\n $this->parent = $parent;\n }\n\n public function getParent()\n {\n return $this->parent;\n }\n}\n~~~~\n\nBasic usage example:\n\n~~~~ {.sourceCode .php}\nsetTitle('Food');\n\n$fruits = new Entity\\Category();\n$fruits->setTitle('Fruits');\n$fruits->setParent($food);\n\n$vegetables = new Entity\\Category();\n$vegetables->setTitle('Vegetables');\n$vegetables->setParent($food);\n\n$carrots = new Entity\\Category();\n$carrots->setTitle('Carrots');\n$carrots->setParent($vegetables);\n\n$em->persist($food);\n$em->persist($fruits);\n$em->persist($vegetables);\n$em->persist($carrots);\n$em->flush();\n~~~~\n\nThe result after flush will generate the tree of food chain :)\n\n /food (1-8)\n /fruits (2-3)\n /vegetables (4-7)\n /carrots (5-6)\n\nUsing TreeNodeRepository functions:\n===================================\n\n~~~~ {.sourceCode .php}\ngetRepository('Entity\\Category');\n\n$food = $repo->findOneByTitle('Food');\necho $repo->childCount($food);\n// prints: 3\necho $repo->childCount($food, true/*direct*/);\n// prints: 2\n$children = $repo->children($food);\n// $children contains:\n// 3 nodes\n$children = $repo->children($food, false, 'title');\n// will sort the children by title\n$carrots = $repo->findOneByTitle('Carrots');\n$path = $repo->getPath($carrots);\n/* $path contains:\n 0 => Food\n 1 => Vegetables\n 2 => Carrots\n*/\n\n// verification and recovery of tree\n$repo->verify();\n$em->clear(); // ensures cache clean\n// can return TRUE if tree is valid, or array of errors found on tree\n$repo->recover();\n$em->clear(); // ensures cache clean\n// if tree has errors it will try to fix all tree nodes\n\n// single node removal\n$vegies = $repo->findOneByTitle('Vegitables');\n$repo->removeFromTree($vegies);\n// it will remove this node from tree and reparent all children\n\n// reordering the tree\n$repo->reorder(null/*reorder starting from parent*/, 'title');\n$em->clear(); // ensures cache clean\n// it will reorder all tree node left-right values by the title\n\n// moving up and down the nodes, by changing their (left, right) values\n$carrots = $repo->findOneByTitle('Carrots');\n$repo->moveUp($carrots, 1/*by one position*/);\n// carrots now should be at the top in it`s level\n$repo->moveDown($carrots, true/*to bottom*/);\n// carrots now should be at the bottom in it`s level\n~~~~\n\nAfter using such Tree operations like: reorder, recover, verify it is\nrecommended to clear the EntityManager cache since it may have cached\nnodes with old left and right values. This would be an issue if you plan\non using nodes during the same request after mentioned operations. And\nif you need some custom functions on your Node repository - simply\nextend the TreeNodeRepository.\n\n\\#\\# Sluggable\n\nSluggable behavior will build the slug from annotated fields on a chosen\nslug field which should store the generated slug. Slugs can be unique\nand styled. Currently this extension does not support unique constraint\non slug field in cases when there are many inserts on a single flush\noperation, because it cannot issue a query to ensure uniqueness. Use a\nsimple index instead.\n\nSluggable annotations:\n======================\n\n- @gedmo:Sluggable all columns identified by this annotation will be\n included in a slug\n- @gedmo:Slug this column will be used to store the generated slug\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setCode($code)\n {\n $this->code = $code;\n }\n\n public function getCode()\n {\n return $this->code;\n }\n\n public function getSlug()\n {\n return $this->slug;\n }\n}\n~~~~\n\nBasic usage example:\n\n~~~~ {.sourceCode .php}\nsetTitle('the title');\n$article->setCode('my code');\n$em->persist($article);\n$em->flush();\n\necho $article->getSlug();\n// prints: the-title-my-code\n~~~~\n\n\\#\\#\\# Some other configuration options:\n\n- updatable (optional, default=true) - true to update the slug on\n sluggable field changes, false - otherwise\n- unique (optional, default=true) - true if slug should be unique and\n if identical it will be prefixed, false - otherwise\n- separator (optional, default=\"-\") - separator which will separate\n words in slug\n- style (optional, default=\"default\") - \"default\" all letters will be\n lowercase, \"camel\" - first letter will be uppercase\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function getCreated()\n {\n return $this->created;\n }\n\n public function getUpdated()\n {\n return $this->updated;\n }\n}\n~~~~\n\n\\#\\# All nested together\n\n~~~~ {.sourceCode .php}\nid;\n }\n\n public function setTitle($title)\n {\n $this->title = $title;\n }\n\n public function getTitle()\n {\n return $this->title;\n }\n\n public function setParent(Category $parent)\n {\n $this->parent = $parent;\n }\n\n public function getParent()\n {\n return $this->parent;\n }\n\n public function getCreated()\n {\n return $this->created;\n }\n\n public function getUpdated()\n {\n return $this->updated;\n }\n\n public function getSlug()\n {\n return $this->slug;\n }\n}\n~~~~\n\nAfter running some inserts you will get the expected result. Don\\`t be\nafraid to use concurrent flush with many inserts and updates or even\nremove operations, everything is meant to work fine.\n\nSome of you may think that using no interface takes longer to check\nEntities on events. In fact, it takes only a single 'if' statement and a\ncache check on first request. This way the process is much cleaner.\n\nMaybe these extensions will help some of you realize how clean domain\nobjects can be and how well the model represents itself. It's much more\nconvenient than Active Record - browsing several extended classes, going\nthrough magic methods of those classes. While here you see everything in\none grasp.\n\nThere will be updates on my blog page and new articles which may\ninterest some of you. You can give some love back by forking a\nrepository and creating an ODM Document support on extensions or\nsuggesting me an idea of improvements or maybe an issue which you have\ndetected.\n", - "date": "2010-11-18 00:00:00" + "contents": "Today I have published another tutorial in the 1.0 Cookbook. This recipe\nsolves the same situation where you want to allow address properties on\nmultiple records. This approach is a much more normalized implementation\ncompared to using templates/behaviors and it allows for multiple\naddresses instead of only one. Check it out in the cookbook here. Enjoy!\n", + "date": "2008-07-24 00:00:00" }, { "url": "/2012/04/13/doctrine-2-2-2-released.html", @@ -2664,75 +2439,300 @@ "date": "2012-04-13 00:00:00" }, { - "url": "/2015/04/14/collections-1-3-0.html", - "slug": "collections-1-3-0", - "title": "Doctrine Collections 1.3.0 Release", - "authorName": "Marco Pivetta", - "authorEmail": "ocramius@gmail.com", - "contents": "We are happy to announce the immediate availability of Doctrine\nCollections `1.3.0`.\n\nInstallation\n============\n\nYou can install this version of Doctrine Common by using Composer and\nthe following `composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/collections\": \"1.3.0\"\n }\n}\n```\n\nChanges since 1.3.0\n===================\n\nThis is a list of issues solved in `1.3.0` since `1.2.0`:\n\n- [[26]](https://github.com/doctrine/collections/pull/26): Explicit\n casting of first and max results in the criteria API\n- [[30]](https://github.com/doctrine/collections/pull/30): typo fixes\n- [[31]](https://github.com/doctrine/collections/pull/31): CS fixes\n and tidy up of the tests\n- [[36]](https://github.com/doctrine/collections/pull/36): Tidy up and\n CS fixes\n- [[42]](https://github.com/doctrine/collections/pull/42): small style\n changes to comply with PSR2\n- [[47]](https://github.com/doctrine/collections/pull/47): Added build\n status badge\n- [[49]](https://github.com/doctrine/collections/pull/49): Keep keys\n when using `ArrayCollection#matching()`\n- [[52]](https://github.com/doctrine/collections/pull/52): Made\n `AbstractLazyCollection#$initialized` protected for extensibility.\n- [[56]](https://github.com/doctrine/collections/pull/56): travis: PHP\n 7.0 nightly added + few improvements\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira/browse/DCOM).\n", - "date": "2015-04-14 00:00:00" + "url": "/2008/03/18/0-10-3-released.html", + "slug": "0-10-3-released", + "title": "0.10.3 Released", + "authorName": "jwage", + "authorEmail": "", + "contents": "A few days late, but the 0.10.3 release has been packaged and released.\nThis release contains nearly 40 closed tickets, and is a huge step\ntowards bringing the 1st generation of Doctrine to a stable release. We\nhave already begun development on the 0.10.4 release, and have a few\ndozen tickets associated to it already. If you have a ticket associated\nto the 0.10.4 milestone or any other release then it is likely their is\nnot a failing test case for it, as the 0.10 branch now only has 1\nfailing test case. Make our job easier and provide a failing test case\nfor your issues. Thanks.\n", + "date": "2008-03-18 00:00:00" }, { - "url": "/2010/05/27/bringing-it-all-together.html", - "slug": "bringing-it-all-together", - "title": "Bringing it all together", + "url": "/2010/12/04/doctrine2-rc1.html", + "slug": "doctrine2-rc1", + "title": "Doctrine ORM RC1 released", + "authorName": "beberlei", + "authorEmail": "", + "contents": "We are pleased to announce the immediate availability of the first\nRelease Candidate of the Doctrine ORM. Over 2 years of dedicated\ndevelopment will soon lead to the final release. If no non-trival bugs\nare reported in the period of the next 1-2 weeks this release candidate\nwill serve as basis for the final release.\n\nFor this release candidate over 70 tickets were closed. See the\nchangelog for a detailed overview:\n\n- [Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10091)\n\nWe want to thank everybody for their contributions and help.\n", + "date": "2010-12-04 00:00:00" + }, + { + "url": "/2011/04/07/doctrine2-april-2011-maintenance.html", + "slug": "doctrine2-april-2011-maintenance", + "title": "Maintenance Releases of Common, DBAL, ORM", + "authorName": "beberlei", + "authorEmail": "", + "contents": "Slightly behind schedule, but we released the next round of maintenance\nversions of Doctrine Common (2.0.2), DBAL (2.0.4) and ORM (2.0.4) today.\n\n- [Common Changelog (4 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10121)\n- [DBAL Changelog (3 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10131)\n- [ORM Changelog (13 Tickets\n closed)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10130)\n\nYou can grab the packages from the download page or our [Github\nrepository](https://github.com/doctrine).\n\nPlease report any problems to the Jira Bugtracker.\n", + "date": "2011-04-07 00:00:00" + }, + { + "url": "/2009/10/02/doctrine-fedora-package.html", + "slug": "doctrine-fedora-package", + "title": "Doctrine Fedora Package", "authorName": "jwage", "authorEmail": "", - "contents": "Recently we've been making some pretty serious changes around here. This\nblog post aims to overview it all and make sure people are aware of what\nis going on!\n\nWebsite Changes\n===============\n\nA few weeks ago I made some\n[updates](https://www.doctrine-project.org/blog/a-few-website-changes) to\nthe Doctrine website. Some said it looked like we took a step backwards.\nWell, we kind of did. I had to rip apart the website, remove old legacy\ncode and reorganize things so that it can be integrated with the changes\nwe wanted to make next. So I've sort of had to tear it all apart and put\nit back together a new way. It's been a bumpy road but we're starting to\nget the remaining issues worked out.\n\nThe Switch to git\n=================\n\nThe next big change we wanted to make was to switch to\n[github.com](https://www.doctrine-project.org) for our source control.\nThis has a lot of impact on the project since everything is built around\nthe source control, including the website. That is why the previous\nchange was necessary in order to make this move complete.\n\nSplitting Doctrine 2 Sources\n============================\n\nThe next step for us was to split the Doctrine 2 sources into separate\nrepositories on github. So now the source code of the Common, DBAL, and\nORM packages are truly separated.\n\n- [Common](https://github.com/doctrine/common)\n- [DBAL](https://github.com/doctrine/dbal)\n- [ORM](https://github.com/doctrine/orm)\n\nThis means the packages can evolve independently and will be maintained\nseparately from now on. The website also has dedicated project pages for\nthe [DBAL](https://www.doctrine-project.org/projects/dbal) and\n[ORM](https://www.doctrine-project.org/projects/orm) with plenty of\ndocumentation.\n\nBringing it all together\n========================\n\nThe last piece that brings it all together is the new [Guide for\nDoctrine Contributors and\nCollaborators](https://www.doctrine-project.org/contribute). Now that\nwe've moved to git we had to reinvent a lot of stuff we had already\nlearned for SVN. Thanks to our git mentor David Abdemoulaie\n([hobodave](https://www.twitter.com/hobodave)) we have figured out a\nworkable solution for dealing with the project dependencies via git\nsubmodules that does most of what we want. Through this process we all\nworked on some new documentation that detailed how contributors and\ncollaborators for the Doctrine Project should work. We really hope that\nthis will help get people involved with the project and mature things\nmore.\n", - "date": "2010-05-27 00:00:00" + "contents": "Thanks to Christof Damian, a loyal Doctrine user, if you are a Fedora\nuser you can now yum install the latest stable version of Doctrine.\nBelow is what you can run from the command line to get it!\n\n yum install php-doctrine-Doctrine\n\nEnjoy and let us know if you have any issues. Thanks\n", + "date": "2009-10-02 00:00:00" }, { - "url": "/2010/03/29/doctrine2-custom-dql-udfs.html", - "slug": "doctrine2-custom-dql-udfs", - "title": "Extending DQL in Doctrine 2: User-Defined Functions", + "url": "/2010/02/11/database-support-doctrine2.html", + "slug": "database-support-doctrine2", + "title": "Database-Driver Support in Doctrine 2", "authorName": "beberlei", "authorEmail": "", - "contents": "By default DQL supports a limited subset of all the vendor-specific SQL\nfunctions common between all the vendors. However in many cases once you\nhave decided on a specific database vendor, you will never change it\nduring the life of your project. This decision for a specific vendor\npotentially allows you to make use of powerful SQL features that are\nunique to the vendor.\n\n> **Note**\n>\n> It is worth to mention that Doctrine 2 also allows you to handwrite\n> your SQL instead of extending the DQL parser, which is sort of an\n> advanced extension point. You can map arbitrary SQL to your objects\n> and gain access to vendor specific functionalities using the\n> `EntityManager#createNativeQuery()` API.\n\nThe DQL Parser has hooks to register functions that can then be used in\nyour DQL queries and transformed into SQL, allowing to extend Doctrines\nQuery capabilities to the vendors strength. This post explains the\nUsed-Defined Functions API (UDF) of the Dql Parser and shows some\nexamples to give you some hints how you would extend DQL.\n\nThere are three types of functions in DQL, those that return a numerical\nvalue, those that return a string and those that return a Date. Your\ncustom method has to be registered as either one of those. The return\ntype information is used by the DQL parser to check possible syntax\nerrors during the parsing process, for example using a string function\nreturn value in a math expression.\n\nRegistering your own DQL functions\n==================================\n\nYou can register your functions adding them to the ORM configuration:\n\n~~~~ {.sourceCode .php}\naddCustomStringFunction($name, $class);\n$config->addCustomNumericFunction($name, $class);\n$config->addCustomDatetimeFunction($name, $class);\n\n$em = EntityManager::create($dbParams, $config);\n~~~~\n\nThe `$name` is the name the function will be referred to in the DQL\nquery. `$class` is a string of a class-name which has to extend\n`Doctrine\\ORM\\Query\\Node\\FunctionNode`. This is a class that offers all\nthe necessary API and methods to implement a UDF.\n\nIn this post we will implement some MySql specific Date calculation\nmethods, which are quite handy in my opinion:\n\nDate Diff\n=========\n\n[Mysql's DateDiff\nfunction](http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediff)\ntakes two dates as argument and calculates the difference in days with\n`date1-date2`.\n\nThe DQL parser is a top-down recursive descent parser to generate the\nAbstract-Syntax Tree (AST) and uses a TreeWalker approach to generate\nthe appropriate SQL from the AST. This makes reading the\nParser/TreeWalker code managable in a finite amount of time.\n\nThe `FunctionNode` class I referred to earlier requires you to implement\ntwo methods, one for the parsing process (obviously) called `parse` and\none for the TreeWalker process called `getSql()`. I show you the code\nfor the DateDiff method and discuss it step by step:\n\n~~~~ {.sourceCode .php}\nmatch(Lexer::T_IDENTIFIER); // (2)\n $parser->match(Lexer::T_OPEN_PARENTHESIS); // (3)\n $this->firstDateExpression = $parser->ArithmeticPrimary(); // (4)\n $parser->match(Lexer::T_COMMA); // (5)\n $this->secondDateExpression = $parser->ArithmeticPrimary(); // (6)\n $parser->match(Lexer::T_CLOSE_PARENTHESIS); // (3)\n }\n\n public function getSql(\\Doctrine\\ORM\\Query\\SqlWalker $sqlWalker)\n {\n return 'DATEDIFF(' .\n $this->firstDateExpression->dispatch($sqlWalker) . ', ' .\n $this->secondDateExpression->dispatch($sqlWalker) .\n ')'; // (7)\n }\n}\n~~~~\n\nThe Parsing process of the DATEDIFF function is going to find two\nexpressions the date1 and the date2 values, whose AST Node\nrepresentations will be saved in the variables of the DateDiff\nFunctionNode instance at (1).\n\nThe parse() method has to cut the function call \"DATEDIFF\" and its\nargument into pieces. Since the parser detects the function using a\nlookahead the T\\_IDENTIFIER of the function name has to be taken from\nthe stack (2), followed by a detection of the arguments in (4)-(6). The\nopening and closing parenthesis have to be detected also. This happens\nduring the Parsing process and leads to the generation of a DateDiff\nFunctionNode somewhere in the AST of the dql statement.\n\nThe `ArithmeticPrimary` method call is the most common denominator of\nvalid EBNF tokens taken from the [DQL EBNF\ngrammer](https://www.doctrine-project.org/documentation/manual/2_0/en/dql-doctrine-query-language#ebnf)\nthat matches our requirements for valid input into the DateDiff Dql\nfunction. Picking the right tokens for your methods is a tricky\nbusiness, but the EBNF grammer is pretty helpful finding it, as is\nlooking at the Parser source code.\n\nNow in the TreeWalker process we have to pick up this node and generate\nSQL from it, which apprently is quite easy looking at the code in (7).\nSince we don't know which type of AST Node the first and second Date\nexpression are we are just dispatching them back to the SQL Walker to\ngenerate SQL from and then wrap our DATEDIFF function call around this\noutput.\n\nNow registering this DateDiff FunctionNode with the ORM using:\n\n~~~~ {.sourceCode .php}\naddCustomStringFunction('DATEDIFF', 'DoctrineExtensions\\Query\\MySql\\DateDiff');\n~~~~\n\nWe can do fancy stuff like:\n\n [sql]\n SELECT p FROM DoctrineExtensions\\Query\\BlogPost p WHERE DATEDIFF(CURRENT_TIME(), p.created) < 7\n\nDate Add\n========\n\nOften useful it the ability to do some simple date calculations in your\nDQL query using [MySql's DATE\\_ADD\nfunction](http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add).\n\nI'll skip the bla and show the code for this function:\n\n~~~~ {.sourceCode .php}\nmatch(Lexer::T_IDENTIFIER);\n $parser->match(Lexer::T_OPEN_PARENTHESIS);\n\n $this->firstDateExpression = $parser->ArithmeticPrimary();\n\n $parser->match(Lexer::T_COMMA);\n $parser->match(Lexer::T_IDENTIFIER);\n\n $this->intervalExpression = $parser->ArithmeticPrimary();\n\n $parser->match(Lexer::T_IDENTIFIER);\n\n /* @var $lexer Lexer */\n $lexer = $parser->getLexer();\n $this->unit = $lexer->token['value'];\n\n $parser->match(Lexer::T_CLOSE_PARENTHESIS);\n }\n\n public function getSql(\\Doctrine\\ORM\\Query\\SqlWalker $sqlWalker)\n {\n return 'DATE_ADD(' .\n $this->firstDateExpression->dispatch($sqlWalker) . ', INTERVAL ' .\n $this->intervalExpression->dispatch($sqlWalker) . ' ' . $this->unit .\n ')';\n }\n}\n~~~~\n\nThe only difference compared to the DATEDIFF here is, we additionally\nneed the `Lexer` to access the value of the `T_IDENTIFIER` token for the\nDate Interval unit, for example the MONTH in:\n\n [sql]\n SELECT p FROM DoctrineExtensions\\Query\\BlogPost p WHERE DATE_ADD(CURRENT_TIME(), INTERVAL 4 MONTH) > p.created\n\nThe above method now only supports the specification using `INTERVAL`,\nto also allow a real date in DATE\\_ADD we need to add some decision\nlogic to the parsing process (makes up for a nice excercise).\n\nNow as you see, the Parsing process doesn't catch all the possible SQL\nerrors, here we don't match for all the valid inputs for the interval\nunit. However where necessary we rely on the database vendors SQL parser\nto show us further errors in the parsing process, for example if the\nUnit would not be one of the supported values by MySql.\n\nConclusion\n==========\n\nNow that you all know how you can implement vendor specific SQL\nfunctionalities in DQL, we would be excited to see user extensions that\nadd vendor specific function packages, for example more math functions,\nXML + GIS Support, Hashing functions and so on.\n\nFor 2.0 we will come with the current set of functions, however for a\nfuture version we will re-evaluate if we can abstract even more vendor\nsql functions and extend the DQL languages scope.\n\nCode for this Extension to DQL and other Doctrine Extensions can be\nfound [in my Github DoctrineExtensions\nrepository](https://github.com/beberlei/DoctrineExtensions).\n", - "date": "2010-03-29 00:00:00" + "contents": "Not only the ORM part of Doctrine will see major changes for the step\nfrom the 1.x to the Doctrine 2 series. The DBAL layer has undergone\nmajor refactorings and there has been a very throughout separation of\nconcerns. Any database platform that will be supported has to extend\nfour different classes/interfaces.\n\n- Doctrine and Doctrine - Both interfaces implement the interference\n between PHP and the Database, they are the lowest layer of any\n platform support.\n- Doctrine - This abstract class requires you to specify the\n specialites of the SQL dialect of the database-platform you are\n going to implement.\n- Doctrine - This abstract class defines the interaction of the\n database platform to create a database schema, for example in\n combination with the ORM SchemaTool.\n\nFor the Doctrine 2.0 release we plan to support 4 different platforms,\nall tested in-depth:\n\n- MySQL using the PDO Mysql extension\n- PgSQL using the PDO PostgresSQL extension\n- Oracle using the OCI extension\n- Sqlite using the PDO SQLite extension\n\nBoth the SchemaManager and Platform can be re-used for any Driver that\nis connected to the database. If you would want to use Mysqli instead of\nPDO MySQL you would only need to implement a new Driver and Statement.\nAnd if you just want to change some of the sql specific details in\nregard to schema generation you would only need to extend the\nAbstractPlatform.\n\nStill, from a database-platform point of view the default support is\nlacking, for example MsSql support with both PDO and SqlSrv is currently\nmissing. Firebird or IBM Db2 are other platforms that are wide-spread\nand not supported currently. However we don't want to rush only\nhalf-finished support into Doctrine 2. That is where you come in: We\nwould greatly appreciate any help in getting support for any new\ndatabase platform into Doctrine 2.\n\nFor the implementation of a completly new database platform you can rely\non the powerful PHPUnit Testsuite of Doctrine 2. There are lots of tests\nthat check the functionality of your driver, platform and schema\nimplementations against various scenarios. Additionally the complete ORM\nfunctional test-suite can run against your new database platform.\nFurthermore you can count of everyone in the Doctrine DEV Team for help,\nwe are hanging around on Freenode IRC in the \\#doctrine-dev Channel. You\ncould also create a ticket on Jira and attach a patch or just discuss\nyour ideas.\n", + "date": "2010-02-11 00:00:00" }, { - "url": "/2015/08/31/security_misconfiguration_vulnerability_in_various_doctrine_projects.html", - "slug": "security_misconfiguration_vulnerability_in_various_doctrine_projects", - "title": "Security Misconfiguration Vulnerability in various Doctrine projects", + "url": "/2008/06/23/introducing-the-doctrine-cookbook.html", + "slug": "introducing-the-doctrine-cookbook", + "title": "Introducing the Doctrine Cookbook", + "authorName": "jwage", + "authorEmail": "", + "contents": "

    \n\nToday I would like to introduce something new to the Doctrine\ndocumentation, the Cookbook. This differs from the manual in that it\nwill contain real world examples and tutorials of how you can use\nDoctrine on a daily basis whereas the manual is more of a technical\nbreakdown of the features in Doctrine. We will be publishing many\nadditions to the cookbook in the coming weeks. To start off we have\npublished the following tutorials:\n\n

    • \n\nMy First Project\n\n
    • \n\nsymfony 1.1 and Doctrine\n\n
    • \n\nsymfony 1.1 and Doctrine Migrations\n\n
    • \n\nCode Igniter and Doctrine\n\n

    \n\nIf you are interested in contributing to the Doctrine documentation by\nadding new things or translations please contact me at\n[jonwage@gmail.com](mailto:jonwage@gmail.com).\n\n

    \n\n\n", + "date": "2008-06-23 00:00:00" + }, + { + "url": "/2009/01/30/new-documentation-pdf-downloads.html", + "slug": "new-documentation-pdf-downloads", + "title": "New Documentation PDF Downloads", + "authorName": "jwage", + "authorEmail": "", + "contents": "Today we have some great news! Thanks to Fabien from the [symfony\nproject](http://www.symfony-project.org) , we now have a new way to\ngenerate the PDF version of our documentation. The new PDFs are a MAJOR\nstep up from the previous style of PDF and am very pleased with it!\nCheck it out by viewing the 1.0 version of [The Guide to Doctrine for\nPHP](https://www.doctrine-project.org/documentation/manual/1_0/en/pdf) or\n[The Doctrine\nCookbook](https://www.doctrine-project.org/documentation/cookbook/1_0/en/pdf).\n\nWhat is next?\n=============\n\n- API Documentation available as PDF.\n- Downloadable package/zip file containing PDF versions of all\n documentation.\n- User submitted articles, snippets, tutorials, etc. to complement the\n official documentation.\n- ...Printed book.\n\nPrinted Book\n============\n\nHere is a teaser of the first draft of the front cover for the printed\nversion of the book. Big thanks goes out to Jason O'Brien from\ncentre{source} for doing the design work. The printed copy will be\navailable on lulu very soon we just need to do some more proof reading\nand Q&A on everything before it is ready. The printed version of the\nbook will use a slightly modified version of the PDF that is available\nfor download on the web.\n", + "date": "2009-01-30 00:00:00" + }, + { + "url": "/2011/12/20/doctrine2-2-beta.html", + "slug": "doctrine2-2-beta", + "title": "Doctrine 2.2 Beta", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "We are proud to announce the start of the beta phase of Doctrine 2.2. I\nthink we implemented a nice amount of new features and refactored lots\nof the code-base for simplicity and performance. Additionally we found a\nbunch of new developers that contributed considerable amount of code.\n\nA top list of the changes includes:\n\n- Filtering entities and associations based on rules that can be\n parameterized, enabled or disabled, developed by asm89\n- Support for complex SQL types such as Geometries, IPs, develped by\n jsor.\n- Bit Comparisions in DQL, developed by Fabio.\n- Annotation Refactorings by Fabio and johannes.\n- DQL Refactoring, ORDER BY and GROUP BY supporting result variables\n of SELECT expressions.\n- Alias for entities in DQL results.\n- Result Cache refactoring\n- Flush for single entities\n\nSee the changelogs of all three projects Common, DBAL, ORM:\n\n- [ORM](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10157)\n- [DBAL](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10142)\n- [Common](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10152)\n\nIn the next weeks will stabilize this code and add documentation for all\nthe new features. Additionally we try to drive the bug count down in the\n2.1 branch as well.\n\nPlease test this beta with your projects to find any incompatibilities.\nSee the\n[UPGRADE\\_2\\_2](https://github.com/doctrine/orm/blob/master/UPGRADE.md#upgrade-to-22)\nfile to see backwards incompatible changes.\n\nYou can install the Beta through\n[Github](https://github.com/doctrine/orm) , \\`PEAR\n[http://pear.doctrine-project.org](http://pear.doctrine-project.org)\\>\\`\\_\nor through [Composer](https://packagist.org):\n\n> {\n> : \"require\": { \"doctrine/orm\": \"2.2.0-BETA1\" }\n>\n> }\n", + "date": "2011-12-20 00:00:00" + }, + { + "url": "/2012/09/20/doctrine-2-3-final.html", + "slug": "doctrine-2-3-final", + "title": "Doctrine 2.3 final relased", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "**20.9.2012**\n\nAfter a 2 month long phase of beta and release candidates we can finally\nannounce the release of Doctrine 2.3. This includes new versions for the\npackages Common, DBAL and ORM.\n\nThis release trys to keep backwards compatibility to every previous\nrelease as much as possible, however some slight changes might be\nnecessary to your applications. See the UPGRADE files of each project\nfor details:\n\n- [ORM](https://github.com/doctrine/orm/blob/master/UPGRADE.md)\n- [DBAL](https://github.com/doctrine/dbal/blob/master/UPGRADE.md)\n\nCompared to previous versions there are no new blockbuster feature, but\nmany little optimizations:\n\n- Custom ID Generators\n- Naming Strategies (Camel-, Underscore Cased)\n- Collection Criteria API\n- @AssociationOverride and @AttributeOverride (useful for Trait and\n MappedSuperclass)\n- Arbitrary JOIN Syntax (FROM User u JOIN Comment c WITH c.user =\n u.id)\n- Named Native Queries\n\nThe complete changelogs are listed on JIRA:\n\n- [Common\n Changelog](https://www.doctrine-project.org/jira/browse/DCOM/fixforversion/10183)\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10184)\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10185)\n\nWe will flesh out the documentation and information about all new\nfeatures in the coming month. If you want to contribute to the\ndocumentation of new features see the\n[DBAL](https://github.com/doctrine/dbal-documentation) and\n[ORM](https://github.com/doctrine/orm-documentation) documentation links\non Github.\n\nYou can install the final release through\n[Github](https://github.com/doctrine/orm) or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.0\"\n }\n }\n\nThe downloadable packages will be available later today.\n", + "date": "2012-09-20 00:00:00" + }, + { + "url": "/2021/05/24/orm2.9.html", + "slug": "orm2.9", + "title": "New Release: Doctrine ORM 2.9 with Attributes, Typed Properties, more", + "authorName": "Benjamin Eberlei", + "authorEmail": "kontakt@beberlei.de", + "contents": "We have released a new minor version 2.9 of Doctrine ORM, the first version\nwith support for using PHP 8 Attributes as a new driver for mapping entities\nand several other changes. [See all changes and contributors in the\nChangelog](https://github.com/doctrine/orm/releases/tag/2.9.0) on Github.\n\n## Attributes Mapping Driver\n\nThe following code example shows many of the mappings that are re-using\nthe annotation classes for familiarity:\n\n```php\nuse Doctrine\\DBAL\\Types\\Types;\nuse Doctrine\\ORM\\Mapping AS ORM;\n\n#[ORM\\Entity(repositoryClass: PostRepository::class)]\nclass Post\n{\n #[ORM\\Column(type: Types::INTEGER)]\n #[ORM\\Id, ORM\\GeneratedValue(strategy: 'AUTO')]\n private ?int $id;\n\n #[ORM\\Column(type: Types::BOOLEAN)]\n private bool $published = false;\n\n #[ORM\\Column(type: Types::SIMPLE_ARRAY)]\n private array $text = [];\n\n #[ORM\\ManyToOne(targetEntity: User::class)]\n public $author;\n\n #[ORM\\ManyToMany(targetEntity: Tag::class)]\n #[ORM\\JoinTable(name: \"post_tags\")]\n #[ORM\\JoinColumn(name: \"post_id\", referencedColumnName: \"id\")]\n #[ORM\\InverseJoinColumn(name: \"tag_id\", referencedColumnName: \"id\")]\n public Collection $tags;\n}\n```\n\n## Typed Property Defaults\n\nSince PHP 7.4 types can be declared on class properties and Doctrine now\nuses these type declarations to reduce amount of mapping boilerplate:\n\n- Columns don't need the type definitions\n- ManyToOne and OneToOne don't need target entity definitions\n\nExample:\n\n```php\nuse Doctrine\\ORM\\Mapping AS ORM;\n\n#[ORM\\Entity(repositoryClass: UserRepository::class)]\nclass User\n{\n #[ORM\\Id, ORM\\Column, ORM\\GeneratedValue]\n public ?int $id = null;\n\n #[ORM\\Column]\n public \\DateTime $created;\n\n #[ORM\\ManyToOne]\n public Email $email;\n}\n```\n\n## Psalmified APIs\n\nImproved the documentation to make sure static analysis tools and IDEs know\nabout the right entity classes returned from `EntityManager`,\n`EntityRepository` and other public ORM APIs. This includes generics support\nwhen you extend `EntityRepository`.\n\n```php\nuse Doctrine\\ORM\\EntityRepository;\nuse App\\Entity\\User;\n\n/**\n * @template-extends EntityRepository\n */\nclass UserRepository extends EntityRepository\n{\n}\n```\n\n## Query::HINT_READ_ONLY\n\nA new query hint is added that allows hydrating entities through DQL that are\nmarked as read only for the unit of work session, as long as they are not yet\nloaded as writeable:\n\n```php\n$dql = 'SELECT u FROM ' . ReadOnlyEntity::class . ' u WHERE u.id = ?1';\n\n$query = $entityManager->createQuery($dql);\n$query->setParameter(1, $user->id);\n$query->setHint(Query::HINT_READ_ONLY, true);\n\n$user = $query->getSingleResult();\n```\n\n## Index/UniqueConstraints using Field Names\n\nInstead of specifying column names for an index or unique-constraint declaration\nyou can now alternatively use field names.\n\n```php\n\nuse Doctrine\\ORM\\Mapping AS ORM;\n\n#[ORM\\Entity]\n#[ORM\\Index(fields: [\"isPublished\"])]\nclass Post\n{\n #[ORM\\Column]\n public bool $isPublished = false;\n}\n```\n\nThis simplifies mapping as the column names passed through the naming strategy\ndo not need to be known.\n\n## INDEX BY Associations\n\nPreviously DQL `INDEX BY` was not possible for assocations, now you can:\n\n```php\n$dql = 'SELECT p, u FROM Post INDEX BY p.author JOIN p.author u WHERE p.id = 3';\n```\n\n## Deprecations\n\nDoctrine ORM 2.9 rethinks deprecations and integrates with our new\n[doctrine/deprecations](https://github.com/doctrine/deprecations/) library.\n\n- Undeprecate `merge()` and `detach()` as no replacements are available yet\n- Notify Persist Change Tracking: Use Explicit Change Tracking instead\n- DQL `SELECT PARTIAL` syntax, use Value Objects with `SELECT NEW` instead\n- `EntityManager::flush()` with arguments\n- `EntityManager::clear()` with arguments (use detach)\n- Named Queries in Mapping (use Repository)\n- `cli-config.php` for console command configuration, inject `EntityManagerProvider` instead.\n- Deprecate `doctrine/cache` for metadata caching, use PSR-6 cache instead\n\n## Cache Deprecations and PSR-6 \n\nOver the next versions we will deprecate use of doctrine/cache and replace it\nwith PSR-6. If you are still using doctrine/cache code in your own application\nmake sure to force the versions to \"^1.10\" in composer.json.\n[Details](https://github.com/doctrine/cache/issues/354)\n\n## PHP 7.1 Support\n\nORM 2.9 reintroduces PHP 7.1 support, because it wasn't technically unsupported\nanyways. No changes were necessary to the code to allow it again except in the\ntestsuite.\n\nThe PHP 7.1 support was re-added to allow a very broad approach to prepare for\nsome of the deprecations that are introduced in ORM 2 and will be removed in\nversion 3.0.\n\n## Coding Standard Support\n\nDoctrine ORM 2.9 now supports and fully validates against Doctrine Coding\nStandard version 9.0+. This greatly improves automatic pull request checks as\nall new violations in a PR get caught and inlined into the PR as comments.\n", + "date": "2021-05-24 00:00:00" + }, + { + "url": "/2009/08/22/transactions-and-performance.html", + "slug": "transactions-and-performance", + "title": "Transactions and Performance", + "authorName": "romanb", + "authorEmail": "", + "contents": "In this post I want to clarify some things about transactions and\nperformance of PHP applications in general. I want to show you that it\nis very easy to lose a lot of performance without using any \"heavy\"\nframework at all and I also want to show that frameworks can actually\nhelp you avoid a lot of these problems transparently. I want to\nsensibilize you for the fact that there are a lot of factors in PHP\napplication performance and that you can very easily lose the\nperformance that you hoped to gain by not using framework X or Z or\nbuilding your own (\"Not Invented Here\"-syndrome) by several orders of\nmagnitude through rather trivial errors or misconceptions.\n\nGiven a MySql database with InnoDB tables, which of the following code\nsnippets that insert 20 users do you think is faster? First the Doctrine\n(2) version:\n\n~~~~ {.sourceCode .php}\nname = 'Guilherme';\n $user->status = 'Slave';\n $user->username = 'gblanco';\n $em->persist($user);\n}\n\n$s = microtime(true);\n$em->flush();\n$e = microtime(true);\necho ($e - $s) . \"
    \";\n~~~~\n\nNow the good old mysql\\_query version:\n\n~~~~ {.sourceCode .php}\n\";\n~~~~\n\nEven this comparison is not fair since flush() is doing a lot more stuff\nbut anyhow. The results might surprise some of you:\n\n Doctrine 2: 0.0094 seconds\n mysql_query: 0.0165 seconds\n\nYes, our good old mysql\\_query code is almost twice as slow even though\nit does a lot less, provides no features, no abstraction, no basic\nprotection against SQL injection, etc. Why is that? The answer is:\ntransactions. In the Doctrine 2 example, Doctrine takes over transaction\nmanagement for us and efficiently executes all inserts in a single,\nshort transaction. In the plain mysql\\_query example, there is no\ntransaction demarcation and since MySql by default operates in\nautocommit mode, every mysql\\_query call will implicitly commit the\ntransaction and start a new one. Thats 20 transactions. Here is the\nrevised code of the second example with proper transaction demarcation:\n\n~~~~ {.sourceCode .php}\n\";\n~~~~\n\nThe result:\n\n mysql_query: 0.0028 seconds\n\nThats a huge difference. We can conclude:\n\n**Bad or no transaction management/demarcation can reduce performance by\nseveral orders of magnitude.**\n\nMany people are used to autocommit mode without really being aware of\nwhat it is doing. It does not mean there is no transaction unless you\nissue START/BEGIN TRANSACTION or PDO\\#beginTransaction(). It means after\nevery single query a transaction is committed automatically and a new\none started. Methods like PDO\\#beginTransaction() merely suspend\nautocommit mode for a short duration (until you call\nPDO\\#commit()/PDO\\#rollback()).\n\nTo clarify:\n\n**You can not talk to your database outside of a transaction.**\n\nEven SELECT queries get wrapped in a small transaction in autocommit\nmode. However since SELECT statements usually don't result in any write\nlocks (like INSERT/UPDATE/DELETE) the penalty of these transactions is\nusually not that big.\n\nDoctrine 2 can help a lot here. You can modify your objects anywhere,\npersist and delete objects anywhere and once you call\n`EntityManager#flush()` Doctrine 2 will efficiently make all updates in\na single transaction.\n\nWhat I wanted to highlight with this post is that there are a lot of\nfactors that influence the performance of your application, and raw\nexecution speed of the code is certainly not one of the most influential\nones. You can very easily lose 10 times the performance by trivial\nthings such as the one shown above (bad/no transaction demarcation) than\nwhat you gained by choosing some \"ultra lightweight\" PHP framework or a\nhomegrown solution.\n\nThere are many more factors, like network load, inefficient database\nindices or no indices, and much more. Don't just always look at the raw\nexecution speed of your code. Use code that is well tested, established,\nused by lots of people and developed by lots of people. Don't reinvent\nthe wheel and use existing tools or help make existing tools better!\n(Oh, and use the right tool for the job, of course!)\n\nMost of the time when you think your own solutions are much better and\nhave a lot less bugs than existing ones then thats most likely just\nbecause noone else is using it and so the bugs are never found :-).\n\nPS: If you're still confused by the autocommit mode, let me recommend\nthis excellent page from the Hibernate project: [Non-transactional data\naccess and the auto-commit mode](https://www.hibernate.org/403.html)\n", + "date": "2009-08-22 00:00:00" + }, + { + "url": "/2011/01/13/roadmap-doctrine2.html", + "slug": "roadmap-doctrine2", + "title": "Whats next? Our Roadmap", + "authorName": "beberlei", + "authorEmail": "", + "contents": "Doctrine 2 is now stable for about three weeks and we are pretty happy\nabout the increase in community discussions on IRC and mailing list.\nAdditionally its good to see that we are not flooded with new bug\nreports and we can keep closing all the incoming issues very fast.\n\nAt this point you are probably interested in our roadmap for minor and\nbugfix releases.\n\n- We will release bugfix releases every other month\n- We target minor releases for every 6 month, leading with a four\n month implementation and then a beta + RC timespan of two month.\n\nTo be specific, 2.0.1 is scheduled for next week and 2.1 is scheduled\nfor June 30th 2011.\n\nYou can follow the Tracker with all the features that are planned for\n2.1:\n\n[[https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022)](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10022)\n\nYou can already start testing 2.1 development with two new features as\nof last week:\n\n- [Foreign Keys as Primary\n Keys](https://github.com/doctrine/orm/issues/1772)\n- [Extra Lazy\n Collections](https://github.com/doctrine/orm/issues/5053)\n\n", + "date": "2011-01-13 00:00:00" + }, + { + "url": "/2008/09/11/doctrine-1-0-2-released.html", + "slug": "doctrine-1-0-2-released", + "title": "Doctrine 1.0.2 Released", + "authorName": "jwage", + "authorEmail": "", + "contents": "Due to a minor regression in 1.0.1 we are releasing 1.0.2 which\naddresses the issue discovered. The issue was reported and fixed\nimmediately. Big thanks to Adam Huttler for the detailed report which\nallowed us to fix the issue right away. You can download the new version\nhere or upgrade via pear as usual.\n", + "date": "2008-09-11 00:00:00" + }, + { + "url": "/2008/10/13/doctrine-1-0-3-released.html", + "slug": "doctrine-1-0-3-released", + "title": "Doctrine 1.0.3 Released!", + "authorName": "jwage", + "authorEmail": "", + "contents": "Today I am happy to introduce another important maintenance release for\nthe increasingly stable Doctrine 1.0. This release contains over 60\nclosed tickets and 80 changesets. It is recommended that you upgrade\nyour project right away. You can view the 1.0.3 changelog here.\n", + "date": "2008-10-13 00:00:00" + }, + { + "url": "/2022/08/06/dbal-3.4.0.html", + "slug": "dbal-3.4.0", + "title": "New Release: Doctrine DBAL 3.4.0", + "authorName": "Sergei Morozov", + "authorEmail": "morozov@tut.by", + "contents": "Doctrine is proud to announce the release of Doctrine DBAL 3.4.0. Below is a summary of the most noteworthy changes\nin the new release:\n\n## Database schema introspection optimization ([#5268](https://github.com/doctrine/dbal/pull/5268))\n\nOlder DBAL versions, in order to introspect database schema, performed a set of queries for each table individually.\nThis caused noticeable performance issues on some platforms like Oracle which seemingly rebuild their internal views\nfor each such query.\n\nAs of this release, the entire schema is introspected in a fixed number of queries. The more tables the schema contains,\nthe more noticeable this optimization should be.\n\nIt was impossible to make these optimizations while using the schema introspection platform methods\n(e.g. `getListTableColumnsSQL()`). As a result, although these methods are kept in the codebase for backward\ncompatibility, the DBAL itself no longer uses them. The SQL queries used for schema introspection are no longer\nconsidered part of the public DBAL API.\n\n## Support for foreign key constraints on SQLite ([#5427](https://github.com/doctrine/dbal/pull/5427))\n\nAlthough SQLite has supported foreign key constraints since its earliest versions, their support in the DBAL\nwas quite limited. One of the reasons for that was that managing foreign key constraints in SQLite is quite different\nfrom the rest of the supported platforms.\n\nFor example, when a foreign key constraint is declared, platforms like MySQL require that the referenced table\nmust already exist. To support creating tables with mutually referencing constraints, the DBAL would\ncreate the tables first and create the constraints via `ALTER TABLE \u2026 ADD FOREIGN KEY \u2026`.\n\nThis approach doesn't work with SQLite since it doesn't allow adding constraints to an existing table. Fortunately,\nit doesn't require the referenced table to exist at the time of creating the foreign key either.\n\nThe new DBAL release introduces a new API for building `CREATE TABLE` and `DROP TABLE` statements for multiple tables\nwhich could be tailored to the requirements of a given platform. The `AbstractPlatform::supportsForeignKeys()` method\nis now deprecated since the DBAL supports foreign key constraints on all supported platforms.\n\n## Support for TEXT/BLOB default values on MariaDB ([#5332](https://github.com/doctrine/dbal/pull/5332))\n\nThe platform layer in the DBAL is organized in the way that the code implementing the support for MySQL is also\nused to support MariaDB. As a result, even though MariaDB may support certain features the DBAL doesn't support them\nbecause they are not supported by MySQL. One of such features is the default values for TEXT and BLOB columns.\n\nAs of the new release, the default TEXT and BLOB values are supported on MariaDB but are still unsupported on MySQL,\neven though MySQL supports them as of\nrelease [8.0.13](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html#mysqld-8-0-13-data-types).\n\n## Support for result caching in QueryBuilder ([#5539](https://github.com/doctrine/dbal/pull/5539))\n\nThe recently added `enableResultCache()` method of the `QueryBuilder` class allows specifying the query cache profile\nto be used for performing the queries built by the builder.\n\n## PHP 7.4 or newer is required ([#5459](https://github.com/doctrine/dbal/pull/5459))\n\nThe DBAL no longer supports PHP 7.3 since its support by the community ended last year. The codebase now\nactively uses such features of PHP 7.4 as\n[covariant return types](https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters)\nand [typed properties](https://wiki.php.net/rfc/typed_properties_v2).\n\n## Deprecations\n\nIn light of the DBAL 4 release planned for later this year, the 3.4.0 release introduces over 30 deprecations which,\nas usual, focus on cleaning up obsolete features and making the API more robust and clearer from the\nstatic analysis standpoint.\n\nTo learn more about upgrading your application, see the\n[upgrade notes](https://github.com/doctrine/dbal/blob/3.4.0/UPGRADE.md#upgrade-to-34). You can find the full\nlist of changes in the release [milestone](https://github.com/doctrine/dbal/milestone/107).\n", + "date": "2022-08-06 00:00:00" + }, + { + "url": "/2014/02/21/doctrine_2_5_beta3.html", + "slug": "doctrine_2_5_beta3", + "title": "Doctrine DBAL 2.5 BETA3", "authorName": "default", "authorEmail": "", - "contents": "We are releasing new versions of Doctrine Cache, Annotations, ORM and\nMongoDB ODM today that fix a security misconfiguration vulnerability.\nThis vulnerability was assigned CVE-2015-5723. It requires an attacker\nto have direct access to a user of the server to be exploitable. We\nconsider exploitability to be low to medium.\n\nExploiting this vulnerability can allow attackers to perform local\narbitrary code execution with privileges of other users (privilege\nescalation).\n\n**You are only affected by this vulnerability, if your application runs\nwith a umask of 0.**\n\nPlease update:\n\n- Annotations to 1.2.7\n- Cache to 1.4.2 or 1.3.2\n- Common to 2.5.1 or 2.4.3\n- ORM to 2.5.1 or 2.4.8\n- MongoDB ODM to 1.0.2\n- MongoDB ODM Bundle to 3.0.1\n\nIf you want to check the fix or apply patch manually, we [provide a Gist\nwith all\npatches](https://gist.github.com/beberlei/dc6e4b018988cba7e211).\n\nIf you cannot upgrade, see our notes below how to mitigate the problem\nwithout having to patch the code.\n\nWe want to thank [Ryan Lane](https://twitter.com/squiddlane) for finding\nthe vulnerability, [Jonathan Eskew](https://github.com/jeskew) from the\nAWS team to pass this security vulnerability to us and [Anthony\nFerrara](https://twitter.com/ircmaxell) for helping us discuss and find\nsolutions to the problem.\n\nDetails\n=======\n\nDoctrine uses different kinds of caches and some of them read the cached\nentries using `require` or `include` to make use of APC or Opcache. In\ncase of proxy generation we actually need to execute the code to make a\nnew auto-generated class part of the code-base.\n\nDoctrine always uses `mkdir($cacheDirectory, 0777);` on many of those\ncaches directories. If your application is running with `umask(0)`, this\nallows an attacker to write arbitrary code into the cache directory\nwhich can be executed with the user privileges of the webserver.\n\nRunning your application with `umask(0)` is not generally a good idea,\nbut is sometimes recommended as simple solution to solve filesystem\naccess problems when a console and a web user both write to a common\ncache directory. In combination with a cache that executes the cache\nentries as code, this can allow local arbitrary code execution.\n\nThe patches released today change all caches that execute code to always\nuse a default mask of `0775` instead of `0777`.\n\n- In case of Cache and Annotations we solve this by implementing a\n userland configurable umask that defaults to `0002`. We apply this\n to every mkdir and chmod so that you can reconfigure to another mask\n if you must.\n- In all the other cases its a hardcoded change to `0775` for\n directories and `0664` for files.\n\nWe are aware that if you depend on `umask(0)`, this is a very\ninconvenient change, because your code will break when different users\nwrite to the same cache directory.\n\n**We feel it is not safe to make developers and operations responsible\nto know how to secure our cache implementations. They are often third\nparty libraries to other open-source systems, we want them to be safe no\nmatter how users configure their system.**\n\nAm I vulnerable?\n================\n\nYour application must run with `umask(0)` for this vulnerability to be\nexploitable. This must not necessarily be an explicit call to the PHP\nfunction, it can also happen if you misconfigured your shell or\nwebserver to run with umask 0 by default.\n\nYou can easily check this by calling `echo umask();` from both the shell\nand your webserver. It will return 0, if you are potentially vulnerable.\n\nSecond, you must be using using Doctrine with the Annotations FileCache\nor the PhpFileCache Cache implementation or one of the ORM or ODM\nProxyGenerators. Of course this vulnerability can also be present in any\nother library or your own application, when you dynamically generate PHP\ncode into a directory with world writable permissions.\n\nDo you provide fixes for all branches of all affected components?\n=================================================================\n\nNo, fixes are only applied to the most recent versions of Doctrine\ncomponents.\n\nIf you are running older components and don't want to or cannot upgrade,\nyou should look into the sections about immediate and proper fixes\nbelow, that show solutions that don't require upgrading your code.\n\nIf your system and application are correctly setup, it is also likely\nthat you are not vulnerable. See the next section for information about\nthat.\n\nIs there an immediate fix when I can't upgrade?\n===============================================\n\nYes, as an immediate fix just make sure that your application runs with\na non-zero umask all the time. Call `umask(umask() | 0002);` early in\nyour code to prevent PHP from ever creating world writeable files and\ndirectories.\n\nWarning: It can break your application if it relies on running with\n`umask(0);`.\n\nThis is not sufficient though, because the call to umask is not thread\nsafe and a call to this function later in the code can reset the umask\nfor all requests currently running. That means you must identify all\ncode that calls `umask(0);` and change it.\n\nWhen you are unsure if your generated cache is clean, you can regenerate\nall files after you have changed the umask of your application.\n\nIs there a proper fix or security best-practive to avoid this issue?\n====================================================================\n\nYes, the best way to fix this problem is to always execute PHP code for\na single application with the same user, independent of being called\nfrom the webserver, php-fpm or the shell. In this case you can always\ncreate directories with the default permissions of `0775` and files with\n`0664`:\n\n```php\n **SIDEBAR** Relational Databases, Object Databases, Key-Value Stores,\n> Document Stores, and Extensible Record Stores: [A\n> Comparison.](http://www.odbms.org/download/RickCattell.pdf) By Rick\n> Cattell:\n>\n> The NoSQL data stores can be categorized into three groups, according\n> to their data model and functionality:\n>\n> - Key-value Store provide a distributed index for object storage,\n> where the objects are typically not even interpreted by the\n> system: they are stored and handed back to the application as\n> BLOBs, as in the popular memcached system I mentioned. However,\n> these systems usually provide object replication for recovery,\n> partitioning of the data over many machines, and rudimentary\n> object persistence. Examples of key-value stores are memcached,\n> Redis, Riak, Scalaris, and Voldemort.\n> - Document Stores provide more functionality: the system does\n> recognize the structure of the objects stored. Objects (or\n> documents) may have a variable number of named attributes of\n> various types (integers, strings), objects can grouped into\n> collections, and the system provides a simple query mechanism to\n> search collections for objects with particular attribute values.\n> Like the key-value stores, document stores can also partition the\n> data over many machines, replicate data for automatic recovery,\n> and persist the data. Examples of document stores are SimpleDB,\n> CouchDB, MongoDB, and Dynamo.\n> - Extensible Record Stores, sometimes called wide column stores,\n> provide a data model more like relational tables, but with a\n> dynamic number of attributes, and like document stores, higher\n> scalability and availability made possible by database\n> partitioning and by abandoning database-wide ACID semantics.\n> Examples of extensible records stores are BigTable, HBase,\n> HyperTable, and Cassandra.\n\nSo when to use a document-oriented database and when to use a relational\ndatabase. The former is usually much better performing and easier to\nscale, while doesn't provide ACID compliance and data integrity that the\nlater has by definition. This means that if we choose to use\ndocument-oriented database, we get more performance and scalability, but\nneed to keep in mind, database level data integrity, transactions and\nlocks are no longer there and will need to be embedded in the\napplication logic itself, which will affect how we write and structure\nour code. In my opinion, document-oriented databases cannot replace\nrelational databases, and vice versa. Instead, they should be used to\nsolve different kinds of problems. At OpenSky we use both MySQL and\nMongoDB.\n", + "date": "2010-07-27 00:00:00" + }, + { + "url": "/2009/06/28/introducing-the-google-i18n-extension.html", + "slug": "introducing-the-google-i18n-extension", + "title": "Introducing the Google I18n Extension", + "authorName": "jwage", + "authorEmail": "", + "contents": "", + "date": "2009-06-28 00:00:00" + }, + { + "url": "/2008/02/14/doctrine-all-grown-up.html", + "slug": "doctrine-all-grown-up", + "title": "Doctrine all grown up", + "authorName": "jwage", + "authorEmail": "", + "contents": "

    \n\nOver the past several months, Doctrine has done some growing up. While\nthe code has been under constant development for over 2 years, it hasn't\nbeen until the last 6 months that Doctrine has gotten a proper home and\ninfrastructure to support the growth of the project over the coming\nyears. Some of the things we've been able to accomplish are listed\nbelow:\n\n

    • \n\nStandardized svn and trac urls to svn/trac.phpdoctrine.org\n\n
    • \n\nBrand new design and official logo by Phu Son\n\n
    • \n\nSetup donation collections for the Doctrine project\n\n
    • \n\nMigrated doctrine.pengus.net to phpdoctrine.org permanently\n\n
    • \n\nInitiated proper package/release branch management to ensure stability\nfor our users\n\n
    • \n\nAnd of course continuing development towards 1.0\n\n

    \n\nAll these things are great for the project and we hope it serves the\nproject well in the long run. Now we have some plans from today on. Soon\nwe will begin to phase out the 0.9 branch completely and it will be\nreplaced with the 0.10 branch. In the coming days we will release 0.9.1\nand 0.10.1. The next release after that will be 0.10.2 and the 0.9\nbranch will officially not be supported any longer. Everyone will be\nrecommended to upgrade to 0.10.2. On another note, trunk development\ntowards 1.0 has been furious in the past month or so. Romanb has\nspearheaded the re factorings required to bring Doctrine to the level\nrequired for a 1.0 release. We will continue developing in trunk towards\n1.0 while maintaining the 0.10.x branch bringing you bug fixes daily.\n\n

    \n\n\n", + "date": "2008-02-14 00:00:00" + }, + { + "url": "/2014/12/16/orm-247.html", + "slug": "orm-247", + "title": "ORM 2.4.7 released", "authorName": "Marco Pivetta", "authorEmail": "ocramius@gmail.com", - "contents": "We released [Doctrine Instantiator\n1.0.0](https://github.com/doctrine/instantiator/releases/tag/1.0.0)\nseveral weeks ago.\n\nThis project has been migrated from\n[ocramius/instantiator](https://github.com/Ocramius/Instantiator) into\nthe doctrine organization to have better maintenance, support as well as\nhandling of security related issues, which is a priority for us.\n\nThe migration has been done because all doctrine ORM and ODM projects\nwere affected by a quite big [backwards-incompatible change in PHP\n5.4.29 and PHP 5.5.13](https://bugs.php.net/bug.php?id=67072), which\n[was partially solved in PHP\n5.6.0-RC3](https://github.com/php/php-src/pull/733). The main tracking\nbug for this problem is \\`DDC-3120\\`\\_.\n\n[Doctrine Instantiator](https://github.com/doctrine/instantiator)\nprovides a simple API to build objects without directly relying on the\n[serialization\nhack](https://www.doctrine-project.org/2010/03/21/doctrine-2-give-me-my-constructor-back.html)\nthat has been explicitly used by all of our data mappers for quite some\ntime.\n\nInstallation\n============\n\nYou can install [Doctrine\nInstantiator](https://github.com/doctrine/instantiator) using Composer\nand the following `composer.json` contents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/instantiator\": \"1.0.*\"\n }\n}\n~~~~\n", - "date": "2014-09-11 00:00:00" + "contents": "We are happy to announce the immediate availability of Doctrine ORM\n2.4.7.\n\nThe release includes a fix for `null` values in column mapping options\nsupport:\n[DDC-3425](https://github.com/doctrine/orm/issues/4231) We also\nfixed various `Paginator` tool issues: - allowing DQL queries that have\n`HIDDEN` selected fields appearing both in the `SELECT` and the\n`ORDER BY` clauses:\n[DDC-3434](https://github.com/doctrine/orm/issues/4241) -\nallowing DQL queries that have `SELECT` clauses containing parameters:\n[DDC-3336](https://github.com/doctrine/orm/issues/4133)\n\nYou can find all the changes on JIRA:\n\n- [ORM\n 2.4.7](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10724)\n - 2 issues fixed\n\nYou can install the ORM using Composer and the following `composer.json`\ncontents:\n\n~~~~ {.sourceCode .json}\n{\n \"require\": {\n \"doctrine/orm\": \"2.4.7\"\n }\n}\n~~~~\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", + "date": "2014-12-16 00:00:00" }, { - "url": "/2015/08/18/doctrine-mongodb-odm-release-1-0-0.html", - "slug": "doctrine-mongodb-odm-release-1-0-0", - "title": "Doctrine MongoDB ODM release 1.0.0", - "authorName": "Maciej Malarz", - "authorEmail": "malarzm@gmail.com", - "contents": "In observance of August 18th, the day that Jon Wage tagged Doctrine\nMongoDB ODM's [first BETA\nrelease](https://github.com/doctrine/mongodb-odm/releases/tag/1.0.0BETA1),\nwe've come together for a big celebration. From humble beginnings as a\nweekend hack to port Doctrine 2's data mapper pattern to NoSQL, the ODM\nquickly became a beast of a project and cut its teeth on production\nservers early on as a core dependency of the very first Symfony2\nstartups. Today, after five years of adoption, improvements,\nrefactoring, and [countless\njokes](https://twitter.com/jmikola/status/583047759160336384?lang=en)\u2026\nwe are very happy to announce the immediate availability of Doctrine\nMongoDB ODM 1.0.0!\n\nWhat is new in 1.0.0?\n=====================\n\nFor our first stable release, we focused on fixing most known bugs (some\nof which were open for *years*), hardening existing features, and\nstraightening out ODM's behaviour and correctness where possible. In\nhopes of ensuring a pleasant upgrade experience, we have prepared a\n[checklist](https://github.com/doctrine/mongodb-odm/blob/master/CHANGELOG-1.0.md#100-2015-08-18)\nfor you, which highlights the most important changes that may require\nyour attention. A complete list of resolved issues and pull requests may\nbe found on GitHub under the [1.0.0\nmilestone](https://github.com/doctrine/mongodb-odm/issues?q=milestone%3A1.0.0).\n\nBehind the scenes: Doctrine MongoDB 1.2.0\n=========================================\n\nWe are also happy to announce the immediate availability of Doctrine\nMongoDB 1.2.0, which is the underlying driver abstraction layer employed\nby the ODM. In particular, this release sports a brand new [Aggregation\nBuilder](https://github.com/doctrine/mongodb/pull/213), along with\nimproved query builder support for [update\noperators](https://github.com/doctrine/mongodb/pull/212) and and\n[full-text search](https://github.com/doctrine/mongodb/pull/184)\nintroduced in MongoDB 2.6. For a full list of closed issues and pull\nrequests, please see the [release notes on\nGitHub](https://github.com/doctrine/mongodb/releases/tag/1.2.0).\n\nStop fooling around, I want my BETA back!\n=========================================\n\nWe apologize for any inconvenience, but Doctrine MongoDB ODM has\nofficially gone stable and we don't intend on shipping more BETAs\nanytime soon. Well, at least not until work begins on 2.0 :D\n", - "date": "2015-08-18 00:00:00" + "url": "/2008/10/12/new-hydration-modes-for-doctrine-1-1.html", + "slug": "new-hydration-modes-for-doctrine-1-1", + "title": "New hydration modes for Doctrine 1.1", + "authorName": "romanb", + "authorEmail": "", + "contents": "

    \n\nI would like to announce the addition of two new hydration modes to the\n1.1 branch that will be included in the 1.1 release.\n\n

    • \n\nHYDRATE\\_SCALAR - flat array where the key is made up of the query\ncomponent alias + field name. This method offers access to all the same\ndata in a flat array and the hydration process for it is much faster.\n\n
    • \n\nHYDRATE\\_SINGLE\\_SCALAR - Allows you to easily access single value\nresults, bypassing the expensive hydration process.\n\n

    \n\nWe feel that they fill an important gap between HYDRATE\\_NONE and\nHYDRATE\\_RECORD/HYDRATE\\_ARRAY.\n\n

    \n\nYou can read more about the new hydration modes in the docs. Starting at\n\"Fetching data\". You can also take a look at the new test case.\n\n

    \n\nWe encourage everyone to try them out and give us some feedback. Note\nthat this is a feature preview and the implementation and syntax might\nchange (or not) until the final 1.1 release, depending on how many\nissues arise and depending on the feedback.\n\n

    \n\n\n", + "date": "2008-10-12 00:00:00" }, { - "url": "/2015/09/16/doctrine_dbal_2_5_2_released.html", - "slug": "doctrine_dbal_2_5_2_released", - "title": "Doctrine DBAL 2.5.2 released", - "authorName": "Steve M\u00fcller", - "authorEmail": "deeky666@googlemail.com", - "contents": "We are happy to announce the immediate availability of Doctrine DBAL\n2.5.2.\n\nThis version fixes a regression where dropping a database on PostgreSQL\ndidn't work properly anymore as well as several other issues.\n\nYou can find all the changes on JIRA:\n\n- [DBAL\n 2.5.2](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10731)\n - 24 issues fixed\n\nYou can install the DBAL using Composer and the following\n`composer.json` contents:\n\n```json\n{\n \"require\": {\n \"doctrine/dbal\": \"2.5.2\"\n }\n}\n```\n\nPlease report any issues you may have with the update on the mailing\nlist or on [Jira](https://www.doctrine-project.org/jira).\n", - "date": "2015-09-16 00:00:00" + "url": "/2010/08/07/dc2-experimental-associations-id-fields.html", + "slug": "dc2-experimental-associations-id-fields", + "title": "Experimental Doctrine 2 Feature: Associated Entities as Id Fields", + "authorName": "beberlei", + "authorEmail": "", + "contents": "Doctrine 2 supports composite keys of primitive types from the\nbeginning, however we realized early that a very common use-case is a\ncomposite key with one or more elements being associated entities. For\nexample think of a CMS System which allows Article Translations. A\ncommon SQL schema for this case would be:\n\n [sql]\n CREATE TABLE article (id INT PRIMARY KEY, title VARCHAR(255), body LONGTEXT);\n\n CREATE TABLE article_translations (article_id INT, language CHAR(3), title VARCHAR(255), body LONGTEXT, PRIMARY KEY (article_id, language));\n\nThis sort of schema cannot be mapped with Doctrine 2 currently, it would\nbe required to add another column `id` on the article\\_translations\ntable and enforce a unique constraint on article\\_id + language.\n\nUnder the umbrella of\n[DDC-117](https://github.com/doctrine/orm/issues/1772) and some\nrelated tickets there were discussions about adding a feature that would\nhelp solve this problem: Allowing to add @Id to @ManyToOne or @OneToOne\nmappings. I committed this feature into an experimental Git branch today\nand we ask you to test this with as many crazy scenarios and use-cases\nas possible.\n\nThis feature can potentially be uber-powerful, however we want to be\nsure that it works correctly and does not have to many problematic\nedge-cases. Therefore we need your feedback.\n\n- Go to\n [[https://github.com/doctrine/orm/commits/DDC-117](https://github.com/doctrine/orm/commits/DDC-117)](https://github.com/doctrine/orm/commits/DDC-117)\n to see the code\n- [Have a look at the functional\n tests](https://github.com/doctrine/orm/blob/master/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC117Test.php)\n to see the synatx\n- Checkout the Git Repository and switch to the experimental branch\n `git checkout DDC-117`\n- Do crazy testing against this branch!\n\nPersonally I want this feature in core very much, however composite keys\nare very tricky. We want to find as many problematic cases with this\nfeature as possible. That would enable us to evaluate if this approach\nwill be merged into Doctrine 2.1 or not.\n\n> **NOTE**\n>\n> This feature currently only works with Annotations Mapping Driver. XML\n> and YAML will follow later.\n\nBy the way, the previous example is actually one of the functional\ntest-cases for this feature:\n\n~~~~ {.sourceCode .php}\ntitle = $title;\n $this->translations = new \\Doctrine\\Common\\Collections\\ArrayCollection();\n }\n}\n\n/**\n * @Entity\n */\nclass DDC117Translation\n{\n /**\n * @Id @ManyToOne(targetEntity=\"DDC117Article\")\n */\n private $article;\n\n /**\n * @Id @column(type=\"string\")\n */\n private $language;\n\n /**\n * @column(type=\"string\")\n */\n private $title;\n\n public function __construct($article, $language, $title)\n {\n $this->article = $article;\n $this->language = $language;\n $this->title = $title;\n }\n}\n\n$article = new DDC117Article(\"foo\");\n$em->persist($article);\n$em->flush();\n\n$translation = new DDC117Translation($article, \"en\", \"Bar\");\n$em->persist($translation);\n$em->flush();\n~~~~\n", + "date": "2010-08-07 00:00:00" }, { - "url": "/2009/06/21/doctrine-future-roadmap.html", - "slug": "doctrine-future-roadmap", - "title": "Doctrine Future Roadmap", + "url": "/2007/12/03/beta2_released.html", + "slug": "beta2_released", + "title": "Beta 2 Released", "authorName": "jwage", "authorEmail": "", - "contents": "So, lately we've been discussing and getting a lot of questions about\nthe future roadmap of Doctrine, specifically 2.0. If you are following\nPHP 5.3 you will have noticed that PHP 5.3 RC4 was released last week.\nThis means that the stable release of 5.3 is very near.\n\nBelow you will find a schedule of the roadmap we have planned for the\nupcoming months/years.\n\n| Date | Item | | -------------- |\n------------------------------------------------ | | 06/22/2009 | Branch\nDoctrine 1.2 | | 06/24/2009 | PHP 5.3.0 Stable Release (YES!!!) | |\n09/2009 | Begin 1.2 release cycle. Alpha, Beta, RC, Stable | | 09/2009 |\nFinal 6 months of 1.0 Support | | 09/2009 | Launch 2.0 Alpha 1 | |\n11/2009 | Launch 1.2.0 with Long Term Support (18 months) | | 11/2009 |\nSymfony 1.3 + Doctrine 1.2 | | 11/2009 | End Doctrine 1.1 Support | |\n03/2010 | End Doctrine 1.0 Support | | 03/2010 | Continue 2.0 release\ncycle | | ??/2010 | Release 2.0.0 with Long Term Support (18 months) | |\n06/2011 | End Doctrine 1.2 Support |\n\nWe hope that the above timeline gives PHP 5.3 plenty of time to be\nadopted before we officially stop support for the Doctrine 1.x series.\nWe think it will be plenty of time but depending how things play out, we\ncan always add more time to the support life cycle of the 1.x series,\nbut we hope to not have to. So, this Wednesday when PHP 5.3 is released,\nplease switch to it if you can and help with the adoption.\n", - "date": "2009-06-21 00:00:00" + "contents": "On Friday November 30th, the second beta release of the PHP5 Doctrine\nORM software was released. A lot of progress has been made since the\nfirst beta(formerly known as RC1). Dozens and dozens of tickets have\nbeen fixed, new features have been added, much needed re-factorings have\ntaken place and the community behind Doctrine is growing daily.\n", + "date": "2007-12-03 00:00:00" + }, + { + "url": "/2008/01/05/project_status.html", + "slug": "project_status", + "title": "Project Status", + "authorName": "jwage", + "authorEmail": "", + "contents": "Here is a short update on the current project status. We're heavily\ndeveloping towards a 1.0 release that will bring lots of enhancements\nlike improved inheritance mapping and lots of other stuff. We're\nespecially keen on making this release as stable as possible and on\npolishing the documentation.\n\nUntil then we strongly encourage everyone to use the 0.9 branch that can\nbe found here:\n[http://svn.phpdoctrine.org/branches/0.9](http://svn.phpdoctrine.org/branches/0.9)\nIt's a feature-frozen branch that recieves bugfixes. There will be no\nchanges that break backwards compatibility in this branch.\n\nThe current trunk is under heavy development, so please don't use it\nunless you are developing on Doctrine's source code or you are just very\ncurious.\n\nWhen the time for the 1.0 release comes near we will provide a migration\nguide and do everything possible to help you take the leap from 0.9 to\n1.0.\n\nPS: At this point, the the whole Doctrine team wants to apologize for\nthe version mess you've gone through (and are still getting through). We\nreally messed up in terms of release management mainly due to the lack\nof experience in this area. This stops here. 0.9 will stay and it will\nstay for a while. We're not going to rush releases again.\n\nThank you very much.\n", + "date": "2008-01-05 00:00:00" + }, + { + "url": "/2013/01/08/doctrine-2-3-2.html", + "slug": "doctrine-2-3-2", + "title": "Doctrine 2.3.2 released", + "authorName": "Benjamin Eberlei", + "authorEmail": "", + "contents": "**08.01.2013**\n\nWe have released the second mini release in the 2.3 cycle.\n\n- [DBAL\n Changelog](https://www.doctrine-project.org/jira/browse/DBAL/fixforversion/10326)\n- [ORM\n Changelog](https://www.doctrine-project.org/jira/browse/DDC/fixforversion/10324)\n\nYou can install the release through\n[Github](https://github.com/doctrine/orm) , download, PEAR or\n[Composer](https://packagist.org):\n\n {\n \"require\": {\n \"doctrine/orm\": \"2.3.1\"\n }\n }\n", + "date": "2013-01-08 00:00:00" + }, + { + "url": "/2015/05/05/doctrine-orm-module-release-0-9-0.html", + "slug": "doctrine-orm-module-release-0-9-0", + "title": "DoctrineORMModule release 0.9.0", + "authorName": "Gianluca Arbezzano", + "authorEmail": "gianarb92@gmail.com", + "contents": "The **Zend Framework Integration Team** is happy to announce the new\nrelease of **DoctrineORMModule**.\n\nDoctrineORMModule 0.9.0 is out of the door!!\n\n*Note* that this is the last version that supports\n[doctrine/migrations](https://github.com/doctrine/migrations). We are\nworking on extracting this feature into an independent module.\n\nFollow issue\n[\\#401](https://github.com/doctrine/DoctrineORMModule/pull/401).\n\nThe Following issues were solved in this release:\n: - [[\\#199] Add 'entity\\_listener\\_resolver' config\n key](https://github.com/doctrine/DoctrineORMModule/pull/199)\n - [[\\#281] Forced failing unit test for\n \\#247](https://github.com/doctrine/DoctrineORMModule/pull/281)\n - [[\\#306] Removing PHP 5.3.3\n support](https://github.com/doctrine/DoctrineORMModule/pull/306)\n - [[\\#272] Fix and test \\#270, \\#242,\n \\#285](https://github.com/doctrine/DoctrineORMModule/pull/272)\n - [[\\#311] remove unused\n statement](https://github.com/doctrine/DoctrineORMModule/pull/311)\n - [[\\#326] Highlight only uppercase\n words](https://github.com/doctrine/DoctrineORMModule/pull/326)\n - [[\\#329] remove unused\n statements](https://github.com/doctrine/DoctrineORMModule/pull/329)\n - [[\\#328] wrong var\n assignment](https://github.com/doctrine/DoctrineORMModule/pull/328)\n - [[\\#313] Prevent overriding of\n type](https://github.com/doctrine/DoctrineORMModule/pull/313)\n - [[\\#338] order the\n classes](https://github.com/doctrine/DoctrineORMModule/pull/338)\n - [[\\#346] Corrected a typo in a comment to better\n clarify](https://github.com/doctrine/DoctrineORMModule/pull/346)\n - [[\\#357] Modify sql\\_logger\\_collector class\n factory](https://github.com/doctrine/DoctrineORMModule/pull/357)\n - [[\\#360] Add example for\n entity\\_resolver](https://github.com/doctrine/DoctrineORMModule/pull/360)\n - [[\\#359] Update deprecated dialog console\n helper](https://github.com/doctrine/DoctrineORMModule/pull/359)\n - [[\\#363] Prevent ZendFormElementFile types inherit of\n StringLength\n validator...](https://github.com/doctrine/DoctrineORMModule/pull/363)\n - [[\\#365] Re-enable scrutinizer code\n coverage](https://github.com/doctrine/DoctrineORMModule/pull/365)\n - [[\\#373] Add doc for\n cache](https://github.com/doctrine/DoctrineORMModule/pull/373)\n - [[\\#347] added extra check in\n handleRequiredField](https://github.com/doctrine/DoctrineORMModule/pull/347)\n - [[\\#377] fix\n docblocks](https://github.com/doctrine/DoctrineORMModule/pull/377)\n - [[\\#376] Add latest migrations\n command](https://github.com/doctrine/DoctrineORMModule/pull/376)\n - [[\\#375] Default\n repository](https://github.com/doctrine/DoctrineORMModule/pull/375)\n - [[\\#374] Use ResolveTargetEntityListener as an event subscriber\n when\n supported](https://github.com/doctrine/DoctrineORMModule/pull/374)\n - [[\\#318] Add support for second level\n cache](https://github.com/doctrine/DoctrineORMModule/pull/318)\n - [[\\#378] Allow to set file lock for\n SLC](https://github.com/doctrine/DoctrineORMModule/pull/378)\n - [[\\#380] Fix typo in configuration file\n markdown.](https://github.com/doctrine/DoctrineORMModule/pull/380)\n - [[\\#385] Allow symfony 3.0\n components](https://github.com/doctrine/DoctrineORMModule/pull/385)\n - [[\\#388] update comment block in Module.php as no\n Module::getAutoloaderConfig()](https://github.com/doctrine/DoctrineORMModule/pull/388)\n - [[\\#389] Delete Module.php in root\n directory](https://github.com/doctrine/DoctrineORMModule/pull/389)\n - [[\\#390] travis: PHP 5.6, 7.0 nightly added, 5.3\n dropped](https://github.com/doctrine/DoctrineORMModule/pull/390)\n - [[\\#392] Use-case: caching module' s\n configuration](https://github.com/doctrine/DoctrineORMModule/pull/392)\n - [[\\#396] Removed unnecessary line in travis\n config](https://github.com/doctrine/DoctrineORMModule/pull/396)\n - [[\\#398] Composer \\* -update for stable\n version](https://github.com/doctrine/DoctrineORMModule/pull/398)\n\nTo install this version, simply update your `composer.json`:\n\n```json\n{\n \"require\": {\n \"doctrine/doctrine-orm-module\": \"0.9.0\"\n }\n}\n```\n", + "date": "2015-05-05 00:00:00" + }, + { + "url": "/2009/11/23/doctrine-1-2-0-rc1-released.html", + "slug": "doctrine-1-2-0-rc1-released", + "title": "Doctrine 1.2.0-RC1 Released", + "authorName": "jwage", + "authorEmail": "", + "contents": "Today the first release candidate for the 1.2 version of Doctrine is\navailable for [download](https://www.doctrine-project.org/download#1_2).\nWe addressed around 20 or so issues in\n[Jira](https://www.doctrine-project.org/jira) for this release and we\nhope to have a stable release by the end of November. Please test this\nlatest release and report any issues you discover in\n[Jira](https://www.doctrine-project.org/jira).\n\nView the full [change\nlog](https://www.doctrine-project.org/change_log/1_2_0_RC1) for this\nrelease and [download RC1](https://www.doctrine-project.org/download#1_2)\nnow!\n", + "date": "2009-11-23 00:00:00" + }, + { + "url": "/2009/08/24/doctrine-2-0-quality-assurance.html", + "slug": "doctrine-2-0-quality-assurance", + "title": "Doctrine 2.0 Quality Assurance", + "authorName": "guilhermeblanco", + "authorEmail": "", + "contents": "Greetings folks!\n\nToday I'd like to talk about Quality Assurance in PHP projects.\nCurrently, PHP lacks good tools for QA, but thanks to a special PHP\nuser, [Sebastian Bergmann](https://sebastian-bergmann.de/) , this is\nchanging gradually. If you don't know him, you can visit his blog and\ncheck about projects he's on. For lazy people, he's the author of\n[PHPUnit](https://www.phpunit.de) , a de-facto Unit Test suite in PHP.\n\nDoctrine 2.0 uses PHPUnit as our Unit Test suite. It relies on PEAR to\nbe installed, but you can also install it via SVN.\n\nThe main initiative of QA in PHP projects is the website\n[[http://qualityassuranceinphpprojects.com](http://qualityassuranceinphpprojects.com)](http://qualityassuranceinphpprojects.com).\nThere you can find available tools to measure, for example, how complex\nis your project and possible semantical issues.\n\nI have applied some of these tests against [Doctrine\n2.0](http://trac.doctrine-project.org/browser/trunk) to see how complex\nit is and if it can be optimized more. The first test I run is a trace\nabout how complex our code base is. The tool I used is\n[phploc](https://github.com/sebastianbergmann/phploc/tree/master). Check\nout the results:\n\n [bash]\n MacBlanco:bin guilhermeblanco$ ./phploc /Users/guilhermeblanco/www/doctrine/trunk/lib\n phploc 1.1.1 by Sebastian Bergmann.\n\n Directories: 31\n Files: 210\n\n Lines of Code (LOC): 38826\n Comment Lines of Code (CLOC): 17004\n Non-Comment Lines of Code (NCLOC): 21822\n\n Interfaces: 11\n Classes: 229\n Non-Static Methods: 1699\n Static Methods: 106\n Functions: 95\n\nOf course it still misses a couple of code to implement (CLI Tasks,\nLocking strategies, ID Generators), but now we know how big Doctrine 2.0\nis. Then, I decided to check duplicated code (possible optimization\nlocations). The tool\n[phpcpd](https://github.com/sebastianbergmann/phpcpd/tree/master) gave me\nthis feedback:\n\n [bash]\n MacBlanco:bin guilhermeblanco$ ./phpcpd /Users/guilhermeblanco/www/doctrine/trunk/lib\n phpcpd 1.1.1 by Sebastian Bergmann.\n\n Found 1 exact clones with 15 duplicated lines in 2 files:\n\n - ./Doctrine/DBAL/Platforms/MsSqlPlatform.php:126-141\n ./Doctrine/DBAL/Platforms/MySqlPlatform.php:633-648\n\n 0.04% duplicated lines out of 38826 total lines of code.\n\nI asked myself: It must be a method that could be moved to\n`AbstractPlatform.php`! So I opened both files and... no! It's a piece\nof code that cannot be optimized. So, consider Doctrine 2.0 extremely\noptimized, because there is no duplicated code internally!\n\nNow Unit Test suite. Doctrine 2.0 has a steadily growing set of Unit\nTests, and we are regularly analyzing the code coverage analysis to find\nparts that need more tests. Here is how such a coverage report is\ngenerated:\n\n [bash]\n MacBlanco:tests guilhermeblanco$ phpunit --coverage-html=./_coverage Doctrine_Tests_AllTests\n PHPUnit 3.3.17 by Sebastian Bergmann.\n\n .....................................S.S.................... 60 / 562\n ............................................................ 120 / 562\n .....................................................SSSSSSS 180 / 562\n SSSSSSSSSSSSSSSS............................................ 240 / 562\n ............................................................ 300 / 562\n ............................................................ 360 / 562\n ............................................................ 420 / 562\n ............................................................ 480 / 562\n ............................................................ 540 / 562\n ...SS.................\n\n Time: 18 seconds\n\n OK, but incomplete or skipped tests!\n Tests: 562, Assertions: 1420, Skipped: 27.\n\n Generating code coverage report, this may take a moment.\n\nThe generated coverage can be seen in the following picture.\n\nFinally, some metrics are good to inspect how stable is our code. I\napplied [pdepend](http://pdepend.org) , and it gave me these results:\n\n![jdepend chart\n](https://www.doctrine-project.org/blog-images/doctrine-2-0-qa/picture2.png)\n\n![pyramid overview\n](https://www.doctrine-project.org/blog-images/doctrine-2-0-qa/picture3.png)\n\nThe command I ran was:\n\n [bash]\n MacBlanco:bin guilhermeblanco$ ./pdepend --summary-xml=/Users/guilhermeblanco/summary.xml --jdepend-chart=/Users/guilhermeblanco/jdepend.svg --overview-pyramid=/Users/guilhermeblanco/pyramid.svg /Users/guilhermeblanco/www/doctrine/trunk/lib\n\nHere is the generated summary. If you have any other ideas/tools that we\nshould apply in our codebase to generate other metrics, please drop us a\nmessage!\n", + "date": "2009-08-24 00:00:00" + }, + { + "url": "/2009/06/17/special-price-offer-symfony-1-2-doctrine-training-workshop.html", + "slug": "special-price-offer-symfony-1-2-doctrine-training-workshop", + "title": "Special Price Offer: Symfony 1.2 + Doctrine Training Workshop", + "authorName": "jwage", + "authorEmail": "", + "contents": "As you all may know, I work for [Sensio Labs](https://sensiolabs.com)\n, the creators of the [Symfony](http://www.symfony-project.org)\nframework. Sensio offers trainings in many topics, but primarily Symfony\nand Doctrine. I will be teaching a training session June 29th to July\n1st in the San Francisco bay area that covers Symfony 1.2 and Doctrine\n1.0. We are having a little issue completely filling the class and I\nneed a few more trainees in order to fill the class to maintain the\ndate, otherwise we'll have to cancel.\n\nI am able to make a special offer to any interested parties on the price\nof the training. All things are negotiable. So if you would like to\nattend the 3 day workshop taught by myself and learn the best practices\nwhen using Symfony and Doctrine, contact me right away! Remember, the\nprice is completely negotiable so if you're a student or a member of a\ndevelopment team and would like to attend please contact me so we can\nnegotiate a price that works for you.\n\nYou can contact me at\n[jonathan.wage@sensio.com](mailto:jonathan.wage@sensio.com) to discuss\ndetails.\n", + "date": "2009-06-17 00:00:00" + }, + { + "url": "/2010/08/10/mongodb-odm-atomic-operator-improvements.html", + "slug": "mongodb-odm-atomic-operator-improvements", + "title": "MongoDB ODM: Atomic Operator Improvements", + "authorName": "jwage", + "authorEmail": "", + "contents": "Recently we've improved the support for use of atomic operators and how\nmuch it takes advantage of them in the Doctrine MongoDB ODM. Now when\nupdating embedded documents it will use dot annotation to `$set` the\nindividual properties instead of sending the entire document even if\nonly one property changes.\n\nHere is an example, first insert some new data:\n\n~~~~ {.sourceCode .php}\nsetStreet('6512 Mercomatic Ct');\n\n$user = new User();\n$user->setUsername('jwage');\n$user->setAddress($address);\n$user->addPhonenumber(new Phonenumber('6155139185'));\n\n$dm->persist($user);\n$dm->flush();\n~~~~\n\nNow if we make some changes and `flush()` again it will perform an\nupdate:\n\n~~~~ {.sourceCode .php}\ngetPhonenumbers();\n\n$address->setCity('Nashville');\n$phonenumbers[0]->setPhonenumber('booooo');\n\n$user->addPhonenumber(new Phonenumber('1234'));\n\n$dm->flush();\n~~~~\n\nThe above will result in the following queries, first it must run a\n`$set` to modify existing embedded documents:\n\n Array\n (\n [$set] => Array\n (\n [address.city] => Nashville\n [phonenumbers.0.phonenumber] => booooo\n )\n\n )\n\nThen it issues another update to `$pushAll` the new phonenumbers:\n\n Array\n (\n [$pushAll] => Array\n (\n [phonenumbers] => Array\n (\n [0] => Array\n (\n [phonenumber] => 1234\n )\n\n )\n\n )\n\n )\n", + "date": "2010-08-10 00:00:00" + }, + { + "url": "/2011/05/16/doctrine-2-1-beta-release.html", + "slug": "doctrine-2-1-beta-release", + "title": "Doctrine 2.1 Beta and Backwards Compatibility Competition", + "authorName": "beberlei", + "authorEmail": "", + "contents": "We would like to announce the first beta release of Doctrine 2.1. It is\npacked with new features that will make your life easier:\n\n- **Indexed associations:** You can force Doctrine to hydrate\n collection elements by using a field of the target entity as key,\n for example the ID or any unique field. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/working-with-indexed-associations.html).\n- **Extra Lazy Collections:** Instead of always initializing the\n complete collection in memory you can now mark a collection as extra\n lazy, leading to special SQL executed for Collection\\#count(),\n Collection\\#contains() and Collection\\#slice(). This allows to\n implement efficient pagination on collections without having to use\n DQL. It also allows to save some memory for common use-cases with\n very large collections. See the [tutorial for this\n feature](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/extra-lazy-associations.html).\n- **Identity through Foreign Entities or derived entities:** You can\n now use a foreign key as identifier of an entity. This translates to\n using @Id on a @ManyToOne or @OneToOne association. You can read up\n on this [feature in the\n tutorial](https://www.doctrine-project.org/docs/orm/2.0/en/tutorials/composite-primary-keys.html#identity-through-foreign-entities).\n- **Persister Refactoring:** Instead of reimplementing hydration in\n the persisters we now use the hydration mechanism that is used by\n DQL aswell. Sadly performance for hydration in the persisters drops\n by 5-25% for different use-cases. It starts with a drop of 5% for a\n few hydrations and increases the more hydrations you are doing in a\n request. As a benefit we could remove tons of code and use several\n optimizations that actually increase performance when using\n fetch=\"EAGER\" in ManyToOne and OneToOne associations. Furthermore\n inverse OneToOne associations previously always executed an\n additional query, which is now replaced with a join.\n- **Temporary fetch mode in DQL** On a DQL Query you can now call\n \\`\\$query-\\>setFetchMode(\\$\\`className, \\$assocName, \\$fetchMode) to\n temporarily set the fetch mode to a value different from the one\n defined in the Association Mapping. If you set a ManyToOne or\n OneToOne association to eager fetching Doctrine will use a batch\n WHERE id IN (..) query to fetch all entities in a single query.\n- **Binding Arrays to a Query:** Doctrine now implements low-level\n support for binding arrays to named or positional parameters. This\n is possible with the Doctrine::TYPE\\_INT\\_ARRAY and\n Doctrine::TYPE\\_STR\\_ARRAY parameters that you have to pass as types\n to a query you want to use this feature in. EntityRepository now\n supports passing arrays as values to a field and uses an IN query.\n- **EntityRepository Limit and OrderBy:** The method\n EntityRepository\\#findBy() now accepts additional parameters for\n ordering, limit and offset.\n- **ResultSetMapping Helper:** There is now a class that simplifies\n populating a ResultSetMapping based on an existing ClassMetadata\n instance.\n- **Zero Based Parameters in Queries:** You can now start with the\n parameter ?0 in DQL queries.\n- **Named DQL Queries in Metadata:** You can add dql queries in the\n mapping files using @NamedQueries(@NamedQuery(name=\"foo\",\n query=\"DQL\")) and access them through\n \\$em-\\>getRepository()-\\>getNamedQuery().\n- **Date related DQL functions:** Suport for DATE\\_ADD(), DATE\\_SUB()\n and DATE\\_DIFF() in DQL.\n- **New console command orm:info:** Gives details about all registered\n entities and if their mappings are valid or not.\n- **Read Only Entities:** You can set the attribute readOnly=true on\n an entity. This will only allow to persist new instances of this\n entity or removing them, they will never be considered for updating,\n thus allowing for performance optimizations where these entities are\n not considered in the UnitOfWork changeset computations.\n- **SQL Query Object:** There is now an SQL Query object in the\n Doctrine project. You can create an instance with\n \\$connection-\\>createQueryBuilder().\n- **Automatic Parameter Type Inference:** For certain parameters types\n such as integer and DateTime ORM Query::setParameter can now\n automatically infer the type instead of requiring manually passing\n the values as third parameter.\n\nDocumentation for all the feature will be updated in the next weeks. The\nrelease is planned for June 30th 2011.\n\nWith all this new features, some of them requiring large internal\nrefactorings, we want to assure that Doctrine 2.1 is backwards\ncompatible with Doctrine 2.0. Our testsuite ensuring backwards\ncompatibility is very large, but we cannot be sure that we test for\nevery edge case. That is where you as Doctrine-user come into play:\nPlease test Doctrine 2.1 with your applications and give us feedback\nabout backwards compatibility. Please report any problem on Jira or\nwrite a mail to the doctrine-user or doctrine-dev mailing list.\n\nAnyone finding a backwards incompatible change gets an honorable mention\nin the release notes and some may even get small presents! (This only\napplies to versions \\>= Doctrine 2.0.0 with no customizations and people\nliving in countries with reasonable shipping rates :-)).\n", + "date": "2011-05-16 00:00:00" + }, + { + "url": "/2009/11/04/doctrine-1-2-documentation-available.html", + "slug": "doctrine-1-2-documentation-available", + "title": "Doctrine 1.2 Documentation Available", + "authorName": "jwage", + "authorEmail": "", + "contents": "I am happy to announce that [Doctrine 1.2\ndocumentation](https://www.doctrine-project.org/documentation/manual/1_2/en)\nis now available and up to date. It might still need some work but for\nthe most part it is updated with all the new features and changes in\n1.2.\n\nNew Chapters\n============\n\n- [Data\n Hydrators](https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/data-hydrators.html)\n- [Extensions](https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/extensions.html)\n\nPlease read over it and create\n[Jira](https://www.doctrine-project.org/jira) issues for any problems or\ncorrections you find.\n", + "date": "2009-11-04 00:00:00" + }, + { + "url": "/2021/11/26/dbal-3.2.0.html", + "slug": "dbal-3.2.0", + "title": "New Release: Doctrine DBAL 3.2.0", + "authorName": "Sergei Morozov", + "authorEmail": "morozov@tut.by", + "contents": "We are happy to announce the immediate availability of Doctrine DBAL 3.2.0. As most of the minor releases, this one\nfocuses on new features, improvements and deprecations of the old APIs. Here are some details on the most significant\nfeatures and improvements:\n\n## Platform-aware schema comparison ([#4746](https://github.com/doctrine/dbal/pull/4746))\n\nUp until this release, the logic of comparing database schemas had a major design flaw: it took into account only the\nabstract schema definitions without taking the target platform into account.\n\nThis flaw would lead to multiple issues which shared the same root cause: the two definitions could be considered\ndifferent by the DBAL, but they would produce the same DDL.\n\nFor instance, consider the two column definitions:\n\n```php\n// old schema\n$column1 = new Column('contents', Type::getType('text'));\n\n// new schema\n$column2 = new Column('contents', Type::getType('text'), ['default' => 'Hello, world!']);\n```\n\nIf we compared them with the comparator, we'd get a diff:\n\n```php\n$comparator = new Comparator();\n$comparator->diffColumn($column1, $column2);\n// array(1) {\n// [0] =>\n// string(7) \"default\"\n// }\n```\n\nThis might be valid for the platforms that support the `DEFAULT` constraint on `TEXT` columns but isn't valid for those\nthat don't support it (e.g. MySQL). Regardless of the diff, both definitions would produce the same DDL on MySQL:\n\n```sql\ncontents LONGTEXT NOT NULL\n```\n\nAn attempt to migrate the old schema to the new one would produce a false-positive diff but applying it wouldn't result\nin any schema changes.\n\nA false-negative diff was also possible. Consider these following example:\n\n```php\n// old schema\n$column1 = new Column('settings', Type::getType('json'));\n\n// new schema\n$column2 = new Column('settings', Type::getType('json'), ['length' => 16777215]);\n```\n\nComparison of the above column definitions should have triggered a diff on MySQL and migrate the underlying column\nfrom `TEXT` to `MEDIUMTEXT` but it didn't, because the DBAL would ignore the length of the `TEXT` columns.\n\nApart from that, the DBAL would compare only a subset of the definitions, so some column options as the character set\nand collation weren't taken into account during comparison at all.\n\n### The new approach\n\nInstead of comparing abstract definitions on a per-property basis, the new implementation compares the DDL that is generated from both definitions for the target database platform. If the definitions produce the same DDL, they are considered equal. According to the tests and the number of resolved issues, this approach should be more accurate and less error-prone.\n\nImplementing this approach was impossible without introducing a new API which rendered the existing API obsolete.\n\nPrior to DBAL `3.2.0`, the schema comparator could be only instantiated directly via the `new` keyword:\n\n```php\n$comparator = new Comparator();\n```\n\nInstantiated like this, the comparator doesn't have a notion of the target database platform and cannot perform the comparison properly. That is why, this way of instantiation is deprecated in favor of instantiating the comparator by the schema manager:\n\n```php\n$schemaManager = $connection->createSchemaManager();\n$comparator = $schemaManager->createComparator();\n```\n\nThis way, the schema manager can instantiate a platform-specific comparator and provide it with the necessary context (e.g. the default collation used by the database).\n\nWhile the old API is still available, it is recommended to use the new API for more accurate comparison.\n\n## Support for `psr/cache` ([#4620](https://github.com/doctrine/dbal/pull/4620))\n\nSince the Doctrine Cache library is being sunset, the new DBAL release introduced the ability to use a PSR-6 compatible implementation for result caching.\n\nWhile both the `doctrine/cache` and `psr/cache` APIs will be supported until the next major DBAL release, we recommend users to switch to a PSR-6 compatible implementation in their projects.\n\n## Support for `psr/log` ([#4967](https://github.com/doctrine/dbal/pull/4967))\n\nThe `SQLLogger` interface was designed long ago and has certain limitations: there is no way to log messages at different logger levels and it is really challenging to extend the logger functionality without introducing breaking API changes.\n\nThe new DBAL release introduces a new middleware that can delegate logging to a PSR-3 compatible implementation.\n\nNote that the new logger won't produce the messages identical to the ones produced by the old one. If you have any processes built around analysing log messages, you may need to make some changes before adopting the new API.\n\n## Always cache the full result ([#5003](https://github.com/doctrine/dbal/pull/5003))\n\nThe implementation of the result cache prior to DBAL 3.2.0 would store the result set in the cache only once it was fetched completely. It led to the following issues:\n\n1. If the result isn't yet cached and its consumer didn't fetch it completely, the query would be executed again.\n2. In case of a cache miss, the DBAL would `get()` the cache entry twice: once to fetch the data and once to merge the just fetched result with other results that may be stored in the cache.\n\nThe new implementation stores the results in the cache right after they were fetched. It simplifies the caching layer significantly and makes its behavior more straightforward.\n\n## Add events for Transaction begin/commit/rollback ([#4622](https://github.com/doctrine/dbal/pull/4622))\n\nThe new DBAL version introduces three more transaction-related events:\n\n- `onTransactionBegin`,\n- `onTransactionCommit`,\n- `onTransactionRollBack`.\n\nSubscribing to those might be helpful if the application logic integrates the database transaction flow with the business logic implemented outside the database. For instance, in the filesystem.\n\n## Basic exception handling in IBM DB2 and SQL Server drivers ([#4929](https://github.com/doctrine/dbal/pull/4929), [#4928](https://github.com/doctrine/dbal/pull/4928))\n\nThe DBAL provides a mechanism that converts driver-specific error codes to portable error-specific exceptions. For instance an attempt to insert `NULL` into a column that has a `NOT NULL` constraint applied will result in error with the code `1566` on MySQL and in `ORA-01400` on Oracle. The DBAL will convert these two errors to a portable `NotNullConstraintViolationException`.\n\nHistorically, the DBAL drivers based on the `ibm_db2`, `sqlsrv` and `pdo_sqlsrv` extensions did not support this feature and would thow a generic `DriverException`.\n\nAs of DBAL 3.2.0, this feature is supported by all bundled drivers.\n\n## Improved `AbstractPlatform::getLengthExpression()` ([#4855](https://github.com/doctrine/dbal/pull/4855))\n\nAlthough the `LENGTH` expression was implemented for all supported database platforms, the different implementations didn't have consistent semantics:\n\n1. Most implementations would return the length in characters (Unicode code points), which is the most expected behavior.\n2. The implementations for MySQL and IBM DB2 would return the number of bytes. It worked fine for the strings that consisted only of the ANSI characters, but an attempt to use it with a wider range of characters would produce an unexpected result. For instance, the length of the string `'\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0438\u0440!'` might be reported as `19` instead of `12`.\n\nAs of DBAL 3.2.0, all platforms return the length in Unicode points according to the character set used by the database connection. Note, SQL Server supports UTF-8 only as of SQL Server 2019.\n\nYou can find more details in the [release notes](https://github.com/doctrine/dbal/releases/tag/3.2.0).\n", + "date": "2021-11-26 00:00:00" } ] \ No newline at end of file diff --git a/website-data/projects.json b/website-data/projects.json index 3f2c5ffc8fe3..5fa358745444 100644 --- a/website-data/projects.json +++ b/website-data/projects.json @@ -4210,9 +4210,9 @@ "dependents": 2326, "suggesters": 75, "downloads": { - "total": 389024026, - "monthly": 5691611, - "daily": 325460 + "total": 389220314, + "monthly": 5790511, + "daily": 285432 }, "favers": 6760 } @@ -9645,19 +9645,19 @@ }, "type": "library", "repository": "https://github.com/doctrine/cache", - "github_stars": 7754, + "github_stars": 7756, "github_watchers": 45, - "github_forks": 221, + "github_forks": 220, "github_open_issues": 2, "language": "PHP", "dependents": 1186, "suggesters": 138, "downloads": { - "total": 417286123, - "monthly": 6597726, - "daily": 321785 + "total": 417799307, + "monthly": 6984013, + "daily": 367243 }, - "favers": 7830 + "favers": 7832 } } }, @@ -12407,9 +12407,9 @@ "dependents": 701, "suggesters": 0, "downloads": { - "total": 6624556, - "monthly": 167433, - "daily": 7067 + "total": 6632746, + "monthly": 173415, + "daily": 8274 }, "favers": 309 } @@ -15372,9 +15372,9 @@ "dependents": 1031, "suggesters": 13, "downloads": { - "total": 280100972, - "monthly": 3921923, - "daily": 204495 + "total": 280239397, + "monthly": 3999791, + "daily": 169343 }, "favers": 5839 } @@ -22780,9 +22780,9 @@ "dependents": 1389, "suggesters": 35, "downloads": { - "total": 258725832, - "monthly": 3578932, - "daily": 181824 + "total": 258744330, + "monthly": 3597430, + "daily": 150482 }, "favers": 5774 } @@ -23400,9 +23400,9 @@ "dependents": 39, "suggesters": 18, "downloads": { - "total": 718238, - "monthly": 4704, - "daily": 202 + "total": 718312, + "monthly": 4778, + "daily": 159 }, "favers": 126 } @@ -23680,8 +23680,8 @@ "dependents": 8, "suggesters": 3, "downloads": { - "total": 65225, - "monthly": 200, + "total": 65237, + "monthly": 212, "daily": 13 }, "favers": 152 @@ -27044,9 +27044,9 @@ "dependents": 466, "suggesters": 42, "downloads": { - "total": 88100285, - "monthly": 1337353, - "daily": 64160 + "total": 88181728, + "monthly": 1397419, + "daily": 63727 }, "favers": 2754 } @@ -40420,12 +40420,12 @@ "github_forks": 1290, "github_open_issues": 216, "language": "PHP", - "dependents": 5356, + "dependents": 5359, "suggesters": 210, "downloads": { - "total": 373656333, - "monthly": 6250860, - "daily": 320353 + "total": 373976334, + "monthly": 6448157, + "daily": 291833 }, "favers": 9384 } @@ -41646,9 +41646,9 @@ "dependents": 92, "suggesters": 1, "downloads": { - "total": 301989932, - "monthly": 6664267, - "daily": 371464 + "total": 302135033, + "monthly": 6686515, + "daily": 292328 }, "favers": 5839 } @@ -44352,12 +44352,12 @@ "github_forks": 128, "github_open_issues": 19, "language": "PHP", - "dependents": 748, + "dependents": 747, "suggesters": 12, "downloads": { - "total": 550857077, - "monthly": 9350613, - "daily": 468504 + "total": 551307900, + "monthly": 9615094, + "daily": 453760 }, "favers": 11193 } @@ -46073,9 +46073,9 @@ "dependents": 342, "suggesters": 1, "downloads": { - "total": 606228958, - "monthly": 8109501, - "daily": 378806 + "total": 606645800, + "monthly": 8366312, + "daily": 348094 }, "favers": 10913 } @@ -47639,12 +47639,12 @@ "github_forks": 55, "github_open_issues": 2, "language": "PHP", - "dependents": 88, + "dependents": 89, "suggesters": 1, "downloads": { - "total": 576737215, - "monthly": 10053119, - "daily": 520783 + "total": 577238951, + "monthly": 10086489, + "daily": 476775 }, "favers": 10991 } @@ -57231,12 +57231,12 @@ "github_forks": 388, "github_open_issues": 106, "language": "PHP", - "dependents": 449, + "dependents": 451, "suggesters": 36, "downloads": { - "total": 127671075, - "monthly": 2176487, - "daily": 104798 + "total": 127898149, + "monthly": 2320128, + "daily": 118435 }, "favers": 4648 } @@ -57877,13 +57877,13 @@ "source": { "url": "https://github.com/doctrine/mongodb-odm.git", "type": "git", - "reference": "d6881615d09475613b76ec27a6bf9f9b12277787" + "reference": "c49d55a8ea5f96c19c0950485e2fd959ffe9efca" }, "dist": { - "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/d6881615d09475613b76ec27a6bf9f9b12277787", + "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/c49d55a8ea5f96c19c0950485e2fd959ffe9efca", "type": "zip", "shasum": "", - "reference": "d6881615d09475613b76ec27a6bf9f9b12277787" + "reference": "c49d55a8ea5f96c19c0950485e2fd959ffe9efca" }, "type": "library", "funding": [ @@ -57900,7 +57900,7 @@ "type": "tidelift" } ], - "time": "2024-01-19T14:33:13+00:00", + "time": "2024-01-23T10:51:48+00:00", "autoload": { "psr-4": { "Doctrine\\ODM\\MongoDB\\": "lib/Doctrine/ODM/MongoDB" @@ -67152,14 +67152,14 @@ "github_stars": 1076, "github_watchers": 50, "github_forks": 540, - "github_open_issues": 102, + "github_open_issues": 101, "language": "PHP", "dependents": 327, "suggesters": 102, "downloads": { - "total": 14621105, - "monthly": 246565, - "daily": 10956 + "total": 14635524, + "monthly": 255793, + "daily": 11576 }, "favers": 1087 } @@ -82543,9 +82543,9 @@ "dependents": 6380, "suggesters": 429, "downloads": { - "total": 185700998, - "monthly": 2997081, - "daily": 168100 + "total": 185849715, + "monthly": 3096423, + "daily": 162757 }, "favers": 9931 } @@ -88758,9 +88758,9 @@ "dependents": 431, "suggesters": 6, "downloads": { - "total": 164559577, - "monthly": 3508137, - "daily": 183232 + "total": 164662169, + "monthly": 3554899, + "daily": 151493 }, "favers": 3867 } @@ -95341,9 +95341,9 @@ "dependents": 112, "suggesters": 33, "downloads": { - "total": 1272089, - "monthly": 5254, - "daily": 126 + "total": 1272313, + "monthly": 5461, + "daily": 191 }, "favers": 177 } @@ -96285,9 +96285,9 @@ "dependents": 3, "suggesters": 0, "downloads": { - "total": 92796502, - "monthly": 751497, - "daily": 39173 + "total": 92803989, + "monthly": 758984, + "daily": 33676 }, "favers": 2970 } @@ -98871,9 +98871,9 @@ "dependents": 12, "suggesters": 0, "downloads": { - "total": 136844, - "monthly": 2945, - "daily": 195 + "total": 136949, + "monthly": 2909, + "daily": 106 }, "favers": 59 } @@ -99471,7 +99471,7 @@ "downloads": { "total": 7334, "monthly": 183, - "daily": 3 + "daily": 1 }, "favers": 103 } @@ -114116,12 +114116,12 @@ "github_forks": 442, "github_open_issues": 10, "language": "PHP", - "dependents": 3409, + "dependents": 3410, "suggesters": 210, "downloads": { - "total": 157472249, - "monthly": 2474674, - "daily": 150641 + "total": 157607612, + "monthly": 2570580, + "daily": 143730 }, "favers": 4660 } @@ -116136,9 +116136,9 @@ "dependents": 344, "suggesters": 14, "downloads": { - "total": 77345124, - "monthly": 282847, - "daily": 15799 + "total": 77355605, + "monthly": 293328, + "daily": 16952 }, "favers": 2789 } @@ -120565,9 +120565,9 @@ "dependents": 490, "suggesters": 29, "downloads": { - "total": 110709723, - "monthly": 1975085, - "daily": 123042 + "total": 110820538, + "monthly": 2055140, + "daily": 117494 }, "favers": 4159 } @@ -127503,9 +127503,9 @@ "dependents": 221, "suggesters": 128, "downloads": { - "total": 11936370, - "monthly": 186797, - "daily": 12327 + "total": 11946191, + "monthly": 192815, + "daily": 11160 }, "favers": 383 } @@ -138822,9 +138822,9 @@ "dependents": 157, "suggesters": 10, "downloads": { - "total": 6095179, - "monthly": 63390, - "daily": 3941 + "total": 6097856, + "monthly": 65063, + "daily": 3647 }, "favers": 401 } @@ -149161,9 +149161,9 @@ "dependents": 436, "suggesters": 40, "downloads": { - "total": 5635586, - "monthly": 57470, - "daily": 3251 + "total": 5637414, + "monthly": 59298, + "daily": 3215 }, "favers": 445 } @@ -155678,9 +155678,9 @@ "dependents": 37, "suggesters": 11, "downloads": { - "total": 563935, - "monthly": 3486, - "daily": 171 + "total": 564069, + "monthly": 3620, + "daily": 154 }, "favers": 88 } @@ -157737,9 +157737,9 @@ "dependents": 18, "suggesters": 1, "downloads": { - "total": 1192371, - "monthly": 41859, - "daily": 2087 + "total": 1194510, + "monthly": 43998, + "daily": 2404 }, "favers": 32 }