Autor Zpráva
Silver8000
Profil
Cau lidi,potrebuji pichnout....
mam tohle :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class CI_Library {
    private static $instance;
    public function __construct(){
        self::$instance =& $this;
        foreach (is_loaded() as $var => $class){
            $this->$var =& load_class($class);
        }

        $this->load =& load_class('Loader', 'core');
        $this->load->initialize();
        log_message('info', 'Library Class Initialized');
    }
    
    public static function &get_instance(){
        return self::$instance;
    }
}
ale nejak mi to nefacha tak jak bych si predstavoval...
jde mi o to abych v kazde knihovne nemusel zadavat : $this->CI =& get_instance();
a pak to cele rozepisovat.
takhle si to predstavuji po vytvoreni CI_Library :
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Web_System extends CI_Library {

  function __construct(){
    parent::__construct();
  }
  
  function My_Function(){
  /*Cokoliv*/
  }

}
?>

s jednoduchym pristupem :

$this->Web_System->My_Function();

misto aby jsem to delal takhle :
$this->CI->Web_System->My_Function();

jde o to ze kdyz mam 2 extend Library a obe jsou nacteny tak uz nemusim v ty druhy znova vyvolat tu prvni.
Hledal jsem tuto odpoved vsude ale pokazdy jsem narazil na to jak si vytvorit vlastni Library ale uz tam nepsali jak na to aby byla sdilena.
jako kdyz napriklad volam model a tam nemusim davat nic extra a pokazdy se dostanu do jakyho koliv modelu.

Dik za vsechny rady...
Silver8000
Profil
A tohle je reseni problemu - uz zadne psani $this->CI->VaseTrida->VaseMetoda();:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class CI_Library {
    
    public function __construct(){
        $CI =& get_instance();
        foreach($CI AS $Key=>$Val){
            $this->{$Key} = $Val;
        }
    }
}
?>
Vyvolat CI_Library a pak staci napsat :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class JakekolivJmenoVasiKnihovny extends CI_Library {
    
    public function __construct(){
          parent::__construct();
    }
}
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: