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í
×
    dnes 13:44 | Zajímavý software

    V pátek 6. a sobotu 7. března proběhl v pražském sídle Nejvyššího kontrolního úřadu (NKÚ) Hackathon veřejné správy 7.1. Publikovány byly vytvořené aplikace. V kategorii projektů rozvíjených z krajského kola zvítězil tým „Mackokládi“. Čtyři středoškoláci ze Dvora Králové uspěli s aplikací KompaZ. Jde o digitálního průvodce, který pomůže s rychlou a srozumitelnou orientací v životních i krizových situacích „krok za krokem“. Aplikace

    … více »
    Ladislav Hagara | Komentářů: 2
    dnes 13:33 | Nová verze

    QGIS, svobodný desktopový GIS, byl vydán v nové hlavní verzi 4.0. Změny zahrnují několik nových analytických a editačních funkcí, rozšíření podpory 3D, více možností úprav uživatelského rozhraní či mnoho dalších zlepšení použitelnosti. Řada 3.44 má aktualizace plánovány do září.

    |🇵🇸 | Komentářů: 0
    dnes 05:11 | Komunita

    Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována

    … více »
    Ladislav Hagara | Komentářů: 12
    včera 18:44 | Komunita

    Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].

    Ladislav Hagara | Komentářů: 9
    včera 12:22 | Nová verze

    Správce sbírky fotografií digiKam byl vydán ve verzi 9.0.0. Jedná se o větší vydání provázené aktualizacemi knihoven. Mnoho dílčích změn se vedle oprav chyb týká uživatelského rozhraní, mj. editace metadat.

    |🇵🇸 | Komentářů: 1
    7.3. 13:55 | Nová verze

    Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.

    Ladislav Hagara | Komentářů: 28
    6.3. 23:22 | Humor

    Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].

    Ladislav Hagara | Komentářů: 10
    6.3. 16:33 | Nová verze

    Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.

    Ladislav Hagara | Komentářů: 0
    6.3. 16:00 | Nová verze

    Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.

    Ladislav Hagara | Komentářů: 0
    6.3. 04:44 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (7%)
     (0%)
     (11%)
     (28%)
     (2%)
     (5%)
     (2%)
     (13%)
     (25%)
    Celkem 1036 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Jak na kontrolu chyb v php

    26.9.2013 15:43 Denys
    Jak na kontrolu chyb v php
    Přečteno: 515×
    Ahoj, začínám něco bastlit v php a nemůžu najít nic kloudného k mému pochopení co se týče chyb. Pokud jsem něco dělal v bash tak jsem vždy kontroloval co vrátil daný script if [[ $? == 0 ]]; then ..., poradí někdo jak se to dělá v php? Děkuji

    Odpovědi

    26.9.2013 15:51 Kit
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Asi bude nejlepší, když se naučíš pracovat s výjimkami.
    26.9.2013 16:16 gsnak | skóre: 22 | blog: gsnak
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Pouzil by som vynimky
    Čo Rys, to vrah!
    26.9.2013 21:37 Denys
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Díky, nakonec jsem vyzkoušel set_error_handler(), ale v manuálu se píše, že E_ERROR a E_PARSE odchytit nejdou, čím je tady můžu odchytit když ne funkcí set_error_handler() ? Nikde jsem nic nenašel. Děkuji
    26.9.2013 21:48 Kit
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Dají se odchytit, ale ty chyby musí být v jiném souboru než funkce set_error_handler().
    26.9.2013 22:07 Denys
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    To mám, ale nejde mi to, proč? Děkuji
    v souboru index.php
    function error_handler(){...}
    set_error_handler("error_handler");
    include "error.php";
    
    v souboru error.php
    include "nesmysl"; # chytne
    neexistujici-funkce; # nechytne
    neco # nechytne
    Josef Kufner avatar 27.9.2013 00:46 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    set_error_handler je nástroj pro vývoj, logování a pro vytvoření kultivovaného pádu, nikoliv pro kontrolování, zda se něco povedlo.

    Návratové hodnoty můžeš v PHP kontrolovat také obyčejným if, ale opravdu se napřed podívej na ty výjimky.
    Hello world ! Segmentation fault (core dumped)
    27.9.2013 01:01 Denys
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    To jsem zase vlezl do jazyka, ty jo... to fakt neexistuje způsob jak při chybě zastavit okamžitě celý běh scriptu a vypsat co se mu nelíbí?
    27.9.2013 06:38 Kit
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Však tohle PHP splňuje. Při chybě zastaví okamžitě běh skriptu a vypíše co se mu nelíbí.

    Popisuješ chyby, které by se v dobrém skriptu vůbec neměly vyskytovat.
    27.9.2013 10:17 Denys
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Popisuješ chyby, které by se v dobrém skriptu vůbec neměly vyskytovat.
    To je zavádějící...
    27.9.2013 08:38 R
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Ku kazdej funkcii mas dokumentaciu. Tak podla nej skontroluj po kazdom volani, ci to zlyhalo alebo nie. Ak je problem vazny, ze sa neda pokracovat, tak pouzijes die("nejaky text").
    Josef Kufner avatar 27.9.2013 12:25 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Ne. Použiješ throw new \Exception("Nejaky text");
    Hello world ! Segmentation fault (core dumped)
    27.9.2013 14:06 R
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Ja neprogramujem objektovo, takze ani vynimky nepouzivam.
    pavlix avatar 27.9.2013 19:05 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Komu není rady...
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    27.9.2013 19:19 Kit
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Jak jinak chceš programovat v PHP? A jak chceš programovat bez výjimek?
    pavlix avatar 27.9.2013 19:32 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Zábavnější by bylo programovat v PHP třeba bez některého písmena v abecedě.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    27.9.2013 09:13 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php

    Co to? Však přesně to se stane.

    Pokud nějaký návratový kód nějaké fce znamená chybu aplikace tak si ten exit(); zavolej.
    Zápisy jsou stejné

    if [[ $? == 0 ]]; then
      exit 1
    fi
    
    if($value != 0){
      exit(1);
    }
    
    Jestli chceš PHP používat jako bash, tak používej passthru(), <irony>což je ovšem rada na zlato.</irony>.

    Jediný rozdíl je v tom, že v bash-i, také díky tomu, že provoláváš vlastně jednotlivé aplikace, se do $? uloží návratový kód dané aplikace (jen a pouze integer). V PHP, jak ve většině jazyků, máš funkce, které mohou vracet cokoliv.
    Černobílí svět je taky hezký, ale relita je taková že je mnoho stavů, které mohou znamenat chybu a které ne a liší se kód od kódu (stejně jako v bash-i, návratový kód jiný než nula, neznamená vždy chybu, ale klidně jen požadovanou informaci.).

    Pokud je to web aplikace, tak většinou to nechceš okamžitě ukončit a, nejen proto, se používají výjimky na kontrolu chyb aplikace.

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    27.9.2013 10:23 Denys
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Může mi někdo napsat jak by třeba tohle ošetřil pro představu vyjímkou?
         $file = "/foo/bar.php";
    
         if(file_exists($file))
         {
              if(!require_once($file))
              {
                   msgError('500');
                   exit();
              }
         }
         else
         {
              msgError('404');
         }
    Jedno include a pul stránky kódu, to je hnus..
    27.9.2013 10:58 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php

    Běžné je:

    require_once('/foo/bar.php');

    Pokud to opravdu chceš takto (nebudu to rozebírat):

    $file = "/foo/bar.php";
    if(file_exists($file))
      if(!require_once($file))
         throw new MyRegException(500);
    else throw new MyRegException(400);
    

    Ale samozřejmě to navádí to dát minimálně do fce.
    function grosseReguire($file){
      if(file_exists($file))
        if(!require_once($file))
           throw new MyRegException(500);
      else throw new MyRegException(400);
    }
    a pak normálně volat:
    grosseReguire($file);
    No a na odchytávání výjimek máme
    try{
      grosseReguire($file);
      /*
       * code
       */ 
    }
    catch(MyRegException $e){ 
      errorReg($e);
    }
    catch(Exception $e){ 
      error($e);
    }
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    27.9.2013 11:26 Denys
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Hm, díky moc za příklad, ale pořád postrádam tu chybu, která oznamuje chybu 500 or 404, soubor neexistuje přesto chybu na obrazovce Díkynevidím..
    27.9.2013 11:53 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php

    Chyba která oznamuje chybu grrr ?…?

    reguire() ukončí běh a vypíše chybu.
    Pokud nic nevidíš, tak máš vypnuto vypisování chyb, ze skriptu je lze zapnout:
    error_reporting(E_ALL); případně error_reporting(E_ALL | E_STRICT);
    a
    ini_set("display_errors", 1);.

    Pokud se bavíš o odchytávání výjimek a jejich zpracování, tak jak si to uděláš, tak to máš…

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    27.9.2013 14:11 R
    Rozbalit Rozbalit vše Re: Jak na kontrolu chyb v php
    Include sa takto nikdy neosetruje, je to nezmysel. Ked nieco includujem, tak musim vediet, co a kde. A ked to tam v dosledku nejakej chyby nebude, tak to PHP zisti.

    Nieco robis zle - neincludujes nahodou subory, ktore ti niekto "zvonku" podstrci? To je pomerne casta bezpecnostna chyba.

    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.