Postanowiłem napisać własnego frameworka PHP. Zgodnie ze wzorcem projektowym MVC (Model-View-Controller). Czyli szablon aplikacji 3-warstwowej, w której logika biznesowa, dostęp i operacje na bazie danych oraz prezentacja wyników w postaci interfejsu użytkownika będą od siebie wyraźnie odseparowane, czyli znajdą się w osobnych warstwach. Taka architektura pozwoli mi łatwiej rozwijać i modyfikować aplikację, a jednocześnie wykorzystać ją na innych moich stronach.
Moim założeniem było stworzenie jak najcieńszego frameworka, na którym można postawić stronę www. Jak najcieńszego, ale zarazem mającego walidację formularzy (wypełnienie pól, poprawność e-maila, pesela, ochrona przed SQL injection), a także generatory list, formularzy i widoków.
Dlaczego własny, a nie gotowy, np. Zend, Symfony, Code Igniter, Yii, Cake PHP, Kohana itd.? Bo wolę samemu tworzyć strukturę klas i obiektów, hierarchię i całą architekturę, czy wreszcie własny routing, niż wgryzać się od zera w nową technologię. Co prawda trochę pobawiłem się Code Igniterem czy Yii, i nawet zrobiły na mnie miłe wrażenie, ale gdy pomyślałem sobie, że obsługa złożonych zapytań do bazy miałaby się odbywać według przygotowanych schematów frameworka, zdecydowałem, że zrobię coś własnego, gdzie będę dokładnie wiedział, co i jak się odbywa. Coś, co będzie kompletne i spójne w tym znaczeniu, że funkcjonalność i działanie, jakie zaplanowałem i zaprojektowałem dla mojego systemu, będzie od razu wkomponowane w kod projektu, bez konieczności użycia jakichkolwiek zewnętrznych wtyczek, bibliotek czy innych dodatków. A wszystko po to, aby system był jednolity, bezpieczny, lekki i szybki. Aby nie zawierał ogromnych pokładów kodu, z którego się nie korzysta, a który obciąża i spowalnia serwis. Aby zawierał tylko to, co potrzebuję i ani grama więcej.
Ostatnio miałem okazję ocenić przydatność frameworka. Trzeba było postawić aplikację zawierającą dodatkową funkcjonalność - prezentację wyników pochodzących z zewnętrznego programu. Musiałem więc dodać jeden moduł do frameworka i oprogramować jego działanie, tak aby spełniał założenia specyfikacji. Zajęło mi to raptem parę dni, co dowodzi, że framework pozwala na szybkie tworzenie dedykowanych serwisów. Aplikacja znajduje się na stronie: http://in-met.com.pl. Jeśli strona Wam się spodoba, zachęcam do jej polubienia na facebooku.