Chcę stworzyć główną klasę 'VenteSystem', która będzie odpowiedzialna za połączenie z bazą danych oraz załadowanie error handlera i smarty.
Jej kod wygląda tak:
<?php class VenteSystem { function VenteSystem( ) { require_once LIB_DIR .'smarty/Smarty.class.php'; require_once LIB_DIR .'driver/mysql.php'; // w przyszlosci dodanie wyboru mysql/pgsql require_once LIB_DIR .'error_handler.php'; //sam ustawia sie jako domyslny $this->smarty = & new Smarty; $this->db = & new sql_db('localhost', 'splatch', 'splatch', 'splatch'); } function VenteOutput( ) { $this->VenteDie( ); //return $this->smarty ? $this->smarty->display( 'index.tpl' ) : ''; } function VenteDie( ) { $this->db->close( ); } } ?>
Teraz w kodzie strony głównej mam
<?php $system = new VenteSystem( ); switch( $_GET['action'] ) { case 'auction': include 'modules/auction.php'; //wczytuje klase auction $object = new auction( $system ); $object->parse(); //dodanie do szablonu break; default: break; } $system->db->close( ); $system->VenteOutput( ); ?>
Kod klasy auction wygląda tak:
<?php class auction { function auction( &$object ) { $this->system = $object; { } else { } } function parse( ) { //$this->system->smarty->assign( 'mainpage', 'tresc' ); } } ?>
Całość (oprócz administracji) będzie obsługiwana przez stronę główną przy użyciu mod_rewrite. Serwer jest tak skonfigurowany, że url powinen być w postaci: vente.pl/wyraz/liczba[/dodatkowe parametry].
Nie jestem pewien czy takie rozwiązanie jest poprawne. Oczywiście nie byłoby problemu z przerobieniem switch na if( file_exists() ), dodania. Czy wszystko ma realizować jądro.
Czekam na Wasze opinie i rady, za każdą będę wdzięczny.