Čím větší problém, tím větší kladivo!
Poslední dobou jsem se věnoval hlavně Javě, kdo ji zakusil už u ní obvykle zůstal. Proto když jsem před časem dělal web na objednávku v PHP přenesl jsem jsi pár „manýrů” k ulehčení práce z Javy do PHP.
Kdo alespoň o Javu někde zakopl, ví, že je to jazyk založený na OOP, kde každá třída dědí třídu Object, která má ve svém kódu uloženy základní metody (JavaDoc).
Když jsem programoval datové třídy pro přístup databázi. Byl jsem znechucen neustálým psaním, přístupu k proměnným stylem getProměnná(), setProměnná(value), který zbytečně zvětšoval objem kódu u jednoduchých tříd. Jako řešení s může nabídnout změnit přístup k proměnným na public a přistupovat k nim jednoduše $class->value. Toto řešení je ovšem z pohledu OOP trochu zvrácené, proto jsem naprogramoval následující rozhraní(interface), které poskytuje 2 metody pro manipulaci s proměnnýma třídy.
Dalším krokem bylo vytvoření třídy Object, která bude rozhraní implementovat a budou ji dědit všechny ostatní třídy. Na první pohled se zdá ObjectInterface jako zbytečné, stačilo by přece jen třída Object, ne? Samozřejmě, ale představte si situaci kdy potřebujete implementaci pozměnit, v potomku můžete sice překrýt metody, ale není to tak precizní a přehledné řešení jako implementace ObjectInterface. Druhým důvodem je třída, která už dědí z jiné a proto nemůže dědit z Object. (V PHP může každá třída dědit jen z 1 jiné třídy, ale implementovat libovolný počet rozhraní.)
Pozn. Třída ignoruje chyby (nedefinovaná proměnná), doporučuji však použít vyjímek k oznamování chyb.
Jak jsem psal výše, nápad jsem dostal při programování datových tříd databáze, proto uvedu příklad právě s ní. Vezměme tedy tabulku Osoba, která by mohla vypadat zhruba nápodobně:
Datová třída vypadá následovně:
Práce se třídou:
Ukázali jsme jsi jak jednoduše přistupovat k vnitřním proměnným třídy. Příště implementujeme Javovskou třídu Properties.
Zdravím všechny človíčky, které trochu baví informatika jako mně. Stránky jsou prozatím ve výstavbě, proto omluvte jejich práznost. Postupem času by se zde měli nacházem typy a triky v programovaní, Linuxu a mé osobní poznatky. Přeji příjemný pobyt!