CMS или FRAMEWORK? Cms или фреймворк
Что выбрать для проекта CMS или Framework? CleverMan.org
Казалось бы, вот он рай неземной. Но не все так радостно, как может показаться. И чем более квалифицированный программист, чем больше у него опыта и знаний, тем меньше ему хочется работать с CMS. Я не беру во внимание безнадежных фанатов! На то они и фанаты и доводы тут бессильны.
Итак, обратная сторона красивой медали. А вот она уже очень некрасивая! Чтобы все это буйство решений работало в одной связке, нужен очень строгий и типизированный механизм. А если конкретнее, то ядро системы должно иметь механизмы, позволяющие подключать разнообразные модули, которые будут сразу же работать после включения. А это означает, что структура модуля должна быть строго типизированная, конкретно под свой CMS. И будет работать только под ее управлением и только той версии, под которую написан этот модуль. Система хранения данных в базе уже определена, и поэтому необходимо следовать стандарту. Система шаблонов также строго типизирована. Для того, чтобы все красиво состыковывалось и работало, созданы системы таких жутких костылей, что иногда на это без слез смотреть нельзя.
Когда вы захотите получить для своего проекта функционал, которого не существует из коробки, то вам придется создавать свой модуль или модули. При этом вы неизбежно столкнетесь с тем, помимо того, что необходимо строго следовать стандарту конкретной CMS, что вам все время придется придумывать свои костыли, чтобы обойти множество ненужных вещей, которые будет вам навязывать ядро. Для примера, вы хотите убрать из какой-то формы регистрации часть описания, или изменить внешний вид поля, или изменить обработчик, на который нужно повесить свой дополнительный функционал. И вот тут вы начнете скакать на граблях. Любая кастомизация, в том числе и внешнего вида, принесет вам очень много головной боли. Вы столкнетесь с тем, что в шаблон для рендера передается такое количество "мусора", что не совсем понятно, почему он называется шаблоном. Перехват данных до вывода в шаблон, перехват данных после вывода в шаблон, перехват данных в момент создания формы и еще сотни всяких приколов.
Вместо создания собственного функционала, вы будете большую половину времени тратить на борьбу с CMS, читать сутками мануалы, искать в интернете решение проблемы вылазящих ото всюду багов. Или как обойти то или иное ограничение. Вольетесь в сообщество и превратитесь в адепта системы. Другими словами, вы будете не свой код создавать для себя и заказчика, а будете придумывать 1000 + 1 способ, как обойти ограничения или избыточность CMS.
Что же такое Framework? А это уже полуфабрикат, который представляет из себя только набор минимально необходимого функционала, который реализовывает ряд популярных паттернов. Например, MVC, который уже по умолчанию является стандартом при создании сайтов. Как правило, из коробки нет ничего. Но зато у вас в руках появляется мощный инструмент. Вы можете создать такую архитектуру вашего проекта, которую хотите. Создать структуру базы данных именно так, как вам необходимо. В ваш шаблон вы выводите только то, что вам нужно, а сам шаблон - это действительно шаблон, а не каша из php и html кода. Все настройки вы храните в файлах, а не в базе. Ваш проект легко переносить из одного сервера на другой. В наличии всегда миграции, которые позволят развернуть проект с нуля за пару минут в любом месте. Все маршруты к страницам хранятся в файле роутов, а не в базе. Другими словами, вы полностью сосредотачиваетесь на процессе разработки и осуществления ваших задумок. Сам framework не будет вас заставлять делать только так или этак. Но вам придется следовать определенным правилам, которые логичны, адекватны и помогают улучшить и ваш код, и структуру вашего приложения.
Помимо этого, для фреймворков существуют свои готовые решения для конкретных задач, которые можно установить через composer. Очень часто можно адаптировать решения от одного фреймворка к другому. К примеру, бандлы от Симфони присутствуют практически в каждом php фреймворке. Но установить пакет/модуль/бандл и т.д. и включить его кликом мышки не получится. Придется сделать подключение провайдеров в коде, что-то настроить. В своих контроллерах подключать фасады или классы. Другими словами, разрабатывать свой код, при этом отдавая часть заботы о функционале установленным решениям.
Какой вывод из всего этого можно сделать. Если ваш проект - это простой сайт, который не требует глубокой кастомизации, при этом нужно много разных плюшек, за которые заказчик не особо хочет платить, и нужно создать все уже на вчера, то CMS тут вне всякой конкуренции. Здесь даже без вопросов. Но если вы делаете проект, который будет постоянно дорабатываться, для которого нужно писать свои решения, нужен гибкий дизайн и всякие плюшки, да еще и нагрузка на сайт ожидается существенная, то тут однозначно выигрывает фреймворк. Так как вы сосредоточитесь именно на разработке того, что нужно именно вам, а не на борьбе с тем, что вам не нужно.
Думать и решать вам, но пища для размышлений есть. Всего хорошего, всем удачных проектов.
cleverman.org
CMS или Framework? PHP Lang
Я ищу построить интернет-магазин. Тем не менее, первый вопрос, прошедший идею магазина, – это платформа. Я ранее работал с Java и PHP, и мне очень нравится PHP. Итак, мои первые соображения были Drupal или, возможно, CodeIgniter (о которых я слышал много хорошего)
На обсуждениях с друзьями они предложили Django. Но у меня нет опыта работы с Python или Django.
Так что мой вопрос: лучше ли CI или Drupal? И дальше, если не любой из них, лучше ли Django с точки зрения простоты развития и расширяемости?
Попросите вас не сделать это сражение php vs python, поскольку я ищу совет здесь. благодаря
Проект предназначен для создания интернет-магазина для определенных продуктов, которые в настоящее время не продаются в Интернете. Магазин будет иметь изображения с высоким разрешением продуктов и других связанных с ними деталей. Несколько других специальных функций, связанных с продуктами, будут добавлены вовремя, поэтому они не так важны.
Другое разъяснение: я понимаю, что Drupal – это CMS, а не структура. Единственная причина, по которой я сравнил ее с CI, – это базовая платформа – php. Возможно, лучшим сравнением было бы Joomla vs Django (но я не уверен, что пока не знаю об этом)
Выбрав рамки для проекта, вы уже знаете, какая цель будет только замедлить ваше развитие. Если основной целью вашего проекта является интернет-магазин, выберите свой выбор среди многих проектов, уже реализованных для вас с помощью платежных шлюзов, вариантов доставки, управления продуктом и т. Д. Рамки могут предлагать все это тоже, но не будут готовы, для использования из коробки, и вам придется все вместе связывать. Мое личное мнение заключается в том, что фреймворки являются хорошим кандидатом, когда вам нужно очень настраиваемое веб-приложение, которое вы напишете с нуля, что будет не только заниматься электронной коммерцией, но и обрабатывать другие конкретные бизнес-модели.
Универсальные CMS, такие как Drupal, WordPress и т. Д., Хороши, если вы планируете расширить свой интернет-магазин, чтобы предлагать другие варианты (ig форумы, блоги, мультимедийные / интерактивные материалы и т. Д.). Если вы решите выбрать этот путь, я бы предложите вам загрузить исходный код каждой CMS, которую вы сохраните, и поиграть с ним на некоторое время, и выбрать тот, с которым вы чувствуете себя наиболее комфортно, и который имеет хорошее сообщество пользователей. Потому что нет ничего худшего, кроме того, что вы застряли с чьим-то сломанным кодом, и никто не поможет вам.
Для решений электронной коммерции вы можете найти здесь много хороших проектов. Если я могу выбрать предложение, решение, которое вы можете рассмотреть, поскольку оно выглядит просто, оно написано на PHP и имеет хорошие отзывы OpenCart
Хороший, с которым я работал, – это плагин Instinct для электронной коммерции для WordPress . Мне не обязательно нравится WordPress, но этот плагин довольно хорош, и вы получите мгновенный доступ к вашему интернет-магазину. Плагин также позволяет вам легко кодировать новые пользовательские платежные шлюзы (только один файл для кодирования …)
CI и Django – это рамки, которые помогают вам создавать веб-приложение с нуля, если вы готовы это сделать – идите и попробуйте. Там должно быть много доступных модулей, которые позволят вам легко расширить рамки.
Drupal однако является CMS, поэтому он поставляется с несколькими уже установленными плагинами и может управлять вашим контентом. Вам все равно необходимо разработать функциональность «магазина» – оплата, листинги и т. Д. – самостоятельно.
Если CMS отлично подходит вам сейчас и в будущем, то CMS, в противном случае – каркас. Эта структура позволит вам получить полную свободу по цене времени, затрачиваемого на разработку
Вы читали и слышали о JOOMLA, я думаю, что это очень мощная CMS в php, а также много поддержки сообщества. В java LifeRay – хороший вариант.
Я бы использовал только фреймворк, если требования не могут быть сконструированы в существующую CMS. Я бы использовал CMS через корзину покупок, если бы коммерческий аспект был относительно тривиальным. Я удивлен, что вы не рассматриваете корзину с полки. Открытая корзина довольно расширяема, и у Trading Eye есть хороший компонент CMS.
В общем, я бы посоветовал придерживаться языка, который вы знаете для важных проектов, хотя мне нравится Python как язык гораздо больше, чем PHP, а Django – хорошая структура.
Drupal – это не только фреймворк, но и CMS. Вы можете создать интернет-магазин с некоторыми модулями ( Ubercart ), поэтому я бы рекомендовал попробовать это и посмотреть, подходит ли решение для ваших нужд.
Я предлагаю вам посмотреть репозиторий модулей Drupal – в частности, в группе электронной коммерции: http://drupal.org/project/modules?filters=tid:104&solrsort=sis_project_release_usage%20desc
Их тонна может помочь вам ускорить этот проект.
Если вы знаете PHP и хорошо разбираетесь в HTML / CSS / JS, вы тоже должны делать OK в Drupal.
Выберите Django, если вы хотите изучить Python / Django и использовать их в своих будущих проектах. Django классный, и вам будет интересно изучать Python. И вы сможете принять обоснованное решение для своего следующего проекта.
Однако, если у вас есть бюджет / таймфрейм или вы хотите сделать этот проект вне дома, не изучая новую структуру, я бы предложил выбрать инструмент / язык, с которым вы знакомы.
The Bricksett CMS создаст для вас веб-сайт, но вы также можете изменить его с помощью PHP для дополнительной функциональности. Измените свой CSS для лучшего внешнего вида. Макет также прост, но у него есть дизайн, отличный от других CMS.
Новое дополнение к CMS с открытым исходным кодом
У Yahoo есть что-то вроде специализированной CMS для интернет-магазинов под названием Yahoo Stores. Они упрощают создание интернет-магазина и предоставляют другие логистические услуги. Вы можете взглянуть на это. Конечно, они берут небольшой процент от ваших продаж.
ruphp.com
CMS или FRAMEWORK? / СТАТЬИ / IBRAIN. Экспертное агентство
Как правило готовая CMS - это ядро и ряд модулей, позволяющих сформировать функционал проекта. Модули при этом реализуются либо максимально универсальными, либо решающими одну конкретную задачу.
Прежде чем рассмотреть особенности конкретных «платформ», мы хотим прокомментировать несколько представлений, которые могут мешать объективному восприятию информации.
Бесплатные CMS не подходят для серьезного бизнеса
Вопрос цены - вопрос рисков. Да, технически на бесплатных CMS можно реализовать крупный коммерческий проект. Но в стоимость лицензии какой-либо коробки, как правило, входят определенные гарантии безопасности, надежности и тех. поддержка от разработчика.
Готовые системы управления контентом «тяжелые», а сайты, написанные с нуля, «легкие»
Отчасти это утверждение верно. Но только отчасти. При небольшом объеме данных любой сайт будет показывать достаточно хорошие показатели, но при росте данных и посетителей оптимизация будет занимать все больше сил и времени. Связано это с архитектурой заложенной в коробочные решения.
Преимущества CMS:
- Скорость. Если вам нужно стандартное решение, то шаблон с базовым функционалом можно создать за короткое время (несколько дней).
- Простота. Работа с CMS не требует от администратора большого опыта в разработке.
- Схожесть. Функционал разных CMS перекликается друг с другом, поэтому, разобравшись в одной системе, проще будет работать и в остальных.
- Доступность. Благодаря скорости создания шаблона, результат получается сравнительно недорогим.
- Специализация. Существуют специализированные CMS под определенный тип проекта (новостной портал, интранет и т.п.), и они вполне могут справиться с основными вашими задачами. Как минимум, рекомендуем изучить их возможности, прежде чем разрабатывать проект с чистого листа. К сожалению, это не относится к e-commerce платформам.
Недостатки:
- Ограниченность. Хоть у каждой CMS есть широкий функционал, большинство систем качественно решает весьма ограниченный круг задач. Зачастую приходится искать компромиссы и соглашаться с тем, что все ваши потребности не получится удовлетворить.
- Шаблонность. Как мы и говорили, CMS – это один конкретный набор модулей, заточенный под некую идеальную задачу, и в тоже время не подходящий на сто процентов никому.
- «Грязный» код. Некоторые CMS автоматически генерируют строки ненужного кода. А чтобы его почистить, потребуется немало сил и времени.
- Обновления. При обновлении CMS часть ваших доработок может исчезнуть или перестать работать. И в том и в другом случае вам потребуется привлечение специалиста.
Стоимость решения
Мы считаем, что не стоит принимать решение, исходя из стоимости лицензии, т.к. она растворится в общих затратах на содержание и развитие проекта.
ibrain.pro
CMS или Фреймворк
Часто на этапе подготовки к созданию сайта у вас, как у клиента, встает вопрос, что лучше выбрать CMS или Фреймворк. В этом вопросе важно понимать, обе платформы являются инструментами для создания сайтов, и прежде чем сделать выбор в пользу того или иного инструмента, важно понять какие задачи необходимо реализовать в интернет-проекте.
CMS
CMS – расшифровывается как Content management system, что дословно переводится, как “Система управления содержимым”. CMS часто называют “движком сайта”. Представляют они собой комплексное решение, имеющие в себе множество готовых модулей и шаблонов, что часто отпугивает заказчика. И этому есть объяснение. Начинающие разработчики не имеющие большой багаж знаний создают на CMS простые шаблонные сайты, которые уже давно всем приелись т.к не имеют индивидуальности, не отвечают требованиям заказчика и не приносит желаемого результата. Поэтому бытует мнение, что сайт на CMS – это шаблон.
Но не нужно ставить на CMS крест. При грамотном подходе и умении обращаться с данным инструментом можно создавать сложные проекты, которые по многим параметрам не уступят сайту на фреймворке. В портфолио нашей студии есть несколько «живых» примеров: http://bk-n.ru/, http://chaihona.online/.
Плюсы использования CMS:
- Надежность. CMS популярны, их использует большое количество людей, благодаря чему они тестировались на протяжении многих лет и все ошибки были исправлены. CMS дорабатываются и развиваются постоянно.
- Более низкая стоимость разработки сайтов. Наличие большого количество готовых модулей и плагинов позволяет разработчику сократить время на решения технических задач, что существенно сказывается на стоимости. Например, наличие в CMS административной панели, регистрации пользователей, личного кабинета и др., экономит время программиста, и ваши средства.
- Простота использования CMS. После сдачи сайта, вы самостоятельно можете редактировать, добавлять и удалять контент, не имея специальных знаний т.к интерфейс прост и удобен в использовании.
- При необходимости вы самостоятельно можете установить нужный плагин, не прибегая к помощи специалистов. CMS предоставляют хорошую поддержку пользователям.
- Дизайн сайта можно создать индивидуально в соответствии с пожеланиями. Использование стандартных шаблонов совсем не обязательно и уважающие себя студии этим не занимаются.
- Создание на CMS нестандартных технических решений возможно и активно практикуется в нашей студии. При невозможности использовать уже готовое решение, мы не отказываем заказчику, а разрабатываем необходимый инструмент самостоятельно.
Минусы использования CMS:
- Производительность CMS ниже чем у фреймоврков. Происходит это потому, что в CMS содержит в себе большое количество встроенных функций, которые не всегда нужны, но убрать их невозможно, их можно только скрыть.
- Ограничение в реализации проектов с нестандартной логикой и структурой.
Популярные представители: Drupal, WordPress, Joomla, DLE, UMI.CMS, MODx.
Фреймворк
Фреймворк – это платформа, облегчающая разработку и объединение разных компонентов большого программного проекта. Эта платформа подходит для создания сложных сайтов, бизнес-приложений и веб-сервисов. По большому счету это основа, не имеющая ни каких дополнительных функций и модулей.
Плюсы использования фреймворков:
- Высокая производительность кода. Быстрее работать могут только сайты, полностью написанные с нуля под конкретные задачи и цели.
- Безопасность. Фреймворки пишутся одними опытными программистами для других программистов и тщательно тестируются всем сообществом. Это позволяет вовремя заметить недостатки кода с точки зрения безопасности и устранить ошибки.
- Гибкость. Фреймворки позволяют решать любые задачи и создавать необходимый заказчику функционал. Имеется возможность использования готовых классов и библиотек, написанных другими программистами.
- PHP-фреймворки можно использовать параллельно с сайтом, разработанном на готовой CMS.
- Разработка на фреймворке (в отличие от «самописных» решений) позволяет добиться простоты сопровождаемости проекта.
- Проекты на базе фреймворков легко масштабируемы и модернизируемы.
Минусы использования фреймворков:
- Высокая стоимость разработки. Любой типовой функционал, необходимый каждому сайту, нужно писать с нуля, что занимает больше времени, и соответственно увеличивает стоимость.
- Отсутствие административного модуля. Необходимо самостоятельно создавать страницы для управления содержимым, авторизации, текстовые редакторы и т.д.
- Дорогое последующее обслуживание. Развитие или сопровождение готового сайта является трудозатратной задачей, даже для его разработчика.
- Отсутствие готовых модулей и плагинов, которые вы могли бы установить самостоятельно. Их нельзя скачать из интернета. Все доработки необходимо заказывать у разработчиков.
Популярные представители: Yii, Zend Framework, Symfony, Laravel, Phalcon, Codeigniter, Kohana.
Мы рассмотрели все плюсы и минусы, как CMS, так и Фреймворков. Решение всегда остается за вами, но прежде чем окончательно определиться с «движком» для сайта, рекомендуем вам посоветоваться с профессионалами. Возможно для реализации задуманного проекта нет смысла использовать фреймворк или тем более писать сайт с нуля, который обойдется дороже. Либо наоборот масштаб проекта такой, что CMS для него не подойдет и логичнее будет использовать фреймворк. Web-студия PressF1 всегда готова предложить Вам оптимальное решение поставленной задачи.
29 сентября 2016
pressf1.ru