Lekcja 4 – MVC – Model [model]
W dzisiejszym artykule postaram się dość zwięźle i szybko przedstawić Wam kolejną warstwę wzorca projektowego jakim jest MVC. Oczywiście warstwa ta będzie przedstawiona na przykładzie z poprzednich lekcji tzn. komponentu dla Joomla 1.5 Model będzie odrębnym plikiem php przechowywanym w katalogu models w głównym katalogu komponentu. Nazwa pliku php będzie dowolna z tą jednak zasadą jak w przypadku widoków, że jeśli chcemy utworzyć jakiś model domyślny dla widoku nazywamy go tak samo jak nasz widok.
Ogólny szablon modelu będzie wyglądał następująco:
Jak na pewno zauważyliście ciało modelu nie różni się zbytnio od widoku. Jedyna różnica to ładowana biblioteka joomla.application.component.model oraz nazwa klasy, która składa się z NazwyKomponentu – chyba nie muszę komentować, w naszym przypadku z poprzednich lekcji będzie to Witaj. Następnie słowo kluczowe (w rozumieniu pisania komponentów dla Joomla) Model, po którym wpisujemy nazwę Modelu (taka sama jak nazwa pliku bez php). W takim razie źródło naszego przykładowego modelu będzie wyglądać tak:
W module tym zaimplementowałem prostą funkcję która zwraca napis ze zmiennej $dane. Oczywiście funkcji może być więcej i mogą zwracać różne dane, nas będą interesować informacje z bazy danych których obsługa jest równie prosta jak tworzenie modelu! Joomla udostępnia nam gotowe klasy i funkcje które należy odpowiednio wykorzystać. No cóż, ale koniec tego wywodu miało być krótko.
Mamy gotowy model. Jak więc teraz wykorzystać funkcje w nim zawarte? Musimy zmodyfikować nasz widok, który teraz będzie wyglądał tak:
Tutaj dużo nie będę tłumaczył ponieważ widok był opisany w poprzedniej lekcji. Nowością jest tutaj:
funkcja ta przypisuje zmiennej $model instancję naszego modelu (jeśli nie podamy parametru to szukany jest model o nazwie takiej jak nazwa widoku). Jeśli chcemy załadować inny model o nazwie np. test funkcję wywołujemy następująco:
Następna linia to $dane = $model->pobierzDane(); która zmiennej $dane przypisuje wynik działania funkcji pobierzDane() którą zaimplementowaliśmy w naszym modelu. Reszta kodu była opisana w poprzediej lekcji.
Myślę że na chwilę obecną wystarczy tyle informacji, w następnej lekcji prawodpodobnie napiszę o pobieraniu danych z baz danych. Tak więc zapraszam do ponownych odwiedzin i oczywiście głosowania w ankiecie. Jeśli chcesz się przyczynić do szybkości powstawania artykułów proszę rozpowszechniaj adres tej strony, zwiększony ruch motywuje mnie do tworzenia kolejnych lekcji.
Odsłony: 17315