As about recommendation in second part I highly appreciate them and will do
so from now on but as about first part: No, I need OneToMany from Modules
to ModulesConfig and the constructor also is in Modules. If so, then how
the variables and constructor should be?
در 2014 2 7 08:17، "Herman Peeren" <[email protected]> نوشت:

> If you have a OneToMany relation from your ModulesConfig to your Modules,
> do you mean: every Module has 1 ModuleConfig and a ModuleConfig can be part
> of multiple Modules? Because then the $modules variable in ModulesConfig is
> a collection. You now have it the other way around: you define a
> $ModulesConfig collection in your Modules entity. Is there a $ModulesConfig
> property (starting with a capital letter) in your Modules-entity?
>
> There are some conventions that are not obligatory, but I would strongly
> advice you to keep to it (or otherwise: be aware of what standard you
> follow):
>
>    - Class names shoud start with an uppercase character (also see PSR-1:
>    
> https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md
>    )
>    - I always start properties (attributes) with a lowercase character,
>    but there is no general recommendation for that.
>    - ORM-specific: *A definition of an Entity is singular*. In your case:
>    you would have a Module entity, not Module*s*. You define how one (1)
>    Module-entity looks like.
>    - *a collection is something in plural*. If you have a collection of
>    Module-entities, I'd give it the name $modules. If you would have a
>    collection of ModuleConfig-entities I'd give it the name $moduleConfigs.
>    - I personally have my table names in plural (if I'm not using a
>    legacy database). Giving an entity a plural name is probably some
>    reminiscent of thinking in a Doctrine1 / Active Record / Tables way of
>    doing things.
>
> The difficult thing with ORM is that it is in between the relational
> database and the domain objects and hence you have to deal with two
> different paradigms. Associations like OneToMany are stemming from the
> Relational paradigm, while having an attribute that is a collection of
> other entities is thinking in the Object paradigm. But those two are only
> together in the mapping layer. In the rest of your application you can just
> work with objects.
>
> So, please review your model, give it* proper names (entities in
> singular, collections in plural)* and then apply your mapping. That will
> solve your problem. BTW: if your "blah" is not printed, then the
> constructor of your Modules entity is not called and hence no
> Modules-entity was instantiated.
>
> *- Herman*
>
> On Friday, 7 February 2014 02:19:24 UTC+1, Parsifal wrote:
>>
>> I did set my Modules entity as OneToMany with my ModulesConfig entity and
>> in my Modules entity I did set the constructor as below since this is
>> OneToMany.
>> I see both with and without this constructor it works fine, I even did use
>> var_dump($this->ModulesConfig); and also print("blah") within
>> constructor and nothing printed, am I doing some mistake in my class below?
>> (However I don't get any error and it still works but curious to know.)
>> class Modules {
>>                public function __construct() {
>>                        $this->ModulesConfig = new ArrayCollection();
>>                        print("blah");
>>                }
>>                public static function loadMetadata(ClassMetadata
>> $metadata) {
>>
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "doctrine-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/doctrine-user.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to