Совет по Joomla: значение переменной по умолчанию с помощью класса Joomla\Registry\Registry.
Очень часто в Joomla мы видим, что данные приходят не в виде массива или простого объекта (stdClass
), а их нужно получать с помощью метода get()
. Например, в плагине или модуле:
$option = $this->params->get('my_option');
Это означает, что мы получили данные в виде объекта Joomla\Registry\Registry
.
❓ Зачем это?
Возможность указать значение переменной по умолчанию. Лично для меня первое и самое важное - это возможность указать значение переменной по умолчанию, если его (значения) в параметрах нет.
Вы выпускаете новую версию своего мега-плагина и вводите в него новую опцию my_option
. Мы используем её везде в PHP коде. Однако, мы же понимаем, что люди обновятся, а обновлять настройки плагина не полезут. Не полезут до тех пор, пока не станет любопытно "а что же там нового?" или что-нибудь не отвалится. И пока они не установят новый параметр и не сохранят настройки плагина - в коде он так и не появится.
Чтобы ничего не отвалилось нам в коде нужно предположить сценарий по умолчанию, которому, соответственно, нужны значения параметров по умолчанию. Вот тут нам и поможет класс Joomla\Registry\Registry
.
$myOption = $this->params->get('my_option', 'default_value_if_null_or_not_exists'); // string по умолчанию
И теперь нам не надо писать свои проверки на наличие переменной и её пустоту, а так же вы всегда уверены, что получите вменяемое значение для работы в коде. По умолчанию можно указать что угодно. Чаще всего это какая-нибудь строка, число, массив.