Mam klasy sterujące grą
<?php /********************************************************************** *Autor: daniel1302 *Licencja: by DamnedLand Staff *Zadanie pliku: *Plik sterujący całą grą(Jądro aplikacji) **********************************************************************/ Class Config { /** *Odpowiada za konfigurację gry * *@return Array Tablica dla podanego elementu */ public function game ($element=false) { #Tablica z konfiguracją 'host' => 'localhost', 'port' => '', 'user' => 'root', 'pass' => '', 'dbname' => 'game'), 'name' => 'DamnedLand', 'url' => 'http://www.damnedland.eu', 'email' => 'activuser@damnedland.eu', 'team' => 'DamnedLand Staff') ); #Sprawdz czy wybrano element if ($element == false) return $array_conf; else { #Sprawdz poprawnośc wprowadzonych danych i zwróć odpowiedni wynik return false; else return $array_conf[$element]; } } /** *Załaduje i sprasuje konfiguracje frameworka z pliku configuracujnego ini * *@return Array Tablica dla podanego elementu */ public function framework($element=false) { #Sprasuj plik z konfiguracją #Jeśli niepodano elementu Frameworka to zwróć wszystkie konfiguracje if ($element == false) return $array_ini; else { #Sorawdz czy konfiguracja zapisana jest w formie tablicy return false; #Jeśli nie zwróć false else return $array_ini[$element]; #Jeśl tak zwróć konfiguracje } } } Class DL_Kernel { /** *Zwróci obiekt z konfiguracją * *@return Object Tablica dla podanego elementu *@static */ { return new Config; } } ?>
W klasie Kernel będzie odpowiednio ustalenie czasu itp
Klasa Config jest to klasa odczytująca konfiguracje
Plik config.ini
;Konfiguracja dla Frameworku ; Konfiguracja dla widoku [view] root = "view" ; Konfiguracja modelu [model] controller_type = "YCDB" data_type = "mysql" ; Konfiguracja kontrolera [controller]
Układ plików jaki stosuję
-game(Cała gra)
--Framework(Cały framework czyli klasa koontrolera widoku modelu validatory itp)
--includes (pliki sterujące grą (Klasy JS funkcje itp)
--View(Widok)
--Model(Warstwa biznesowa)
--Controller(Kontroler)
--./(Wszystkie plikimodułów moduły wykorzystujące kontrolery(normalne skrypty które odpowiadają np admin.php?view=banlist))
W includes mam jeden plik główny(header.php)
zajmuje się on prawym menu testuje gracza czy jest w lochu lub ma bana...
W pliku tym ładowane są wszystkie klasy frameworku(view, controller, model) i includuje go każdy moduł aplikacji
I chciałem spytać czy dobrze to rozplanowałem. z Góry dziękuje i pozdrawiam.
PS. Mam klasę widoku napisaną na podstawie TINY MVC
<?php /*** * Name: Damned Land * About: An MVC application framework for PHP * Copyright: (C) 2008, Damned Land. * Author: daniel1302[daniel.1302@gmail.com] * License: Damned Land Rules * Description: View - class main ***/ Class DL_View { /* Access will put */ public $viewVars; /** * __construct * Constructor class. * Operation of class will configure. **/ public function __construct() { } /** * assign * Function class. * Variable will add for display **/ public function assign($varKey, $varValue=null) { $this->viewVars[$varKey] &= $varValue; foreach ($varKey as $k => $v) $this->viewVars[] &= $v; else $this->viewVars[$k] &= $v; else return false; } /** * display * Function class. * Variable will transfer and file will display **/ public function display($file) { $tConfig = Config::$framework; $templateDir = $tConfig['viewsDir']; $dl_file = $templateDir.'/'.$file.'.php'; { return false; } { return require_once($dl_file); } else { return false; } } { return new DL_View; } } ?>
Chciałem spytać czy jest tu coś do zmiany na lepsze lub do poprawy. I cze lepiej jest to zastosować czy np Smarty/OPT