Да, в Yii2 есть аналог ларавелевского хелпера optional(). Для этого вы можете использовать хелперы Yii2, а именно функцию ArrayHelper::getValue(). Эта функция позволяет безопасно получать значения из массивов или объектов, чтобы избежать ошибок, связанных со существованием или отсутствием определенного ключа или свойства.
Итак, для использования функции ArrayHelper::getValue() с аналогом функции optional() из Laravel в Yii2, необходимо сделать следующее:
1. Включите в вашем приложении пространство имён класса ArrayHelper:
use yiihelpersArrayHelper;
2. Теперь вы можете использовать функцию ArrayHelper::getValue() для безопасного доступа к свойствам или элементам массива. В качестве первого аргумента передайте массив или объект, а вторым аргументом передайте путь к свойству или ключу, который хотите получить. Третий аргумент - это значение по умолчанию, которое будет возвращено, если свойство или ключ не существуют.
$value = ArrayHelper::getValue($array, 'key', 'default value');
В этом примере, если ключ 'key' существует в массиве $array, то его значение будет присвоено переменной $value. В противном случае, если ключ не существует, переменной $value будет присвоено значение 'default value'.
3. Если вам нужно обратиться к вложенным свойствам, вы можете указать путь через точку. Например:
$value = ArrayHelper::getValue($object, 'property.subproperty', 'default value');
Это позволяет безопасно получить значение из вложенного объекта или массива, даже если промежуточные свойства не существуют.
4. Если вы хотите использовать функцию ArrayHelper::getValue() как глобальный хелпер, вы можете создать свой собственный глобальный хелпер в Yii2. Для этого создайте файл helper.php в директории, например, common/components, и определите свои собственные функции, которые вы хотите использовать в качестве глобальных хелперов. Например:
<?php function optional($array, $key, $default = null) { return yiihelpersArrayHelper::getValue($array, $key, $default); }
5. После создания глобального хелпера, включите его в вашем приложении, добавив следующую строку кода в файл конфигурации приложения (common/config/main.php):
'aliases' => [ '@common/helpers' => '@common/components', ],
6. Теперь вы можете использовать ваш глобальный хелпер optional() в любом месте вашего приложения:
$value = optional($array, 'key', 'default value');
В этом примере, optional() будет эквивалентно вызову ArrayHelper::getValue().