Re: Re: PHP class question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter van der Does wrote:
> On Thu, 21 May 2009 14:08:11 -0500
> Shawn McKenzie <nospam@xxxxxxxxxxxxx> wrote:
> 
> 
>> This doesn't make sense.  You say "class A needs to be extended with
>> another class", however what you show below is "class A extending
>> framework_class".
>>
> 
> I worded it wrong, I apologize.
> Class A needs to be an extension of the framework class.
> 

Well I guess from my point of view there are several ways depending upon
the requirements.  Others that are better with OOP will chime in I'm sure.

This I'll get flamed for, but you can use one instance of core as a global:

class A extends framework_class {
  var $core;

  function A() {
    $this->core =& $GLOBALS['core'];
    $this->core->go();
  }
}

//in global scope in bootstrap or whatever
$core = new core();

Along the same lines but more OOP and without globals, maybe use a
registry class and store core in the registry. This also uses one
instance of core:

class Registry {
    protected $_objects = array();

    function set($name, &$object) {
        $this->_objects[$name] =& $object;
    }

    function &get($name) {
        return $this->_objects[$name];
    }
}

class A extends framework_class {
  var $core;

  function A(&$registry) {  //dunno if you need a reference here or not
    $this->core = $registry->get('core');
    $this->core->go();
  }
  //i guess you could also pass in core, but registry will give you all
objects in the registry
  //function A(&core) {
    //$this->core = $core;
    //$this->core->go();
  //}
}

//this is in your bootstrap or whatever
$core = new core();
$registry = new registry();
$registry->set('core', $core);

Or, if you don't need an object, call it statically:

class A extends framework_class {

  function A() {
    core::go();
  }
}

-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux