SP
Size: a a a
SP
k
DT
SP
public function like(string $postId, string $userId)
{
$this->db->executeUpdate('INSERT INTO post_likes VALUES(:postId, :userId) ON CONFLICT DO NOTHING');
}
SP
SP
VS
ПГ
SP
namespace App\Likes;
class User
{
public function __construct(
private string $userId,
private Connection $db
} {}
public function like(string $postId): void {
$this->db->executeUpdate('INSERT INTO post_likes VALUES(:postId, :userId) ON CONFLICT DO NOTHING');
}
}
namespace App\Likes;
class LikesController
{
public function like(User $user, string $postId) // обратить внимание что это юзер именно для лайков
{
$user->like($postId);
}
}
SP
k
public function like(string $postId, string $userId)
{
$this->db->executeUpdate('INSERT INTO post_likes VALUES(:postId, :userId) ON CONFLICT DO NOTHING');
}
SP
SP
k
ПГ
namespace App\Likes;
class User
{
public function __construct(
private string $userId,
private Connection $db
} {}
public function like(string $postId): void {
$this->db->executeUpdate('INSERT INTO post_likes VALUES(:postId, :userId) ON CONFLICT DO NOTHING');
}
}
namespace App\Likes;
class LikesController
{
public function like(User $user, string $postId) // обратить внимание что это юзер именно для лайков
{
$user->like($postId);
}
}
SP
SP
class UserRepository
{
public function get(string $userId): User
{
return new User($this->connection, $userId); // к - каррирование
}
}
SP