Webasyst – это фреймворк для проектирования систем управления контентом (CMF) с открытым исходным кодом на основе языков программирования PHP и JavaScript. Распространяется со встроенным графическим интерфейсом для управления пользовательскими данными и веб-сайтами.
От фреймворков общего назначения Webasyst отличается более узкой специализацией — в нём содержится описание логики для работы с несколькими сущностями, которые могут быть полезны прежде всего для работы бизнеса: контакт, пользователь, валюта, заказ, платёжная транзакция, рабочий процесс.
Основное назначение Webasyst в качестве фреймворка — быстрая разработка онлайн-приложений для управления бизнесом. Создаваемые приложения могут использоваться для управления данными и публикации веб-сайтов.
В июне 2023 года обнаружено более 17 000 действующих веб-сайтов, созданных с помощью Webasyst. Пример популярного в Рунете онлайн-приложения, созданного с использованием Webasyst, — Shop-Script.
Публичный репозиторий проекта на GitHub: https://github.com/webasyst/webasyst-framework/. Исходный код доступен под лицензией LGPL.
Webasyst разрабатывается российской компанией «Артикус» начиная с 2011 года.
Системные требования Веб-сервер: Apache + mod_php либо nginx/lighttpd + FastCGI. Веб-сервер IIS номинально поддерживается, но разработчиком не рекомендуется. Стандартной конфигурацией для работы Webasyst является сочетание Apache + mod_php. На сайте фреймворка также доступен пример конфигурации для веб-сервера nginx.
PHP: Версия 7.4.24 или выше.
Обязательные расширения PHP: mbstring, iconv, JSON, cURL, Imagick или GD, dom/xml, Zlib.
MySQL: Версия 4.1 или выше.
Особенности
основная поддерживаемая кодировка символов: UTF-8; поддержка интернационализации: Gettext; основные языки интерфейса: русский (Российская Федерация) и английский (США), допускается подключение других языковых локалей; поддержка СУБД: MySQL; парадигмы проектирования: ООП, MVC, одиночка, фабрика; поддержка API для управления пользовательскими данными и доступа к ним из внешних систем; поддержка ЧПУ; маршрутизация HTTP-запросов с возможностью применения регулярных выражений; автозагрузка PHP-классов и автоматическое подключение HTML-шаблонов благодаря их хранению в файлах со стандартизированными именами; поддержка автоматических скриптов, выполняющихся при установке обновлённых версий программных продуктов; встроенный шаблонизатор HTML: Smarty; встроенная библиотека JavaScript: jQuery; поддержка нескольких механизмов кеширования; поддержка отправки push-уведомлений; поддержка подключения к CDN-провайдерам; встроенная реализация подключения к нескольким популярным веб-сервисам авторизации по протоколу OAuth версии 2.0; поддержка событий для интеграции программных продуктов между собой; встроенная реализация нескольких видов капчи; встроенный механизм обработки HTTP-запросов от платёжных систем для обработки статусов платежей; встроенный механизм автоматического формирования Sitemap-файлов для веб-сайтов; поддержка тем оформления для страниц сайтов; консольные команды для автоматизации рутинных действий разработчика: для создания новых программных продуктов, генерации служебных файлов для них, сборки программных продуктов для публикации и т. п.; поддержка мобильных устройств; автоматизированная установка новых версий фреймворка и созданных на его основе программных продуктов.
Разработка На сайте фреймворка доступна документация для разработчиков с пошаговыми описаниями создания разных видов программных продуктов:
приложений; плагинов: специализированных плагинов для расширения функциональности отдельных приложений; общих плагинов, которые могут использоваться сразу несколькими приложениями: для расчёта стоимости и сроков доставки заказов и подключения к внешним сервисам доставки; для приёма платежей и подключения к внешним платёжным системам; для отправки сообщений через внешние SMS-сервисы. виджетов; тем дизайна.
Пример кода на PHP class guestbookFrontendAction extends waViewAction { public function execute()
$model = new guestbookModel();
if (waRequest::method() == 'post') { $name = waRequest::post('name'); $text = waRequest::post('text');
if ($name && $text) { $model->insert([ 'name' => $name, 'text' => $text, 'datetime' => date('Y-m-d H:i:s') ]);
$records = $model->order('datetime DESC')->fetchAll(); $this->view->assign('records', $records);
Функциональность для конечных пользователей После установки Webasyst пользователю доступно несколько встроенных приложений:
«Инсталлер» — для установки других программных продуктов и обновлённых версий из официального каталога, «Сайт» — для создания веб-сайтов, «Настройки» — для управления общими настройками пользовательского пространства и сайтов, «Команда» — для настройки прав доступа пользователей.
Дополнительные приложения, плагины, виджеты и темы дизайна можно устанавливать с помощью встроенного приложения «Инсталлер», а также вручную — из файла с дистрибутивом.
Дашборд и виджеты Кроме приложений, пользователю доступен также специальный раздел «дашборд» для просмотра истории выполненных действий и для управления виджетами – небольшими информационными блоками, отображающими различные параметры работы сайтов и приложений.
Веб-страницу с виджетами можно просматривать также на экране телевизора с поддержкой онлайн-трансляций.
На дашборде можно публиковать объявления для выбранных сотрудников. Имеется возможность публиковать запланированные сообщения для указанного периода времени.
Искусственный интеллект При написании объявлений на дашборде можно использовать встроенную функцию генерации текста с использованием искусственного интеллекта.
Аутентификация Доступ к пользовательскому пространству защищён системой аутентификации, для работы которой в системных настройках можно активировать один или несколько следующих вариантов:
с логином и паролем; по одноразовому числовому коду, отправляемому в email- или SMS-сообщении; с использованием сервиса Webasyst ID, работающего на основе протокола OAuth версии 2.0.
Настройка веб-сайтов С помощью одной установленной копии Webasyst пользователи могут управлять неограниченным количеством сайтов с разными доменными именами.
Для каждого сайта можно настроить:
маршрутизацию HTTP-запросов в рамках разных разделов сайта разными приложениями; перенаправления; дизайн и содержимое страниц; личный кабинет для посетителей и способ авторизации для входа в него; использование HTTPS-подключения; содержимое файла robots.txt; содержимое файла favicon; подключение к CDN-сервисам. Подключение к ситуационному центру сайта Мироланд для пользователей
Новый интерфейс В апреле 2021 года добавлена поддержка программного инструментария для создания обновлённого интерфейса пользователя. Для помощи разработчикам в переходе на новый режим интерфейса выпущено приложение «UI» со встроенной документацией.
Мнения
Платформа чаще всего ассоциируется с созданием интернет-магазинов. Сложный для освоения и непривычный для новых пользователей веб-интерфейс по сравнению с другими CMS. Мало возможностей для изменения дизайна страниц сайтов без навыков программирования. Устаревший интерфейс пользователя (до внедрения поддержки нового интерфейса в 2021 году).
См. также
1С-Битрикс: Управление сайтом
Примечания