abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:55 | IT novinky

    Americký výrobce čipů Intel propustí 15 procent zaměstnanců (en), do konce roku by jich v podniku mělo pracovat zhruba 75.000. Firma se potýká s výrobními problémy a opouští také miliardový plán na výstavbu továrny v Německu a Polsku.

    Ladislav Hagara | Komentářů: 14
    včera 17:33 | Komunita

    MDN (Wikipedie), dnes MDN Web Docs, původně Mozilla Developer Network, slaví 20 let. V říjnu 2004 byl ukončen provoz serveru Netscape DevEdge, který byl hlavním zdrojem dokumentace k webovým prohlížečům Netscape a k webovým technologiím obecně. Mozille se po jednáních s AOL povedlo dokumenty z Netscape DevEdge zachránit a 23. července 2005 byl spuštěn MDC (Mozilla Developer Center). Ten byl v roce 2010 přejmenován na MDN.

    Ladislav Hagara | Komentářů: 0
    včera 14:55 | Nová verze

    Wayback byl vydán ve verzi 0.1. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Nová verze

    Byla vydána nová verze 6.18 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově se lze k síti Tor připojit pomocí mostu WebTunnel. Tor Browser byl povýšen na verzi 14.5.5. Thunderbird na verzi 128.12.0. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    24.7. 14:33 | IT novinky

    Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.

    Ladislav Hagara | Komentářů: 1
    24.7. 14:22 | Nová verze

    Byla vydána (𝕏) nová verze 25.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 25.7 je Visionary Viper. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    24.7. 13:33 | IT novinky

    Před 40 lety, 23. července 1985, společnost Commodore představila první počítač Amiga. Jednalo se o počítač "Amiga od Commodore", jenž byl později pojmenován Amiga 1000. Mělo se jednat o přímou konkurenci počítače Apple Macintosh uvedeného na trh v lednu 1984.

    Ladislav Hagara | Komentářů: 2
    24.7. 06:00 | IT novinky

    T‑Mobile USA ve spolupráci se Starlinkem spustil službu T-Satellite. Uživatelé služby mohou v odlehlých oblastech bez mobilního signálu aktuálně využívat satelitní síť s více než 650 satelity pro posílání a příjem zpráv, sdílení polohy, posílání zpráv na 911 a příjem upozornění, posílání obrázků a krátkých hlasových zpráv pomocí aplikace Zprávy Google. V plánu jsou také satelitní data.

    Ladislav Hagara | Komentářů: 9
    23.7. 21:55 | Komunita

    Společnost Proxmox Server Solutions stojící za virtualizační platformou Proxmox Virtual Environment věnovala 10 000 eur nadaci The Perl and Raku Foundation (TPRF).

    Ladislav Hagara | Komentářů: 2
    23.7. 21:22 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.65 svobodného multiplatformního webového serveru Apache (httpd). Řešena je bezpečnostní chyba CVE-2025-54090.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (29%)
     (26%)
     (5%)
     (5%)
     (5%)
     (2%)
     (2%)
     (27%)
    Celkem 132 hlasů
     Komentářů: 17, poslední dnes 20:08
    Rozcestník

    Dotaz: Jak zavolat třídu v PHP podle zadané url

    20.3.2017 19:30 Libor
    Jak zavolat třídu v PHP podle zadané url
    Přečteno: 349×
    Ahoj chlapy, potřeboval bych poradit s částí kódu v PHP.

    v proměnné $_GET['url'] mám uloženou vždy celou url
    echo $_GET['url'];
    vypíše
    /katalog/priroda-cr/voda-sladka/ryby-male
    
    a potřebuji z této url vytvořit nový objekt třídy včetně namespace
    $obj = new \Controls\Katalog\PrirodaCr\VodaSladka\RybyMale ();
    Pokud třída neexistuje zavolat
    $obj = new \Controls\Error404 ();
    Poradil by mi prosím někdo jak to jednoduše udělat? Předem děkuji za pomoc.

    Odpovědi

    21.3.2017 06:52 frr | skóre: 34
    Rozbalit Rozbalit vše Re: Jak zavolat třídu v PHP podle zadané url

    Nevím jestli jednoduše, a navíc nejsem PHPkář, spíš jsem se kdysi trochu hrabal pod sukněma Perlu... vidím to rámcově takto:

    1. kontrola vstupních dat = rozparsovat si to URL a převést si ho na striktní výčet možností ("enum"), jako že modul 1/2/3/ nebo chyba. Použil bych třeba regulární výrazy a/nebo řetězcové porovnání v kombinaci s rozskokem ve stylu switch/case nebo if-then-else. Tzn. začít hezky defenzivně.
    2. Návazně na to by se dala přímo v PHP zdrojáku vytvořit instance té či oné třídy, hezky explicitně, možná přímo v tom switch/case bloku.
    3. Pokud dáváte přednost životu na hraně, asi by se to URL dalo stringovými operacemi přežvejkat až na "cestu ke třídě" a tu pak předhodit funkci eval() - ale té funkci musíte podle mého předat určitý minimální blok kódu, který má nějakou hlavu a patu. V zásadě nejmíň "jeden ucelený řádek imperativního zdrojáku", pokud se nepletu. A hlavně pozor na kontrolu vstupních dat, abyste si nezavlekl do programu bezpečnostní díru (code injection).

    [:wq]
    21.3.2017 08:01 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: Jak zavolat třídu v PHP podle zadané url
    něco jako,....
    $class = '\Controls'.preg_replace_callback('/([-\/])(.)/', function($a){ return ($a[1]=='/'?'\':'').strtoupper($a[2]);}, $_GET['url']);
    if (class_exists($class)){
    	$obj = new $class();
    } else {
    	$obj = new \Controls\Error404();
    
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    22.3.2017 14:56 frr | skóre: 34
    Rozbalit Rozbalit vše Re: Jak zavolat třídu v PHP podle zadané url
    Dal bych fajfku že "řešení", ale nemám na čem otestovat :-) Díky za krásný insider snippet.
    [:wq]
    23.3.2017 00:01 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Jak zavolat třídu v PHP podle zadané url
    K čemu to má sloužit? Nevím jestli je dobrý nápad mít pro každé zvíře jednu třídu :-)
    -- OldFrog

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.