V objektově orientovaném programování (OOP) v PHP se používají různé typy objektů, které mají různé účely a vlastnosti. V tomto článku se podíváme na pět hlavních typů objektů v OOP v PHP - třídu, objekt, službu, entitu a value-object.
Třída je šablonou, ze které se vytvářejí objekty. Třída obsahuje definice vlastností a metod objektů, které jsou z ní vytvořeny. Třída se obvykle skládá z názvu, vlastností a metod.
class User {private $id;private $name;public function __construct($id, $name) {$this->id = $id;$this->name = $name;}public function getName() {return $this->name;}}
V tomto příkladu máme třídu User, která má dvě vlastnosti - id a name. Třída také obsahuje konstruktor a metodu getName(), která vrací jméno uživatele.
Objekt je instance třídy. Je to konkrétní reprezentace šablony třídy. Každý objekt má své vlastnosti a metody, které jsou definovány v jeho třídě. Objekt je vytvořen pomocí klíčového slova new.
$user = new User(1, 'John');echo $user->getName(); // vypíše "John"
V tomto příkladu jsme vytvořili instanci třídy User a uložili ji do proměnné $user. Následně jsme zavolali metodu getName(), která vrátila jméno uživatele.
Služba je objekt, který poskytuje určité funkcionality. Služba může být vytvořena jako samostatný objekt nebo může být součástí třídy.
class UserService {private $userRepository;public function __construct(UserRepository $userRepository) {$this->userRepository = $userRepository;}public function getUser($id) {return $this->userRepository->findById($id);}}
V tomto příkladu máme službu UserService, která využívá objekt UserRepository. Služba poskytuje funkci pro získání uživatele podle ID.
Entita je objekt, který reprezentuje jednu konkrétní entitu v systému. Entita může být například uživatel, produkt nebo objednávka. Entita obsahuje vlastnosti, které popisují tuto entitu a metody, které s ní mohou pracovat.
class UserEntity {private $id;private $name;private $email;public function __construct($id, $name, $email) {$this->id = $id;$this->name = $name;$this->email = $email;}public function getId() {return $this->id;}public function getName() {return $this->name;}public function getEmail() {return $this->email;}}
V tomto příkladu máme entitu UserEntity, která má tři vlastnosti - id, name a email. Entita obsahuje metody pro získání každé z těchto vlastností.
Value-object je objekt, který reprezentuje hodnotu. Value-object má hodnotovou sémantiku, což znamená, že se porovnává hodnota objektu a ne jeho identita. Value-object může být použit například pro reprezentaci peněžní částky nebo časového intervalu.
class Money {private $amount;private $currency;public function __construct($amount, $currency) {$this->amount = $amount;$this->currency = $currency;}public function getAmount() {return $this->amount;}public function getCurrency() {return $this->currency;}public function add(Money $money) {if ($this->currency !== $money->getCurrency()) {throw new InvalidArgumentException('Currencies do not match');}return new Money($this->amount + $money->getAmount(), $this->currency);}}
V tomto příkladu máme value-object Money, který reprezentuje peněžní částku. Value-object obsahuje vlastnosti amount a currency a metody pro získání těchto vlastností. Value-object také obsahuje metodu add(), která slouží k přičtení peněžní částky. Při sčítání je ověřeno, zda se jedná o stejnou měnu.
V OOP v PHP existuje několik typů objektů - třída, objekt, služba, entita a value-object. Každý z těchto typů má své vlastní vlastnosti a využití v aplikacích. Znalost těchto typů objektů může pomoci při návrhu a implementaci aplikací v PHP.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs