Dobrze przejdźmy więc do rzeczy napisałem sobie klasę Routera, której kod możecie zobaczyć poniżej. Przede wszystkim proszę o obiektywną krytykę bo jest to moja pierwsza klasa.

<?php class Router { private $sPath = null; private $sController = null; private $sAction = null; public function __construct() { $this->sPath = $_SERVER['PATH_INFO']; $this->setUrlSegments(); $this->setController(); $this->setAction(); $this->setParams(); } /** * pobiera nazwę serwera * @return string */ public function getServerName() { return $_SERVER['HTTP_HOST']; } /** * pobiera ścieżkę i dzieli ją na segmenty * następnie umieszcza wszystko w tablicy aUrlSegments */ private function setUrlSegments() { } /** * ustawia nazwę controllera */ private function setController() { $this->sController = $this->getUrlSegment(1); } /** * pobiera nazwę controllera */ public function getController() { return $this->sController; } /** * ustawia nazwę akcji */ private function setAction() { $this->sAction = $this->getUrlSegment(2); } /** * pobiera nazwę akcji */ public function getAction() { return $this->sAction; } /** * pobiera segment URL'a o wyznaczonym id * @param int $id * @return string */ public function getUrlSegment($id) { } /** * ustawia parametry z URL'a */ private function setParams(){ } /** * pobiera parametry z URL'a */ public function getParams(){ return $this->aParams; } /** * tworzy adres URL * @param string $sController * @param string $sAction * @param array $aParams * @return string */ public function createUrl($sController,$sAction,$aParams) { return $this->getServerName().'/index.php/'.$sController.'/'.$sAction.'/'.$aParams[0].'/'.$aParams[1].'/'.$aParams[2]; } } ?>
Teraz moje pytania dotyczące ów klasy:
1. Czy ogólny sposób napisania Routera jest zgodny z filozofią OOP?
2. Co mogę napisać inaczej (czyt. lepiej)?
3. W jaki sposób prawidłowo tworzyć URL'e (metoda createUrl, na którą jak widać w kodzie nie mam zupełnie pomysłu)
