O víkendu probíhá konference OpenAlt 2025. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.
Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.
Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).
Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).
Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
if [[ $? == 0 ]]; then ..., poradí někdo jak se to dělá v php? Děkuji
set_error_handler().
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
throw new \Exception("Nejaky text");
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.
$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..
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);
}
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áš…
Tiskni
Sdílej: