Ноя 4

Идея создать свою CMS

Рубрики: Новости  Количество просмотров: 1,691

Последнее 2 месяца плотно изучал разные CMS, т.к. все еще колебался. Требования были такие: регистрация юзеров, древовидные комментарии с функционалом, уровня Хабра, интернет-магазин с хорошим функционалом, форум, возможность связи всего со всем по ссылками (теги, товары, категории и т.п.) и пришел к выводу, что готового решения, которое устроит меня - нет. Где-то закрыт код зендом и посмотреть насколько хорошо написана CMS - нет возможности, что-то стоит дорого и “весит” много. В общем везде есть минусы.

Я уже давно работаю с фреймворком CodeIgniter, и пришел к выводу, что создавать сайты/сервисы и т.д. удобнее всего с помощью паттерна проектирования MVC (Model-View-Controller), особенно в том виде, в котором он представлен в CI. И все новые проекты собираюсь делать именно на CI.

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

  1. Reg - функции регистрации юзера, восстановления пароля, изменения профиля
  2. Auth - вход, выход, проверка залогинености
  3. PageWrite - создание поста, изменение поста
  4. PageView - вывод поста/постов

Общая концепция такая - пишущие в базу классы будут отделены от тех что считывают из нее. Будет ли своя админка у CMS - пока не знаю, скорее всего систему буду сразу проектировать так, чтобы все управлялось ч-з XMLRPC с удаленной админки, так чтобы я мог в нее приглашать копирайтеров, переводчиков, чтобы все свои сайты я видел как на ладони.

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

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

p.s. Первый сайт на этой системе будет thegunners.ru

———
дорогие телефоны
декоративные заборы
итальянские радиаторы

1 звезда2 звезд3 звезд4 звезд5 звезд (3 голосов, средний: 2.67 из 5)
Загрузка ... Загрузка ...
Другие статьи автора

