JLayer

1.41K
.
Зашел сюда снова и забыл зачем. Еле вспомнил.
Так вот, те, кто видел мой модуль конференций изнутри догадываются о чём это я уже из названия темы.

JLayer - это своего рода прослойка для JohnCMS, которая позволяет писать модули в, привычном для меня, да и для других "не-спагетти-кодеров", виде.
Зачем эта тема? Да хрен его знает. Просто решил поделиться мыслями на этот счёт.

Теперь это не просто блог для того, что бы просто по бросаться пустыми словами.
На данный момент работа активно ведется. Зачем я всё это делаю? Just4Fun.
Какие профиты? Ну тут уже даже незнаю. Для кодеров профиты очевидны. Это впервую очередь MVC ну и всякие плюшки в виде плагинов и прочего. Для юзеров вроде как пользы и нет. Хотя им вообще должно быть без разницы.

У меня есть пока только один вопрос, стоит ли делать поддержку старых версий JohnCMS? Я сам не горю желанием, но такая возможность есть.
Вообще в теории можно осуществить поддержку и сторонних движков, но это только в теории.
Выглядеть всё это будет следующим образом:
Сам модуль будет зависеть только от JLayer и к движку никакого отношения не имеет.
В JLayer создается конфиг и обёртка для функций движка, которая наследуется от абстрактного класса \jl\Functions

Всё, что нужно для добавления поддержки какой-либо версии, так это создать конфиг и класс функций. Суть ясна я думаю.
.
Далее я поделюсь мыслями насчет плагинов.
Планируется запилить следующие плагины:
Pagination - своего рода аналог функции display_pagination() в двиге. Сам по себе уже готов, осталось только прикрутить к загрузчику.
Upload - примитивный чекер и загрузчик файлов.
Image - примитивная обработка изображений. Загрузка, конвертация, создание превью.
Предыдущие два плагина нужно как-то объединить наверное или не стоит. Еще незнаю.
Comments - комментарии. Аналог стандартного класса комментов двига, но уже более навороченный и независимый.
BBcode - обработка бб-кодов; Часть функционала будет использовать стандартный класс, часть будет написана заново, для того чтобы учесть недочеты стандартного класса. А именно - панель, в сам обработчик добавить вырезку не обработанных бб-кодов.
.
Модели.
Модели наследуются от \jl\Model
который будет иметь несколько базовых методов:
метод, получающий объект,
удаляющий объект,
получающий список объектов,
сохраняющий объект.
Эти методы не будут обязательными для вашей модели.
Они будут лишь реализовывать базовый функционал.

Что касается обработчика запросов, его можно будет в будущем изменить.
Я предусмотрел возможность перехода johncms на mysqli.
На данный момент используется быдлокодерская самописная обёртка MySQL функций. После того, как переход совершится, будет добавлена быдлокодерская обертка для MySQLi Гг. Но там уже всё поцевильнее будет.
.
И самая главная фишка, которую я планирую написать - это генератор кода.
Нет, он не будет за вас всё делать, а лишь позволит сократить кучу времени, затрачиваемого на написание одних и тех же операций.
Тут мой мозг уже отказывается работать пока что. Но примерно это будет выглядеть следующим образом:
Создается конфиг, который скармливается генератору.
Конфиг представляет собой обычный php массив.
В нем мы указываем имя объекта, который нужно будет создать.
Поля объекта, их тип и длина, если есть. Вобщем поля полностью будут соответствовать типам данных MySQL.
Набор действий над объектом:
form - Создание и обновление объекта.
view - просмотр объекта.
list - просмотр списка объектов.
remove - удаление объекта.
Для каждого действия можно задать уровень доступа, как это делается в двиге от 0 до 9.
Все эти действия не являются обязательными, какое-либо можно будет опустить.
Нужно также будет продумать наследование объектов.
Далее генератор уже сам разбирает конфиг и создает соответствующие модели, контроллеры, представления, можно даже запилить генерацию PHP-Doc комментов, хотя IDE с этим отлично справляется сама.
Ну вот, как-то так.
.
UA95, Нет скорее это обёртка, потому и Layer, от английского - слой. Хоть там и имеются свои плагины и навороты.
.
интересно. пошел запасаться попкорном
.
Tadochi, На неделю минимум запасаться придется.
.
А вот это уже интересно, очень интересно, поддержка старых версий не нужна, имхо, MVC - это очень хорошо, ибо подстраиваться под дизайн джона иногда так сложно... Пиши, и не забывай делиться...
.
(\/)____o_O____(\/)
смотрел, но до конца неосилил
.
Конешно это будет супер, но судя с этого это уже будет целое ядро, только на джоне
Всего: 75