
PHP OOP: Základy objektového programování - třídy
Základní myšlenkou objektově orientovaného programování (OOP) je pohled na program jako na systém objektů = tzn. podobně jako vnímáme náš svět. V tomto článku se podíváme na definici a vytvoření třídy, atributů třídy, autoloader tříd a tři typy viditelnosti.
Třída (class) je v objektově orientovaném programování základním kamenem aplikace - seskupuje objekty se stejnými vlastnostmi. Třída neobsahuje konkrétní hodnoty - ty má až objekt. Jinak řečeno, jedná o šablonu/vzor objektu definující jaké vlastnosti a metody má každý z objektů této třídy. Atribut třídy je vlastnost, kterou mají všechny objekty dané třídy.
Můžeme chtít vytvořit např. třídu Letadla, která bude mít veřejné (public) atributy třídy $oznaceni, $rychlost a $hmotnost - prakticky to znamená vytvoření souboru classes/Letadla.php s tímto obsahem:
Třídu pak stačí pouze ručně includovat v daném PHP souboru.
V budoucnu mohou naše aplikace obsahovat velké množství tříd a includování každé třídy zvlášť by bylo otravné, proto je vhodné použít v záhlaví tzv. autoloader tříd.
Funkce autoloader níže includuje automaticky všechny třídy v adresáři classes/*
U atributů a metod se definuje ještě tzv. viditelnost (visibility), jsou tři typy:
PHP OOP - co je to třída?
Třída (class) je v objektově orientovaném programování základním kamenem aplikace - seskupuje objekty se stejnými vlastnostmi. Třída neobsahuje konkrétní hodnoty - ty má až objekt. Jinak řečeno, jedná o šablonu/vzor objektu definující jaké vlastnosti a metody má každý z objektů této třídy. Atribut třídy je vlastnost, kterou mají všechny objekty dané třídy.
PHP OOP - jak vytvořit třídu?
Můžeme chtít vytvořit např. třídu Letadla, která bude mít veřejné (public) atributy třídy $oznaceni, $rychlost a $hmotnost - prakticky to znamená vytvoření souboru classes/Letadla.php s tímto obsahem:
class Letadla //třída letadla
{
public $oznaceni; //atribut třídy
public $rychlost; //atribut třídy
public $hmotnost; //atribut třídy
}
Třídu pak stačí pouze ručně includovat v daném PHP souboru.
PHP OOP - autoloader tříd
V budoucnu mohou naše aplikace obsahovat velké množství tříd a includování každé třídy zvlášť by bylo otravné, proto je vhodné použít v záhlaví tzv. autoloader tříd.
Funkce autoloader níže includuje automaticky všechny třídy v adresáři classes/*
function autoloader($class)
{
require("classes/$class.php");
}
spl_autoload_register("autoloader");
PHP OOP - co je viditelnost?
U atributů a metod se definuje ještě tzv. viditelnost (visibility), jsou tři typy:
- public - k metodám a atributům lze přistupovat ze všech tříd
- protected - k metodám a atributům může přistupovat jen daná třída a potomci
- private - k metodám a atributům může přistupovat jen daná třída