С чего вы начинаете писать cms?

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

Сейчас захотел написать свою CMS, скорее для опыта. Но понял, что даже не представляю с чего начать)
  • Вопрос задан
  • 5841 просмотр
Пригласить эксперта
Ответы на вопрос 12
@SilentBrain
Web-Programmer
Напишите лучше фреймворк. Даст больше опыта, чем CMS. CMS по сути монотонное создание формочек добавления/редактирования/удаления контента.
А в фреймворке будут более интересные задачи, попробуйте реализовать свою ORM, продумайте роуты, контроллеры, хелперы, попробуйте реализовать интерпретатор для языка Slim (slim-lang.com) или HAML и т.д.
Вот это будет действительно полезный опыт, которым можно будет даже поделиться потом с другими.
Ответ написан
Комментировать
@hell
Если для опыта, то вам стоит двигаться примерно следующим образом:
1) Крепко-крепко подумать, а надо ли оно вам (потому как, если вдруг начнет получаться — процесс сам по себе затягивает и отвлекает от зарабатывания денег, личной жизни, да и жизни вообще)
2) Прикинуть, что вам не нравится в тех готовых движках, на которых вы делали сайты
3) Составить краткий список того, что должна уметь делать ваша CMS (в глаголах, желательно)
4) Поизучать фреймворки (на разных языках) и выбрать лучший, или, убедившись, что их авторы козлы полнейшие возможности, предоставляемые фреймворками избыточны, либо не достаточны — перейти к следующему пункту
5) Исходя из списка из пункта 3, выбрать хранилище данных. Критерий выбора — как ни удивительно — не его распространенность, но, скорее — возможность выборки требуемых данных минимальным количеством простых запросов.
6) Исходя из выбора хранилища данных, выбрать фреймворк/язык программирования
7) Подобрать хостинг, на котором есть все, что вам нужно
8) Пробежаться по списку из пункта 3 и быстро-быстро все написать. При необходимости — конкретизировать и расширить этот список. При необходимости — вернуться к пункту 4.

Как-то примерно так.
Ответ написан
Комментировать
@excalibur
Начните с подборки фреймворка. Лично я использую Zend Framework (т.е. php).
Ответ написан
С index.php :)
А без шуток — с того, что соберёт вместе все остальное и заставит это работать так, как мне нужно. С ядра, если хотите.
Ответ написан
kotomyava
@kotomyava
Системный администратор
С мысли о том, что для опыта лучше досконально разобраться в паре крупных проектов, и понять, почему сделано именно так, чем пытаться начать писать свойю CMS без понимания с чего начать.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ну по сути…
> composer.phar install
> app/console generate:bundle
и т.д.

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

Делать полностью с нуля нету никакого смысла, кроме как самообразование.
Ответ написан
Комментировать
С рисования. Рисовать пути превращения типичных запросов сначала в данные, а потом данных в ответ, думая где в него может понадобиться внедриться (изменить, заменить, декорировать) по каким-то условиям и прикидывать как это внедрение и проверку условий осуществлять. Так получите схемы взаимодействия ядра и модулей.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
С пустой папки, потом index.php, потом набросок дизайна, потом к элементам дизайна цепляю внутреннюю функциональность и добавляю новые файлы по подпапкам, потом дизайн отделяется в отдельные компоненты (темы, скины, называйте как хотите) которые подключаются ядром, и так всё чередуется, размножается, переписывается.
Только геморрой это ещё тот, вот уже почти 2 года пилю CMS/CMF, если бы сейчас предложили начать писать с нуля — отказался бы наверное от такой затеи, уж слишком долго и непросто сделать что-то стоящее.
Начинать стоит если у вас есть список того, чего вы не можете реализовать в других CMS концептуально, либо это слишком сложно. В противном случае это потеря ОЧЕНЬ большого количества времени без особой пользы.
Ответ написан
Комментировать
un1t
@un1t
Вобщем теоретические проекты в вакууме не кому не нужны. Выберете реальную задачу интересную вам. Например это может быть например блог, интернет магазин или даже сайт визитка. Весть функционал вместе в cms все равно не стоит сразу пихать. Начиние писать. Подумать конечно стоит, но особо долго не тратьте на планы. После написания первой версии станет понятно, что и как лучше сделать подругому, улучшить.

Фреймворк лучше чем CMS в плане гибгости, это да. Я лично исползую один из популярных фрейморков и к нему написанны ряд приложений. Получается такая недо-cms. Но зато эта штука более гибкая и подстраивается под реальные проекты.
Ответ написан
Комментировать
Bluefox
@Bluefox
В первую очередь, с написания Тех. Задания (ТЗ). Необходимо четко знать, что должна CMS уметь и как должна выглядеть. И уже только после этого, исходя из ТЗ, подбираются необходимые инструменты (языки, платформы, и т.д.). Необходимо четко знать цель куда двигаться, иначе можно вообще никуда не придти.
Ответ написан
Комментировать
chegor
@chegor
С архитектуры, наверное.
Ответ написан
Комментировать
@softm
С копирования файлов стандартной пустой структуры, причем последней версии, которая содержит набор
классов, функций, много js, пустой шаблон, кешкаталог и пару файлов найсройки и индекса.

Далее идет указание этого ^^^ ФТП бекап-скрипту и проверка создания пустого бекапа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы