.
.

Navigace

Společné menu

 

Objektově orientované programování (OOP) v PHP

V této sekci najdete kompletní příručku OOP v PHP a popis všech mechanismů PHP 5 souvisejících s objektově orientovaným programováním.

  1. Základy OOP: Termín OOP znamená objektově orientované programování (dále už jen OOP), což je způsob programování, kdy chápeme procesy jako entity. Tedy zkráceně řečeno, nepotřebujeme vědět, jak daný program funguje, ale musíme vědět, jak tento program používat.
  2. Dědičnost: Občas chceme vytvořit třídu podobnou té, kterou už máme definovánu. Bylo by naprosto zbytečné, kdybychom vše přepisovali - stačí pozměnit pouze stávající třídu. Proces, kdy vytváříme novou třídu, která přebírá libovolné metody a atributy, se právě nazývá dědičnost.
  3. Viditelnost: PHP 5 umožňuje definovat vlastnostem i metodám viditelnost pomocí zvláštních klíčových slov. PHP tedy dělí atributy (vlastnosti) a metody na public, protected a private.
  4. Statické vlastnosti a metody: PHP nám dovoluje definovat metodu nebo vlastnost jako statickou. Znamená to, že se váže na třídu a nikoli na danou instanci. Statická metoda se definuje frází "static", které se uvádí po klíčových slovech viditelnosti.
  5. Klíčové slovo final: PHP 5 používá klíčové slovo final pro ochranu rodičovských tříd, aby nemohly být přepsány jejich potomky. Final může být použito před jménem třídy nebo metody.
  6. Speciální metody: PHP 5 obsahuje zvláštní metody, které provádějí určitou speciální činnost, pro niž byly zvlášť navrženy. Mezi základní takové metody patří "__destruct()", "__clone()" a "__construct()".
  7. Autoloading: Velmi užitečnou funkcí je funkce "__autoload()". Umožňuje takzvané automatické nahrávání tříd a je volána, jestliže chcete užít třídu, která ještě nebyla definována.
  8. Objektové konstanty: Uvnitř třídy je možné definovat objektovou konstantu. Odlišnost od vlastnosti třídy spočívá v tom, že se hodnota konstanty nikdy nemění, neuvádí se znakem $ a neváže se k instanci, ale k příslušné třídě.
  9. Operátor "dvojitá dvojtečka": Oficiální název operátoru :: je "Paamayim Nekudotayim" (hebrejský výraz pro dvě dvojtečky), mohl by být nazýván také "oblastní operátor", případně "dvojitá dvojtečka".
  10. Objektové rozhraní: Objektové rozhraní lze charakterizovat jako šablonu vzoru. Pokud vytváříte velké třídy, které zahrnují a volají další třídy na základě různých okolností, občas se může stát, že budete volat metodu, která není nikde definovaná. Abychom předcházeli takovým chybám, PHP 5 umožňuje specifikovat objektové rozhraní.
  11. Abstraktní třída: Abstraktní třída (abstrakce) je třída, která obsahuje jak abstraktní metody, tak hotové metody. Abstraktní třídy nesmí vytvářet instance, mohou být ale děděny a jejich potomci po implementaci potřebných metod instance vytvářet mohou. Metody označené jako abstrakní nemohou definovat obsah, pouze specifikují název a případné argumenty.
  12. Vzor Factory: Takzvaný "vzor Factory" umožňuje jednoduché vytváření objektů uvnitř jiných tříd.
  13. Vzor Singleton: Návrhový vzor Singleton umožňuje vytvářet objekty, u nichž je zaručena jejich unikátnost. Znamená to, že díky tomuto vzoru je možné objekt volat vždy pouze jednou.
  14. Přetěžování: Metody přetěžování jsou volány v případě, že zadáváte vlastnost nebo metodu, která není definována.
  15. Iterace (opakování): Iterace (volně přeloženo jako opakování, cyklus opakování) umožňuje přístup k objektům jakoby k polím.
  16. Typová kontrola: Typová kontrola znamená, že argumenty předávané třídě budou kontrolovány na svůj původ a typ.
  17. Porovnávání a identita: V PHP5 byla změněna funkčnoust operátoru porovnávání a identity.
  18. Magické metody: Magické metody umožňují programátorovi přenést na PHP starost o některé speciální a jiným způsobem těžko proveditelné úkoly, nezbytné při práci s OOP.
  19. Operátor instanceof: Operátor "instanceof" umožňuje jednoduše zjišťovat, zda daný objekt je instancí konkrétní třídy či rodiče, nebo zda je implementací nějakého rozhraní.
  20. Dereference objektů: Dereference je možnost odkazování na metodu či vlastnost, která obsahuje další objekty, z nich chceme použít nějakou vlastnost či metodu jiného objektu.
  21. Funkce pro spolupráci s OOP: PHP samozřejmě obsahuje řadu funkcí, které umožňují spolupráci objektového a neobjektového kódu, respektive práci s informacemi o objektovém kódu.
  22. Využití OOP v praxi: Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování v PHP.
  23. Výjimky v OOP: PHP 5, narozdíl od předešlých verzí, umožňuje využívání výjimek stejně jako ostatní programovací jazyky. Výjimky rozšiřují možnosti ošetřování vzniklých chyb v PHP.
  24. Standard PHP Library (SPL) - základní funkce: Na knihovnu SPL jste už mohli narazit v souvislosti s rozhraním Iterator. Zmíněná knihovna však nabízí i další funkce, rozhraní a třídy, které mohou být v praxi velmi užitečné. Náplní tohoto článku je popis funkcí SPL knihovny.
  25. Standard PHP Library (SPL) - základní rozhraní: Knihovna SPL Marcuse Boergera neobsahuje pouze funkce pro práci s autoloadem, jak by se vám po předchozím článku mohlo zdát. Obsahuje desítky rozhraní a tříd, které vám mohou výrazně zpříjemnit práci s objekty. Náplní tohoto článku je popis základních rozhraní Countable a ArrayAccess.
  26. Fluent Interfaces: Takzvané "Fluent Interface" (česky též "plynulé rozhraní" nebo "řetězcovité volání") je způsob spojování metod jednoho či více objektů, který usnadňuje předávání pracovního kontextu objektu. Výhodou je zmenšení a celkové zpřehlednění kódu.