drupal 8 — Советы по оптимизации этого кода PHP

Ниже приведен код, который я хочу сжать:

$somefield = 0;
if ($config->get('var1.one') && is_numeric($config->get('var1.one'))) {
$somefield = $this->entityManager->getStorage('node')->load($config->get('var1.one'));
}
$different_field = 0;
if ($config->get('var2.two') && is_numeric($config->get('var2.two'))) {
$different_field = $this->entityManager->getStorage('node')->load($config->get('var2.two'));
}

-3

Решение

После вашего комментария я думаю, что вы хотите что-то вроде:

$somefield = checkVar("var1.one");
$different_field = checkVar("var2.two");

function checkVar($name) {
if ($config->get($name) && is_numeric($config->get($name))) {
return $this->entityManager->getStorage('node')->load($config->get($name));
} else {
return 0;
}
}

Я думаю, что это то, что вы хотели. Имена, которые я использовал, не обязательно являются лучшими, вы должны использовать некоторые, более подходящие для фактического использования функции.

0

Другие решения

Еще один способ сделать это.

        $field = [];
$array= ['var1.one', 'var2.two'];

for ($i = 0; $i < count($array); $i++) {
if ( $config->get($array[i] ) && is_numeric($config->get($array[$i])) )
{
array_push($field,  $this->entityManager->getStorage('node')->load($config->get($array[$i])));
}
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector