Мой проект Dakota CMS дорос уже до версии 0.4, так что я осмелился пригласить вас к его использованию и обсуждению. Основа: CodeIgniter - легкий фреймворк. Это отличает Dakota CMS от большинства CMS, которые требуют значительно больше ресурсов. Одна из ведущих современных ORM - Doctrine позволяет работать с данными в базе как с реально существующими обьектами и загружать данные из YAML файлов, что и реализовано при установке Dakota CMS. Для каких целей подходит Dakota CMS? * Презентационный сайт компании * Личный блог * Сообщество с форумом и загрузками Текущая версия: * Регистрация пользователей (уровень Юзер и Модератор) * Подтверждение регистрации по email * Запрет регистрации на сайте * Временная деактивация аккаунта (бан) * Лента новостей с комментариями и RSS * HTML редактор страниц * 3 шаблона как основа для дизайна * Форум * Фотогалерея с автоматическим слайд-шоу * Файловое хранилище с авторубрикатором * Публикация видео с популярных хостингов в один клик * Использование Vkontakte, Twitter, Facebook API * Быстрый инструмент работы с БД - SQL Buddy * Собственная статистика - AudiStat * i18n (русский и английский интерфейс в поставке, кол-во доп. языков неограничено) Новая версия Dakota CMS доступна в демо-панели и для скачивания Демо (рус.) http://demo.dakota-cms.com/ Demo (eng) http://demo.dakota-cms.com/en/ Основное нововведение — i18n. Теперь проект живет а англ. и русской версии, и количество возможных локализаций неограничено Весь changelog — http://dakota-cms.com/changelog.txt Скачать Dakota CMS 0.4 http://dakota-cms.com/
Прошу воздержаться от холиворов и вопросов типа "Чем Дакота лучше Joomla или Битрикс?" Конечно, ничем. Пара сотен человеко-часов, потраченные на нее, не идут в сравнение с разработкой больших систем. Просто мне это было интересно и, кажется неплохо и быстро получилось. Конкретные вопросы и пожелания приветствуются
lev savranskiy Очень надеюсь, что ВСЕМ... хуже этих двух уродств быть просто невозможно... Сейчас качаю вашу систему (5.7 Мб в архиве - не радует, если честно... сколько ж там файлов? 10 тыщ? какой же это "легкий фреймворк"?), что-либо конкретное сказать по поводу разработки смогу не раньше, чем установлю у себя и потестирую...
Это зря так про Joomla. Сначала конечно кажется что монструозное УГ. но потом, освоившись и проникнувшись етой системой, написанием нескольких компонентов под нее - понимаешь что это одна из вполне годных бесплатных CMS. по сабжу - странный выбор кодигнайтер который задумывался для php4 и doctrine ORM, которой нужна php5
pohapecoder Я тебе могу сказать абсолютно уверенно - Joomla - ебанутая срань. Мне в наследство достались проекты от бывшего прогера... Я пишу и плачу, плачу и пишу.... Про структуру админки я вообще говорить не буду, меня трясет уже от её глюков и багов. Справедливости ради замечу, что маны и описание API хорошее. С другой стороны, у cakePHP тоже ничего так. Ну, про битрикс, я думаю, мы упоминать вообще не будем. Не знаю, что можно найти хуже него. По теме: Что за зверь такой codeIgniter? Стоит его смотреть, или он уже безнадежно устарел?
А я тбе скажу по своему опыту - что Joomla 1.5 от Joomla 1.0 сильно отличается. Joomla 1.5 - можно назвать неплохим mvc фреймворком даже. Другое дело что не совсем удачно сделано. Используются немного устаревшие способы - видимо это для совместимости с php4. В админке и ядре ниразу не встречал глюков и багов, если делать по стандартам и читать ихние доки. Возможно просто сторонние компоненты и модули - м.б. херовые но само ядро более мене нормальное. Это с учетом того что есть много готовых расширений под нее. Конечно если б это был голый фреймворк как CI, его бы никто и не использовал
cms это конечно хорошо. но считай, ты пишешь её для себя, поэтому может стоит лучше писать её с ноля? мне кажется так от ней будет больше толку, хотя всё зависит от стоящей задачи.
Ну если свежесть когда - главное свойство фреймворка для вас - то не стоит смотреть. Если цель же - зарабатывание денег, то стоит посмотреть. Простые сайты возможно быстро клепать на нем.
pohapecoder Это называется "привычка". ЦМСка остается монструозным УГ, но ты, "освоившись и проникнувшись", этого уже не замечаешь.
Обещанный отзыв по Дакоте, скорее всего, будет коротким. Ребят, вы меня знаете, я обычно не ругаю самостоятельные разработки, наоборот, они мне нравятся за идеи, за творчество, и я стараюсь говорить об этом. Но эта система мне не понравилась Во-первых, жуткий франкенштейн. CodeIgniter - это и впрямь очень легкая и гибкая система, пусть функций у нее маловато, но она хоть работает быстро. А Доктрина - это ORM-классомонстр. Какой смысл их соединять вместе в одной цмске, не понимаю... получилась та самая помесь гуся с носорогом. Во-вторых, система тормозит так, что только за смертью ее посылать, а функционала особенного я и не заметил. Как получилось, что в архиве 1600+ файлов, а система умеет, по сути, только поддерживать табличку пользователей, да и то по минимуму? Всякие виджеты и реклама вконтакта не в счет - это скопированные джаваскрипты, которые запускаются у клиента, к серверным технологиям и таким понятиям, как CMF/CMS, это не имеет отношения. Прошу автора не обижаться на мои слова, видимо все позитивные стороны этой разработки как-то прошли мимо моих глаз (хотя изучил вроде на совесть). Ну а если по мелочам, то: - Хорошо, что система идет вместе с доками к CI и к Дакоте (русские доки неплохие, кстати). - Для такого небольшого количества реализованных функций объем исходников убивает. - Плохо, что автор требует от всех сайтов ставить ссылки на себя. Никто не станет пользоваться на таких условиях. - Непонятно, зачем требовать от пользователя обязательную поддержку InnoDB таблиц, если у вас все равно AR и ORM, да и никаких связей между таблицами я в коде не обнаружил. - Фраза про "сообщество", потыренная с документации по CI, с заменой чужого форума своим, жутко покоробила - Разберитесь с лицензиями. В одном месте написано GPL, в другом BSD. Вместо GPL советую LGPL. Как мне кажется, идея создавать ЦМСку на основе двух чужих разработок, не самая лучшая. Выше сказали умную вещь: если система пишется для себя (а я не верю, что такой уже пользуется много человек, да еще для "зарабатывания денег"), лучше уж написать ее самостоятельно. От начала и до конца. И система получится лучше на порядок, и собственный уровень поднимется.
Спасибо, Dagdamor Наконецто внятный обзор без джумлы. про кол-фо файлов - их менее 1500 application -492 файла (дакота + Doctrine) system -159 файлов (это CI) не думаю что это много возможно при самом первом запуске ORM тормозить, кэширует что то ил и еще как. у меня все летате и локально и в веб http://demo.dakota-cms.com/login/ по сути ORM - в CI нет своей ORM НО увидев как CI бегает с Doctrine я был очрован и к INSERT WHERE более не вернусь. насчет носорога - да, но я же не делаю соц. есть на млн юзеров онлайн. зато любая модель создается за 5 минут, включая валидацию данных. подскажите другой вариант ORM, более шустрый по тестам. сделаю новую дакоту на нем. а говорить что CI устарел -вообще дичь. вы что - исчерпали все его возможности? какая мне разница, что он в версии 1.7 или 9.99 там есть все что нужно а в новой 2.0 и не будет поддержки пхп 4. и с удовольствием сделаю дакоту на нем. всем спасибо
Если речь идет про codeigniter, то EAP уже давно доступна http://bitbucket.org/ellislab/codeigniter/downloads на даынный момент чего то все выдает 404, но это временно Гыгыгы
lev savranskiy Кто заставляет вас писать полный текст SQL-запроса каждый раз снова и снова? Да, мне тоже не нравится писать одно и тоже много раз. Поэтому я написал свой собственный интерфейс для удобной работы с БД. И нет необходимости откатываться к низкому уровню SQL, но также и нет необходимости использовать кошмарные надстройки типа Доктрины. А толку от такой модели? Модель - это всего лишь набор полей, обернутый в класс. Это вещь в себе, сама собой она управлять не способна. Все равно надо писать пользовательский интерфейс, который будет этой моделью манипулировать. А это за пять минут уже не делается. Да нет таких. Все ORM - уродливые тормозные классомонстры. Просто потому, что они по самой природе своей вынуждены производить кучу никому не нужных действий. Вот пример графоманства на Доктрине: PHP: <?php $articles = Doctrine_Query::create() ->select('*') ->from('Article') ->limit($limit) ->offset($offset) ->execute(); Вот объясните мне, чем это проще и понятнее честного SELECT * FROM article LIMIT ... OFFSET ...? Чтобы отработать под Доктриной такую "изящную" команду из шести строчек, нужно выполнить огромное количество действий - ради интереса проследите сами, сколько раз ORM будет переливать из пустого в порожнее и сколько вспомогательных классов при этом насоздает. Конечно, оно будет тормозить! Самое дурацкое в том, что такой подход не только плодит графоманство и тормозит приложение, но еще и ничуть не упрощает процесс конструирования запроса и не делает его ни на грамм независимее от SQL - ведь все равно приходится писать все те же команды SELECT, FROM, LIMIT и так далее - посмотрите сами. Только в случае ORM все это делается через задницу, а не как было задумано в SQL изначально. Если вам так не нравится "голый" SQL - напишите свою собственную обертку над SQL, только не делайте ее так, как это сделано во всех ORM - кучей глупых методов-оберток над каждым SQL keyword - а продумайте хорошо ее интерфейс, оттолкнитесь от своих собственных потребностей, и напишите так, как будто никакого SQL нет вовсе. К примеру, та же самая выборка в моем PHPC выглядит так: PHP: <?php $articles=$database->getLinesRange("article",$offset,$limit); И все. Намного проще, достаточный уровень независимости от SQL и от СУБД достигнут, и летает все со скоростью света, потому что нет необходимости плодить мильен классов на простейшую операцию. ORM плох еще и тем, что скрывает от вас детали реализации. Это обычно преподносят как плюс, но на самом деле это большой недостаток, ибо красивые, на первый взгляд, ORM-конструкции, при пристальном внимании оказываются жутко неэффективными, и такие грабли могут вылезти в любом месте приложения, от них невозможно застраховаться. Вот еще один пример из вашей CMS: PHP: <?php $u = Doctrine::getTable('Note')->findAll(); $u->delete(); Это очистка "записной книжки" в админке. Задача примитивна, требуется полностью очистить таблицу "note", и ORM-запись выглядит "красиво" (на любителя впрочем, для меня она по-прежнему уродлива), но что же конкретно она делает? А делает она следующее: выбирает все записи из таблицы, после чего для каждой записи выполняет свой индивидуальный DELETE по первичному ключу. Если в таблице 1000 записей - будет выполнен 1001 SQL-запрос. Это ли не геморрой? И когда люди пользуются ORM, такие вещи вылезают регулярно, даже если есть опыт. Единственный способ застраховать себя от таких ляпов - это не пользоваться ORM вообще.
Koc, вы как в детском саду, в самом деле. Хоть бы дочитали мессагу до конца, в последнем абзаце русским по белому объясняется, какой это "байтдроч". Или уж не отвечали бы вообще, если не осилили, в конце концов, не для вас писано, а для автора...
до последнего абзаца не дочитал тогда. Сейчас дочитал. Что мешает использовать DQL? http://www.doctrine-project.org/project ... te-queries то, что кто-то неправильно использует орм еще не значит, что все орм гавно. Точно также можно и про пых говорить: похапэ гавно, так как много говнокода на нем писано.
Koc Мешает здравый смысл? Зачем мне этот доморощенный "DQL", если есть SQL? Имхо - костыль в чистом виде, лишь подчеркивающий уродливость данной ORM.
CodeIgniter + Doctrine = Yii судя по всему. Yii framework(да да, жуткий пиар yii на php.ru) имеет очень гут AR + быстрый как CI(на хабре был перевод статьи о сравнении frameworkов). хотя, честно, я CMS эту не смотрел вообще.