CMS od podstaw 000: wstęp
Facebook

Tworzenie własnego systemu CMS od podstaw, czyli co, jak i dlaczego...

Jest teoria, która mówi, że każdy szanujący się programista powinien stworzyć własnego CMS'a. W sumie jest to dość słuszne stwierdzenie biorąc pod uwagę moją przygodę związaną z realizacją tego celu.

Przy pierwszym podejściu kilka lat temu miałem ambitny plan napisać coś, co będzie porównywalne do wiodących systemów. W pewnym sensie udało mi się to osiągnąć, jednak pierwsze testy pokazały, iż z systemu umie korzystać w sposób nie powodujący błędów tylko jedna osoba. Próba naprawienia tego skończyła się usunięciem wszystkich plików i notatek oraz odłożeniem projektu w czasie.

Kolejna próba około rok później była już bardziej owocna. Opcje były przemyślane, te które były potrzebne zostały, te które położyły poprzedni projekt pominąłem. Testy przebiegały w sumie dość optymistycznie. Jednak nadmierna optymalizacja oraz ciągła chęć zrobienia systemu idealnego skończyło się zawieszeniem dalszych prac.

Wszystkie zebrane doświadczenia poskutkowały tym, że zacząłem szukać kompromisów. Cel jaki mi przyświecał, to nie najlepiej, ale tak, aby spełniał moje wymogi. I tu tak naprawdę poświęciłem sporo uwagi, by określić czego potrzebuję i co jest z tych rzeczy niezbędne, by móc uruchomić pierwszą wersję. Chciałem CMS, a to nic innego, jak z definicji system zarządzania treścią, więc nie potrzebuję do pierwszej wersji możliwości zarządzania wyglądem, czy wszelkiego rodzaju modułami, które zawsze według potrzeby mogę dodać w późniejszym czasie i wtedy opracować do nich funkcje umożliwiające łatwe zarządzanie nimi. Dalej określiłem zastosowanie, co sprawiło nie mało problemów, gdyż pomysłów miałem sporo. Finalnie zdecydowałem, że zacznę od skryptu, który posłuży do obsługi tego bloga, a z czasem będę dodawał nowe opcje, które rozszerzą jego możliwości.

Podsumowując, tak prozaiczna czynność jak napisanie własnego CMS, jest o wiele bardziej złożone, niż wydaje się to na początku. W tym cyklu będę chciał przybliżyć mój sposób na opracowanie założeń, funkcji oraz podejścia do tworzenia kodu. Mam nadzieję, że będzie to ciekawa lektura oraz znajdę czas na systematyczne publikowanie kolejnych części.