| 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: 18 let
|
|||
0