Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 28. 3. 2012, 12:46:22
Zdravím.. ještě uplně tak neovládám OOP ale snažím se si udělat šablonu pomocí OOP:
class get_default_template { function __construct() { $SQL_Template=db::query_system("SELECT type, page, skin, inc FROM page where page = '".mypage("page")."'"); $Data_TMP=mysql_fetch_assoc($SQL_Template); } function template_link() { redirect_page($this->$Data_TMP['inc']); } function template_admin() { load_page("admin/php_modules/".$this->$Data_TMP['page']."/index.php"); //php modul administrace load_page("themes/admin/".get_current_lang()."/index.php"); //šablona s html modulem administrace } function template_inc() { if(file_exists("php_modules/".$this->$Data_TMP['page']"/index.php")) { load_page("php_modules/".$this->$Data_TMP['page']"/index.php"); //php modul } load_page("system/template.php"); //šablona } } Bohužel s tim $this->$Data_TMP['page'] jsou problémy jelikož nevím jak to z construktoru dostat tam kde to potřebuji... |
||
Joker Profil |
#2 · Zasláno: 28. 3. 2012, 13:12:36
Fisak:
Mně to přijde „divné“ celé. • Co je popsané slovesem (tj. jde o činnost), patří do metody. Třídy a atributy jsou pro věci popsané podstatnými jmény. Takže třída pojmenovaná get_default_template by vůbec neměla existovat. • Konstruktor vytváří lokální proměnné, což tak jak to je udělané nemá žádný smysl. • Třída db zjevně slouží jako jakási globální proměnná a konstruktor spoléhá na to, že bude v nějakém stavu. Takže to není přenositelné jinam. • Používají se jakési globální funkce(?), k čemu pak vůbec je dobré to dělat objektově? • Názvy metod mi připadají chaotické a neodpovídající jejich činnosti. • Připadá mi, že pro každé použití třídy je napsaná konkrétní metoda (template_admin, template_inc), místo aby třída byla alespoň trochu univerzální Sečteno a podtrženo to podle mě jen používá OOP klíčová slova, ale jinak to vůbec není objektový kód. Doporučil bych ještě nastudovat něco o OOP. |
||
Časová prodleva: 12 let
|
0