Кто-нибудь знает, возможно ли в PHP заставить класс расширять или реализовывать интерфейс без объявления его дочерним классом?
Пример:
interface Requirements
{
public function __construct();
public function kittens();
}
class DingleBerry
{
public function __construct()
{
// yadda yadda yadda
}
}
// Example of my initial hope
// of what you could do
$kittens = new DingleBerry implements Requirements;
Очевидно, что это не такне работает, но мне нужен способ загрузки в классы, которые не имеют заранее определенных требований к интерфейсу, но вынуждены их соблюдать.
Моя общая цель - проверить, реализует ли класс Требования ДО он загружен, и вызывается его конструктор.
Поэтому я НЕ МОГУ использовать это:
interface Requirements
{
public function __construct();
public function kittens();
}
class DingleBerry
{
public function __construct()
{
// DO BAD STUFF (i.e. eat your soul)
}
}
// Example of what I CANNOT
// do.
$kittens = new DingleBerry;
if( !($kittens instanceof Requirements) )
{
// eat pizza.
}
Потому что тогда конструктор DingleBerry вызывается раньше, чем япроверьте, реализует ли он Требования.Dig