Мне нужна небольшая помощь в PHP, потому что я пытаюсь использовать array_filter()
, чтобы предотвратить много строк и сделать это просто и понятно, но я борюсь в этом, даже если я читаюэта документация: Array_Filter , поэтому мне нужен правильный способ реализации, потому что иногда getCategoryTree()
бывает пустым или со значениями NULL, которые я пытаюсь не показывать, я подумал создать другую функцию для отображениятолько конкретные вещи без категории, но я чувствую, что это неэффективно:
Я пытаюсь заполнить URL-адрес www.foobar.com/checkout/payments, и это оригинальный код:
$page['eData'] = [
'codeMoneyFormatter' => $this->moneyFormatter->getcodeMoneyFormatter(),
'checkout' => [
'actionField' => ['step' => 3, 'option' => 'Review Order'],
// ---------------- THIS ONE MUST REFACTOR -------
'products' => $this->getCartFromOrder($order),
],
];
// --------------------- REFACTOR ------------------
$itemData['category'] = $category ? $this->getCategoryTree($category->getId()) : '';
// -------------------------------------------------
Эта функция показывает категорию, но она мне не нравится, потому что на некоторых страницах она пустая / пустая, что неверно, поэтому я хочу использовать array_filter()
// --------------------- ARRAY_FILTER ------------------
$itemData['category'] = array_filter($category ? $this->getCategoryTree($category->getId()) : '');
// -------------------------------------------------
Функция, которую я создал, чтобы показать только определенную вещь, она правильная, потому что она не показывает категорию, но я чувствую, что она не нужна, потому что она повторяет то же самое из oпервый:
$page['eData'] = [
'codeMoneyFormatter' => $this->moneyFormatter->getcodeMoneyFormatter(),
'checkout' => [
'actionField' => ['step' => 3, 'option' => 'Review Order'],
'products' => $this->getCheckoutFromOrder($order),
],
];
Он повторяет почти те же функции, и это не правильный стандарт DRY (не повторяйте себя), поэтому я подумал реализовать array_filter()
, но как ???