My favorite solution is 2. because of the separation. The long absolute
namespace names argument is void imho, becaues that is what namespaces are
for. The class name is short. You can regroup the namespaces inside the
Doctrine subnamespace also to avoid the 1 class "problem", which i dont
think is bad per se.

On Tue, 25 Jan 2011 14:55:08 +0100, Bernhard Schussek
<[email protected]>
wrote:
> 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

Reply via email to