0

Товар успешно добавлен в корзину

Оформить заказ

Обзор изменений в январском релизе ReadyScript

Опубликованную функциональность в сегодняшнем обновлении можно охарактеризовать как набор важных инструментов для реализации очень разнообразных идей в виде модулей для платформы ReadyScript. Текущее обновление будет наиболее интересно для разработчиков.

Добавлена возможность блокировки IP адресов и диапазонов IP адресов

Если вы обнаружили, что на ваш сайт идет нежелательный трафик со стороны отдельных IP адресов или целых диапазонов адресов, то теперь вы можете заблокировать таких посетителей прямо из панели администрирования вашего сайта. Для этого достаточно перейти в раздел Управление -> Настройки системы -> блокировка IP адресов. IP адрес можно заблокировать бессрочно или только на ограниченный период времени.

Блокировка IP адреса происходит на самом низком уровне так, что отклоняемые запросы не создают нагрузки на сервер. Этот инструмент можно использовать для отражения простых случаев ddos атак.

Данный инструмент позволяет разработчикам создавать различные модули безопасности, аналитические модули, которые могут на основе каких-либо выводов блокировать/разблокировать нежелательные IP адреса.

Добавлена функциональность внутреннего планировщика заданий

Это, пожалуй, самая важная изюминка данного обновления, так как в руках разработчиков теперь появилась возможность выполнять отложенные задания, планировать выполнение заданий в определенное время и просто выносить обслуживающие сервисы в фоновую обработку.

Как это работает? Пользователю требуется настроить ежеминутный запуск файла /core/cron/cron.php. Полная инструкция по настройке представлена у нас в документации. Далее в системе ежеминутно начинает генерироваться событие с названием cron. Любой модуль может подписаться на данное событие и выполнить свой код. В событие передается параметры, которые позволяют гибко настраивать запуск в назначенную дату, время или через необходимый интервал. Подробная инструкция по работе с функциями планировщика представлены в нашем руководстве разработчика.

Для пользователей интернет-магазина в облаке ReadyScript, планировщик уже настроен. От пользователя не требуется производить никаких дополнительных действий по настройке.

Изменена архитектура модуля меню(menu)

Пункты меню больше не хранят свои статьи в разделе Веб-сайт->Контент. Редактировать «статейный» пункт меню теперь можно только в разделе Веб-сайт->Меню. Задавать мета теги можно только с помощью раздела Веб-сайт->Заголовки, мета-теги. Таким образом была полностью исключена путаница связанная с управлением текстами в пунктах меню.

Помимо этого сторонним модулям делегированы права на создание новых типов меню. Для получения списка возможных типов в системе добавлено событие menu.gettypes. Любой сторонний модуль может обработать событие и предложить свой тип меню(потомок класса \Menu\Model\MenuType\AbstractType). В каких случаях это нужно? Рассмотрим ситуацию, вы разрабатываете модуль, который вносит в систему некий набор динамических страниц с различными URL адресами, например, страницы контактов городов. При этом у пользователя в полоске меню должен быть пункт, ведущий на страницу текущего выбранного или определенного автоматически города, т.е. пункт меню с динамической ссылкой, в одном случае он будет вести на /contacts/krasnodar в другом /contacts/moscow.

С помощью объявления своего типа меню, эту задачу теперь можно решить. Разработчик самостоятельно может создавать поведение по формированию ссылки для пункта меню, проверке – является ли ваш пункт меню активным. Разработчик также определяет набор дополнительных параметров, которые необходимо запросить в карточке пункта меню.

Изменена архитектура модуля поиск(search)

В свежем обновлении поиск также перешел на сервисную архитектуру. Теперь любой сторонний модуль может предложить свой сервис по поиску, тем самым взять на себя задачу по формированию результатов поиска. Выбор активного сервиса поиска находится в разделе Веб-сайт->Настройка модулей->Поиск.

Событие сбора сервисов называется search.getengines. Обрабатывая событие, модуль может добавить в систему один или несколько классов-сервисов, потомков класса \Search\Model\Engine\AbstractEngine.


27 января 2016 17:37, Артем Полторанин
Рассказать друзьям: