Как использовать функции PHP в плагинах MODX?
Не понимаю почему добавляя функцию в плагин сайт перестает работать, вот код плагина
<?php
/** Функция обрабатывает размер файла в байтах в человекочитаемый
формат добавляя к размеру файла размерность, например 128 Mb
*/
function human_filesize($bytes, $decimals = 2) {
$sz = ['B','Kb','Mb','Gb','Tb','Pb'];
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . ' ' .@$sz[$factor];
}
/** @var modX $modx */
switch ($modx->event->name) {
case 'pdoToolsOnFenomInit':
/** @var Fenom $fenom
Мы получаем переменную $fenom при его первой инициализации и можем вызывать его методы.
Например, добавим модификатор вывода имени домена сайта из произвольной ссылки.
*/
$fenom->addModifier('getFileInfo', function ($input) {
if (file_exists($input)) {
return strtoupper(pathinfo($input, PATHINFO_EXTENSION)) . ', ' . human_filesize(filesize($input), 0);
}
});
break;
}
если заккоментировать функцию human_filesize, все работает, если оставить — сайт вылетает в ошибку fenom, может есть какие-то правила добавления функций? Комментарии: 2
а, ошибка в том что функция объявляется несколько раз
if (!function_exists('human_filesize')) {
function human_filesize($bytes, $decimals = 2) {
$sz = ['B','Kb','Mb','Gb','Tb','Pb'];
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . ' ' .@$sz[$factor];
}
}
Нужно использовать function_exists, может поможет кому)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.