Комментарии

  1. Цитировать Павел

    почему не друпал?

  2. Цитировать wlad2

    сделай обезательно вот что!
    1. урлы ЧПУ кириллица.
    2. все было на ajax
    3. встроенный плагин перелинковки!
    4. тэги, метки всмысле..

    и выложи по возможности скачать.

  3. Цитировать Samborsky

    почему не друпал?

    потому же, почему не джумла

    сделай обезательно вот что!
    1. урлы ЧПУ кириллица.
    2. все было на ajax
    3. встроенный плагин перелинковки!
    4. тэги, метки всмысле..

    и выложи по возможности скачать.

    Ты не понял. Я не буду делать очередной Wordpress. Я сделаю ядро, чтобы от него уже можно было плясать в сторону блога, магазина, форума и т.д. Проще сказать - это будет набор библиотек для CodeIgniter.

  4. Цитировать Алексей

    вау! какая оригинальная идея!

  5. Цитировать Samborsky

    вау! какая оригинальная идея!

    Главное - реализация, которая будет на высоком уровне.
    Мне нужно подобное ядро, я ж не простенькие сайты-визитки клепаю, типа как у тебя в портфолио

  6. Цитировать plandem

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

    тебе, как стороннику CI, рекомендовал бы глянуть на Kohana. CI - хорош, но тянет много старого, что было заложено очень давно и уже не нужно.

  7. Цитировать Миха

    Евгений, вы же говорили, что определились с CMS и выбрали MaxSite!? Или вы передумали уже его использовать?

  8. Цитировать msi

    Я вот тоже надумал сделать, что-то подобное, только на ASP.NET MVC. Кстати у Майкрософта можно позаимствовать много хороших идей. Мне понравился, например, подход разграничения пользователей через MembershipProvider.

  9. Цитировать kfloks

    Взгляни на SilverStripe CMS и их фреймворк.

  10. Цитировать Sk8er

    А опишешь двиг? В смысле небольшой мануал будет?
    А так ждём, уверен хороший двиг (ядро) получится

  11. Цитировать Samborsky

    plandem, спасибо за наводку, посмотрю. Пока мой опыт работы с фреймворками ограничивается CI и Zend.

  12. Цитировать Samborsky

    А опишешь двиг? В смысле небольшой мануал будет?

    думаю да, только вот plandem меня озадачил, думаю действительно надо посмотреть сперва новые для меня фреймворки, хотя судя по мануалу Kohana это бывший CI который поехал по другой дороге…

  13. Цитировать tavodi

    хм. идея очень напоминает MaxCMS - http://max-3000.com
    может, лучше будет написать плагины под эту cms чем писать новую с “0″?

  14. Цитировать Миха

    Ответь пожалуйста на мой коммент выше))

  15. Цитировать Samborsky

    Миха

    Евгений, вы же говорили, что определились с CMS и выбрали MaxSite!? Или вы передумали уже его использовать?

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

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

    tavodi
    может, лучше будет написать плагины под эту cms чем писать новую с “0″?

    Я писал для MaxSite помоему 5 плагинов. Хоть и не в тему - я по другому стал относится к плагинам CMS, в том подключаемом хуками виде они меня не устраивают.

  16. Цитировать benya

    Также для себя не могу подобрать цмс которая хотя бы на +80 подходила под мои требования, везде есть свои минусы.. Может кто-то подскажет зарубежные ресурсы наподобие cmsmagazine.ru?

  17. Цитировать benya

    Евгений, хотелось бы узнать ваше мнение о ExpressionEngine (expressionengine.com) цмс от Ellislab на СI

  18. Цитировать Alexander

    2kfloks

    Как я понимаю у нас это малоизвестная cms…
    А есть ли примеры русскоязычных сайтов, построенных на этой cms ?

  19. Цитировать Samborsky

    Евгений, хотелось бы узнать ваше мнение о ExpressionEngine (expressionengine.com) цмс от Ellislab на СI

    Не работал с ней

  20. Цитировать tavodi

    Евгений, задумка, конечно, неплоха. Действительно, сейчас трудно найти CMS которая бы тебя устраивала полностью. Я (не программист) сейчас работаю больше с Jooml-ой (большая база расширений и русскоязычное сообщество) и MaxСMS (легкая и быстрая) и верю, что ты можешь сделать неплохую CMS под свои задачи, но у тебя буквально 2 выхода:
    1. поддерживать ее самому, те она живет до тех пор пока ты не начинаешь понимать, что ты этим заниматься не хочешь (2-4 года по моей статистике) или пока не возникает задач, при которых ты понимаешь, что тебе легче переделать другой код, чем писать свой (пусть и лучше, но на порядок а то и два дольше)
    2. оттдавать под GNU. но для того, чтобы ею занимались другие программисты (писали доп модуля, развивали движок и т.д.) должна быть оперативная поддержка и документация для программистов (описание функций, классов, примеры возможностей…) и документация для енд-юзера.

  21. Цитировать Samborsky

    Открою немного занавес.
    У меня в планах создать свою студию, которая будет заниматься сложными проектами (моими личными и клиентскими). От моего ядра она будет всегда отталкиваться, а каждым моим (клиентским) проектом будет заниматься отдельная команда.

    Вот скажите можно ли сделать на джумле football.ua - конечно можно, но какой ценой? Такие сайты имхо проще писать с нуля, ну или почти с нуля, имея такое ядро как у меня.

    Вот такие планы. О своей студии буду думать в начале 2011, а в 2010-м буду нарабатывать портфолио, благо желающих заказать мне то или иное много, даже в это тяжелое время.

  22. Цитировать tavodi

    в таком случае срок жизни cms = сроку жизни твоей студии :).

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

    единственный вопрос: почему “моим (клиентским) проектом будет заниматься отдельная команда”. не легче набрать одну команду и с ней делать разные проекты? если ты берешь под каждый проект новых людей получаешь увеличение сроков где-то на 30-35% (пока они разберутся в движке; чем дальше (читай: сложнее проекты) тем больше “порог вхождения”) которое ты должен будешь оплатить.

  23. Цитировать Samborsky

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

    Все в общем зависит, с какими ресурсами я подойду к 2011 году

  24. Цитировать Grom

    Многих посещают подобные идеи, и я не исключение…
    Вот закончу FileManager (для MaxSite) и …

  25. Цитировать joniks

    Вот скажите можно ли сделать на джумле football.ua - конечно можно, но какой ценой? Такие сайты имхо проще писать с нуля, ну или почти с нуля, имея такое ядро как у меня.

    Ну вот например: interfutbol.uz/uz - на моих глазах был собран меньше чем за неделю, на joomle, на основе готового шаблона, без программирования. Думаю если такой проект делать с нуля уйдет как минимум пол года!
    Лично для меня joomla 1.5 это прежде всего MVC фреймворк, и причем весьма мощный, на который уже натянута CMS и все лишнее всегда можно просто отрубить, а не достающее дописать.

  26. Цитировать Samborsky

    Ну вот например: interfutbol.uz/uz - на моих глазах был собран меньше чем за неделю, на joomle, на основе готового шаблона, без программирования. Думаю если такой проект делать с нуля уйдет как минимум пол года!

    У вас там 150 000 хостов в сутки?

  27. Цитировать Миха

    Евгений, я готов присоединиться к разработке вашей CMS, если будет какая-то система контроля версий CVS или Subversion. Сам вот столкнулся с тем что в MaxSite этого нет, а Макс еще не реализовал некоторые вещи, которые обещал добавить. Я могу конечно сам их добавить, но тогда со временем это будет не MaxSite, а гибрид какой-то…
    Кстати рекомендую ознакомиться с библиотекой HMVC 5 и классом Widget для CodeIgniter, они очень сильно упрощают создание модульных приложений.

  28. Цитировать plandem

    думаю да, только вот plandem меня озадачил, думаю действительно надо посмотреть сперва новые для меня фреймворки, хотя судя по мануалу Kohana это бывший CI который поехал по другой дороге…

    очень даже неплохой опыт :) Кохана скорее всеже с нуля написан, чем бывший CI. Но я не ковырял его, это мнение на основе статей, отзывов и т.п.

  29. Цитировать plandem

    важно не только собрать, но и поддерживать. На джумле сделал 1 достаточно серьезный проект, но одназначно решил, что за эту чудо-поделку больше браться не буду. И, действительно, серьезные вещи на ней делать не стал бы вообще.

    Ну вот например: interfutbol.uz/uz - на моих глазах был собран меньше чем за неделю, на joomle, на основе готового шаблона, без программирования. Думаю если такой проект делать с нуля уйдет как минимум пол года!
    Лично для меня joomla 1.5 это прежде всего MVC фреймворк, и причем весьма мощный, на который уже натянута CMS и все лишнее всегда можно просто отрубить, а не достающее дописать.

  30. Цитировать plandem

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

    хотя я понимая все это, остановился на малоизвестном, но перспективном (правда изначально с грамотной архитектурой).

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

  31. Цитировать plandem

    я бы присоединился, правда, больше интересно не как “сопровожденец”, а партнерское что-то :) проблем с идеями тоже вроде как нет, времени где бы только найти на все. до 2011 еще время есть, пока планы примерно такие же :)

    Открою немного занавес.
    У меня в планах создать свою студию, которая будет заниматься сложными проектами (моими личными и клиентскими). От моего ядра она будет всегда отталкиваться, а каждым моим (клиентским) проектом будет заниматься отдельная команда.

  32. Цитировать vvs

    А Django не интнресен как фреймворк? Сам хочу попробовать лиго его, либо Yii от китайских товарищей осилить.

    Ну вот например: interfutbol.uz/uz - на моих глазах был собран меньше чем за неделю, на joomle, на основе готового шаблона, без программирования.

    У вас там 150 000 хостов в сутки?

    вот-вот! Посещаемость близкая к нулу, зато указанная страница открывалась минуты 2. В отличии от football.ua, который и при такой нагрузке работает шустро.

  33. Цитировать Samborsky

    Django это с питоном связано? Я с питоном никогда не работал

  34. Цитировать plandem

    с ним самым :) погляди все же в сторону Yii :) правда, там “порог входа” выше, чем в ту же Кохану, т.к. самый молодой и мало расширений, документация хорошая, но не такая как у CI, например.

    ага, с питоном

    Django это с питоном связано? Я с питоном никогда не работал

  35. Цитировать Смоленский

    plandem, если не секрет можно услышать названия малоизвестного но перспективного фреймворка с граммотной архитектурой ?

  36. Цитировать plandem

    так я уже писал :) Yii. правда “порог входа” достаточно высок - не так много документации как для CI.

    http://www.yiiframework.com
    http://www.yiiframework.ru

  37. Цитировать MAX

    Пропустил такую тему, исправляюсь. :)

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

    Единственное могу посоветовать - не наступать на чужие грабли и сразу определиться (для себя!) что нужно получить в итоге. На примере MaxSite CMS скажу, что для меня важно реализовать аля-RAD (как Delphi), где разработчик может быстро сделать сайт, плагин, виджет и т.д. с минимальным набором знаний. Имено поэтому я и придумываю всякие опции, мета и прочие API, которые в одну строчку/функцию «цепляются» к системе. Если ты сделаешь что-то подобное для CodeIgniter, будет здорово.

    :)

  38. Цитировать Андрей

    Django для подобных целей (да и для многих других) - просто идеальное решение, в отличие от тормозных PHP-шных поделок. Лично мое мнение, основанное на 5-илетнем опыте разработок на PHP и 2-летнем опыте разработок на Python\Django.

  39. Цитировать Fanta

    как продвигаются дела?
    по адресу thegunners.ru пусто :(

Добавить комментарий