wtorek, 4 listopada 2014

FineCMS - dodać edytor czy nie?

W trakcie pisania frameworka miałem poważne wątpliwości, czy powinien on umożliwiać edycję szablonów i arkuszy stylów strony wprost z panelu admina. Są to przecież kluczowe, a nawet krytyczne elementy strony, które w razie błędnej edycji mogą popsuć cały jej układ. Jednak z drugiej strony bezpośrednia edycja szablonu oraz arkusza stylu staje się tak potężnym narzędziem w rękach administratora, że aż żal byłoby z czegoś takiego rezygnować. Po dłuższym wahaniu zdecydowałem, że edytor szablonu i stylu musi się pojawić. W końcu dostęp do niego ma jedynie administrator, a jest on (przynajmniej powinien być) osobą świadomą tego, co robi. W efekcie w panelu admina widzimy dwie nowe ikonki: "Szablon" oraz "Styl".

Już po pierwszych testach dołączonego edytora stwierdzam, że dzięki nowym funkcjom elastyczność systemu ogromnie wzrosła. Dosłownie można się bawić w przebudowywanie układu i wyglądu. Tak więc była to doskonała decyzja, "jedyna słuszna koncepcja". :)

Strona projektu: FineCMS

czwartek, 16 października 2014

Nowy projekt - FineCMS

Tym razem napisałem od nowa frameworka MVC. Zupełnie inna architektura, całkowicie odmienione i poprawione front controller, dispatcher, router. Kod jest bardziej spójny, elegancki, łatwiejszy w zarządzaniu. Na tym frameworku postawiłem nowego CMS-a. Użyłem tu Twitter Bootstrapa do widoku oraz PDO do modelu. Poprawiłem też paginację list. Dzięki nowej architekturze udało się uprościć instalator aplikacji.

Początek był trudny. Zanim ukształtowała się obecna postać frameworka, wiele razy podchodziłem do stworzenia właściwej architektury. Gdy zaprojektowana struktura nie była do końca spójna, odbiegała choć w jednym miejscu od ustalonego standardu, albo było w niej coś, co mi się nie podobało, wtedy usuwałem dane rozwiązanie i wracałem do punktu wyjścia, próbując stworzyć rozwiązanie w inny sposób, dopóki nie powstało coś, do czego nie miałem zastrzeżeń, co było zgrabne i eleganckie. Takie podejście stosowałem wielokrotnie w trakcie całego projektu. Jednak najwięcej takich nieudanych prób było na początku, zanim nie wyłonił się ogólny schemat, którego trzeba było się potem trzymać. Wówczas kolejne rozwiązania przychodziły same, bo wynikały z istniejącej już architektury. Gdy framework stał się kompletny, można było osadzić na nim CMS-a. Tak też zrobiłem i w obecnej postaci CMS ma wszystkie podstawowe funkcjonalności. Jego rozbudowa o kolejne jest ułatwiona dzięki ustalonemu standardowi, którego wystarczy się trzymać - prowadzi on za rękę podczas tworzenia nowych funkcji.

Strona projektu: FineCMS. Zapraszam do obejrzenia.