Witam
Potrzebuję Waszej pomocy w sprawie odwoływania się do funkcji....
mam klasę MVC, która ładuje się zawsze na początku i ona odpowiada za załadowanie klasy danego kontrolera.
kontroler ma w konstruktorze
{
mvc::instance($this);
$this->load = new MVC_Load;
}
klasa MVC_Load odpowiada za tworzenie instancji danej klasy modelu lub danej klasy biblioteki (biblioteka to u mnie tplugin np do obsługi URL itp)
public function library($class_name,$alias=null,$filename=null)
{
/* Gdy nie użyto aliasu */
if(!isset($alias))
$alias = $class_name;
if(empty($alias))
trigger_error("Nazwa biblioteki nie może być pusta",E_USER_ERROR);
if(!preg_match('!^[a-zA-Z][a-zA-Z_]+$!',$alias))
trigger_error("Nazwa biblioteki '{$alias}' ma nieprawidłową składnię !!!",E_USER_ERROR);
if(method_exists($this,$alias))
trigger_error("Nazwa biblioteki '{$alias}' jest zarezerwowana !!!",E_USER_ERROR);
/* /* Czy biblioteka jest załadowana ? */
if(isset($this->$alias))
return true;
/* Gdy klasa nie istnieje */
if(!class_exists($class_name))
{
if(!isset($filename))
$filename = 'library.' . $class_name . '.php';
/* Sprawdz w myapps/myfiles/sysfiles plugins dirs */
$filepath = MYAPPDIR . 'plugins' . DS . $filename;
if(!file_exists($filepath))
$filepath = BASEDIR . 'myfiles' . DS . 'plugins' . DS . $filename;
if(!file_exists($filepath))
$filepath = BASEDIR . 'sysfiles' . DS . 'plugins' . DS . $filename;
if(!file_exists($filepath))
trigger_error("Nieznana biblioteka '{$class_name}'",E_USER_ERROR);
require_once($filepath);
if(!class_exists($class_name))
trigger_error("Nieznana nazwa klasy '{$class_name}'",E_USER_ERROR);
}
/* pobranie instancji mvc */
$mvc = mvc::instance();
$mvc->$alias = new $class_name;
return true;
}
W kontrolerze korzystać mogę w taki sposób:
//najpierw dodanie "referencji"
$this->load->library('Url','url');
$this->load->model('Sqlite_Model','sql');
//potem konkretne zabiegi (przykładowe)
$val = $this->url->get(2);
$result = $this->sql->query("SELECT * FROM services WHERE gr='av'");
Reasumując: index.php ładuje zawsze klase MVC, która wskazuje kontroler do załadowania, on ma w konstruktorze stworzenie instancji(jak wyżej), potem w kontrolerze do modeli i bibliotek odwołuje się "przez load" czego nie mogę zrobić z poziomu metody w modelu, a tam również potrzebuję dostepu do bibliotek...
(ten cały układ jest częściowo zgapiony z TinyMVC jeżeli to pomoże)
[b]Jak korzystać z plug-inów (bibliotek) wewnątrz modelu ???[/b]
(jak się powinienem odwoływać ?)
Jeżeli potrzeba wglądu do jakiejś części kodu to chętnie udostepnie ...
Będę bardzo wdzięczny za szybkie naprowadzenie, bo dzis mam wolne ...
Pozdrawiam i z góry dziekuję