Цитата (twin @ 12.04.2016 - 06:52) |
Не догоняю. Покажи на примере плиз. |
$container = new \Cheevauva\Container(array(
'Ron\MysqlWrapper' => array(
'config' => 'Ron\Config',
),
));
$obj1 = $container->get('Ron\MysqlWrapper');
// Вот этот
$obj2 = $container->get('Ron\MysqlWrapper'); //????
Цитата (chee @ 12.04.2016 - 07:07) |
код точно правильный для вопроса? |
Цитата (chee @ 12.04.2016 - 07:14) |
клонирование и фабрики тебе в помощь |
Цитата |
$obj1 = $container->get('Ron\MysqlWrapper'); // Вот этот $obj2 = $container->get('Ron\MysqlWrapper'); //???? |
if (isset($this->objects[$className])) {Я все время получаю один и тот же объект. Как два разных сделать? Вот в чем вопрос был.
return $this->objects[$className];
}
Цитата (twin @ 12.04.2016 - 11:18) |
Ясно. Фабрика фабрик. |
namespace App;
$container = new Cheevauva\Container(array(
'App\Field\StringField' => array(
'someDependency' => 'App\SomeClass',
),
'App\FieldFactory' => array(
'container' => 'Cheevauva\Container',
),
));
namespace FieldFactory
{
public function get($field)
{
$fields = array(
'string' => 'App\Field\StringField',
'enum' => 'App\Field\Enum',
);
return clone $this->container->get($fields[$field]);
}
}
$container->get('App\FieldFactory')->get('enum');
Цитата |
не очень понятно, почему будет каша, было бы не плохо примером показать. |
if ($object instanceof \Cheevauva\Contract\Container\Mediator) {
$this->objects[$className] = $object->get();
}
Цитата |
Как два разных сделать? Вот в чем вопрос был |
Цитата |
Shared services By default, the ServiceManager allways returns the same instance of a service when you request it multiple times. It is created the first time and cached during the request. That's what a shared service is. A non-shared service will create a new instance every time it is requested. |
Цитата (chee @ 12.04.2016 - 07:36) |
Контейнер, настраивает тебе конкретную зависимость которую ты можешь взять в фабрике. |
Цитата (Oyeme @ 12.04.2016 - 11:38) |
Соотвественно у тебя куча условий на провeрку того или иного интерфейса.Что можно было бы упростить обьеденив в единый interface с общими методами. |
Цитата (twin @ 12.04.2016 - 11:54) |
И кстати, получается, что для инициализации копии объекта нужно алиас? И его тоже куда то прописать? Не слишком сложно для такой простой задачи? |
Цитата (chee @ 12.04.2016 - 08:05) |
У меня нет ни одного случая, где бы мне нужен было использовать clone не в контексте какой-либо фабрики. |