PHP pro pokročilé

Postupy při řešení problémů už nebudou do detailu popsané, takže zůstane více prostoru pro teorii. Dnes se vše točí okolo objektů, a tak i mé povídání bude většinou objektově orientované.

Objekty v PHP5 - Skládání objektů, abstrakce a dědičnost

Objekty v PHP5 - Skládání objektů, abstrakce a dědičnost

V dnešním článku si povíme něco víc o objektech, a to konkrétně o skládání objektů, dědičnosti, abstrakci a samozřejmě i viditelnosti, jejíž znalost je k výše uvedeným technikám nezbytná. Na první pohled se může zdát o složité termíny, ale jejich samotné použití nijak náročné není. Mnohem složitější je správné použití. Nepřidávat dědičnost jen proto, abychom ukázali, že ji umíme, nenaplácat všechna klíčová slova do jedné třídy jenom aby tam byly. To je také hlavní důvod, proč píšu samostatný text, důvod, proč nemohu vše demonstrovat na své databázové třídě.

Celý článek

Návrh databázové třídy - díl VI - Závěr

Návrh databázové třídy - díl VI - Závěr

Šestým dílem bych rád uzavřel svůj seriál o databázové třídě a úvod do objektového programování v PHP5. Ukázali jsme si středně složitou třídu s obsluhou většiny typů SQL dotazů, které využijeme pro projekt průměrné náročnosti. Kromě naprosto základních funkcí jako ošetření SQL dotazů proti SQL injection umí i jednoduché logování, export databáze buď do souboru nebo přímo do force downloadu i vlastní obsluhu chyb. Posílání chyb na e-mail zde ale obsažené není: na notifikační e-maily mám třídu další, o které si můžeme povědět v jiném článku. Nesmím také vynechat možnost připojení k více databázím v rámci jednoho projektu: i to class Db zvládne. Tak hurá na rekapitulaci.

Celý článek

Návrh databázové třídy - díl V - Logování změn

Návrh databázové třídy - díl V - Logování změn

V dalším pokračování seriálu o objektovém programování v PHP si ukážeme, jak přidat do ukázkové třídy DB logování konkrétních SQL dotazů. Rozebereme si tedy znovu metody na insert, update a delete, které rozšíříme o další zápis do nové tabulky, kam budeme ukládat informace o provedených změnách. Nejdřív ale krátká rekapitulace. Soubor článků o objektech v PHP jsem začal psát už poměrně dávno, ještě před pauzou v blogování. Jelikož jsem měl ale na články vcelku pozitivní ohlasy, byla by asi škoda seriál nedokončit, byť opožděně.

Celý článek

Návrh databázové třídy - díl IV: Export databáze

Návrh databázové třídy - díl IV: Export databáze

Dnešní pokračování pohádky o databázové třídě si vezme pod lupu pár konkrétních metod. Půjde o funkce na export celé databáze s možností force download nebo postupného ukládání do souboru. O možnostech exportu databáze moc článků napsáno nebylo, navíc se nejedná o úplně triviální algoritmus s pár vnořenými cykly. V následujícím článku vám předvedu, jak problém vyřešit s elegancí.

Celý článek

Návrh databázové třídy - díl III: class Query

Návrh databázové třídy - díl III: class Query

V minulém dílu seriálu o objektech v PHP5 a živém příkladu v podobě databázové třídy jsme si ukázali základní metody na typové SQL dotazů. Každá z těchto metod skončila vytvořením instance třídy Query, respektive zavoláním některé její metody. Jak to všechno funguje uvnitř třídy Query bude tématem tohoto článku. Krátce ještě zopakuji, co vše už máme: jsou to základní metody třídy Db pro volání SQL dotazů: SELECTUPDATEINSERTDELETE. Hodnoty, které nás zajímají při změně či odstranění řádků tabulky už máme přímo v návratových hodnotách jednotlivých metod. Co ale ještě hotové nemáme, je zpracování klasického výběru dat z databáze.

Celý článek

Návrh databázové třídy - díl II: Základní metody

Návrh databázové třídy - díl II: Základní metody

V úvodu svého seriálu o databázi a objektech jsem nakousnul základní témata, kterými bude směřovat postup realizace. V pokračování uvedu elementární metody na nečastější typy SQL dotazů. Naším cílem bude již zmiňované omezení otravných operací spolu s maximálním zjednodušení zápisů konkrétních typů dotazů. Nepodstatný výčet členských proměnných přeskočím a přejdu rovnou ke konstruktoru třídy.

Celý článek

Návrh databázové třídy - díl I: Úvod, cíle

Návrh databázové třídy - díl I: Úvod, cíle

Jaro už je pomalu za dveřmi, je nejvyšší čas pustit se do objektů. Jako učební pomůcku jsem zvolil právě databázový layer, jelikož na jeho návrhu a tvorbě se dá mnohé ukázat i vysvětlit, o využití v praxi nemluvě. Sám jsem začínal zprvu jednoduchým podnětem: potřebou monitorovat a sčítat provedené SQL dotazy. Skutečný život se ale následně ukázal mnohem složitější, a tak bylo potřeba napsat pokročilou knihovnu, která toho co nejvíce udělá za mě. Proto nyní otevírám miniseriál tak trochu o objektech a tak trochu o návrhových vzorech.

Celý článek

Pokročilé stránkování v PHP

Pokročilé stránkování v PHP

Článek o stránkování v PHP už tu jednou byl. Ovšem po nasazení na mnohé projekty knihovna prošla jistým vývojem, proto tuto dokumentaci posouvám na první místo v seznamu článků a návod aktualizuji. Text bude pojat spíše jako návod na použití než mnohdy zbytečné komentáře k blokům kódu. Přibylo mnoho ošetření vstupů, v členských proměnných je uchováváno více dat pro pozdější použití. Tištěním kódu v šablonách se také už nebude potřeba trápit, o to se postará metoda pro převod do HTML s nastavitelným výstupem.

Celý článek

PHP: Vlastní error handler

PHP: Vlastní error handler

Je tomu již více jak tři roky, kdy můj internetový deníček střídavě funguje a nefunguje. Je proto nejvyšší čas rozdělit články v kategorii PHP na dvě další dle obtížnosti. Proto bych rád kategorii PHP pro pokročilé otevřel článkem, ve kterém ukážu jak na chyby se vším všudy. Jelikož už se se standardními zprávami typu "Fatal error: Call to undefined function..." nespokojíme, je potřeba si rozšířit znalosti o některé funkce a předdefinované třídy, jenž nám ulehčí vývoj aplikací.

Celý článek

Parak simati, Muballit mitte, Nergal allatu mellamu mesaru, La tapallah Annuaki, Kettu Puluthu qillatua