Yes, that is the explanation of why that constructor is not invoked. Thank 
you, Menno!  Stupid that I hadn't thought of that... But still I have my 
doubts about the modelling of the Entities here. 

On Friday, 7 February 2014 22:25:11 UTC+1, Holtkamp wrote:
>
> Ok, sorry, I can't withstand: 
> http://lmgtfy.com/?q=doctrine+entity+constructor
>
> and: 
> http://docs.doctrine-project.org/en/latest/reference/architecture.html#entities,
>  
> states: 
>
> The constructor of an entity is only ever invoked when *you* construct a 
> new instance with the *new* keyword. Doctrine never calls entity 
> constructors, thus you are free to use them as you wish and even have it 
> require arguments of any type.
>
> Please, a lot of people (myself included), spend quite some time to read 
> the documentation (written by volunteers, respect it). Yes, it is a lot and 
> it might take some hours / days, but is seems you are persistent enough to 
> not quit before you got what you want ;). So before posting a question 
> again, count to 100 out loud!
>
> Cheers!
>
>
> On 7 February 2014 22:19, Menno Holtkamp <[email protected]<javascript:>
> > wrote:
>
>> This might have something to do with the Entity proxy intercepting the 
>> initialization (in combination with lazy loading?). I believe Marco Piveta 
>> AKA Ocramius wrote a lot about the subject. Google for it and/or dive in 
>> the source code.
>>
>> But, you can also trust on the force to always be with you, right?
>>
>> Cheers
>> On Feb 7, 2014 9:35 PM, "Nima Sadjadi" <[email protected] <javascript:>> 
>> wrote:
>>
>>> Herman,
>>> Here is the info you asked me this morning, correcting uppercase
>>> things etc. it returns expected data the only odd thing is that
>>> print("blah") in constructor is not working so the this is not called
>>> but still works! any idea?
>>>
>>> <?php
>>> // Modules.php
>>> namespace Entities;
>>> use Doctrine\ORM\Mapping\ClassMetadata;
>>> use Doctrine\ORM\Mapping\ClassMetadataInfo;
>>> use Doctrine\Common\Collections\ArrayCollection;
>>> class Modules {
>>> private $module;
>>> private $status;
>>> private $modulesConfig;
>>>     public function __construct() {
>>>         $this->modulesConfig = new ArrayCollection();
>>>         print("a");
>>>         var_dump($this->modulesConfig);
>>>     }
>>>     public static function loadMetadata(ClassMetadata $metadata) {
>>>     // here goes $metadata->mapField array I did generate with CLI
>>>     // coloumns in this table: module, status
>>>     // join coloumns with that other table: module=>module
>>>     $metadata->mapOneToMany(array( 'fieldName' => 'modulesConfig',
>>>                               'targetEntity' => 
>>> 'Entities\\ModulesConfig',
>>>                               'mappedBy' => 'modules',
>>>                                'joinColumns' => array( 0 => array(
>>> 'name' => 'module',
>>>
>>> 'referencedColumnName' => 'module',
>>>
>>> 'nullable' => true,
>>>
>>> 'columnDefinition' => NULL,
>>>                                                       ), )
>>>
>>>                              ));
>>> }
>>> }
>>> ==
>>> <?php
>>> // ModulesConfig.php
>>> namespace Entities;
>>> use Doctrine\ORM\Mapping\ClassMetadata;
>>> use Doctrine\ORM\Mapping\ClassMetadataInfo;
>>> class ModulesConfig {
>>> private $id;
>>> private $module;
>>> private $variable;
>>> private $value;
>>> private $modules;
>>>     public static function loadMetadata(ClassMetadata $metadata) {
>>>     // here goes $metadata->mapField array I did generate with CLI
>>>     // coloumn in this table: id, module, variable, value
>>>     // join coloumns with that other table: module=>module
>>>
>>>     $metadata->mapManyToOne(array( 'fieldName' => 'modules',
>>>                               'targetEntity' => 'Entities\\Modules',
>>>                               'inversedBy' => 'modulesConfig',
>>>                                'joinColumns' => array( 0 => array(
>>> 'name' => 'module',
>>>
>>> 'referencedColumnName' => 'module',
>>>
>>> 'nullable' => true,
>>>
>>> 'columnDefinition' => NULL,
>>>                                                       ), )
>>>
>>>                              ));
>>> }
>>> }
>>>
>>>
>>>
>>>
>>> On Fri, Feb 7, 2014 at 1:38 PM, Herman Peeren 
>>> <[email protected]<javascript:>> 
>>> wrote:
>>> > No idea what you are doing wrong without the code of the 2 entities 
>>> plus the
>>> > calling code, query etc.
>>> >
>>> > On Friday, 7 February 2014 10:34:08 UTC+1, Parsifal wrote:
>>> >>
>>> >> In two cases below you described, the first case is the one I actually
>>> >> want to. And actually it is working fine with expected result. The 
>>> only odd
>>> >> thing is that print("blah") in constructor doesn't print so I assume 
>>> the
>>> >> constructor is not working however I am still getting correct result! 
>>> Second
>>> >> odd thing is that only getArrayResult returns something for this but 
>>> I get
>>> >> error for getResult. Let's look at second problem later but first 
>>> let's
>>> >> check why constructor is not working however I am still getting 
>>> correct
>>> >> result?! Any idea?
>>> >>
>>> >> 1) In a Module-entity you can have multiple ModuleConfig-entities and
>>> >> every ModuleConfig-entity only has 1 Module. In this case you'll have 
>>> a
>>> >> $moduleConfigs collection in a Module on which a 
>>> OneToMany-relationship is
>>> >> defined. In a ModuleConfig you then have a $module defined with a 
>>> ManyToOne
>>> >> relation.
>>> >> 2) Or: in a Module-entity you can only have 1 ModuleConfig-entity, 
>>> but a
>>> >> ModuleConfig-entity can be associated with multiple Module-entities. 
>>>  In
>>> >> that case you'll have a $moduleConfig propery in a Module on which a
>>> >> ManyToOne-relationship is defined. In a ModuleConfig you then have a
>>> >> $modules collection defined with a OneToMany relation.
>>> >
>>> > --
>>> > 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] <javascript:>.
>>> > To post to this group, send email to 
>>> > [email protected]<javascript:>
>>> .
>>> > 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] <javascript:>.
>>> To post to this group, send email to [email protected]<javascript:>
>>> .
>>> 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