Jak powszechnie wiadomo głównym udogodnieniem w nowej wersji php (5.3) ma być obsługa przestrzeni nazw (namespace). Postanowiłem sprawdzić jak obsługa wygląda obecnie. Pojawiła się ku temu okazja gdyż miałem przygotować projekt na przedmiot: “Aplikacje Internetowe”.
Trójwarstwowość i MVC
Moim zadaniem było stworzenie aplikacji prostego sklepu z podstawową funkcjonalnością. Może troche na wyrost ale postanowiłem że w aplikacji wydzielę trzy warstwy ( danych , logiki i prezentacji) a całość oprę na wzorcu MVC. No i właśnie z tym wzorcem wiąże się zastosowanie w moim projekcie namespaces.
Moje postrzeganie MVC jest oparte o frameworka phiend i wydaje mi się być jednym z najsłuszniejszych:
M - Model zapewnia abstrakcję na dane ( warstwa danych );
C - Controler realizuje logikę aplikacji ( jest to warstwa logiki )
V - View wyświetla dane (jest to warstwa prezentacji )
Odrazu nasuwa się aby implememntując wymusić jakiś podział kodu na te trzy części.
Ciężko jednak byłoby zaimplementować każdą z części używając jednej klasy. Nie mówie tutaj o tworzeniu na siłę klas abstrakcyjnych a później dziedziczeniu po nich np tylko po to aby mieć dostęp do instancji PDO - jest to błędne w sensie OOP.
Zamist tego można wykorzystać dość dobrze juz rozwinięty mechanizm przestrzeni nazw w PHP co według mnie jest najbardziej intuicyjne i zgodne OOP.
Namespace w praniu
Przestrzenie nazw w PHP ewaluowały. Przeżyły one ostatnio zupełną rewolucję - została zmieniona składnia przestrzeni nazw(wiadomość na php). Dotychaczasowe podwójne dwukropki zostały zastąpione backslashami. Przestrzeń która kiedyś wyglądała tak
namespace jjroman_net::kontroler;
teraz wygląda tak:
namespace jjroman_net\kontroler;
Podczas zabawy z wersją alpha2 okazało się że jest ona strasznie zabugowana. Z bugtracka dowiedziałem się ze większość moich problemów została już usunięta w wersji CVS, No więc nie pozostało nic innego jak ściągnąć takową.
Z przyjemnością stwierdzam, że obecna wersja alpha4 jest dużo bardziej dopracowana i da się na niej pracować. Co prawda zdarza się że muszę zgłosić buga :] ale są to juz dość drobne w porównaniu do wersji alpha2 uchybienia.
Reasumując zachęcam wszystkich do zapoznania się z możliwościami nowej wersji PHP gdyż są one duże :}

Ostatnie komentarze