[modHelpers] Версия 3.4.0
Посмотрим лог изменений:
- Добавлена функция first().
- Добавлена функция optional().
- Добавлена функция html_attributes().
- Расширены возможности функций css() и script().
Функция first()
Основное предназначение этой функции — вернуть первый существующий (not null) из переданных аргументов. Т.е. передаёте несколько аргументов и функция по очереди их проверит. А последним можно передать значение по-умолчанию.
Функция optional()
Данная функция появилась в Laravel 5.5. Она помогает избежать ошибки обращения к свойству или методу несуществующего объекта или ключу несуществующего массива. Почему бы её не использовать во благо и в MODX.
$nullObj = null; // Ошибка echo $nullObj->property; // Trying to get property of non-object // Использование функции optional помогает избежать данной ошибки echo optional($nullObj)->property; // Выведет null
Функция html_attributes()
Эта функция преобразует переданный массив аргументов HTML тега в строку определённого формата. Она в полной мере используется в функциях css()
и script()
.
html_attributes(['async', 'id' => 'id']); // async id="id"
Новые возможности функций css() и script()
Главная доработка — возможность передать аттрибуты HTML соответствующего элемента в массиве или строке.
css('/path/to/styles.css', ['media' => 'print']); // <css src="/path/to/styles.css" media="print" rel="stylesheet"></script> css('/path/to/styles.css', ['media' => 'print', 'rel' => 'alternate']); // <css src="/path/to/styles.css" media="print" rel="alternate"></script> # Регистрация перед тегом <body> script('/path/to/script.js', 'async'); // <script async src="/path/to/script.js"></script> # Регистрация в секции <head>. Аргументы передаются третьим параметром script('/path/to/script.js', true, ['async', 'defer', 'id'=>'some-id', class="some classes"]); // <script async defer id="some-id" class="some classes" src="/path/to/script.js"></script>
Также у этих двух тегов (link и script) убраны аттрибуты type
. Если он вам нужен, придётся добавлять его самостоятельно.
Комментарии ()
Вы должны авторизоваться, чтобы оставлять комментарии.
Особенно порадовала функция optional — я частенько в логах вижу ошибку чтения свойства у несуществующего объекта.
Обратил внимание, что при обращении к классу Object.php, находящимся в папке modhelpers/classess
Вылетает фатальная ошибка
Fatal error: Cannot use 'Object' as class name as it is reserved in…
Такую ошибку постоянно ловлю при использовании функций: resource() или object() в посредниках
Конфигурация на которой была замечена ошибка: PHP 7.2 и MySQL 5.7 и MODX 2.6.2
На почту сыпется ошибка:
PHP 7.1
modHelpers 3.5.1
Подскажите, почему падает ошибка на этот файл, если крон выполняет assets/components/cronmanager/cron.php.