function plural(array $a, int $n): string
{
$index = $n % 10 == 1 && $n % 100 != 11 ? 0
: (
$n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 || $n % 100 >= 20)
? 1 : 2
);
return $a[$index];
}
$date = now();
$s = $date->hour.' '.plural(['час', 'часа', 'часов'], $date->hour).' '
.$date->minute.' '.plural(['минута', 'минуты', 'минут'], $date->minute);
dump($s);
const cancelable = fn => { // Создаётся функция cancelable, которая принимает функцию и сохраняет в переменную fn
const wrapper = (...args) =>{ // Создаётся функция-обёртка, которая принимает любой набор аргументов
if(fn) return fn(...args) // Если в cancelable была передана функция, то вызывает её с необходимыми аргументами
}
wrapper.cancel = () => fn = null // Добавляет свойство во wrapper для очистки переменной fn
return wrapper // Возвращает обёртку
}
const fn = par =>{ // Функция, которая оборачивается в декоратор со своим аргументом
console.log('Function called, par:',par)
}
const f = cancelable(fn) // Создаёт обёртку вокруг fn
f('first') // Function called, par: first
f.cancel() // fn является переменной внутри cancelable, здесь мы её обнуляем
f('second') // Ничего не выводит, потому что условие у wrapper отрабатывает, только если функция есть
$query->where('enabled', 1)
->where(function ($query) {
$query->where('title_uz', 'like', '%' . $params[1] . '%')->
->orWhere('title_oz', 'like', '%' . $params[1] . '%')->
->orWhere('title_ru', 'like', '%' . $params[1] . '%')->
->orWhere('title_qr', 'like', '%' . $params[1] . '%')})
->orderBy('id');
Может как-то через виртуалку
docker compose cp
docker-compose exec [service] mysqldump -u [user name] –p [password] [options] [database_name] [tablename] > [dumpfilename.sql]
docker exec -t [hash container] mysqldump -u [user name] –p [password] [options] [database_name] [tablename] > [dumpfilename.sql]