Page 1 of 1

Autoload classes

Posted: Mon Dec 30, 2013 3:18 am
by zrxraver
Misschien een handige tip voor degenen die zelf ook wel eens mod maken, met een kleine aanpassing in system/engine/registry.php kan je bv models autoloaden.

Een voobeeld:

Normaliter moet je eerst doen:

Code: Select all

$this->load->model('account/address');
Vervolgens kan je een functie aanroepen:

Code: Select all

$this->model_account_address->getAddresses();
Met een kleine aanpassing in de registry.php kan je die eerste regel $this->load->... vergeten en direct doen.

Code: Select all

$this->model_account_address->getAddresses();
En dat model word automagisch geladen.

De enige aanpassing die hier voor nodig is in system/engine/registry.php is deze functie:

Code: Select all

	public function get($key) {
		return (isset($this->data[$key]) ? $this->data[$key] : NULL);
	} 
vervangen door:

Code: Select all

  public function get($key) {
    if(!isset($this->data[$key])){
      $parts = explode('_', $key);

      if(isset($parts[0])){
        switch ($parts[0]){
          case 'mail' :
            $this->data['load']->library('mail');
            $this->set('mail', new Mail());
            break;
          case 'model' :
            array_shift($parts);
            $this->data['load']->model(implode('/', $parts));
            break;
        }
      }
    }

    return (isset($this->data[$key]) ? $this->data[$key] : NULL);
  }
Zelf heb ik hier veel meer autoloaders in staan en die heb ik weer weggehaald uit o.a de index.php
Hierdoor kan een site wat sneller laden, want er word alleen geladen wat nodig is, en dat is bij bv ajax aanroepen wel prettig.

Happy coding ;-)

Re: Autoload classes

Posted: Mon Dec 30, 2013 5:58 am
by i2Paq
Je leeft nog! ;D

Re: Autoload classes

Posted: Mon Dec 30, 2013 6:48 am
by zrxraver
Yep 8) alive and kicking en nog steeds actief in OC en nog genoeg andere tips ;-)
Maar eerst even kijken hoe de eerste 2 ontvangen worden, hoewel ze alleen in ons NL forum staan voor nu.

Re: Autoload classes

Posted: Mon Dec 30, 2013 5:26 pm
by i2Paq
Ik weet dat men voor de aankomende 2.0 release met iets dergelijks bezig zijn ;)

Re: Autoload classes

Posted: Thu Jan 09, 2014 11:58 pm
by zrxraver
Ik heb het nog niet kunnen ontdekken in de 2.0
Ze zijn wel bezig met een modification class voor de system files.
Maar dat is iets heel anders.