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:
<?php 'site'=>'start,info,contact', 'user'=>'info,articleList,articleAdd' ); #domysle parametry kontrolera $ctrl='site'; $func='start'; $ctrl=$_GET['c']; } $func=$_GET['f']; } # jezeli sa okreslone menu i funkcja to sprawdzamy czy są dostępne w systemie // jezeli kontroler nie istnieje to bierzemy domyslny // jezeli funkcja nie istnieje w kontrolerze to bierzemy pierwsza dostepna z kontr
olera $func=$aFunc[0]; } else { # kontroler wyswietlania komunikatow $ctrl="messages"; $func="no-element"; }; include "controlers/".$ctrl.".php"; ?>
user.php
<?php switch ($func) { case 'info': include 'user.info.php'; break; case 'articleList': include 'user.articleList.php'; break; case 'articleAdd': include 'user.articleAdd.php'; break; } ?>
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ć ?