| Цитата (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 не в контексте какой-либо фабрики. |