Сегодня продолжил работу над php движком, которым я в будущем для себя лично хочу заменить wordpress, возможно кто-то тоже решит это сделать для себя, после того как все будет иметь более менее рабочий вид )

А началось все с того, что я сел думать над реализацией прав и ролей, нарисовав в тетради несколько таблиц и поразмышляв о структуре, которая скорее всего уже известна всем ), решил, что нужно реализовать визуальное отображение и проектирование структуры БД, это сэкономит время на разработку и может здорово пригодится при документировании кода, т.к. все таки будет все наглядно кроме всего прочего.

Благо у меня уже есть некоторые наработки в этом деле - Визуализация базы данных. Осталось только все это дело привернуть и оформить в виде плагина.

Для работы и отрисовки таблиц требуются картинки, js и css. А из веба плагины не доступны. Немного подумав, решил, что плагины могут содержать js, css, картинки и переместил в папку с вебом, в конце концов во всех движка все так устроено.

Т.к. это модуль и требуется подключить "сторонние" js и css, то появилась потребность в "загрузчике" (до этого просто не было плагинов и все было в коде шаблона). В любом случае "загрузчик" рано или поздно понадобится хотя бы в виде плагина, если не как часть приложения. Т.к. при больших масштабах централизация сэкономит много времени и сил на изменение и отладку кода.

Далее была еще какая-то мысль... и в конце оказалось, что вовсе не плохо бы было написать Менеджер плагинов и модулей, чтобы можнобыло прямо из админки в визуальном режиме влиять на работу приложения посредством манипуляции плагинами и модулями.

Менеджер плагинов и модулей смог бы решать еще проблему загрузки модулей. Т.к. сейчас они грузятся все по некоторым соображениям. Хоть загруженный модуль и занимает всего 1-2 кб памяти и не загружает всю логику до того момента, пока вызов логикуи действительно необходим, но все же... хлебом не корми -дай покрутить настройки и что-то настроить прямо из админки ). В любом случае приложение от этого тяжелее не становится почти и в любой момент можно будет отказаться от этого модуля, просто отключив его.

Для реализации Менеджера модулей и плагинов решил пересмотреть формат для хранения мета информации о плагине или модуле. Теперь мета информация будет храниться в папке с расширением в фале meta.ini. В нем будет вся информация для иницилизации модуля или плагина, что вполне логично на мой вгляд. В будущем все это дело можно будет усложнить и расширить, если это потребуется.

В целом за 2-3 часа придумал сам себе новые задачи для реализации. А начиналось все с проектирования системы ролей и прав...

Прочтите также: