Пишем CMS, движок сайта, с нуля на PHP. Пишем свою cms
Зачем нужна своя CMS? ::: Блог RS
Насколько я понял, разных CMS много. Зачем создавать еще одну — свою собственную? Не проще ли воспользоваться одной из имеющихся?
Я готов поспорить, что данным вопросом задаются многие. Как можно ответить на такой вопрос? Да ни как! Если взять в пример меня, я работал только с одной готовой CMS и то без цели, просто побаловаться, для меня написать простенький сайт с нуля проще чем поставить и настроить готовый. Возможно я очень плохо знаю возможности уже готового движка, именно поэтому предпочитаю написать какой то новый проект за пару дней. А кому то проще поставить готовый сайт, и за пару часов настроить его. Так, что ответ на поставленный вопрос скорее всего звучит так: «Кому как!»
Перед тем как человек определится на какой он стороне баррикад, необходимо провести небольшой анализ. То есть попытаться перебрать плюсы и минусы обоих решений, и попытаться придти к выводу самому.
Готовая CMS
+ Неоспоримый плюс, это быстрота исполнения. Знающий человек потратит буквально несколько часов, не знающий сутки, максимум двое.
+ Гибкость. Я имею введу, что у популярных готовых проектов в интернете существует массу расширений, что позволяет сделать почти все, что душе угодно!
+ Еще бы добавил тот факт, что создать сайт на готовом движке может практически любой. Наличие море информации в интернете делает обучение быстрым и эффективным.
- В минус я отправлю то, что сайты работающие на готовых решениях как клоны. Расширения доступны для всех, поэтому почти нет никакой индивидуальности. Этот минус конечно можно исправить, но для этого нужно либо создать что-то самому, либо купить.
- Безопасность. Пожалуй самый большой минус. В основном у всех популярных CMS открытый код. Это позволяет находить уязвимости. Значит если Вы не обновляете движок, то он больше подвержен к взлому.
Своя CMS
+ Индивидуальность. Все зависит от Ваших умений, или умений программиста который Вам пишет CMS.
+ Легкость (никакого мусора!). Ваш движок умеет лишь то, что Вам нужно, не больше не меньше. Чем меньше лишних кусочков кода, тем легче и быстрее сам проект.
+ Безопасность. Логика кода известна только Вам. Что делает не возможным взлом по инструкции. Естественно при условие, что программист не делает очень грубых ошибок.
- Минусом естественно является то, что ни каждый может написать свой проект. Для этого необходимы определенные знания.
- Процесс создание чего то невообразимого займет очень много времени, и возможно денег.
ИМХО
Естественно это не все плюсы и минусы. Я специально выбрал одинаковое количество для обоих решений, что бы не склонить читателя к какой то стороне. Я лишь выражу свою точку зрения, и никому ее не навязываю. Я с самого детства люблю что-то изобретать. Я разбирал игрушки, что бы узнать и понять почему они обладают той или иной функцией. Для меня пользоваться готовым решением просто не интересно, даже если оно работает в разы лучше чем мое, я все равно буду пользоваться своим!
А Вы что думаете по данному поводу? Как бы вы ответили на вопрос: «Зачем нужна своя CMS?»
rio-shaman.ru
Пишу CMS на PHP. Часть 1 / Хабр
Сразу хочу умерить ваш пыл по отношению к заголовку: школьный возраст я давно пережил и знаю о чем говорю. Поэтому давайте будем толерантны друг к другу и дадим мне возможность изложить свою идею до того как вы ее раскритикуете.Базовые шаблоны программирования
Возьмем за пример простую работу с API и синхронизацию с данными модели к примеру User. За движок, фреймворк (кому как удобно) — Symfony. Я уверен: опытные в этом деле люди уже поняли с чего все начнется и чем все закончится.
Мою альтернативу я не могу назвать идеалом, но мне она очень по душе. Суть сего такова, что любые операции с данными системы, вычисляемыми данными, данными других сервисов позиционируются как Сервис. Сервис по сути является обычным пакетом PHP с классами и собственным пространством имен. Но кто мешает нам положить туда файл конфигураций, базовые шаблоны части View или кешируемые данные? Ведь все эти вещи относятся именно к нему, и стоит ли нам засорять общую папку для шаблонов/конфигов?
- Доступ к базе данных будет иметь только Service / Сервис
- Сервис может содержать классы, трейты, Конфигурационные и кеш-файлы, базовые шаблоны
- Доступ к сервису будет осуществляться с помощью единого метода объекта из области контроллера
- Сервис обязательно имеет собственное пространство имен
Если хорошенько подумать, то это — тот же самый MVC, только здесь роль модели выполняет наш Service, который, как мы видим, значительно отличается от устоявшихся стереотипичных ОРМ моделей.
Как результат, фасадный класс сервиса User может в себя вмещать работу с его локальными данными, собственными файлами на сервере, работу с API и прочее. Унификация такой большой области разработки дает возможность очень качественно реализовывать конечный результат.
Очень хотел бы узнать ваше мнение.
habr.com
Как написать свою cms | Страница 2
Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы: Закрыта. Страница 2 из 3 < Назад 1 2 3 Вперёд >-
senya2007 Постоялец
Регистр.: 12 янв 2009 Сообщения: 117 Симпатии: 7 А помоему проще изменить имеющиюся ЦМС модулями которые напишеш сам. Гемора не меньше. И + то что не такой дырявой ЦМС буит как все говорят. Заодно и поучишся методом тыка пока писать модули будешь. -
cernet Создатель
Регистр.: 19 янв 2010 Сообщения: 44 Симпатии: 0 SpaiboSpasibo ludi. no ya uje 2 godA JOOMLU UZAYU hotelosbi cvoyu hot i diravuyu cms napisat
-
Solomon Kane Постоялец
Регистр.: 26 авг 2009 Сообщения: 144 Симпатии: 9 cernet сказал(а): ↑Моя цель написать cms подобную Amirocms Бизнесс. [/B]
Нажмите, чтобы раскрыть...
Тут начальными знаниями не обойдёшься. Такие CMS пишут профессионалы и обычно командами. -
sssltd Писатель
Регистр.: 23 апр 2007 Сообщения: 82 Симпатии: 1 По моему мнению написать с нуля имеет смысл только в случае специфических требований. А вот на стандартный набор функций время тратить не стоит. Без опыта, самому толковое что сделать скорее всего не выйдет, гарантировано только качественное убийство времени. Кроме того CMS сейчас более чем достаточно, и работают над доводкой колективно Думаю мысль включаться в команду более удачна -
waal1 Постоялец
Регистр.: 8 фев 2008 Сообщения: 115 Симпатии: 56 не понятно зачем ТС своя cms. а вообще пословица есть "один в поле не воин" . что то такое -
tofik228 Читатель
Заблокирован Регистр.: 3 июн 2008 Сообщения: 650 Симпатии: 164 Сейчас в сети полно скриптов CMS - выбирай не хочу. Писать с нуля я думаю для вас будет трудней, раз вы задаете такой вопрос. Под каждый сайт можно использовать любую CMS распространяющийся по лицензии GNU GPL и дописывать под себя любой сервис/модуль/плагин. На разработку "с нуля" своего движка потребуется не менее полгода, а если вы еще один собираетесь писать то умножаем в раза три этот срок. Для начала хоть на html языке сделайте статичный сайт, а потом уж думайте как написать свой продукт. -
skrich Писатель
Регистр.: 14 фев 2010 Сообщения: 4 Симпатии: 0 Наверное как просмотрел пару тройку уроков Попова и еже с ними? Мой совет - (сам через это прошел) - возми любую CMS - Вордпресс, DLE, Джумлу и локально попробуй разобраться у себя на компе - все ли понятно - если весь код понятен - пиши под себя свою. -
cernet Создатель
Регистр.: 19 янв 2010 Сообщения: 44 Симпатии: 0 tofik228 сказал(а): ↑Сейчас в сети полно скриптов CMS - выбирай не хочу. Писать с нуля я думаю для вас будет трудней, раз вы задаете такой вопрос. Под каждый сайт можно использовать любую CMS распространяющийся по лицензии GNU GPL и дописывать под себя любой сервис/модуль/плагин. На разработку "с нуля" своего движка потребуется не менее полгода, а если вы еще один собираетесь писать то умножаем в раза три этот срок. Для начала хоть на html языке сделайте статичный сайт, а потом уж думайте как написать свой продукт.
Нажмите, чтобы раскрыть...
Ну спасибо за совет, но хтмл конечно хорошо, но я на нем уже 2 года сайты делаю достала одна статика, динамичней что нибудь охото, сейчас пхп изучаю, но послушав вас и пошарив инет решил что лучше всего делать сайт на фреймворке. А вот какой для начинающего пойдет не знаю. Да пхп только месяц юзаю. Хочу сэкономить время. Да еще если у кого есть видеокурсы по созданию сайтов на фреймворках киньте ссылку -
fullgod
Регистр.: 19 апр 2008 Сообщения: 216 Симпатии: 33 cernet сказал(а): ↑Люди хочу написать свою cms знания и опыт на уровне начинающего, кроме php Mysql html css ничего, не знаю, да и те знания что есть у меня, не столь богаты, но пару легких сайтов не особым функционалом написать хватит ну по край не мерее я так думаю. Я не знаю что такое Ajax и не умею кодить на javascript. Моя цель написать cms подобную Amirocms Бизнесс. Пожалуйста критикой и умными выражениями тему не портить. Если есть что сказать,то говорите.
Нажмите, чтобы раскрыть...
Вот и ставь себе на денвер эту CMS и делай под себя. Изменишь код на 70% и можешь называть её своим именем. Если не одолеешь, то как минимум пополнишь багаж знаний. -
Jon06 Создатель
Регистр.: 24 мар 2009 Сообщения: 13 Симпатии: 0 кстати, у меня друг переписал форум IPB 2.1 под себя и почти все вод аякс сделал. Говорит что 40% своего впихнул.
www.nulled.cc
С чего начинать писать свою CMS
Занимался данным вопросом. Но только вопросом- до кодинга дело не дошло. Ни знания ни сил ни времени. При этом спорная отдача от реализации. Для самописной цмс найдётся довольно много плюсов и минусов. Главное что мне стало ясно- надо или писать простой проект или подходить с полным комплектом знаний, умений точно зная что и как делать. про второй пункт –Во первых первоначальные знания – это чтение и знание минимум книг Совершенный код, Рефакторинг. Улучшение существующего кода , Приемы объектно-ориентированного проектирования. Паттерны проектирования. Это базис, больше - лучше , но там уже будут идти больше специфичные приёмы. Просто вебприложения уже перестают быть допотопными- когда даже с небольшими знаниями, без предварительной работы по организации структуры, документации и прочее прочее можно было состряпать неплохой скрипт. Я не говорю что сейчас 100% популярных и хорошоработающих скриптов \ программ делаются не на коленках. Тут уместна фраза от деда Феди, которую я увидел по тв – он построил самолёт из мусора на свалке, и хвастался что знаний в аэродинамике нет и вообще только школа и пту. И намекал что 100500 законов что ввели учёные, инженеры и прочие- для него полный бред. Вывод- чтобы сделать что-то не нужно иметь глубоких знаний, но нужны радикально прямые руки. А вот смог бы этот дед сделать пассажирский боинг, и лучше поставить сразу на поток? Нет. Вот для этого ему бы понадобились все эти глубокие знания . Так что считаю выработанные приёмы по программированию\проектированию и тп – просто нельзя игнорировать.
Нужно знание велосипедов и умение их находить\изменять. Хорошо подходят Как уже говрили- существующие движки и фв . Не только на большие классы типа плагинаций и роутинга, но и небольшие типа вычисление даты, обработки текста…
Теперь о задачах. Вообще 50% работы- это как раз должно быть разработка ТЗ и плана, как это должно работать. Предлагали сделать ТЗ как можно объёмным- верно. Затем открываем и смотрим на интерфейсы всех готовых систем, которые подходят для этого тз и думаем как переделать конкретно под каждую задачу в тз. Можно посмотреть по форумам, какие движки и за что критикуют.
Надо подумать и о верстальщиках и о шаблонзаторе. Без шаблонов цмс далеко не поедет.
nulled.in
Уроки PHP - Часть 3 - Создание своей CMS
Создание сайтов на CMS не ограничивается лишь Drupal, Joomla и Wordpress. В мире большинство сайтов сделано на самописных CMS. Несмотря на что уже написано много кода на PHP, программисты очень часто используют свои собственные разработки. Давайте попробуем понять зачем использовать свою CMS.
Да, существует Друпал мощная система с большим количеством модулей, хуков и функций для создания своих модулей. Многие умеют писать свои модули, но давайте посмотрим сколько людей занимаются созданием самого друпала. Конечно вы наверно читали, что Друпал труд сотни,а то и тысячи программистов. Но давайте все-таки посмотрим кто делает друпал.
На странице скачивания Друпал, есть блок со списком программистов работающих над ядром друпала, то есть над самой CMS.
drupal.org/node/3060/committers?sort=desc&order=Commits
А на этой странице список программистов с добавленными ими правками ядра. И так список:
Dries | 3 days ago | 11 years ago | 10501 правки |
webchick | 5 days ago | 3 years ago | 3108 правки |
Gábor Hojtsy | 2 days ago | 4 years ago | 1635 правки |
Steven | 4 years ago | 11 years ago | 1156 правки |
drumm | 1 year ago | 5 years ago | 764 правки |
[email protected] | 4 years ago | 6 years ago | 506 правки |
Kjartan | 5 years ago | 11 years ago | 383 правки |
catch | 2 days ago | 21 weeks ago | 329 правки |
Jeroen | 10 years ago | 11 years ago | 101 правки |
Git Migration | 1 year ago | 10 years ago | 38 правки |
jhodgdon | 2 days ago | 3 days ago | 3 правки |
quicksketch | 16 weeks ago | 16 weeks ago | 3 правки |
pillarsdotnet | 23 weeks ago | 23 weeks ago | 2 правки |
Начнем по списку:
Dries (10к правок) - полное Дрис Байтаерт (Dries Buytaert), основатель проекта друпал. Как вы видите проекту Drupal уже больше 11 лет. Дрис создал компанию acquia, которая занимается технической поддержкой сайтов на Друпал (очень не бесплатной в отличие от самого Друпала), а также разработкой Друпала и модулей к нему. Где-то я читал в одном из интервью с Дрисом, что он уже не занимается непосредственной разработкой Друпала, как программист, а по большей части управляет компанией acquia. А такое большое количество правок ядра он объяснил тем, что ему присылают уже готовые патчи ядра и он их только добавляет.
webchick (3к правок) - полное имя Энджи Байрон (Angie Byron), разработчик 7 версии Друпала. Работает (работала?) в компании lullabot, хотя в профайле на drupal.org указано, что если вы хотите нанять ее для работы над своим сайтом, то для этого следует обратиться в компанию acquia. Также Энджи разработала Drush, набор скриптов для работы с Друпал через консоль. На сегодняшний день Энджи один из ведущих разработчиков Друпал.
Gábor Hojtsy - полное имя Габор Хойтси (Gábor Hojtsy), один из основных разработчиков 6ой версии Друпал. Также разрабатывал возможность интернализации и перевода Друпала на другие языки в 7ой версии Друпала.
Есть, конечно, и другие разработчики ядра, они занимались какой-нибудь одной частью Друпала. Но эти разработчики основные. Таким образом сколько бы не говорили, что друпал это детище тысяч программистов, но ядро друпала это работа нескольких людей. Получается что даже огромные CMS разрабатывают несколько людей.
Вернемся к первоначальному вопросу, зачем разрабатывать свою CMS. А вы помните сколько времени у вас ушло на изучение друпала, так вот, у некоторых программистов на создание CMS уходит меньше времени, чем на изучение CMS размера с Друпал.
PHP простой язык ( по отношению к другим языкам), писать код на нем могут все, особых знаний (для простых вещей), не требуется. Конечно со временем вам потребуется многое узнать, чтобы написать масштабируемую CMS, а пока посмотрим на плюсы своей CMS:
1. Вы знаете где и что у вас лежит. Как часто вы смотрите код taxonomy.module, comment.module. Я не очень часто, а Вы? Просто не возникает такой необходимости. Код написан, функции задокументированы, шаблоны переопределяются. Ну что еще нужно? А если возникает проблема или ошибка. Что тогда делать? Писать на drupal.org и ждать пока заваленные работы разработчики ядра ответят? По моему это не выход.
2. Высокая скорость работы. Не секрет что друпал работает медленно, посылает много запросов к БД. Самописная CMS будет работать намного быстрее. Но есть и обратная сторона медали в Друпал уже есть модули для оптимизации и кеширования, так что эта проблема есть только на shared-хостинге.
3. Сам себе хозяин. Вы можете не следовать правилу "не трогать ядро" и править прямо в ядре. Это будет очень удобно и не нужно ждать релиза новой версии ядра, чтобы включить свои правки.
Есть конечно и минусы, но... Не будем о них и так понятно что Друпал хорош, не будем еще раз говорить почему он хорош, это все знают.
Итак, вы решили написать свою CMS, начнем.
drupalbook.ru
С чего начинать писать свою CMS
Занимался данным вопросом. Но только вопросом- до кодинга дело не дошло. Ни знания ни сил ни времени. При этом спорная отдача от реализации. Для самописной цмс найдётся довольно много плюсов и минусов. Главное что мне стало ясно- надо или писать простой проект или подходить с полным комплектом знаний, умений точно зная что и как делать. про второй пункт –Во первых первоначальные знания – это чтение и знание минимум книг Совершенный код, Рефакторинг. Улучшение существующего кода , Приемы объектно-ориентированного проектирования. Паттерны проектирования. Это базис, больше - лучше , но там уже будут идти больше специфичные приёмы. Просто вебприложения уже перестают быть допотопными- когда даже с небольшими знаниями, без предварительной работы по организации структуры, документации и прочее прочее можно было состряпать неплохой скрипт. Я не говорю что сейчас 100% популярных и хорошоработающих скриптов \ программ делаются не на коленках. Тут уместна фраза от деда Феди, которую я увидел по тв – он построил самолёт из мусора на свалке, и хвастался что знаний в аэродинамике нет и вообще только школа и пту. И намекал что 100500 законов что ввели учёные, инженеры и прочие- для него полный бред. Вывод- чтобы сделать что-то не нужно иметь глубоких знаний, но нужны радикально прямые руки. А вот смог бы этот дед сделать пассажирский боинг, и лучше поставить сразу на поток? Нет. Вот для этого ему бы понадобились все эти глубокие знания . Так что считаю выработанные приёмы по программированию\проектированию и тп – просто нельзя игнорировать.
Нужно знание велосипедов и умение их находить\изменять. Хорошо подходят Как уже говрили- существующие движки и фв . Не только на большие классы типа плагинаций и роутинга, но и небольшие типа вычисление даты, обработки текста…
Теперь о задачах. Вообще 50% работы- это как раз должно быть разработка ТЗ и плана, как это должно работать. Предлагали сделать ТЗ как можно объёмным- верно. Затем открываем и смотрим на интерфейсы всех готовых систем, которые подходят для этого тз и думаем как переделать конкретно под каждую задачу в тз. Можно посмотреть по форумам, какие движки и за что критикуют.
Надо подумать и о верстальщиках и о шаблонзаторе. Без шаблонов цмс далеко не поедет.
www.nulled.cc
Пишем CMS, движок сайта, с нуля на PHP: Зачем писать свой движок?
Зачем писать свой движок?Над смыслом написания своего движка, своей CMS, можно мидитировать годами. Я программирую на PHP немногим более четырех лет и я уверенно могу сказать, что моих знаний, на данный момент, не совсем достаточно чтобы написать движок, который точно будет лучше и производительнее всех других, которые нам предлагает всемирная сеть. Я — оптимист и поэтому посвящаю данный блог написанию движка с нуля, не базируясь на каком либо фреймворке или готовых библиотеках, основной задачей этого блога будет обучение программированию под всемирную паутину.
Что вы узнаете читая статьи на этом блоге:1. Как разработать архитектуру движка сайта.2. Как писать и думать следуя парадигме ООП.3. Как не стать ламером в глазах школьника — хакера.4. Как взаимодействовать с БД MySQL и PostgreSQL с помощью PHP.5. Как профилировать и отлаживать свой код.
Знаете, этот список скорее для заманухи новичков, а не тот, что реально отразил бы все те навыки, которые вы получите, но по мере ведения блога я буду дополнять и изменять его.
В первую очередь помните, что писать движок мы будем не для продажи или получения прибыли, а для повышения нашего с вами скила в кодинге, я расчитываю писать для новичков, хотя думаю и профи, читающие этот блог смогут научиться чему либо и научить своим знаниям меня. Я всегда рад критике и очень сильно постараюсь чтобы этот блог стал островком ценных знаний посреди океана устаревшей информации и прочего мусора.
Вступление окончено, теперь давайте подготовим инструмент. Я работаю на бюджетном ноутбуке с Убунту на борту, а в качестве редактора использую NetBeans с плагином для PHP.
NetBeans — это лучший выбор для удобного кодинга на PHP, поверьте мне, я работал во многом и отказаться от этого редактора можно только если у вас на борту менее гигабайта ОЗУ, тогда он будет безбожно тормозить после часа работы. Ребята на дворе 2012 год и если у вас планка на пол гигабайта то пора задуматься, но если все же это так, то вместе NetBeans я советую вам старый, добрый gedit либо Notepad ++ если вы работаете под Windows.
NetBeans во всей красе:
Интерпретатор PHP. Если вы новичок то вам подойдет сборка «Денвер», устанавливаете и пользуете уже готовый веб — сервер без лишних телодвижений, но вы не почуствуете истинного наслаждения от своей профессии пока не поставите каждый компонент: PHP, Apache/nginx, MySQL/PostgreSQL по отдельности и не настроите его сами, но это можете оставить на будущее.
Для тех кто не ссыт, я уверено говорю ставьте все по отдельности, а еще зацепите xdebug — дебаггер кода php, без него вам будет тяжко в последующем.
Как все это ставится вам расскажет гугл, а не я, ведь моя задача научить вас писать систему управления контентом сайта, а как администрировать сервер вам расскажут другие.
Одно пожелание, ставьте интерпретатор не младше версии 5.2, я буду писать код, который будет иметь зависимость от возможностей, который были внесены в этой версии. Нормальные хостеры давно поддерживают 5.3, так что думаю проблем с совместимостью возникнуть не должно.
Первый пост я законичил, надеюсь вы воодушевились и наполнились энтузиазмом, теперь мы окунемся в приключения кодинга, создадим свой идеальный мирок где все подчиняется нашим законам, спасем красавицу и будем жить счастливо =) Вобщем подписывайтесь!
firstcms.blogspot.com