
Planuję zbudować własnego, prostego CMSa. Zajmuję się tworzeniem stron internetowych i CMS ma być przeznaczony dla bardzo różnych klientów. Ma zawierać przede wszystkim elementy takie jak aktualności, ankiety, w panelu administracyjnym menedżer plików do łatwego uploadu zdjęć itp. Często potrzebuję także dodać jakieś indywidualne elementy (np. kalendarz z wydarzeniami czy bazę zrealizowanych projektów). Gotowe CMSy mnie nie interesują, ponieważ zmiana czegokolwiek jest tam dość kłopotliwa.
Mam już pewne doświadczenie w PHP, jednak dopiero jakiś czas temu przerzuciłem się na PHP5, obiekty i PDO. Właściwie przeprowadziłem już pierwszą próbę napisania prostego CMSa, w miarę wiedzy i możliwości oddzielilem warstwy modelu, widoku i kontrolera. Skorzystałem z systemu template'ów Smarty do prezentacji treści i początkowo wydawało mi się, że wszystko jest ładnie uporządkowane i na swoim miejscu. Jednym słowem - podobało mi się to co stworzyłem.
Z perspektywy czasu widzę jednak, że wiele rzeczy można by zrobić lepiej. Sporo uprościć i zautomatyzować. Duże problemy mam też z implementacją elementów AJAXowych - jak to robić żeby wszystko trzymało się kupy. Nie jestem też pewny czy dobrze zabezpieczyłem to co powinno być zabezpieczone - dane, dostęp do panelu, pliki. Niektóre rzeczy chciałbym rozbudować, ale właściwie wymagałoby to napisania kodu od zera.
Stwierdziłem więc, że potrzebuję najpierw jakiejś dobrej podstawy do budowy CMSa - tutaj pojawił się wątek frameworków. Na pierwszy ogień poszło Symfony. Zrobiłem jakiegoś prostego tutoriala i jakś niezbyt mi się spodobał sposób tworzenia aplikacji. Wydaję mi się, że to jest poprostu zbyt rozbudowany framework na moje potrzeby.
Dlatego chciałbym prosić o jakąś radę. Od czego zacząć - nauczyć się jakiegoś framework'a (jakiego?) czy lepiej napisać jakiś prosty pseudo-framework dopasowany do tego co potrzebuję? Ktoś powiedział mi, że dobrym rozwiązaniem na początek byłoby TinyMVC, ale czy to nie jest zbyt banalne, czy warto iść w tym kierunku i czy to wogóle w czymś pomoże? Z drugiej strony pisanie swojego framework'a od podstaw to masa roboty i masa rzeczy na które trzeba zwrócić uwagę (obsługa błędów, prawa dostępu, AJAX...).
Jeszcze jedna ważna rzecz - CMS musi być lekki i maksymalnie przenośny tzn. najlepiej żeby do działania potrzebował jedynie PHP5 i bazy, ponieważ strony klientów są umieszczane na bardzo różnych serwerach.
Z góry dzięki za wszystkie rady
