Совет по Joomla: значение переменной по умолчанию с помощью класса Joomla\Registry\Registry.

  • Пятница, 03 октября 2025
Совет по Joomla: значение переменной по умолчанию с помощью класса Joomla\Registry\Registry.

Очень часто в Joomla мы видим, что данные приходят не в виде массива или простого объекта (stdClass), а их нужно получать с помощью метода get(). Например, в плагине или модуле:

$option = $this->params->get('my_option');

Это означает, что мы получили данные в виде объекта Joomla\Registry\Registry. Раньше (в Joomla 2.5, Joomla 3 и ранее) он назывался JRegistry.

❓ Зачем это? - Возможность указать значение переменной по умолчанию в Joomla.

Лично для меня первое и самое важное - это возможность указать значение переменной по умолчанию, если его (значения) в параметрах нет.

Вы выпускаете новую версию своего мега-плагина и вводите в него новую опцию my_option. Мы используем её везде в PHP коде. Однако, мы же понимаем, что люди обновятся, а обновлять настройки плагина не полезут. Не полезут до тех пор, пока не станет любопытно "а что же там нового?" или что-нибудь не отвалится. И пока они не установят новый параметр и не сохранят настройки плагина - в коде он так и не появится.

Чтобы ничего не отвалилось нам в коде нужно предположить сценарий по умолчанию, которому, соответственно, нужны значения параметров по умолчанию. Вот тут нам и поможет класс Registry.

$myOption = $this->params->get('my_option', 'default_value_if_null_or_not_exists'); // string по умолчанию

И теперь нам не надо писать свои проверки на наличие переменной и её пустоту, а так же вы всегда уверены, что получите вменяемое значение для работы в коде. По умолчанию можно указать что угодно. Чаще всего это какая-нибудь строка, число, массив.

$myOption = $this->params->get('my_option'); // null, если не найдено
$myOption = $this->params->get('my_option', []); // пустой массив по умолчанию
$myOption = $this->params->get('my_option', 100500); // ставка за час работы по умолчанию ;-)
$myOption = $this->params->get('my_option', 'Joomla'); // движок для работы по умолчанию 

 

Сергей Толкачев

Сергей Толкачев

Joomla-разработчик. Контрибьютер ядра Joomla. Муж. Отец 3 детей.

Россия, Саратов. https://web-tolk.ru info@web-tolk.ru

Статьи автора

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Новости портала

Новое в блогах

Видео