Цитата (twin @ 12.01.2021 - 01:38) |
Ниче не понял... |
я так понимаю, это у тебя постоянно в этой теме. Ты просто ничего не понимаешь, а споришь. Я же явно написал, ладно перефразирую, все что будет запрошено через метод get будет возвращать новый экземпляр. То есть у меня раньше был метод create, сейчас create это get. Внутри же метод get не будет использоваться, он для публичного интерфейса, для внутреннего использования в контейнере используется fetch (с поведением старого get).
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Все, понял. Ну то же что я говорил, только другим, более сложным методом)))) Ну хотя бы так, слава яйцам. А то я спать не могу, все переживаю.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Нет, опять не понял. Тоесть методом get сейчас нельзя получить расшареный сервис? А как же PSR?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, в законно, вырезка из psr-11
Цитата |
get takes one mandatory parameter: an entry identifier, which MUST be a string. get can return anything (a mixed value), or throw a NotFoundExceptionInterface if the identifier is not known to the container. Two successive calls to get with the same identifier SHOULD return the same value. However, depending on the implementor design and/or user configuration, different values might be returned, so user SHOULD NOT rely on getting the same value on 2 successive calls.
|
Вообще и старый вариант полностью соответствовал psr-11, посмотрим как этот себя покажет, если все ок, то в контейнер перенесу
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Ну тоесть ты отрекся от расшаренных сервисов получается. На кой там вообще звездочка тогда?
Или ты усложнил дизайн, с чем не хотел соглашаться, и теперь у тебя два метода на выборку?
А почему не сделать как я советовал. Тогда все было бы и законно и просто. Не нужен новый метод в API/
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Вообще если так подумать это поведение контейнера действительно очень хорошо ложится на мою концепцию. Оно поощряет использование карты зависимостей и демотивирует прокидывать контейнер в классы чтобы получать shared зависимости. Единственная проблема, поддержку сервис локатора в таком случае придется пересмотреть или вообще выкинуть.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin, ты опять ничего не понял, все осталось как прежде, вообще ничего не поменялось, кроме поведения публичного api метода, внутрянка также работает, звёздочки также надо объявлять что бы по карте создалась not shared сущность. То есть если вернуться к твоему примеру со складом, магазином и заказом, поменялось то что у тебя будут всегда новые сущности магазина и склада, но одна сущность заказа пока ты не поставишь звездочку в карте зависимостей.
$container->get('Market')->order->test = 1;
$container->get('Storage')->order->test;
$container->get('Market') != $container->get('Market');
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Ну я правильно понял. Теперь нельзя расшарить сервис. Если я положу в контейнер сервис БД, буду иметь новый коннект каждый раз. Ну красиво, че уж там.
Позволь спросить тогда. А чем это отличается от билдера? Метаданными?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
И я чето не понял, а куда теперь звездочки ставить?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Ты перевернул свою же концепцию с ног на голову. Раньше все сервисы были расшаренными. Чтобы сделать локальный, надо было поставить звездочку. Теперь наоборот. Ну это еще полбеды, я кстати приверженец этой политики.
Но теперь и звездочку поставить нельзя на сервис... Это вообще круть.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, вот пример
$container = new \ExampleCMS\Container([
Market::class => [
'order' => Order::class,
],
Storage::class => [
'order' => Order::class,
]
]);
$container->get('Market')->order->test = 1;
var_dump($container->get('Storage')->order->test);
$container2 = new \ExampleCMS\Container([
Market::class => [
'order' => '*' . Order::class,
],
Storage::class => [
'order' => '*' . Order::class,
]
]);
$container2->get('Market')->order->test = 1;
var_dump($container2->get('Storage')->order->test);
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
А сам контейнер то где взять?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, внедрить через свойства как shared объект
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Это все еще актуально
https://pastebin.com/CMPAsmqL, тут видно, что внедряю контейнер в фабрики.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.