Хорошо, я поставил как у тебя. Но теперь, уже ошибка с другим классом.
А зачем может вообще пригодится
$worker = new Worker();
$worker->save();
// Ну или так:
$database->save($worker);
class Worker extends User
{
// ...
public function __construct(array $data)
{
$this->workerData = $data;
}
public function rename(string $name)
{
$this->workerData['name'] = $name;
}
}
class WorkersDatabaseRepository
{
public function findById(int $id)
{
// $data = select * from ... where id = $id
return new Worker($data);
}
public function save(Worker $worker) { /** код обновления */ }
}
// Получаем рабочего по ID из БД
$worker = $db->findById(42);
// Переименовываем
$worker->rename('Vasya');
// и сохраняем туда новые данные
$db->save($worker);
class SessionAuthentication
{
public function __construct(DatabaseRepository $db) { ...}
public function login(Worker $worker) { ... }
public function current() { ... }
}
$auth = new SessionAuthentication($db);
$auth->current(); // или Worker или null
$uath->login($worker); // Прописываем в сессию ID переданного рабочего