Best practice: BaseModel
- Jakub Šulák
- Člen | 222
Zdravím, chtěl bych se zeptat, jaké máte best practice u základního modelu (model který má na starost být mezivrstvou mezi DB a OOP).
Konkrétně řeším následující problém:
<?php
class BaseModel extends Object
{
static $dbTable;
protected $transformationArray;
protected $dbPK = 'id';
public function ...
}
?>
A narážím tak na problém, že mám i statické metody (například insert()), které však nevidí vlastnost $dbModel v potomkovi BaseModel (viz problém s Late Static Bindings).
Máte někdo toto vyřešeno nějakým způsobem, případně celý problém modelu („DB modelu“) máte pojatý jinak a tomuto problému se tak vyhýbáte?
Díky za odpověď
PS: Odpověď „přejdi na PHP 5.3“ mi bohužel není nic platná…;-)
- Jakub Šulák
- Člen | 222
To je podle mě dosti polovičaté řešení.
V modelu existují metody, pro které je zbytečné, aby objekt procházel
celým životním cyklem.
- David Grudl
- Nette Core | 8228
Jakub Šulák napsal(a):
To je podle mě dosti polovičaté řešení.
V modelu existují metody, pro které je zbytečné, aby objekt procházel celým životním cyklem.
Což ovšem naznačuje špatný návrh třídy… Rozděl ji do dvou tříd.