twin, заменить то получится, вопрос на сколько это будет трудоёмко.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Так в этом и весь вопрос. Зачем нужен PSR? Чтобы безболезненно заменять компоненты. А если это болезненно, какой в нем смысл?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Короче не получается инкапсулировать звездочку внутрь контейнера. Контейнер начинает разбухать в кодовой базе и его использование становится не таким приятным как раньше. Слишком много нужно объявлять манки-кода в карте зависимостей, что бы все заработало, становится сложнее контролировать зависимости. В итоге пока оставлю все как раньше, ведь формально он соответствует PSR-11.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (twin @ 10.01.2021 - 01:28) |
Чтобы безболезненно заменять компоненты. А если это болезненно, какой в нем смысл? |
а ты уверен что сможешь безболезненно заменить контейнер, которые работает по PSR-11 в живом проекте? Я вот сейчас смотрю другие DI на основе PSR-11, чет я понял, что и другие контейнеры заменить возможно будет с болью и страданием.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (chee @ 9.01.2021 - 21:37) |
В итоге пока оставлю все как раньше, ведь формально он соответствует PSR-11. |
Твое право, наше дело предложить)))
Только ответь пожалуйста на вопрос, который ты проигнорировал. Ты проблему то осознал?
Цитата (chee @ 9.01.2021 - 21:37) |
а ты уверен что сможешь безболезненно заменить контейнер, которые работает по PSR-11 в живом проекте? |
Нет конечно. Больше тебе скажу, я вообще считаю PSR модным фантиком. И предпочитаю если и делать соответствие, то оставлять альтернативу. Мы как то с тобой
холиварили по поводу мидлваров, там это видно.
Так что для меня PSR вообще не довод. А вот глобальные зависимости - еще какой.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 10.01.2021 - 02:10) |
И предпочитаю если и делать соответствие, то оставлять альтернативу. Мы как то с тобой холиварили по поводу мидлваров, там это видно. |
Я тебе ответил это
Цитата (chee @ 17.01.2018 - 16:13) |
P.S: За критику надо говорить спасибо, а ты осуждаешь. Вот не буду писать в твоих темах, так и захлебнешься в своем же говне |
и удалился, дальше ты спорил не со мной, там ты откровенный бред нёс. В этой теме не начинай только про свои супер альтернативные миделвары, хочешь приглашай в ту тему. Хотя я там не вижу темы для разговора.
Цитата (twin @ 10.01.2021 - 02:10) |
Ты проблему то осознал? |
Нет, я лишь ее понял, но не принял. Эта проблема не приводит к протекающим абстракциям, то есть так или иначе эту проблему решают фабрики - инкапсулируя в себе общение с контейнером. Что бы эту проблему решить мне нужно: посмотреть решают ли ее другие контейнеры, оценивать вообще как они решают эту проблему и чего им стоит превозмогание решения этой проблемы, ну и конечно самое главное нужно понять как переписать потроха контейнера, что бы все работало также просто как сейчас.
Ну и конечно, вернусь к твоему примеру, я не позиционирую свой контейнер на домохозяйку из твоего примера, у которой на складе и магазине один заказ. Все таки контейнер решает проблемы связанности не в бизнес логике, а между инфраструктурными компонентами приложения.
Проще говоря: Я понимаю проблему, но для меня это низко приоритетная течь абстракций, сделав оценку я понял, что ресурсы, которые я затрачу на решение этой проблемы могут привести в худшем случае - к новым проблемам, в лучшем - результат будет еще хуже текущего.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Гость_chee
10.01.2021 - 03:34
Предложи 100% готовую реализацию при этом не усложнив код в раза два, я просто похлопаю и скажу спасибо.
Цитата (Гость_chee @ 9.01.2021 - 23:34) |
Предложи 100% готовую реализацию при этом не усложнив код в раза два, я просто похлопаю и скажу спасибо. |
А что именно реализовать? Внедрение зависимостей по карте? Легче простого. Инъекции через публичные свойства - не буду. Принципиально. Потому что считаю это неразумным. Избавиться от глобальных зависимостей? Так просто не нужно их делать. В чем затык то, что не так?
В общем то я тут вспомнил децтво, как говорится, выдернул свой контейнер и немного доработал его, чтоб было на твой похоже. На счет простоты - оценка субъективная, но кода не больше чем у тебя, хотя он умеет больше твоего. Но он лишен недостатков, которые я описывал. Уж с глобальными зависимостями точно.
Вот тут исходники, специально для тебя. Вот усага:
$container = new ABCDIC\Container;
$map = $container->mapper()->services([
'service' => 'Recipient'
])->injections([
'service' => [ 'first' => 'FirstDependency',
'second' => 'SecondDependency'
]
]);
$container->add($map);
$obj = $container->get('service');
$obj->run();
class Recipient
{
protected $first;
protected $second;
public function __construct($dta = null)
{
if(is_array($dta)){
$this->first = $dta['first'];
$this->second = $dta['second'];
}
}
public function run()
{
$this->first->display();
$this->second->display();
}
}
class FirstDependency
{
public function display()
{
echo 'First<br>';
}
}
class SecondDependency
{
public function display()
{
echo 'Second<br>';
}
}
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.