Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obiektowa obsługa zdarzeń
become
post
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


czytam PHP5 Zaawansowane Programowanie.

I właśnie chciałbym rozwinąć wątek "Obiektowej obsługi zdarzeń".

Obecnie, przy programowaniu proceduralnym tworzylem system na zasadzie:
kontroler + funkcja + dodatkowe parametry

które stanowiły element adresow url.

np. c=user ; f=articleList

w tablicy user trzymalem dostepne funkcje dla tego kontrolera czyli np. articleList,articleAdd itp.

przy pobieraniu parametrów sprawdzalem czy kontroler i funkcja są dostepne w systemie - jezeli tak, to includowalem plik kontrolera (controlers/user.php) a funkcję przekazywałem do instrukcji switch, na podstawie której ładowałem plik z kodem obsługującym funkcję.

Wygląda to mniej więcej tak:

index.php:
  1. <?php
  2. $aCTRL=array ('user','site');
  3.  
  4.  $aFUNC=array(
  5. 'site'=>'start,info,contact',
  6. 'user'=>'info,articleList,articleAdd'
  7.  );
  8.  
  9.  #domysle parametry kontrolera
  10.  $ctrl='site';
  11.  $func='start';
  12.  
  13.  if (isset($_GET['c']) {
  14. $ctrl=$_GET['c'];
  15.  }
  16.  
  17.  if (isset($_GET['f']) {
  18. $func=$_GET['f'];
  19.  }
  20.  
  21.  # jezeli sa okreslone menu i funkcja to sprawdzamy czy są dostępne w systemie
  22.  // jezeli kontroler nie istnieje to bierzemy domyslny
  23.  if (!in_array($ctrl, $aCTRL)) $ctrl="site";
  24.  // jezeli funkcja nie istnieje w kontrolerze to bierzemy pierwsza dostepna z kontr
    olera
  25.  if (!in_array($func, explode(",",$aFUNC[$ctrl]))) {
  26.  $aFunc=explode(",",$aFUNC[$ctrl]);
  27.  $func=$aFunc[0];
  28.  } else {
  29. # kontroler wyswietlania komunikatow
  30. $ctrl="messages";
  31. $func="no-element";
  32.  };
  33.  
  34.  include "controlers/".$ctrl.".php";
  35. ?>


user.php
  1. <?php
  2. switch ($func) {
  3. case 'info': include 'user.info.php'; break;
  4. case 'articleList': include 'user.articleList.php'; break;
  5. case 'articleAdd': include 'user.articleAdd.php'; break;
  6.  }
  7. ?>


Niedawno nawet przeczytałem gdzieś, że ten sposób podziału nawet jakoś się nazywa (od nazwiska jego twórcy), aczkolwiek dowiedzialem sie o tym znacznie pozniej. Najwyrazniej wpadlem na cos, co juz kiedys ktos wymyslil.
Nie wazne.

Teraz czas na OOP. Jakie są wasze doświadczenia przy tworzeniu klas kontrolujących zdarzenia ?
Gdzie można coś na ten temat jeszcze poczytać ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




1. Przejrzyj Temat: MVC
2. Jeszcze więcej poszukaj pod hasłami Router, Request Resolver, Dispatcher, Front Controller, Application Controller.

Pozdrawiam.
Go to the top of the page
+Quote Post
Berni
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 8.10.2002

Ostrzeżenie: (0%)
-----


Jeśli czytać Programowanie Zaawansowane w PHP5 to na stronie 204 zaczyna się rozdział "Programowanie oparte na zdarzeniach" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:43