Продолжается разработка CMS ;)

d1gi

Новичок
Продолжается разработка CMS ;)

Выложил небольшую доку с ссылкой на демку тут http://digi.org.ru/engine_wiki/ :)

Приветствуется конструктивная критика, замечания, предложения касательно всех аспектов движка, а самое главное приглашаются все желающие присоединиться к работе над движком ;)
 

pilot911

Новичок
лучше сюда запости основные преимущества движка, как ты их видишь
 

d1gi

Новичок
если коротко о самом главном, то:

- Интуитивно-понятная структура сайтов, созданных на движке (архитектура папок/контейнеров/модулей).
- Высокая скорость создания сайта, при использовании стандартных модулей.
- Высокая скорость вхождения как для разработчиков, так и для конечных пользователей сайтов на движке.
- Гибкая система прав на основе групповых политик.
- Мультиязычность, мультидоменность, мультисайтовость.
- Современные элементы управления, наподобии тех, что применяются в Юми, Битрикс и Неткат.
- Гибкое, многоуровневое кеширование.
- Полное разделение данных и представления. Применение различных шаблонных технологий (Smarty, XSLT, обычный php).
- PHP5.1+, MySQL5+, SEO дружественные URL-адреса, Встроенная помощь и подсказки, Модульность и расширяемость, Абстрактный слой для базы данных и т.д.
- Open Source.

Другими словами как и большинство самых распространённых движков ;) тут больше вопрос в архитектуре и легковесности, на уровне моего понимания заложенная архитектура вполне может обеспечить хорошее соотношение между гибкостью/расширяемостью/скоростью разработки/удобству конечному пользователю.
 

pilot911

Новичок
такая мега-вещь :)

хотелось бы увидеть демо админки, в которой подобная красота крутится
 

d1gi

Новичок
Да вроде нормально :) не не такая уж и мега, если учесть, что я пока всё кодил один и еще часть описанного только в задуманном состоянии находится... На самом деле потому и обращаюсь снова к сообществу, чтобы найти единомышленников ;) скучновато как то в одиночку кодить, да и просто пообсуждать моменты в проектировании ;)

И еще раз хочу подчеркнуть, что основная фишка движка, это его архитектура с виртуальными папками, контейнерами и модулями, которую уже сейчас можно изучить посмотрев код и базу. Надеюсь кому-нить понравится задумка ;) а реализацию уже отполируем ;)))
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: d1gi
если коротко о самом главном, то:

- Бла-бла-бла
Если коротко о самом главном, то: скачал, в распакованном виде 5,57 Мб, из которых 5,35 Мб занимает директория scripts: в ей покладены fckeditor, tinymce, jquery, prototype и прочие эксклюзивные разработки. В остальных каталогах --- куча файлов длины 0, судя по названиям --- будут изобретаться велосипеды для разбиения вывода на страницы, записи журнала и т.п.

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

Тестов никаких естественно нет.

Выводы оставлю в качестве упражнения для читателей.
 

Духовность™

Продвинутый новичок
Абсолютно интуитивно непонятная структура каталогов.
Почти нет PHP кода - она хоть рабочая?? Где код то?
Нет расслоения системы, по меньшей мере я не увидел.
Классы используются исключительно как ООП ради ООП. Метод из 400 строк кода: http://phpclub.ru/paste/index.php?show=2362
 

d1gi

Новичок
санитары и старожилы раскритиковали :) это хорошо ;)

двиган не есть какой либо релиз, даже нумеровать версии не пытаюсь, по этому есть много костыльных решений, и в части каталогов (!Core и !Lib) просто пусто, которые еще не определены нужны ли вообще не говоря уже о правильном применении.

велосипедов можно и не изобретать, если подпилить напильником чейто другой велик ;) всё впереди, будем искать подходящие велики :)

на данный момент структура каталогов выглядит следующим образом:
includes - файлы ядра
include/Components - компоненты
include/Modules - модули
scripts - сторонние скрипты
tpl - шаблончики

вся админка (и приведенный пример с классом AdminCP) это в чистом виде костыль, она вся будет переделываться в корне, сейчас в большей степени сделана, как инструмент для упражнения над движком ;)

скажите какие надо предоставить тесты? и каким должно быть расслоение системы?
 

AmdY

Пью пиво
Команда форума
а если в нём включить нотисы?
если не можешь сделать лучше существующих аналогов, зачем браться и продвигать. Преимущества предполагает то, чего нету у других, а не стандартный набор. хотя если ровняться на "Юми, Битрикс и Неткат" :( ...... такое чувство, что некоторые живут на другой планете или всё же это я.
 

d1gi

Новичок
по умолчанию стоит error_reporting(E_ALL | E_STRICT); всё тихо :)

сложно так вот однозначно сказать, на счет "того, чего нет у других"... вот например у автомобилей 4 колеса и один руль, и как бы отойти от такой парадигмы неразумно, а вот двигатель другой сделать, вполне реально :) только надо учитывать доступность топлива, если хочется отойти от бензы/газа/соляры и даже всеми нами любимые велосипеды, уже ой как давно существуют с 2-мя колёсами и переключателями цепи на несколько звёздочек, но тем не менее, создают новые амортизационные вилки и карбоновые рамы... везде идёт развитие.

