\Ramsey\Uuid\Uuid
*/
private $id;
public function __construct()
{
$this->id = Uuid::uuid4();
}
Выглядит как нарушение инверсии зависимостей и я бы сделал так
/**
* @var \Ramsey\Uuid\UuidInterface
*/
private $id;
public function __construct(UuidInterface $uuid)
{
$this->id = $uuid;
}
Но почему тогда первый вариант конструктора так часто всречается в примерах, в том числе у авторитетных разработчиков(например у ocramius)?
потому что всегда есть здравый смысл ;) первый вариант проще, второй - гибче и академичнее, но прям серьезной крамолы в первом варианте тоже нет, эта захардкоренная зависимость скорее всего не доставит никаких проблем
Обсуждают сегодня