Содержание
mvc cms с поддержкой плагинов | PHPClub
robot
Новичок
#1
Здравствуйте!
Как лучше сделать mvc систему с поддержкой плагинов. Например контроллер administrator отвечает за редактирование пользователей (удаление, редактирование) необходимо добавить новую функцию в этот контроллер. Пользователь загружает плагин, как он будет взаимодействовать с системой.
P.S. Сам думаю плагин это класс. Администратор запрашивает например редактирование пользователя. Если метод редактирования не находиться в контроллере, он ищется в классах плагинов. Это правильное решение?
scorpion-ds
Новичок
#2
robot написал(а):
P.S. Сам думаю плагин это класс. Администратор запрашивает например редактирование пользователя. Если метод редактирования не находиться в контроллере, он ищется в классах плагинов. Это правильное решение?
Нажмите для раскрытия…
Это слишком общение решение.
Если это некий фреймверк, то там можно просто расширять функционал «классов» наследованием, но плагинами я бы это не назвал.
В моем понимании, CMS поддерживающая плагины должны поддерживать события, а плагин соответственно уметь использовать эти события.
Вурдалак
Продвинутый новичок
#3
scorpion-ds написал(а):
Если это некий фреймверк, то там можно просто расширять функционал «классов» наследованием, но плагинами я бы это не назвал.
Нажмите для раскрытия…
Наследование головного мозга?
Всё правильно — event dispatcher, делаешь в ключевых точках события и подписчики (плагины) этого события могут делать что угодно.
Сейчас Drupal 8 вроде как использует компоненты Symfony, можешь попробовать погуглить.
HraKK
Мудак
#4
Тебе стоит ничего не писать своего, еще пару лет.
Прочитай Банду, Фаулера, Макконели и т.д. Возьми поучи Symfony 2. И тогда после 2-3 лет можешь садиться писать свою цмс. Но думаю уже расхочется.
Вурдалак
Продвинутый новичок
#5
HraKK, если ничего не писать своего, то никогда не будет понятно зачем нужно чужое. Учатся на своих ошибках, а понять почему в Symfony этот дурацкий и сложный DIC, когда можно заюзать singleton, понятно новичку не будет.
HraKK
Мудак
#6
Вурдалак, я не против. Но надо что-то делать близкое или чуть выше тебя по уровню. Согласись если сразу начать с атомного реактора, закончишь печально.
scorpion-ds
Новичок
#7
Вурдалак написал(а):
Наследование головного мозга?
Нажмите для раскрытия. ..
Я имел ввиду, что к примеру в Symfony функционал бандлов можно расширять или изменять, наследуя оригинал. Но это конечно ни какие не плагины.
robot
Новичок
#8
А что если система хуков как в вордпресс?
Вурдалак
Продвинутый новичок
#9
robot, а ты можешь аргументировать чем она лучше, чем EventDispatcher в Symfony?
robot
Новичок
#10
Я просто спрашиваю ваше мнение.
Вурдалак
Продвинутый новичок
#11
robot, система хуков в WordPress — говно.
robot
Новичок
#12
Ну, сколько людей столько и мнений.
Вурдалак
Продвинутый новичок
#13
robot написал(а):
Я просто спрашиваю ваше мнение.
Нажмите для раскрытия…
Вурдалак написал(а):
robot, система хуков в WordPress — говно.
Нажмите для раскрытия…
robot написал(а):
Ну, сколько людей столько и мнений.
Нажмите для раскрытия…
А зачем тогда спрашивать чужое мнение?
WMix
герр M:)ller
#14
— солдат, почему сапоги не начищены?
— вас это не касается, товарищь генерал!
удар кулаком
— повторяю вопрос, почему сапоги не начищены?
— гуталина нет!
— меня это не касается.
— ну я же говорил
grigori
( ͡° ͜ʖ ͡°)
#15
robot, каждый здесь был на твоем месте помню, как HraKK писал свой фреймворк лет 7 назад, scorpion-ds писал CMS-ку,
ты можешь сделать что угодно, но все это уже было и, через 5 лет, если не сменишь профессию, ты скажешь то же самое
Dez
Новичок
#16
хочешь через алминку устанавливать свои плагины?
robot
Новичок
#17
robot, система хуков в WordPress — говно.
Нажмите для раскрытия…
можете ли обосновать, почему. Понимаю, каждый делает свою систему, я не исключение. Делаю, просто так, для себя.
Сравнение платформ
PHP CMS | Artemis Consulting, Inc.
За последнее десятилетие цифровой контент продолжал завоевывать популярность благодаря постоянно растущему числу новых технологий, используемых для его создания и поддержки. Газеты постепенно переместились на веб-сайты с платным доступом, а общение между людьми переместилось на сайты социальных сетей. У компаний теперь есть целевые страницы для связи со своими клиентами, а государственные учреждения перевели многие свои операции и службы поддержки в онлайн, чтобы обслуживать граждан, создавая опыт гражданства.
По мере развития оцифрованного контента количество систем управления контентом (CMS) — программного обеспечения, которое позволяет конечным пользователям легко управлять веб-сайтами путем создания, изменения или удаления цифрового контента, также увеличилось. В CMS, используемой для веб-сайтов, существует очень широкий спектр настроек. Некоторые пользователи предпочитают опыт, ориентированный на веб-разработчиков, и им требуется более универсальный и сложный инструмент, который позволяет настраивать их потребности. Другие предпочитают более нетехнический, удобный для пользователя опыт и автоматизированное взаимодействие. Независимо от предпочтений, каждая CMS ориентирована на одну и ту же цель, но может использовать разное распределение инструментов.
Artemis Consulting уже много лет использует платформы CMS с открытым исходным кодом, как указано на странице возможностей, посвященной внедрению технологий с открытым исходным кодом.
WordPress – самая популярная CMS на основе PHP
Впервые выпущенная в 2003 году, WordPress была создана как инструмент для типографики и улучшения написания блогов. На протяжении многих лет платформа продолжала разрабатывать новые инструменты и стала одной из самых популярных платформ на основе PHP: почти 40% веб-сайтов по всему миру работают на WordPress. Благодаря удобному интерфейсу и среде SEO, позволяющей тем, у кого мало знаний в области программирования или HTML, создавать веб-сайты и управлять ими, популярность WordPress также распространилась на федеральное правительство. Федеральное правительство начало использовать его для цифрового контента, в частности, из-за акцента WordPress на доступности для людей с ограниченными возможностями.
Еще одним преимуществом использования WordPress является то, что он предлагает специализированные плагины для электронной коммерции, которые позволяют обычному пользователю WordPress, с некоторой практикой, создавать свой собственный цифровой магазин, настраивать учетные записи пользователей, платежные шлюзы, коммерческий контент и многое другое. Узнайте больше о WordPress в одном из наших предыдущих блогов Почему стоит выбрать WordPress .
Технические особенности и преимущества WordPress
- Требуется PHP 5.6, но предпочтительнее PHP 7.3 или выше
- Имеет собственную структуру PHP, известную как Themosis
- Требует MySQL 5. 6 или выше или базы данных MariaDB 10 или выше
- Использует Nginx, Apache или Microsoft IIS с серверами приложений модуля mod_rewrite
- Использует библиотеки JavaScript jQuery и React Js с Gutenberg повторно используемые блоки
- Имеет встроенные сервисы REST API
- Одно из крупнейших доступных сообществ с открытым исходным кодом
- Крупнейший репозиторий тем и плагинов, как платных, так и бесплатных
- Встроенный механизм, оптимизированный для поисковых систем
- Стандартная совместимость с WCAG 2.0 AA, административный интерфейс и темы по умолчанию
- Можно установить более 68 языков
- Простота обучения для конечного пользователя
Drupal — вторая по популярности
С момента своего запуска в 2000 году эта платформа была очень универсальной и мощной; однако у пользователей была крутая кривая обучения. Последние обновления значительно улучшили эту проблему. Поскольку платформа визуально приятна и практична без потери элементов программирования, она занимает второе место по управлению цифровым контентом после WordPress. Хотя только около двух процентов всех веб-сайтов по всему миру используют Drupal в качестве своей CMS, этот процент по-прежнему составляет более миллиона веб-сайтов. Он также часто используется государственными веб-сайтами, в частности, из-за его функций безопасности по сравнению с другими продуктами CMS.
В отличие от плагинов WordPress, Drupal использует модули с темами. В зависимости от темы Drupal можно модифицировать под нужды пользователей и работать в соответствии с их спецификациями. Из-за универсальности и сложности этой платформы CMS многие конечные пользователи, решившие использовать Drupal, нанимают опытного человека, который хорошо разбирается в инструментах.
Возможности и преимущества Drupal
- Требуется PHP 7 или выше
- Поддерживает серверы баз данных MySQL, MariaDB, PostgreSQL или Percona
- Использует веб-платформы Apache, Nginx или Microsoft IIS
- Использует PHP Symfony framework
- Имеет встроенные службы REST API
- Лучшая PHP CMS для сайтов с высоким трафиком шифрование данных доступно «из коробки»
- Можно установить более 90 языков
Joomla — создание сложных сайтов
Простота управления Joomla делает ее конкурентоспособной с WordPress. Он требует минимальных инструкций и имеет в основном готовые автоматизированные функции, что позволяет пользователям быстро создавать веб-сайты и легко редактировать контент. Тем не менее, он известен как хороший вариант для создания более сложных сайтов, если требуется настройка, но, скорее всего, потребуется помощь разработчика.
Однако у Joomla не так много вариантов расширений, как у других CMS, и она лучше подходит для компаний, у которых есть технические ресурсы. В отличие от других CMS, для которых требуются расширения или плагины, Joomla имеет готовую многоязычную функцию, которая позволяет пользователям переключать языки.
Возможности и преимущества Joomla
- Требуется PHP 5.3, но предпочтительнее PHP 7.3 или выше
- Поддерживает базы данных MySQL, SQL Server и PostgreSQL
- Использует Symfony framework
- Использует серверы приложений Nginx, Apache или Microsoft IIS
- Может создать собственный веб-сайт электронной коммерции с онлайн-механизмами, доступными в интегрированных системах Adobe, Magento — это платформа CMS, специально разработанная для электронной коммерции. Как и любая хорошая CMS, она очень гибкая и может быть адаптирована под любой тип дополнительного контента.
Magento продолжает превращаться в одну из самых популярных платформ для создания веб-сайтов электронной коммерции. Его последние обновления зарекомендовали себя как чуткий инструмент для решения запросов сообщества, а также обеспечивают отличные стандарты безопасности.
Благодаря совместимости и простоте управления более 300 000 интернет-магазинов в настоящее время используют Magento для работы, и его сообщество ежедневно растет, что постоянно улучшает информацию для пользователей и поддержку.
Возможности и преимущества Magento
- Требуется PHP 7.4 или выше
- Поддерживает базы данных MySQL, MariaDB и Percona электронная коммерция
- Широкие возможности настройки, но требует навыков программирования
- Доступна расширенная система отчетности
- Удобный конструктор страниц доступен из коробки
Typo3 – корпоративная клиентура
Известная среди крупных компаний платформа CMS Typo3 обладает хорошей совместимостью с большинством операционных систем — Windows, Linux, FreeBSD и macOS.
Typo3 стремится быть гибким для обычного пользователя, позволяя управлять контентом отдельно от кода, тем самым упрощая управление обоими. Он предлагает широкий спектр настраиваемых функций, а также возможность управления крупными интеграциями.
Эта платформа имеет большое сообщество, которое постоянно растет, поэтому она предоставляет права на изменение кода на уровне предприятия. Для обычного пользователя поначалу это может быть сложно, так как его настройка несколько сложна. Существует всего несколько руководств по управлению этой платформой, поэтому пользователи зависят от инструкций или советов сообщества, чтобы учиться быстрее.
Возможности и преимущества Typo3
- Создан на PHP с использованием среды Symfony
- Поддерживает базы данных MySQL, PostgreSQL и SQLite.
- Работает на веб-серверах Apache, Nginx, Microsoft IIS или Caddy. управление контентом, а также простые в настройке автоматизированные модули рабочего процесса и планирования
- Поддержка CRM и ERP
- Можно установить более 50 языков содержание, Concrete5 имеет одну из самых полных панелей инструментов для письма на рынке и является очень гибким и мощным инструментом. Разработанный для работы на любом устройстве, он позволяет веб-сайтам реагировать на любой размер экрана. Он также содержит SEO-оптимизацию и инструменты для социальных сетей, что позволяет владельцам веб-сайтов находить больше посетителей для своего сайта.
Выпущенная под лицензией MIT, Concrete5 является весьма уважаемой CMS. Он имеет эффективную систему безопасности, которая поставляется с поддержкой SSL, историей входа в систему, одобрением контента, капчей, контрольным журналом, проверкой электронной почты и многим другим. Известно, что он чрезвычайно прост в использовании и расширении, и его можно использовать для управления сайтами с небольшими знаниями в области программирования.
Concrete5 Особенности и преимущества
- Требуется PHP 5.5 или выше
- Использует инфраструктуру PHP на основе архитектуры Model View Controller (MVC)
- Поддержка баз данных MySQL и MariaDB
- Поддержка веб-серверов Apache, Nginx и Microsoft IIS
- Модульное построение и шаблоны
- Простое создание форм и сбор данных Изучение CMS
По сравнению с другими платформами CMS, Moodle является одним из лучших вариантов PHP с открытым исходным кодом для управления контентом электронного обучения. Многие преподаватели создали полные учебные программы с помощью этой платформы CMS. Дизайн этой CMS ориентирован на LMS (систему управления обучением), поддерживая преподавателей или педагогов, предоставляя учащимся надежную систему онлайн-обучения для создания индивидуальной учебной среды. Название Moodle расшифровывается как Modular Object-Oriented Dynamic Learning Environment.
Moodle — это простая в использовании платформа с бесплатными лицензиями, которая регулярно получает обновления и улучшения для своих постоянных клиентов. Предлагая гибкость и настройку, Moodle позволяет пользователям создавать онлайн-классы, викторины и даже блоги. Его программа довольно мощная и имеет хорошие стандарты безопасности и защиты своего контента.
Возможности и преимущества Moodle
- Требуется PHP 5.5 или выше
- Поддерживает базы данных MySQL, MariaDB и PostgreSQL
- Поддерживает веб-сервер Apache
- Имеет собственную настраиваемую структуру на основе MVC
- Доступна невероятно подробная система отчетов и журналов
- Несколько вариантов отслеживания прогресса для любого типа курса или экзамена
- Персонализированная панель управления для преподавателей и студентов данные с использованием открытых отраслевых стандартов
- Можно установить более 100 языков
OctoberCMS – лучшая CMS с плоскими файлами
Будучи CMS с плоскими файлами, база данных и функциональные возможности OctoberCMS сильно отличаются от процессов, используемых в других популярных системах управления контентом, и являются полная смена окружения на уровне разработки. Она получила награду как лучшая CMS с плоскими файлами, которая не имеет базы данных и извлекает содержимое из текстовых файлов.
Несмотря на то, что это относительно новая CMS, она позволяет расширять свою основную функциональность за счет использования примерно 700 различных плагинов, что делает ее гибким инструментом для адаптации к любому использованию. Его можно использовать для ведения блога, электронной коммерции, управления данными и многого другого.
Возможности и преимущества OctoberCMS
- На основе Laravel PHP framework
- Поддерживает MySQL, MariaDB, SQLite и PostgreSQL для серверной части
- Использует базу данных плоских файлов для внешней структуры
- Использует веб-серверы Apache, Nginx, Lighttpd и Microsoft IIS
- Внешний интерфейс использует Twig Tempting Engine
- Встроенная поддержка CDN
- Параметр командной строки доступен в дополнение к установке мастера, как и другие CMS
- Назад -end отзывчивый и исключительно чистый с учетом UX
- Предварительный просмотр в реальном времени доступен при наборе текста
- Плагины, отвечающие определенным критериям и качеству, проходят процесс проверки
Заключение
Таким образом, мы предоставили некоторую базовую информацию о восьми наиболее популярных системах управления контентом на основе PHP, доступных для создания веб-сайтов и управления ими. Мы надеемся, что это поможет пользователям решить, какие из них лучше всего соответствуют их потребностям. В таблицах ниже представлено сравнение восьми систем управления контентом на основе PHP по некоторым основным функциям и преимуществам, описанным выше.
В Artemis Consulting мы оцениваем ряд факторов при определении того, какая CMS подходит для наших клиентов, включая профиль пользователя, стоимость инструментов, надстроек и расширений, а также системные требования и совместимость.
WordPress Друпал Джумла Мадженто Описание Самая популярная CMS с открытым исходным кодом Используется для корпоративных проектов и быстро загружается. Не так удобен для пользователя, часто требуется разработчик Известен созданием сложных веб-сайтов, для которых требуется разработчик; но автоматические функции позволяют легко редактировать контент и управлять веб-сайтами без дополнительной настройки CMS Adobe для электронной коммерции с множеством готовых функций; премиум-функции требуют платной подписки Технические требования Лицензия GNU GPL GNU GPLv2+ GNU GPL ОСЛ вер. 3 / AFL вер. 3 Каркас Фемосис Symfony Symfony Зенд Поддерживаемые базы данных MySQL, MariaDB MariaDB, Microsoft SQL Server, MySQL, Oracle, Percona Server, PostgreSQL, SQLite MySQL, PostgreSQL, SQL Server MySQL, MariaDB Серверы приложений Nginx или Apache или Microsoft IIS с модулем mod_rewrite Apache, Nginx, Microsoft IIS Apache, Nginx, Microsoft IIS Апач, Nginx Основные характеристики/функциональность Простота использования Легкий Несколько сложно Умеренный Умеренный Защита безопасности Средний Высокий Низкий Средний Оптимизация для SEO Отлично Хорошо Ярмарка Отлично Многоязычные опции Требуемые плагины Готово Готово Готово Специальность сайта Блоги Готово Готово Требуются расширения Требуются надстройки Электронная торговля Требуемые плагины Готово Требуются расширения Готово Электронное обучение Требуемые плагины Требуемые модули Требуются расширения Требуются надстройки Типо3 Бетон5 Мудл ОктябрьCMS Описание Используется в основном на уровне предприятия, конкурируя с Drupal .
Предпочтение отдается веб-разработчикам, которым нравится полный контроль над своими сборками с использованием подхода MVC Одна из самых популярных систем управления обучением CMS с плоскими файлами, легкая, с современным дизайном и небольшим, но медленно растущим сообществом Технические требования Лицензия GNU GPL Массачусетский технологический институт GNU GPL Массачусетский технологический институт Каркас Symfony Пользовательская платформа на основе MVC Пользовательская платформа на основе MVC Ларавель Поддерживаемые базы данных MySQL, PostgreSQL, SQLite MySQL, MariaDB PostgreSQL, MySQL, MariaDB Плоский файл, MySQL, MariaDB, PostgreSQL, SQLite Серверы приложений Apache, Nginx, Microsoft IIS, сервер Caddy Apache, Nginx, Microsoft IIS Апач Apache, Nginx, Lightttpd, Microsoft IIS Основные характеристики/функциональность Простота использования Умеренный Легкий Умеренный Умеренный Защита безопасности Умеренный Умеренный Высокий Умеренный Оптимизация для SEO Хорошо Ярмарка Ярмарка Плохо, требуются плагины Многоязычные опции Готово Готово Языковой пакет Требуется Требуются плагины Специальность сайта Блоги Требуются надстройки Требуются надстройки Готово Требуются плагины Электронная торговля Требуются надстройки Требуются надстройки Требуются надстройки Требуются плагины Электронное обучение Требуются надстройки Нет Готово Требуются плагины php MVC: будущее CMS?
Шаблон проектирования MVC (модель, представление, контроллер) не новинка. Он существует с 70-х годов и впервые был представлен на коммерческой основе в 1980. В настоящее время он стал наиболее эффективным и действенным способом кодирования с использованием многих фантастических фреймворков, таких как cakePHP , Codeigniter , Symfony и Ruby on Rails , и это лишь некоторые из них. Конечно, есть много других фреймворков на выбор.
В последнее время я размышлял о том, как основные CMS структурируют свои системы, и о медленном внедрении фреймворков MVC.
За свою короткую карьеру веб-разработчика я использовал много CMS, и мне становится все более очевидным, что большинство из них были основаны на предыдущих более старых версиях. Это очень затрудняет переход платформы на новый шаблон проектирования, поскольку зависимость от устаревшего кода увеличивается с каждой версией.
Я не буду подробно описывать каждую CMS, так как их слишком много, чтобы сосчитать. Я рассмотрю 3 основных игрока, так как у меня есть опыт работы с этими системами:
- WordPress
- Друпал
- Джумла!
Источник: trend. builtwith.com/cms
Глядя на статистику, мы видим, что только 2 из пяти лучших используют фреймворк MVC (Joomla! и, в некоторой степени, ExpressionEngine).
vBulletin использует MVC, но не является полноценной CMS (хотя она и находится в разработке), поэтому я не буду ее рассматривать.
Джумла!
Я получу Joomla! в первую очередь, так как я довольно предвзято отношусь к этой CMS. Я долгое время разрабатывал его из-за его природы MVC и логической структуры.
Джумла! была пионером в этой технологии, создав собственную среду MVC для поддержки своей CMS. Этот фреймворк можно использовать отдельно или вместе с Joomla! CMS на высоте. Мощный фреймворк действительно подводит только основная основная функциональность CMS. Но поскольку существует структура MVC, ее очень легко расширять и разрабатывать.
Многие разработчики говорят о Joomla! как начинающая CMS, но на самом деле она обслуживает людей, практически не имеющих опыта программирования, вплоть до продвинутых разработчиков, желающих использовать полноценную среду MVC. Что делает его действительно мощным.
Жаль, что его использование постепенно снижается.
WordPress
За последнее десятилетие WordPress стал крупнейшей CMS в сети с точки зрения использования. Благодаря простому в использовании бэкенду, обширной системе хуков и простой системе шаблонов. Он стал одним из самых простых для расширения и развития.
Но, несмотря на то, что разработчикам очень легко создавать WordPress, он на самом деле не построен поверх какой-либо платформы.
Выиграет ли WordPress от использования фреймворка MVC?
По-моему, да. Я бы сказал, что это просто идеально для такой структуры. На низком уровне, если вы посмотрите на его структуру, это, по сути, платформа для ведения блогов, которая была изменена, чтобы стать CMS. Структура блогов все еще существует, например, The Loop.
Очень простым примером может быть то, что мы могли бы иметь разные представления для разных категорий блога и использовать разные модели для извлечения различной информации, никогда не покидая контроллера для блога.
Перейдет ли WordPress на платформу MVC?
Не спрашивая разработчиков, я бы этого не ожидал. WordPress является доминирующей силой в Интернете, потому что его может использовать широкий круг пользователей, от начинающих до продвинутых разработчиков и тематоров. Я очень сомневаюсь, что разработчики рискнут оттолкнуть людей, которые хотят создать быструю и простую платформу для создания собственного сайта/блога.
WordPress, вероятно, не перейдет на MVC-фреймворк, но если они хотят продолжать расти, я считаю, что разработчикам нужно хотя бы рассмотреть возможность лучшей структуризации своего рабочего процесса. Или даже просто сделать разработку более объектно-ориентированной.
Drupal
Drupal, без сомнения, самая мощная среди четырех CMS. Это CMS, созданная разработчиками для разработчиков. Тем более удивительно, что он не следует текущей тенденции использования шаблонов проектирования MVC. Однако он использует шаблон проектирования PAC (презентация, абстракция, управление) .