да я не начинаю, у меня самого когда-то такие синглтоны были и я помню, какой это гемор.fixxxer
ну не начинай.... тем более дебагер сам может решить какой вывод у него должен быть в режиме cli или ajax
да я не начинаю, у меня самого когда-то такие синглтоны были и я помню, какой это гемор.fixxxer
ну не начинай.... тем более дебагер сам может решить какой вывод у него должен быть в режиме cli или ajax
Т.е. использование синглтона - вопрос устройства политической системы и религии.Одиночка - не значит константа, консерватор, это "лидер", как прездент РФ )) У него есть интерфес доступа - ВВП, он сцуко тоже одиночка, а вот у ВВП уже есть много разных министров)))
У ваших ядер главная функция - получение другого объекта.Активист
не хочется вводить прослойку, как у Григория, которая позволит подменять одиночку, на каждую одиночку.
все равно остается в силе.не хочется вводить прослойку, как у Григория, которая позволит подменять одиночку, на каждую одиночку.
Верно, но она одна. А у тебя много) Я про это.Core_Application - такая же прослойка.
Интересно, а с кем ты разговариваешь?это как? IoC?
<?php
class Kiss_Service {
protected static $run = false;
protected $services = array();
public function __construct() {
if (self::$run) {
throw new Exception('Locator: already running');
}
}
public function addService($serviceValue, $serviceName = null) {
$serviceName = $serviceName ? $serviceName : get_class($serviceName);
if (!isset($this->services[$serviceName])) {
$this->services[$serviceName] = $serviceValue;
} else {
throw new Exception("Locato: already have service: $serviceName");
}
}
public function &__get($serviceName) {
if (isset($this->services[$serviceName])) {
return $this->services[$serviceName];
}
}
/**
*
* @return Kiss_Request
*/
public function getRequest() {
if (!isset($this->services['Request'])) {
$this->addService(new Kiss_Request(), 'Request');
}
return $this->Request;
}
/**
* @return Kiss_Config
*/
public function getConfig() {
if (!isset($this->services['Config'])) {
$this->addService(new Kiss_Config(), 'Config');
}
return $this->Config;
}
}
?>
$service = new Kiss_Service();
$service->addService(new Kiss_Db('...'), 'DbSlave');
$service->getDb() // дефолтное соединение Db
$service->DbSlave // соединение DbSlave