Zdravím všechny,
aktuálně se snažím zjistit jakým způsobem nejlépe strukturovat objektově psaný PHP projekt. Neměl jsem štěstí abych na netu narazil na toto téma, proto jsem si jako původem javista definoval následující strukturu a zajímala by mne konstruktivní kritika a poznámky k funkčnosti ve složitějších projektech. Budu také rád za informace a odkazy na články týkající se tohoto tématu.
Rozdělení obsahu souborů na logiku, prezentace a modely:
xxx.php - (view) - tyto soubory obsahují pouze funkci require_once('xxx.cont.php') která do nich přidává jejich controller, kromě require obsahují již jen HTML kód, echa a printy proměnných. Myšlenka je maximálně oddělit HTML kód od logiky v kódu PHP.
xxx.cont.php- (controller)- tzv. controller klasické php stránky, zde je zapsána veškerá logika, výpočty, všechny includy, připojení k databázi atd. bez jakéhokoliv HTML kódu. taktéž obsahuje require_once funkce __autoload($class) která nahrává potřebné třídy.
xxx.class.php- (model)- soubor obsahuje pouze definici třídy objektu
*.inc.php - soubory obsahují php kód který se někde opakovaně vkládá, např. funkci __autoload($class) nebo nastavení pro různé databáze atd.
Dělení souborů v adresářích (již není tak podstatné):
/ (root webu) - obsahuje *.php stránky, které jsou určeny přímo uživateli
/class - obsahuje třídy objektů (*.class.php)
/controller - obsahuje controllery stránek z rootu webu (*.cont.php)
/inc - obsahuje include soubory s kódem který nemá jiné zařazení (*.inc.php)
V rootu je rovněž umístěn .htaccess soubor který zakazuje přístup k souborům .class.php, .inc.php a .cont.php.
Myslíte, že má taková struktura šanci obstát například v projektu intranetových stránek, či jiném složitém projektu? Kde vidíte slabiny či naopak výhody této struktury?
zdrojové kódy: https://dl.dropbox.com/u/44949615/oop.zip