#php #cms #framework
История со впадением в ступор при выборе скелета - знакома тем, кто делает сайты/сервисы радикально отличающиеся от магазинов, и сайтов-блогов/визиток. В итоге скелет для каждого нового проекта получается методом "удалим всё ненужное из старого проекта, вот и скелет!". Очень хочется прервать этот замкнутый круг, ведь возможно есть качественные скелеты? Теперь к конкретике: Под скелетом я понимаю нечто среднее между фреймворком из коробки (yii, zend например) и CMS (wordpress, bitrix например). То есть не только архитектурное устройство, что даёт фреймворк. Нужны также совсем базовые модули "под дописку". Какой скелет требуется конкретно нам, и возможно многим: Основан на любом из фреймворков с MVC, имеет модульную структуру Работа с БД идёт через ActiveRecord, приветствуется присутствие ORM Имеет на борту системные модули - работа с файлами с возможностью переключать хранилище (Storage), группа компонентов для общих вещей (вроде тикетов техподдержки, тегов, поиска, логгирования ошибок, и.т.п. модуль Utility). Модуль пользователя с авторизацией через соцсети, с возможностью требования некоторых перс-данных для получения полноценного статуса (User). Не обязательно, но желательно с модулем оповещений по СМС/на-почту/на-сайт. Минималистичная работа с контент-страницами (Article). Не обязательно, но желаемо - платёжный модуль: балланс пользователя, услуги и подписка, экваеринг (Billing). Не обязательна даже админка, тем более не требуются системные вещи вроде компиляции css, сборка react (как в magento). Проблема в том, что в основной массе для web штампуются интернет-магазины, блоги, и визитки. Как только появляется необходимость иного сервиса - нам вот приходится либо тянуть громоздкий код за собой, либо писать с нуля(неизвестно даже что быстрее и лучше выходит). Можно было бы обрезать модули одной из существующих CMS - но во первых: не помню бесплатных CMS, которые активно используют ActiveRecord (это важное требование), во вторых они все очень избыточны запутаны: то есть апгрейд заточен там под обновления от авторов CMS/модулей и настройку модулей, а не под "дописку" кода. И даже если несмотря на всё выбрать дописку CMS - это отказ от обновления - а это в свою очередь делает систему недолговечной в плане безопасности. Но может быть мы отстали, и подобных качественных скелетов уже много? Или в общем альтернатив нет? Подскажите пожалуйста, на какие продукты стоит обратить внимание. P.S. Вопрос не совсем в тематике SO, так как предполагает в ответе мнение о скелете, тем не менее для автора он очень горяч и актуален.
Ответы
Ответ 1
Я могу порекомендовать обратить внимание на фреймворк Laravel в связке с админкой Sleeping Owl для создания типовых crud-операций. Laravel -- один из наиболее популярных PHP-движков в Европе, сейчас это там стандарт де факто. В качестве подтверждения могу привести линк на stackoverflow trends. Каким вашим требованиям удовлетворяет: модульная структура mvc из коробки (впрочем, это сейчас во всех популярных движках), поддержка роутингов, контроллеров, миддлвари и т.п. ActiveRecord из коробки и ORM из коробки (с учётом модульности -- можно заменять на другие варианты) имеет модуль работы с файловой системой (абстракция, которая поддерживает не только локальные файлы, но и работу с облачными файловыми системами) интеграция с соцсетями из коробки, возможно придётся для каких-то соцсеток писать собственные провайдеры -- но проще поставить пакет Socialite Crud-админки не являются частью движка, нужно ставить сторонние решения поверх. Одна из самых популярных админок -- Sleeping Owl, поддерживается русскоязычным коммьюнити, шлёпать админки с ней -- одно удовольствие. Работа с контент-страницами тоже часть админки -- поэтому описываю в этом пункте. Чего нет в коробке: Работа с тикетами Билинг Корзина покупок (можно поискать готовые модули, например Crinsane или создать свой)Ответ 2
Первое, что приходит в голову - MaxSite CMS , сама по себе освнована на MVC фреймворке CodeIgniter и ориентирована как раз на то, что дописывать модули и виджеты будете сами. а по большому счету полностью универсальных решений не бывает, тут либо смириться с недостатками существующих CMS, или писать что-то свое под свои целиОтвет 3
Рекомендую Yii2 фреймворк. На мой взгляд, это лучшая платформа из всех фреймворков и CMS с которыми я когда-либо работал. Там есть все, о чем вы просили. Если будете выбирать фреймворк, то только Yii2, и никакой ни Laravel, как пишут в другом ответе! Там и половины нет тех возможностей, что есть в Yii2. Перечислю основные плюсы специально в вашем контексте: Мощный встроенный инструмент генерации кода. Админки любой сложности штампуются на раз, и безо всяких ошибок в коде. Расширений под Yii написано масса, и это далеко не базовые модули. Найти можно все что угодно. ActiveRecord, Виджеты, RESTful API, генерация документации, PJAX с которым вообще забываешь про написание AJAX-ов в backend, мощная система ролей RBAC, I18N со сканированием всего проекта, разделение приложения на frontend и backend и много другого. Один минус - порог вхождения не малый. В тот же Laravel гораздо проще стартануть, но и возможностей будет намного меньше. Удачи с выбором! ;)
Комментариев нет:
Отправить комментарий