jestem w trakcie tworzenia własnego frameworka. Interesuje mnie jak tworzycie menu na stronach. Czy jest to oddzielny obiekt (moduł) i skąd pobiera on linki. U siebie zrobiłem na razie tak:
Menu jest u mnie oddzielnym modułem. Od każdego modułu systemu pobiera on tablicę akcji (jedna akcja opisywana jest na razie tablicą postaci [widok, akcja, parametry, etykieta]), które są reprezentacją funkcjonalności modułu. Tutaj każdy moduł musi określic jakie swoje funkcje chce udostępnić w danym widoku dla użytkownika. Na podstawie tych danych moduł menu generuje zestaw linków, które są umieszczane na stronie.
Podam jeszcze jak działa u mnie uruchomienie odpowiedniej akcji w systemie z wykorzystaniem powyższych linków.
- Po pobraniu przez skrypt adresu uri, rozkładany jest on na czynniki pierwsze. Struktura adresu może wygladać następująco:
www.strona.pl/widok/akcja1,par1,par2/akcja2,par1/akcja3 - Wyodrębniane są wszystkie akcje i ich parametry, w tym miejscu sprawdzane jest, czy akcja jest dopuszczona do wykonania ( mam tablicę 'akcept_actions[]' )
- Akcje jedna po drugiej za pośrednictwem obiektu module_controllera są przekazywane do wszystkich modułów systemu i jeżeli mają one zaimplementowaną ich obsługę to wykonują określone zadania (każdy moduł dziedziczy po abstrakcyjnej klasie 'module' która posiada metodę listener())
Pozdrawiam.