Template engine funkcionális kérdés
Egy template engine-t csinálok, amiben lehetőség lesz a változó hozzárendeléseknél névterek használatára. A lényege, hogy a változó hozzárendelésnél meg lehet adni egy névtér nevet és ebbe kerülnek bele a változók. Belátható, hogy így több névtérben lehet használni ugyanolyan nevű változókat. (Az egész elgondolás azon alapszik, hogy ne kelljen prefix-elni a változó neveket).
Namost a kérdés az, hogy ezt hogyan oldja meg funkcionális szempontból? Most úgy indultam el, hogy van egy use_namespace attributum, amitől függően másképpen viselkedik pl. az assign() metódus. A kérdés az, hogy legyen így vagy legyen külön metódus a ns használat esetére.
Tehát:vagy
■ Namost a kérdés az, hogy ezt hogyan oldja meg funkcionális szempontból? Most úgy indultam el, hogy van egy use_namespace attributum, amitől függően másképpen viselkedik pl. az assign() metódus. A kérdés az, hogy legyen így vagy legyen külön metódus a ns használat esetére.
Tehát:
<?php
# Névtér nélkül
$tpl -> assign("var","value");
$tpl -> display("tpl_file");
# Névtérrel
$tpl -> use_namespace = true;
$tpl -> assign("ns_name","var","value");
$tpl -> display("ns_name","tpl_file");
?>
<?php
# Névtér nélkül
$tpl -> assign("var","value");
$tpl -> display("tpl_file");
# Névtérrel
$tpl -> ns_assign("ns_name","var","value");
$tpl -> ns_display("ns_name","tpl_file");
?>
milenneha
Elvben jó, de ...
Az első esetben bonyolítja a kódot - a tömb megadhatóság miatt - a hibakezelés.
A ns_* lesz a nyerő, mert ha a ns_* függvényeket használja a rendszer, akkor a megadott névtérbe kerül a változó, ha meg a sima függvényeket, akkor a "globális" névtérbe, míg a másik megoldásnál nem lenne globális névtér. (Jobban mondva, nagyon bonyolult lenne egy-egy metódus kódja, ha lehete globális névteret használni). Ezt a virtuális globális névteret mindenhonnan el lehet érni.
Ui.: s_volenszki gondolatából kiindulva lassan igazolódik, hogy milyen ispiratív a weblabor-on való hangos gondolkodás :-)
func_get_args ...
1 param: tomb
2 param: default ns-be megy a var,value paros
3 param: (ns, var, value) 3as
Nem rossz megközelítése, de ...