mustafa007
Новичок
ПоржалДружище, ты бы прежде чем аббревиатурами сыпаться, разобрался бы в основах ООП в PHP
Поставь там var_dump в своем ифе, напиши парочку new и запусти свой код. Поржем вместе.
Признаю немного налажал, забыл указать static.
PHP:
interface IAdapter
{
}
class DBAdapter implements IAdapter
{
}
abstract class AbstractModel
{
protected $adapter;
public function __construct(IAdapter $adapter)
{
$this->adapter = $adapter;
}
public function getAdapter()
{
return $this->adapter;
}
}
abstract class DBModel extends AbstractModel
{
public function __construct()
{
static $adapter;
if(!$adapter){
$adapter = new DBAdapter();
var_dump($adapter);
}
parent::__construct($adapter);
}
}
class ModelA extends DBModel
{
}
class ModelB extends DBModel
{
}
new ModelA();
new ModelA();
new ModelB();
new ModelB();
// object(DBAdapter)#3 (0) { }