| 1 | == [https://packagist.org/packages/doctrine/orm doctrine/orm] == |
| 2 | === Doctrine Console === |
| 3 | * http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/tools.html |
| 4 | * https://sonata-project.org/bundles/admin/2-3/doc/getting_started/creating_an_admin.html |
| 5 | {{{#!sh |
| 6 | $ php bin/console doctrine:generate:entity --entity="AppBundle:Category" --fields="name:string(255)" --no-interaction |
| 7 | $ php bin/console doctrine:generate:entity --entity="AppBundle:BlogPost" --fields="title:string(255) body:text draft:boolean" --no-interaction |
| 8 | }}} |
| 9 | === Relations === |
| 10 | * //Les relations entre entités avec Doctrine2// [https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2/les-relations-entre-entites-avec-doctrine2 OpenClassrooms] |
| 11 | * //Les relations entre entités dans Symfony2 avec Doctrine// [http://www.lafermeduweb.net/tutorial/les-relations-entre-entites-dans-symfony2-avec-doctrine-p97.html lafermeduweb] |
| 12 | === Cascade === |
| 13 | * doctrine ondelete |
| 14 | * doctrine one to many cascade |
| 15 | * //8. Working with Associations// [http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/working-with-associations.html readthedocs] |
| 16 | * //Doctrine Cascade Options for OneToMany// [https://stackoverflow.com/questions/7709293/doctrine-cascade-options-for-onetomany stackoverflow] |
| 17 | * //cascade={“remove”} VS orphanRemoval=true VS ondelete="CASCADE// [https://stackoverflow.com/questions/27472538/cascade-remove-vs-orphanremoval-true-vs-ondelete-cascade stackoverflow] |
| 18 | === Events === |
| 19 | * https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2/les-evenements-et-extensions-doctrine |
| 20 | === Extensions - Behaviors === |
| 21 | Gedmo are a standard, but Translatable is criticized |
| 22 | * [https://packagist.org/packages/gedmo/doctrine-extensions gedmo/doctrine-extensions] |
| 23 | * https://github.com/Atlantic18/DoctrineExtensions#extensions-and-documentation |
| 24 | * https://github.com/Atlantic18/DoctrineExtensions/tree/master/doc |
| 25 | * https://atlantic18.github.io/DoctrineExtensions/ |
| 26 | * //Gedmo l'extension Doctrine 2 dans Symfony2// 2012 [http://julien.edouard.overblog.com/gedmo-l-extension-doctrine-2-dans-symfony2 overblog] |
| 27 | * [https://packagist.org/packages/knplabs/doctrine-behaviors knplabs/doctrine-behaviors] |
| 28 | ==== Compatibility Issues between Extensions ==== |
| 29 | * SoftDeleteable - Sortable |
| 30 | * https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/softdeleteable.md#extra |
| 31 | * Sluggable, Translatable and Tree |
| 32 | * https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/tree.md#nesting-translatable-and-sluggable-extensions |
| 33 | ==== Audit, Revision or Loggable ==== |
| 34 | * Versioning of entities and their associations [https://packagist.org/packages/simplethings/entity-audit-bundle simplethings/entity-audit-bundle] |
| 35 | * https://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/audit.html |
| 36 | * Loggable |
| 37 | * Helps tracking changes and history of objects, also supports version management [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/loggable.md Gedmo] |
| 38 | * Admin support [https://packagist.org/packages/picoss/sonata-extra-admin-bundle picoss/sonata-extra-admin-bundle] [https://github.com/picoss/SonataExtraAdminBundle/blob/master/Resources/doc/audit_manager.md doc/audit_manager] |
| 39 | * [https://www.youtube.com/watch?v=wxgIHNtEN84 YouTube] |
| 40 | * Loggable is able to track lifecycle modifications and log them using any third party log system [https://github.com/KnpLabs/DoctrineBehaviors#loggable KNP Labs] |
| 41 | ==== Blameable ==== |
| 42 | * Updates string or reference fields on create, update and even property change with a string or object (e.g. user) [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/blameable.md Gedmo] |
| 43 | * Track creators and updators of a given entity [https://github.com/KnpLabs/DoctrineBehaviors#blameable KNP Labs] |
| 44 | ==== Filterable ==== |
| 45 | * Simple filter result [https://github.com/KnpLabs/DoctrineBehaviors#filterable KNP Labs] |
| 46 | ==== Geocodable ==== |
| 47 | * Extensions to PostgreSQL platform in order to work with cube and earthdistance extensions [https://github.com/KnpLabs/DoctrineBehaviors#geocodable KNP Labs] |
| 48 | ==== IpTraceable ==== |
| 49 | * Inherited from Timestampable, sets IP address instead of timestamp [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/ip_traceable.md Gedmo] |
| 50 | ==== Joinable ==== |
| 51 | * KNP Labs |
| 52 | ==== Loggable (see Audit, Revision) ==== |
| 53 | ==== References ==== |
| 54 | * Supports linking Entities in Documents and vice versa [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/references.md Gedmo] |
| 55 | ==== ReferenceIntegrity ==== |
| 56 | * Constrains ODM MongoDB Document references [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/reference_integrity.md Gedmo] |
| 57 | ==== Revision (see Audit, Loggable) ==== |
| 58 | ==== Sluggable ==== |
| 59 | * Urlizes your specified fields into single unique slug [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/sluggable.md Gedmo] |
| 60 | * Sluggable generates slugs (uniqueness is not guaranteed) for an entity [https://github.com/KnpLabs/DoctrineBehaviors#sluggable KNP Labs] |
| 61 | * Sluggable, Translatable and Tree (Compatibility issue) |
| 62 | * https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/tree.md#nesting-translatable-and-sluggable-extensions |
| 63 | ==== SoftDeleteable ==== |
| 64 | * Allows to implicitly remove records [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/softdeleteable.md Gedmo] [https://github.com/KnpLabs/DoctrineBehaviors#softDeletable KNP Labs] |
| 65 | * SoftDeleteable - Sortable (Compatibility issue) |
| 66 | * https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/softdeleteable.md#extra |
| 67 | * Admin support [https://packagist.org/packages/picoss/sonata-extra-admin-bundle picoss/sonata-extra-admin-bundle] |
| 68 | * keyword: SoftDeleteable |
| 69 | * //StofDoctrineExtensionsBundle softdelete - How do I use it?// [https://stackoverflow.com/questions/16670454/stofdoctrineextensionsbundle-softdelete-how-do-i-use-it stackoverflow] |
| 70 | * //Episode 39 - Utiliser l'extension softdeleteable avec Symfony2// DevAndClick [https://www.youtube.com/watch?v=kBzDiOFaRFY YouTube (fr)] |
| 71 | ==== Sortable ==== |
| 72 | * Makes any document or entity sortable [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/sortable.md Gedmo] KNP Labs |
| 73 | * SoftDeleteable - Sortable (Compatibility issue) |
| 74 | * https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/softdeleteable.md#extra |
| 75 | ==== Timestampable ==== |
| 76 | * Updates date fields on create, update and even property change [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/timestampable.md Gedmo] [https://github.com/KnpLabs/DoctrineBehaviors#timestampable KNP Labs] |
| 77 | ==== Translatable ==== |
| 78 | * Gives you a very handy solution for translating records into different languages [https://github.com/Atlantic18/DoctrineExtensions/blob/maste/doc/translatable.md Gedmo] |
| 79 | * [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/translatable.md#example-code-to-use-personal-translations-with-symfony2-sonata-i18n-forms Example code to use Personal Translations with (Symfony2 Sonata) i18n Forms] |
| 80 | * [https://github.com/KnpLabs/DoctrineBehaviors#translatable KNP Labs] |
| 81 | * Sluggable, Translatable and Tree (Compatibility issue) |
| 82 | * https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/tree.md#nesting-translatable-and-sluggable-extensions |
| 83 | ==== Translator ==== |
| 84 | * Explicit way to handle translations [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/translatable.md Gedmo] |
| 85 | ==== Tree ==== |
| 86 | * This extension automates the tree handling process and adds some tree specific functions on repository. (closure, nestedset or materialized path) [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/tree.md Gedmo] [https://github.com/KnpLabs/DoctrineBehaviors#tree KNP Labs] |
| 87 | * Sluggable, Translatable and Tree (Compatibility issue) |
| 88 | * https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/tree.md#nesting-translatable-and-sluggable-extensions |
| 89 | ==== Uploadable ==== |
| 90 | * Provides file upload handling in entity fields [https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/uploadable.md Gedmo] |