пятница, 11 августа 2017 г.

Изменения в ExampleCMS от 3 августа 2017

Последние изменения в ExampleCMS связаны с переосмысление мной Query Object, точнее решение проблемных мест.

Основной проблемой Query Object, было отсутствие единого интерфейса для все Query Object. В последних коммитах была решена эта проблема.

У Query Object остался только один метод execute, который может принимать на вход любой объект с интерфейсом DTO, а на выход выдавать объект реализующий интерфейс ResultSet.

Жмяки на ссылку, что бы перейти к коммиту.

Возраждаю проект SetCMS

Вкратце


Я решил возобновить разработку SetCMS, которая не дорабатывалась с 2011 года (если судить всем активным сайтам). Это будет не просто взятие проекта на поддержку, это будет новая версия, версия SetCMS 4.

Из основных фишек, которые я хочу внедрить в этот проект:

  1. Хранение данных в sqlite, вместо кучи файлов. 
  2. Конвертирование кодовой базы в utf8, форматирование кода под стандарт PSR-2;
  3. Исправление проблем с безопасностью, в старом коде;
  4. Новая архитектура с использование ООП;
  5. Максимальная обратная совместимость со старым кодом (для модулей, блоков и шаблонов)
Опционально:
  1. Покрыть код тестами



Как все начиналось


В 2008 году я был молод и зелен. Вообще в то время  и не думал, что стану PHP-программистом. Что там скрывать, вообще ничего не знал не про PHP, не про разработку сайтов. Кратка ситуация была такова. Только поступил в колледж и из программирования у нас были только лабораторные работы по С и Pascal. А вечерами в общежитии я писал на Visual Basic бесполезные приложения.

В какой-то момент один из соседей по комнате предложил мне посмотреть аниме "Код гиас", это стало можно сказать отправной точкой для всего, что я имею сейчас. После просмотра этого сериала, я заинтересовался "аниме", а в последствии и японским развлекательным контентом в целом.

На момент 2008-2009 года меня уже интересовала японская музыка. Я не только любил её слушать, но и хотел создать каталог где бы можно было найти исполнителя и просмотреть его клипы или послушать треки. Что бы реализовать этот функционал мне пришлось познакомиться с Small HTTP Server, а в последствии с самим PHP.

Первый каталог с медиа-контентом, который пришлось реализовать, был на инклюдах с кучей копипасты из интернета, без четкого осознания того, что делается в копируемом коде. Это продолжалось какое-то время, навыки потихонечку росли. Вскоре научился хранить информацию в файлах и вообще работать с данными от пользователя. Медиа-каталог с японской музыкой так и не получилось создать, в нём уже не было смысла и мне это стало не интересно.

В итоге мое внимание переключилось на идею создания новостного сайта про аниме. Так как денег на хостинг не было, решено было использовать бесплатный, это давало свои ограничение, на таких хостингах отсутствовала БД. Писать скрипт новостного портала не стал, начал искать простую портальную систему на файлах. Немного поискав, нашел SetCMS.

Почему SetCMS и зачем?


О SetCMS у меня остались очень светлые воспоминания. Это довольно простая система с точки зрения архитектурных концепций, но при этом кодовая база весьма не плохого качества, по сравнению с её одногодками.

Я хочу возродить этот проект по нескольким причинам.

  1. Это весьма самобытная система, не являющаяся клоном другой популярной системы. Хочется, что бы такой интересный проект продолжал существовать.
  2. Провести эксперимент, возможно ли эмулировать старый код, не изменив не одной строчки в нём.
  3. Хочется довести до видимых результатов хотя бы какой-то из своих проектов.