Autor Zpráva
Timy
Profil
Nějak nechápu jak mám v aplikaci používat Smarty. Příklad:



class Administrace
{
static $smarty;

function __construct()
{
$this->smarty=new Smarty;
$this->smarty->assign("title", "titulek");
}
}


Tohle teda funguje. Ale když tam budu mít další třídu:



class Trida
{
function __construct()
{
Rozhrani::$smarty->assign("telo", "tělo");
}
}


Něco takového už fungovat nebude. Jak bych měl postupovat, když chci ve více třídách pracovat s jednou proměnnou $smarty, do které bych ukládal potřebné údaje o šabloně?
ss
Profil *
Glabalni promenna??
krteczek
Profil
ano globální proměnné
ja to resim takhle (na lepší způsob jsem nepřišel):

$smarty = new Smarty();

calss nejaka
{
function __construct()
{
global $smarty;
$this->smarty = $smarty;
}
}
K.
Profil *
Použítí globální proměné není IMO zrovna moc dobrý postup vzhledem k OOP. Snižuje to přehlednost, ale na druhou stranu to může trochu zefektivnit práci.

Další možností je předávat instanci smarty v konstruktoru třídy (a nebo ještě líp... udělat si třeba nějaký jednoduchý framework, který to udělá automatizovaně).
Timy
Profil
Sice je to už trochu staré, ale vzpomínám si, že jsem to vyřešil tímhle http://php.interval.cz/clanky/vzor-singleton/

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:

0