Devlogy.cz » Seznam zdrojů » PHP triky
PHP triky
Základní informace o zdroji
| Podtitulek: | Weblog o elegantním programování v PHP pro mírně pokročilé |
|---|---|
| Domovská stránka: | http://php.vrana.cz/ |
| RSS export: |
Systémové informace o zdroji
| ID: | 26 |
|---|---|
| Jmenné ID: | jakubvrana |
| Články ručně přidává správce systému: | NE |
| Články jsou schvalovány správcem: | NE |
| Titulek zdroje stahován z RSS exportu: | ANO |
| RSS export je lineární: | ANO |
| Kontrola aktuálnosti proběhla: | dnes 12:35 |
| Návratový kód: | HTTP 200 |
| RSS export naposledy zpracován: | dnes 12:35 |
| Kontrola aktuálnosti naplánována na: | dnes 13:05 |
Kde zachytávat výjimky
V článku Kde zachytáváte výjimky? jsem představil jednoduchý problém aplikace v Nette Frameworku, která při získávání dat může vyvolat chybu, a ptal jsem se, jak s touto chybou naložit. Řešení nabídnutá v diskusi mě příliš nepřesvědčila ...
Kde zachytáváte výjimky?
Představte si aplikaci podle návrhového vzoru MVC nebo podobného, napsanou třeba v Nette, ve které chceme někde v postranním menu zobrazit třeba výběr článků. Pokud se tento výběr nepodaří načíst, neměl by zamezit zobrazení hlavního ...
Jak je to s těmi chybami?
Typická webová aplikace si načte nějaká data z databáze a zobrazí je rozmístěné na stránce. Občas do databáze i něco uloží. Tyto části jsou na sobě většinou nezávislé a jedna část by neměla ovlivnit druhou. Někdy to samozřejmě ...
Rozšíření pro NotORM
NotORM se výborně hodí pro pohodlné sestavování dotazů pokládaných do databáze, obzvlášť pokud potřebujeme pracovat se vztahy mezi tabulkami. Pokud je ale databáze navržena nešikovně nebo je příliš komplexní, tak by se hodilo nad ...
Konference OSI Days 2010
Moje dvě přednášky o NotORM a Adminer Editoru byly přijaty a zařazeny do programu konference OSI Days. Jde o největší asijskou open–source konferenci, zaměřuje se především na PHP a související technologie. Na konferencích už jsem ...
Závorky u jazykových konstrukcí
Když jsem začínal s PHP, tak se mi líbilo, že se všechno používá v podobě funkce, dokonce i příkaz pro vložení jiného souboru. Pak jsem se ale dozvěděl, že to tak úplně není a závorky jsem psát přestal. Platí to pro příkazy ...
NotORM je rychlejší než Doctrine 2 i Dibi
Patrik Votoček srovnal rychlost a paměťovou náročnost několika ORM a porovnal je s hodnotami knihovny Dibi. Bohužel do srovnání nezahrnul moji knihovnu NotORM, která se dá použít místo ORM. Naštěstí ale testovací kód publikoval, takže ...
Sedm příspěvků
Českými i světovými weblogy se šíří řetězová akce, ve které jednotliví autoři odkazují na své z nějakého pohledu zajímavé příspěvky. Seznam českých autorů, kteří se do této akce zapojili, nabízí Milan Kryl. 1. Můj první ...
Kolik je českých PHP programátorů?
Zajímalo by mě, kolik je v České republice programátorů se znalostí PHP. Otázka mě napadla v souvislosti s knihou, ale přijde mi zajímavá i sama o sobě. Bohužel mě nenapadá způsob, jak to zjistit s přesností alespoň jednoho řádu. ...
Odstranění nadbytečných entit
V HTML a XHTML dokumentech lze z historických důvodů používat pro zápis některých znaků entity. Ve znakové sadě Unicode (tedy např. v kódování UTF-8) ale už tyto entity nejsou potřeba a vystačíme si se základními XML entitami vytvářenými ...
Ošetřování chyb
Programovacímu jazyku PHP se často vyčítá, že sice podporuje výjimky, ale že to je jen tak na oko, protože interní funkce výjimky téměř nevyvolávají. I když pominu, že chyby PHP se dají na výjimky snadno překládat, tak bych si s ...
Poslání zapomenutého hesla
Pokud bezpečně ukládáme hesla, tak je uživatelům samozřejmě nemůžeme poslat v případě zapomenutí, protože je nemáme jak získat. Nabízí se ale několik způsobů, jak zapomenutí hesel řešit i v případě jejich bezpečného uložení. ...
Opakované hašování
Už jsem psal o tom, jak rychle se dají vypočítat haše krátkých hesel. Pokud nechceme uživatele nutit k používání dlouhých hesel, tak bychom potřebovali hašování nějak zpomalit. Jednoduchý způsob je volat hašovací funkci opakovaně: ...
Dopsal jsem knihu
Přes půl roku jsem se po večerech věnoval hlavně psaní knihy 1001 tipů a triků pro PHP a nedávno jsem ji dokončil. Stanovil jsem si plán napsat deset tipů každý pracovní den a až na několik výjimek jsem ho dodržel, díky čemuž jsem ...
Rozdělení souvisejících metod
Adminer používá pro práci s databázovým systémem tři druhy metod: Metody specifické pro extenziNapř. metoda query se s extenzí MySQL přeloží na mysql_query. Metody specifické pro databázový systémNapř. getTables se v MySQL přeloží ...
Variable initialization in PHP
This article was published as the Month of PHP Security Submission. Introduction Consider the following code: <?php if (authUser($_POST["login"], $_POST["password"])) { $auth = true; } if ($auth) { echo "Secret\n"; ...
NotORM
Většina webových aplikací potřebuje pracovat s propojenými daty uloženými v databázi. Psát SQL dotazy spojující třeba šest tabulek v databázi může být zpočátku docela zábavné, pak se z toho ale stane nudná rutina. Navíc spojení ...
Context-aware HTML escaping
This article was published as the Month of PHP Security Submission. Introduction Cross-site scripting (XSS) is one of the most common vulnerabilities in web applications. Defense against this attack on HTML pages is however quite simple – it is ...
Čísla verzí aplikací
Nemám rád beta verze, release candidate a další harampádí. Tak buď aplikace funguje a může se vydat, nebo ne a ještě se musí vyvíjet, ne? Pokud existuje veřejný přístup k vývojové verzi (případně k jejím sestavením), tak si ji ...
Opakování dokumentačních komentářů
Pokud rozhraní deklaruje nějaké metody, tak by tyto metody jistě měly mít dokumentační komentáře. A co když pak někdo tyto metody definuje, má dokumentační komentáře psát znovu? Není to zbytečná práce navíc? A když se původní ...
Adminer 2.3.1
Nová verze webové aplikace pro správu MySQL databází Adminer přináší tyto změny: Nefungovalo přihlášení při zapnuté direktivě session.auto_start. Adminer se ji snažil zneutralizovat a zapnout si vlastní session, s tím ale byly problémy. ...
Měsíc bezpečnosti PHP 2010
Projekt Hardened-PHP, za kterým stojí Steffan Esser, uspořádal v roce 2007 Měsíc PHP chyb, kdy odhalil více než 40 bezpečnostních chyb v PHP. Letos na tuto akci navazuje Month of PHP Security, kdy budou každý den května 2010 zveřejňovány ...
Vytváření odkazů do dokumentace
V JavaScriptovém zvýrazňovači syntaxe JUSH jsem od začátku lpěl na sledování kontextu a jeho přepínání. Je to hezky vidět i u jednoduchého kódu <?php mysql_query("SET sql_mode = ''"), kde jsou hned čtyři kontexty: Z HTML kódu ...
Vyjadřovací schopnosti objektů pro API
Když chceme v objektu zpřístupnit předem neznámé x, tak máme vedle tradičního způsobu (definice metody, která bude x přijímat jako parametr) i řadu dalších možností: x; // definicí metody __get() a příbuzných ...
Adminer 2.3.0
Prošvihl jsem pravidelný měsíční interval pro vydávání nových verzí Adminera, takže se změn nakupilo trochu více. Trvalé přihlášení Výchozí limit platnosti session proměnných v PHP je 24 minut. Vzhledem k tomu, že Adminer informace ...
Nastavení fulltextového vyhledávání MySQL
O fulltextovém vyhledávání v MySQL jsem už psal, dokonce i o jeho základním nastavení. Pro možnost hledat krátká slova je vhodné nastavit ft_min_word_len (minimální délka indexovaného slova) nejvíc na trojku. Pro hledání v českých ...
Dopočítávané sloupce
Řekněme, že na stránce chceme zobrazovat deset článků s největším počtem diskusních příspěvků. K tomu můžeme použít zhruba takovýto dotaz: SELECT clanky.nadpis, COUNT(diskuse.id) AS pocet_komentaru FROM clanky LEFT JOIN diskuse ON ...
XHP – XML přímo v PHP
Výbornou vlastností pro začátky s PHP je, že lze kód přímo kombinovat s HTML výstupem. U větších projektů je to ale spíše na škodu, takže se sahá k oddělení PHP a HTML kódu. Ten se obvykle umisťuje do šablony, která může být ...
Verze PHP v ČR – únor 2010
Jako již tradičně jsem začátkem roku prozkoumal, jak moc se v ČR používá PHP. Na rozdíl od předchozích ročníků jsem tentokrát stahoval celý obsah titulních stránek všech webů v doméně .cz, což umožnilo výzkum rozšířit. Zastoupení ...
HipHop
Možná už jste slyšeli zvěsti o tom, že „Facebook přepisuje PHP“. Ve skutečnosti se jedná o projekt HipHop for PHP, který vezme zdrojový kód PHP, převede ho do C++ a ten zkompiluje. Motivace tohoto postupu je jasná – zvýšení výkonnosti, ...
