classes/ShortcodeParser.md
Класс ShortcodeParser
Пространство имён: goodboyalex\php_components_pack\models
Версия: 1.0
Доступно с: 1.4
Описание
Класс предназначен для обработки текста на наличие шорткодов и их последующей обработки согласно заданным правилам.
Конструктор
public function __construct(?callable $onError = null)
- Параметр:
$onError— обработчик ошибок (функцияfn (string $shortcode, string $errorMessages))
Статические методы
public static function DEFAULT_SET_UNSET(): callable
- Назначение: возвращает функцию по умолчанию для обработки шорткодов
public static function ANY_VALID(): callable
- Назначение: возвращает метод проверки валидности шорткода, который всегда возвращает true
Методы работы с шорткодами
public function addShortCode(
string $name,
?callable $onSet = null,
?callable $onUnSet = null,
?callable $onValidate = null
): void
- Параметры:
$name— имя шорткода$onSet— метод обработки при включении (по умолчаниюDEFAULT_SET_UNSET)$onUnSet— метод обработки при удалении (по умолчаниюDEFAULT_SET_UNSET)$onValidate— метод валидации (по умолчаниюANY_VALID)
public function addShortCodes(ObjectArray $shortCodes): void
- Параметр:
$shortCodes— массив моделей шорткодов
Метод обработки текста
public function parse(
string $content,
bool $ignoreIncluded = false,
bool $isUnset = false
): string
- Параметры:
$content— текст для обработки$ignoreIncluded— флаг игнорирования вложенных шорткодов$isUnset— флаг удаления шорткода
- Возвращаемое значение: обработанный текст
Примеры использования
// Создание парсера
$parser = new ShortcodeParser(fn($shortcode, $error) => print_r("[$shortcode] $error"));
// Добавление шорткода
$parser->addShortCode(
'my-shortcode',
function($content, $params) {
// Логика обработки при включении
return $content;
},
function($content, $params) {
// Логика обработки при отключении
return $content;
},
function($content, $params) {
// Логика валидации
return new ActionState(true);
}
);
// Обработка текста
$result = $parser->parse('[my-shortcode]содержимое[/my-shortcode]');