Helpers.php
Для работы плагина требуются вспомогательные функции, все они объединены в класс Helpers и вызываются как статические методы:
array_any
function array_any( array $array, callable $fn ): bool
Аналог функции Array.some в js. Возвращает true если $fn вернет true хотя бы для одного элемента массива. В $fn элементы массива передаются по одному в качестве первого параметра
array_every
function array_every( array $array, callable $fn ): bool
Аналог функции Array.every в js. Возвращает true если $fn вернет trueдля всех элементов массива. В $fn элементы массива передаются по одному в качестве первого параметра
array_reduce_with_key
function array_reduce_with_key( array $array, callable $callback, mixed $initial ): mixed
У стандартной функции PHP array_reduce есть недостаток - в callback не приходит текущий ключ массива, а только значение. Данная функция исправляет данную проблему и в $callback передается третий параметр с текущим ключом массива
replace_first
function replace_first( string $needle, string $replace, string $haystack ): string
Полная копия функции str_replace, но заменяется только первое вхождение $needle в $haystack
convert_dots_to_square_brackets
function convert_dots_to_square_brackets( string $str ): string
Преобразует строку вида quiz.2624.1quiz.scorePercent в ?.quiz?.[2624]?.['1quiz']?.scorePercent - меняет невалидные ключи на валидные, чтобы строку можно было использовать как путь в js объекте. Так же добавляет ?. в начало строки, чтобы строку можно было сразу сконкатенировать с именем объекта
prepare_alpine_variable_path
function prepare_alpine_variable_path( string $str ): string
DynamicShortocdes плагин позволяет вставлять в шорткоды переменные вида {post:id}. Данная функция их преобразует в значения, а после передает в функцию convert_dots_to_square_brackets
prepare_alpine_store_variable
function prepare_alpine_store_variable( string $str ): string
Вызов функции prepare_alpine_variable_path с добавлением в начало $store.cw
maybe_add_quotes_to_value
function maybe_add_quotes_to_value( string $value ): string
Добавляет кавычки к строковым значениям, но числа и boolean значения возвращаются без изменений
convert_css_to_attribute_selectors
function convert_css_to_attribute_selectors( string $css_string ): string
Преобразует css селекторы по классу и по id в селекторы по атрибуту следующим образом:
- #elId ->
[id="elId"] - .elClass ->
[class~="elClass"]
Данное преобразование не меняет выборку по css селектору, но позволяет искать по невалидным селекторам, подробнее здесь