Podstawy wzorców projektowych PHP OOP

0

Witam,

Chcę napisać prostą stronę w PHP OOP. Przede wszystkim nie wiem jak rozplanować

$_GET['page'] np ?page=index, ?page=kontakt, page=moj_profil

?? Zawsze dawałem to na switch, ale jak zaimplementować to w z klase?? żeby miało to ręce i nogi ? tego switch umieścić w osobnej klasie ? A jak później obsługiwać te odpowiednie strony? Kiedy mam wiedzieć kiedy podłączyć odpowiednią metodę, do obsługi odpowiedniej klasy ? Może ktoś poleci mi jakiś wzorzec projektowy do tego ??

0

Może weź sobie obadaj jakiego frameworka i pisz z jego użyciem (poszukaj też tutoriali wprowadzających). Np. Kohana.

0

Na razie mam taki kod:

public function page(){
	if(!isset($_GET['page']))
	{
		$var = 'index';			
	}
	else
	{
		switch($this->page)
		{
		   case 'friends':
			$var = 'friends';            
			break;
		   case 'friends_friends':
			$var = 'friends_friends';            
			break;
		   case 'suggest':
			$var = 'suggest';            
			break;	  
		   case 'recommend': 
			$var = 'recommend';            
			break;	           
		}
	}
	return $var;
}
}

problem mam tylko z jedną rzeczą. ponieważ każdą podstronę obsługuje inna klasa i nie wiem jak podpiąć tą klasę? mogę zrobić to na chama i dać np

case 'recommend': 
			$var = 'recommend';       
                        include('friends.class.php');
			break;
 

Pytanie czy to ma sens? takie rozwiązanie ?:/

0

raz masz $_GET['page'], a potem $this->page, a dla mnie wygląda, że Z ZAŁOŻEŃ ma robić to samo.
Zamiast pisać:

                switch($this->page) {
                   case 'friends':
                        $var = 'friends';            
                        break;
                   case 'friends_friends':
                        $var = 'friends_friends';            
                        break;
                   case 'suggest':
                        $var = 'suggest';            
                        break;          
                   case 'recommend': 
                        $var = 'recommend';            
                        break;                   
                }
return $var;

nie lepiej po prostu:

switch($this->page) {
 case 'suggest':
 case 'recommend':
 case 'friends':
 case 'friends_friends':
   // tu ew. include($this->page.'.class.php'); jeżeli nazwy plików mają te same nazwy
   return $this->page;
   break; // break nawet niepotrzebny, ale dla czytelności niech zostanie
 default:
   // coś w innym przypadku, jeżeli faktycznie $_GET['page'] ma być tym samym co $this->page, to po prostu wywal sprawdzenie u góry i dorzuć to tutaj.
}

Niestety nie wyjaśniłeś - na co to Tobie? Nie zbudujesz "wzorca projektowego" na jakimś gotowym nieobiektowym kodzie w 2 dni i to nie mając (chyba) pojęcia o obiektach - jeżeli działa to już lepiej będzie go zostawić jak jest.

1 użytkowników online, w tym zalogowanych: 0, gości: 1