if (is_array($v)) {
array_walk_recursive_array($v, $callback);
function array_walk_recursive_array(array &$array, callable $callback) {
foreach ($array as $k => &$v) {
// if (is_array($v)) {
// array_walk_recursive_array($v, $callback);
// } else {
$callback(& $v, $k, $array);
// }
}
}
array_walk_recursive_array( $array, function( $v, $k, $array ) {
if ( is_array( $v ) ) {
$v = $v['a'] = 'b';
return $v;
}
else return $v;
});
$arr1ids = array_column($arr1, 'id');
$arr2ids = array_column($arr2, 'id');
$intersecIds = array_intersect($arr1ids, $arr2ids);
$arr1inArr2 = array_filter($arr1, function(array $item) use($intersecIds) {
return in_array($item['id'], $intersecIds);
});
Тем более я застрял на уровне 2005-го года, когда был PHP 5.3
public function testCase()
{
$mockObject = $this->createMock(NeedClass::class);
// чем это принципиально отличается от мока с точки зрения теста - непонятно
$mockObject = new class extends NeedClass {
protected function getLicense(array $categories)
{
return 'need license';
}
};
$this->assertEqual($mockObject->getPaidShops(), 'actual value');
}
Как вариант, можно переписать код, чтобы в тестируемый класс в конструктор передавался APIService (а не создавался напрямую в методе), и в юнит тестах в конструктор передавать мок этого класса с данными которые подкинутся в getLicenses из сервис провайдера
Есть необходимость кастомизировать только навигационное меню фильтра. Увеличить вложенность и структура должна меняться в админке без перестраивания каталога.
Как мне завязать только навигационное меню смартфильтра с кастомным инфоблоком?
Хотел реализовать свою функцию для отправки SMTP почты на PHP, без модулей вроде Mailer