Autor | Zpráva | ||
---|---|---|---|
Render Profil * |
#1 · Zasláno: 14. 12. 2007, 06:55:49
Ze studijních účelů bych se chtěl zeptat zda lze následující věc řešit jinými způsoby.
index.php <?php require_once 'initer.php'; require_once 'cont.php'; require_once 'load.php'; $render = new cont; ?> initer.php <?php class initer { private static $instance; protected __construct() { self::$instance = $this; } public static getInstance() { return self::$instance; } } ?> load.php <?php class load { public function lib ($class) { require_once $class.'.php'; $caller = initer::getInstance(); $caller->$class = new $class; } } ?> cont.php <?php class cont extends initer { public __construct() { parent::__construct(); $load = new load; $load->lib('text'); $this->text->render('Bla bla bla') } } ?> text.php <?php class text { public function render($text) { echo $text; } } ?> V tomto případě se mi instance třídy kterou zavolám z konstruktoru třídy cont pomocí $load->lib('názevTřídy'); automaticky přiřadí do $this->názevTřídy a mohu tedy poté v třídě cont volat metody načtené třídy pomocí $this->názevTřídy->názevMetody(). Lze tohoto efektu dosáhnout jiným způsobem než tím zde naznačeným?? Nejde o to jestli ten způsob bude rychlejší, pomalejší, složitější, jednoduší. Zajímám se o to ze studijních účelů proto abych měl větší přehled jak řešit podobné situace. Děkuji za názory. |
||
Render Profil * |
#2 · Zasláno: 14. 12. 2007, 07:14:21
Omluva : Po ránu sem tam nasekal chyb jak máku.
initer.php samozdřejmě vypadá takto <?php class initer { private static $instance; protected function __construct() { self::$instance = $this; } public static function getInstance() { return self::$instance; } } ?> a cont.php vypadá takto : <?php class cont extends initer { public function __construct() { parent::__construct(); $load = new load; $load->lib('text'); $this->text->render('Bla bla bla') } } ?> píši to z hlavy, proto se omlouvám a doufám, že sem tam nenasekal více chyb. |
||
Render Profil * |
#3 · Zasláno: 14. 12. 2007, 13:09:49
Ještě k problému. Samozdřejmě, že jedna z možností je, že by třída cont zdědila třídu load. Toto řešení je mi též známo, proto by mě zajímali ještě jiná řešení než tyto dvě.
|
||
Časová prodleva: 16 let
|
0