Portál AbcLinuxu, 3. května 2024 02:20


Dotaz: Jak volat třídy podle zadané url adresy v php

23.10.2013 15:49 Jakub
Jak volat třídy podle zadané url adresy v php
Přečteno: 351×
Odpovědět | Admin
Zdravím,

poradí mi prosím někdo jak bych mohl zavolat třídu podle zadané url adresy abych nemusel psát milion podmínek?

Děkuji za pomoc.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.10.2013 16:02 Kit
Rozbalit Rozbalit vše Re: Jak volat třídy podle zadané url adresy v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejprve si tu adresu rozparsuj podle oddělovačů, vyber jen potřebné položky a spoj to jiným vhodným oddělovačem (např. podtržítkem) a ulož do proměnné $trida. Pak už jen
$objekt = new $trida($parametry);
Nezapomeň udělat potřebné ochrany proti XSS.
Josef Kufner avatar 24.10.2013 22:34 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak volat třídy podle zadané url adresy v php
Lepší oddělovač je zpětné lomítko, neboť se pak využijí namespacy u tříd.
Hello world ! Segmentation fault (core dumped)
25.10.2013 09:39 narg
Rozbalit Rozbalit vše Re: Jak volat třídy podle zadané url adresy v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Třeba takto?

 ... tady si rozparsujeme adresu ...
 $reflClass = new \ReflectionClass($rozparsovaneJmenoTridy);
 ... tady se da otestovat jestli trida dedi po necem tak nevytvaret ani instanci ...
 ... např. $reflClass->isSubclassOf(interface) ...
 $class = $reflClass->newInstanceArgs($argumenty_jako_pole_ktere_se_predavaji_jako_jednotlive_promene); /* da se pouzit i newInstance */
 

Je to by-voko ;-)
Jakub Lucký avatar 25.10.2013 17:07 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Jak volat třídy podle zadané url adresy v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mapování tříd na classy docela hezky řeší třeba Tachyon (jednoduché)
If you understand, things are just as they are; if you do not understand, things are just as they are.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.