Browse Source

README from upstream

Lukas Botsch 14 years ago
parent
commit
cf3b5dde65
1 changed files with 110 additions and 0 deletions
  1. 110 0
      README.markdown

+ 110 - 0
README.markdown

@@ -0,0 +1,110 @@
+# Some Doctrine 2 Extensions
+
+This package contains extensions for Doctrine 2 that hook into the facilities of Doctrine and
+offer new functionality or tools to use Doctrine 2 more efficently. This package contains mostly
+used behaviors which can be easily attached to your event system of Doctrine 2 and handle the
+records being flushed in the behavioral way. List of extensions:
+
+- Tree - this extension automates the tree handling process and adds some tree specific functions on repository. (closure or nestedset)
+- Translatable - gives you a very handy solution for translating records into diferent languages. Easy to setup, easier to use.
+- Sluggable - urlizes your specified fields into single unique slug
+- Timestampable - updates date fields on create, update and even property change.
+- Loggable - helps tracking changes and history of objects, also supports version managment.
+
+Currently these extensions support **Yaml**, **Annotation**  and **Xml** mapping. Additional mapping drivers
+can be easy implemented using Mapping extension to handle the additional metadata mapping.
+
+Notice: from now on there is only one listener per extension which supports ODM and ORM adapters to deal with objects. Only one instance of listener is 
+required, and can be attached to many different type object managers, currently supported (ORM or ODM)
+
+Notice xml: Please note, that xml mapping needs to be in a different namespace, the declared namespace for
+Doctrine extensions is http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
+So root node now looks like this:
+```
+<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
+                 xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
+...
+</doctrine-mapping>
+```
+
+## Important
+
+Recently where was a change for type hinting on object manager and other. These changes
+**requires doctrine2 from master branch**. If you do not want to update your doctrine libraries
+use these extensions from separate branch **doctrine2.0.x** or simply checkout to this branch.
+
+### Latest updates
+
+**2011-06-24**
+
+- Implemented better compatibility with new and older annotation mapping style. Read
+**doc/annotations.md** on how to achieve best performances using annotation mapping and
+how to configure it.
+- The object wrappers were implemented internally in extensions to avoid issues with
+uninitialized or detached proxies.
+
+**2011-06-08**
+
+- [mvrhov](http://github.com/mvrhov) implemented the XML driver for extensions and now
+there is a full stack of drivers to make your experience even better using these extensions.
+So far I'm not sure if the same xsd will work with ODM but it will be created in comming month.
+
+**2011-05-23**
+
+- Recently **doctrine-common** library changed the way for annotation mapping in branch **3.0.x**
+If you are a **Symfony2** user, you will notice that shortly. Extensions were upgraded to support
+injection of annotation reader into listener which makes them compatible with these changes. For more
+details look in **doc/annotations.md**
+
+**2011-05-07**
+
+- Tree **closure** strategy was refactored and now fully functional. Actually nested-set
+is performing faster during concurrent inserts and moving subtrees and it also supports
+ordering of nodes.
+- Also there are good news for ODM users, @mtotheikle is working on **materialized path**
+strategy for ODM Tree like documents.
+
+### ODM MongoDB support
+
+List of extensions which support ODM
+
+- Translatable
+- Sluggable
+- Timestampable
+- Loggable
+
+All these extensions can be nested together. And most allready use only annotations without interface requirement
+to not to aggregate the entity itself and has implemented proper caching for metadata.
+
+**Notice:** extension tutorial on doctrine blog is outdated.
+There is a post introducing to these extensions on [doctrine project](http://www.doctrine-project.org/blog/doctrine2-behavioral-extensions "Doctrine2 behavior extensions")
+
+You can test these extensions on [my blog](http://gediminasm.org/test/ "Test doctrine behavior extensions").
+
+All tutorials for basic usage examples are on [my blog](http://gediminasm.org "Tutorials for extensions") also.
+
+### Recommendations
+
+- Use Symfony/Component/ClassLoader/UniversalClassLoader for autoloading these extensions, it will help
+to avoid triggering fatal error during the check of **class_exists**
+
+### Running the tests:
+
+PHPUnit 3.5 or newer is required.
+To setup and run tests follow these steps:
+
+- go to the root directory of extensions
+- run: **php bin/vendors.php**
+- run: **phpunit -c tests**
+- optional - run mongodb in background to complete all tests
+
+### Contributors:
+
+- Miha Vrhovnik [mvrhov](http://github.com/mvrhov)
+- Clément JOBEILI [dator](http://github.com/dator)
+- Illya Klymov [xanf](http://github.com/xanf)
+- Gustavo Adrian [comfortablynumb](http://github.com/comfortablynumb)
+- Boussekeyt Jules [gordonslondon](http://github.com/gordonslondon)
+- Christophe Coevoet [stof](http://github.com/stof)
+- Kudryashov Konstantin [everzet](http://github.com/everzet)
+- Klein Florian [docteurklein](http://github.com/docteurklein)