Návrhové vzory
ActiveRecord
- návrhový vzor
- objektově relační mapování (ORM)
- instance se umí uložit (
INSERT,UPDATE) - třída umí vyhledávat (
SELECT)
Příklad použití
<?php
...
// create product
$product = new Product("Tesla 3", 1_500_000);
$product->save();
// get all products
$products = Product::all();
// get specific product by its identifier
$product = Product::find(1);
// update product
$product->setName("Toyota Corolla Cross");
$product->save();
// delete product
$product->delete();
...Struktura třídy AbstractModel
<?php
abstract class AbstractModel {
/** @return AbstractModel[] */
public static function all(): ?array {
// TODO: implement me
}
public static function find(int $id): ?AbstractModel {
// TODO: implement me
}
public function save(): bool {
// TODO: implement me
}
public function delete(): bool {
// TODO: implement me
}
}DataMapper
- další návrhový vzor pro ORM
- doménový objekt neobsahuje CRUD operace (narozdíl od ActiveRecord)
- mapovací objekt (entity manager)