Hello,
I'm writing a MainComponent that will need a SecondaryComponent in
order to correctly work.
I want to call some of SecondaryComponent::specialMethod() in
MainComponent::initialize(), but this method can only correctly work
if SecondaryComponent::initialize() is itself called first.
Diving into code-land, here is what I mean.
class FoosController extends AppController {
var $components = array('MainComponent);
}
class MainComponent extends Object {
var $components = array('SecondaryComponent');
function initialize(&$controller, $options) {
$this->SecondaryComponent->specialMethod();
}
}
class SecondaryComponent extends Object {
function initialize(&$controller, $options) {
// Some really important stuff must go here
}
function specialMethod() {
// This method can't work properly if the initialize() method
hasn't
be fired first
}
}
I expected the stack order to call SecondaryComponent::initialize()
then MainComponent::initialize() but it appears to call
MainComponent::initialize() and then SecondaryComponent::initialize(),
causing SecondaryComponent::specialMethod() to fail.
I "fixed" it by manually calling $this->SecondaryComponent-
>initialize() in MainComponent::initialize(), but I still wonder if
there would be a more cakish way of doing that.
I'm not sure if this behavior is a bug, a design decision, an
ommission or simply a wrong approach of myself.
Has anyone some insight of this ?
--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others
with their CakePHP related questions.
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php