Где?
У вас - возможно.
if(isset($settings->type)){
if($settings->type=="insert"){
$SQL[]="INSERT INTO";
}elseif($settings->type=="update"){
$SQL[]="UPDATE";
}elseif($settings->type=="delete"){
$SQL[]="DELETE FROM";
}else{
return null;
}
}
private function resolveQueryType(array $settings): ?string
{
$mapping = [
'insert' => 'INSERT INTO',
'update' => 'UPDATE',
'delete' => 'DELETE FROM',
];
// private const KEY_QUERY_TYPE = 'type';
return $mapping[$settings[self::KEY_QUERY_TYPE]] ?? null;
}
Для любителей похоливарить на тему (object) vs json_encode: массивы всегда ассоциативные с большой вложенностью. При использовании (object) вся внутренняя структура созданных объектов остается массивами, а при json_decode(json_encode($array), false) массив ВЕСЬ становится объектом.
$obj = json_decode(json_encode($data));
// вместо
$obj = (object)$data;
// я уж не говорю про создание прокси с перегрузкой __get
while($Row=$QueryResults->fetch()){
if(is_null($ArrayKey)){
$Results[]=$Row;
....
// Вместо
while ($row = $queryResults->fetch()) {
yield $row;
}
class User
{
// ....
}
class Authentication
{
private $user;
public function current(): User
{
if ($this->user === null) {
$this->user = $this->loadUser();
}
return $this->user;
}
private function loadUser(): User
{
// тут получаем данные пользователя
}
}
$auth = new Authentication($database, $cookie);
// Для аутентификации может потребоваться БД и Кукисы
$auth->current(); // User
Почему?