Hi everyone,
I would like to pull the classes responsible for tieing Doctrine 2 and
the Form/Validator component together out of DoctrineBundle. The
reason for this is that currently people who work with for example
Forms+Doctrine 2, but not Symfony2, can't use these supporting classes
(except if they include DoctrineBundle in their project, which is
silly).
I see different solutions two this problems for which I'd like to hear
your opinions.
1. Include support classes in Symfony2 components
----------------------------------------------------------------------------
We include the support classes alongside the normal classes in the
same components and namespaces.
Symfony\
Component\
Form\
...
DoctrineChoiceField
FieldFactory\
...
DoctrineFieldFactoryGuesser
ValidatorFieldFactoryGuesser
ValueTransformer\
...
DoctrineCollectionToChoiceTransformer
+ simple, no organization overhead
- independent classes and classes for extensions are mixed. This
shouldn't be a problem if we document properly that these few classes
can only be used if the appropriate extension is installed
2. Include classes in separate namespaces
---------------------------------------------------------------
We include support in the components, but in a separate namespace.
Symfony\
Component\
Form\
...
FieldFactory\
...
ValueTransformer\
...
Extension\
Doctrine\
DoctrineChoiceField
FieldFactory\
DoctrineFieldFactoryGuesser
ValueTransformer\
DoctrineCollectionToChoiceTransformer
Validator\
FieldFactory\
ValidatorFieldFactoryGuesser
+ logical separation of the classes
- lots of namespace overhead, duplicate namespaces and namespaces that
contain only one class
- long absolute namespace names (e.g.
"Symfony\Component\Form\Extension\Doctrine\ValueTransformer\DoctrineToChoiceTransformer")
3. Include classes in separate tiein packages
---------------------------------------------------------------
We include support in separate components, so-called "Tie-ins", that
can be installed when needed.
Symfony\
Tiein\
FormDoctrine\
DoctrineChoiceField
FieldFactory\
DoctrineFieldFactoryGuesser
ValueTransformer\
DoctrineCollectionToChoiceTransformer
FormValidator\
FieldFactory\
ValidatorFieldFactoryGuesser
+ logical separation of the classes
- namespace overhead, but slightly less than in solution 2
- complicated installation procedure
My personal favourite is solution 1, because it is the simplest one
and the only counter argument (the logical separation) is mainly a
philosophical one.
What do you think?
Bernhard
--
Software Architect & Engineer
Blog: http://webmozarts.com
Twitter: http://twitter.com/webmozart
--
If you want to report a vulnerability issue on symfony, please send it to
security at symfony-project.com
You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en