

Podmínky v PHP
Ahoj.
Chtěl bych poradit s kódém v PHP-čku. Nevím jak napsat podmínku.
// přiklady URL
$url = 'knihovna';
$url = 'knihovna/cesko';
$url = 'knihovna/cesko/klasika';
$url = 'knihovna/slovensko';
$url = 'knihovna/slovensko/klasika';
// akce na URL
if ( $url === 'knihovna' ) new knihovna ();
elseif ( $url === 'knihovna/cesko' ) new knihovna\cesko ();
elseif ( $url === 'knihovna/slovensko' ) new knihovna\slovensko ();
elseif ( $url === 'knihovna/cesko/klasika' ) new knihovna\cesko\klasika ();
elseif ( $url === 'knihovna/slovensko/klasika' ) new knihovna\slovensko\klasika ();
Jenže já bych potřeboval vytvořit daný objekt (vždy pouze jeden) i když za těmi adresami něco ještě bude.
// příklad
$url = 'knihovna/cokoliv-ale-ne-cesko-a-slovenso'; new knihovna ();
$url = 'knihovna/cesko/cokoliv-ale-ne-klasika' new knihovna\cesko ();
$url = 'knihovna/cesko/klasika/cokoliv'; new knihovna\cesko\klasika ();
$url = 'knihovna/slovensko/cokoliv-ale-ne-klasika'; new knihovna\slovensko ();
$url = 'knihovna/slovensko/klasika/cokoliv'; new knihovna\slovensko\klasika ();
Napadlo mě to celý otočit abych opravdu vytvářel pouze jeden objekt a nevytvářel objektů víc ale stejně nevím jak ty podmínky napsat.
// něco jako
if ( $url === 'knihovna/cesko/klasika' ) new knihovna\cesko\klasika ();
elseif ( $url === 'knihovna/slovensko/klasika' ) new knihovna\slovensko\klasika ();
elseif ( $url === 'knihovna/slovensko' ) new knihovna\slovensko ();
elseif ( $url === 'knihovna/cesko' ) new knihovna\cesko ();
elseif ( $url === 'knihovna' ) new knihovna ();
Možná by to šlo uložit do pole ale zase to končí na podmínce. Můžete mi prosím poradit někdo zkušený? Děkuji
Musis to bud testovat od najprisnejsej po najmenej prisnu a pouzivat elseif, alebo druha moznost je v tej podvetve kde mas if(slovensko) tak tam este testovat dodatocne if klasika elif pop else ostatne a do if pre cesko zasa to iste atd.
Zavisi to od toho jaku realitu sa snazis naprogramovat a jak to chces mat organizovane. Da sa to robit aj dynamicky s dtabazou alebo poliami alebo adresarmi apod. je to tvoja volba.
Díky a jak to je dynamicky a nebo adresami, můžeš nastínit? Díky.
Dynamicky je to tak ze si v cykle citas co uz mas v databaze alebo na disku a triedis si to podla toho, je to tvoja volba, tvoj navrh, ty vies co od toho programu chces, ne ja. Vyzaduje to uz ale potom seriozne programovanie, to potom neni jedno if.
P.S. ten cyklus som myslel pre podzlozky zo vstupu, ne pre databazu samozrejme...
P.S.2. a nechapem vyznam toho "new knihovna\slovensko\klasika ()" to ma akoze robit co?
OK, tak to mám db, array a nějaká další možnost? Co jsi myslel těmi adresami ?
Je to clasická třída včetně namespaces, v příkladu bez objektu pro lepší čitelnost...
PS: jinak je to presenter, ale vy to asi znáte spíše pod pojmem controller ;)
Neviem co potrebujes robit a kolko tam je tych kategorii, ale ak to ma byt dynamicke tak sa to neda takto rozpisovat a pouziva sa nejaky jeden konstruktor a parametre a podobne.
Ak su kategorie staticke a neni ich vela, tak sa to da aj rozpisovat staticky s if a elseif.
Třídy bych vytvořil takhle
přičemž poslední dva řádky lze upravit do __construct($pole).
Url bych rozskouskoval a podle počtu a hodnot se rozhodnul, kterou třídu zavolám.
Takto to mám celý postavený a právě řeším logiku, jak to volat...
Buď to môžeš spraviť tak, že budeš kontrolovať všetky možnosti:
Alebo budeš zisťovať, či požadovaná trieda existuje:
Mrknu na tu druhou možnost, pro mě lepší.. zatím díky..