большинство проектов содержат вполне определённый функционал, а вот когда дело доходит до всяких тонкостей, например просто мультиязычность сделать, приходится либо менять инструментарий (cms, cmf) либо доставать бубен и напильник... или обучить секретаршу наполнению сайта в джумле или друпале... в общем много тонкостей...

сейчас есть задумка сделать интерфейс админки на ExtJS, кстати будет чем-то похожа на админку SantaFox, в смысле по идеологии ;)

скажите, что для вас является "чем-то новым", в плане потребностей инструментария для веб-студии или фрилансера? может быть пока не поздно можно вкрутить эти идеи в мой движок ;)

любая критика только приветствуется, так что жду ваших предложений и ответов на уже заданные вопросы :)
 

Dreammaker

***=Ф=***
d1gi
из предложений переписать код. Чтобы он был нормально воспринимаем, это ж не для себя разработка. :)
 

d1gi

Новичок
вполне согласен :) можете порекомендовать что именно и как именно лучше переписать? чтобы для сообщества было удобнее :)
 

Alexandre

PHPПенсионер
Если коротко о самом главном, то: скачал, в распакованном виде 5,57 Мб, из которых 5,35 Мб занимает директория scripts: в ей покладены fckeditor, tinymce, jquery, prototype и прочие эксклюзивные разработки. В остальных каталогах --- куча файлов длины 0, судя по названиям --- будут изобретаться велосипеды для разбиения вывода на страницы, записи журнала и т.п.
а зачем использовать два JS фреймворка одновременно

даже качать расхотелось
 

d1gi

Новичок
JS фреймворки сейчас не используются...
из всего набора скриптов юзается только tinymce

сейчас перезалью дистриб, чтобы никого ничего лишнего не смущало ;)
вот http://digi.org.ru/files/jenginecms-2009-10-25.zip без лишних файлов, папок и библиотек.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Alexandre
а зачем использовать два JS фреймворка одновременно
Вот, Alexandre, примерно это я и имел в виду, когда писал "Выводы оставлю в качестве упражнения для читателей." :D

А уважаемый d1gi так и не рассказал нам, зачем таки нужен "абстрактный слой для базы данных", абстрагирующий mysql и mysqli?..
 

Dreammaker

***=Ф=***
d1gi
для меня лично разделение при MVC радует глаз, а не каша из SQL и HTML чуть ли не в перемешку.
 

d1gi

Новичок
обёртка БД сейчас очень маленькая и поверхностная, сам работаю только с мускулом, но сделал пока так, чтобы на будущее можно было перепинать драйверок и под другие БД, как минимум на постгрю... в принципе, чтобы народ не смущало, могу подготовить драйверок к постгре, протестить и выложить уже новый релизик с возможностью работы на pgsql :)

кстати только в mysqli удалось добиться адекватной работы хранимок, но пока ставку на хранимки не делал, так только имею ввиду, что потом будет куда стремиться ;)

Sad Spirit
искренне извиняюсь, что представил сообществу исходик с кучей хлама :( которое конечно же мешает адекватно познакомиться с проектом... как писал в предыдущем посте, эта ошибка исправлена и исходник без мусора доступен тут: http://digi.org.ru/files/jenginecms-2009-10-25.zip

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

Духовность™

Продвинутый новичок
но сделал пока так, чтобы на будущее можно было перепинать драйверок и под другие БД
да никто и никогда эти "другие БД" юзать не будет. Это вообще надуманная задача - писать кучу драйверов под базы, которые кроме самой MySql никогда не будут задействованы.


d1gi
Если твой код работает - хорошо. Но преподносить его как опенсорс - рано. Уровень кодинга там на уровне начинающего. Таких проектов ТЫСЯЧИ только в рунете, у любого программиста есть такая "CMS".

Перестань заниматься пиаром никому не нужной системы, которая ещё 200 раз будет тобой переписана.
 

d1gi

Новичок
Dreammaker
да, сейчас пока можно встретить в классах модулей хтмл теги, например вывод сообщения об ошибке в парсере URI, также в методе run() модуля Texter, при условии если юзер обладает правами на запись, то ему отдаётся ссылка с возможностью редактирования "ноды", также при выводе отадочной инфы тоже всё напрямую эхается из ядра %)

и всё... конечно это косяки и будут убраны при следующем же релизе :)

а в файлах шаблонов (*.tpl) которые и предназначены для хтмля, там никаких sql нету :) они просто берут данные из уже подготовленного массива и генерят хтмл.

по поводу модели MVC, у меня в движке можно сделать разделение примерно так: котроллер - это метод parser(), модель - это видимо метод buildModulesData(), ну а представление конечно же showTemplate(), может быть стоит их переименовать или в разные файлы/папки разложить, для большей похожести на паттерн MVC? ;)

-~{}~ 25.10.09 04:48:

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

например как написать код, чтобы другие разработчики могли достаточно быстро его понять :)
 
Сверху