<?php
namespace App\Services;
use App\Contracts\Service;
use App\Exceptions\UserServiceException;
use App\Models\User;
use App\Repositories\UserRepository;
class UserService implements Service
{
/**
* @var UserRepository
*/
private $userRepository;
/**
* UserService constructor.
*
* @param UserRepository $userRepository
*/
public function __construct(UserRepository $userRepository)
{
$this->userRepository = $userRepository;
}
/**
* @param int $userId
* @param mixed $with
* @return User|null
*/
public function getUserById($userId, $with = [])
{
return $this->userRepository->with($with)->find($userId);
}
/**
* @param $email
* @param null $with
* @return User|null
*/
public function getUserByEmail($email, $with = [])
{
return $this->userRepository->with($with)->where('email', '=', $email)->findFirst();
}
/**
* @param array $arguments
* @return User
*/
public function createUser(array $arguments)
{
return $this->userRepository->create($arguments);
}
/**
* @param $userId
* @param array $arguments
* @return User
* @throws UserServiceException
*/
public function updateUser($userId, array $arguments)
{
if (! $updatedUser = $this->userRepository->update($userId, $arguments)) {
throw UserServiceException::updateUserError();
}
return $updatedUser;
}
}
Существует PHP-PM, PHP-FPM, которые по сути распределяют процессы под каждый запрос, создавая всю инфраструктуру классов под каждый из них.
The approach of this is to kill the expensive bootstrap of PHP (declaring symbols, loading/parsing files) and the bootstrap of feature-rich frameworks.
Почему бы не перейти полностью на асинхронщину
зачем поддерживать, то что работает медленнее
что именно работает медленнее? Медленнее чего?