pathToUserFile); $data = json_decode($json, true); return $data; } public function findByEmail(string $email): ?User { $data = $this->getUsersData(); foreach ($data as $user) { if ($user['email'] === $email) { return new User($user['email'], $user['password']); } } return null; } public function save(User $user): User { $data = $this->getUsersData(); foreach ($data as $jsonUser) { if ($jsonUser['email'] === $user->getEmail()) { $jsonUser['password'] = $user->getPassword(); file_put_contents( $this->pathToUserFile, json_encode($data, JSON_PRETTY_PRINT) ); return new User( $jsonUser['email'], $jsonUser['password'] ); } } $newUser = [ 'email' => $user->getEmail(), 'password' => $user->getPassword(), ]; $data[] = $newUser; file_put_contents( $this->pathToUserFile, json_encode($data, JSON_PRETTY_PRINT) ); return new User( $newUser['email'], $newUser['password'] ); } }