/** * Adds methods from the extensions. * Called by Object::__construct() once per class. */ function defineMethods() { parent::defineMethods(); // Define the extra db fields - this is only necessary for extensions added in the // class definition. Object::add_extension() will call this at definition time for // those objects, which is a better mechanism. Perhaps extensions defined inside the // class def can somehow be applied at definiton time also? if ($this->extension_instances) { foreach ($this->extension_instances as $i => $instance) { if (!$instance->class) { $class = get_class($instance); user_error("DataObject::defineMethods(): Please ensure {$class}::__construct() calls parent::__construct()", E_USER_ERROR); } } } if ($this->class == 'DataObject') { return; } // Set up accessors for joined items if ($manyMany = $this->many_many()) { foreach ($manyMany as $relationship => $class) { $this->addWrapperMethod($relationship, 'getManyManyComponents'); } } if ($hasMany = $this->has_many()) { foreach ($hasMany as $relationship => $class) { $this->addWrapperMethod($relationship, 'getComponents'); } } if ($hasOne = $this->has_one()) { foreach ($hasOne as $relationship => $class) { $this->addWrapperMethod($relationship, 'getComponent'); } } if ($belongsTo = $this->belongs_to()) { foreach (array_keys($belongsTo) as $relationship) { $this->addWrapperMethod($relationship, 'getComponent'); } } }
/** * Adds methods from the extensions. * Called by Object::__construct() once per class. */ function defineMethods() { if($this->class == 'DataObject') return; parent::defineMethods(); // Define the extra db fields if($this->extension_instances) foreach($this->extension_instances as $i => $instance) { $instance->loadExtraStatics(); } // Set up accessors for joined items if($manyMany = $this->many_many()) { foreach($manyMany as $relationship => $class) { $this->addWrapperMethod($relationship, 'getManyManyComponents'); } } if($hasMany = $this->has_many()) { foreach($hasMany as $relationship => $class) { $this->addWrapperMethod($relationship, 'getComponents'); } } if($hasOne = $this->has_one()) { foreach($hasOne as $relationship => $class) { $this->addWrapperMethod($relationship, 'getComponent'); } } }