[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PDIC - Property Dependency Injection Container
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
chee
twin, заменить то получится, вопрос на сколько это будет трудоёмко.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
smile.gif Так в этом и весь вопрос. Зачем нужен PSR? Чтобы безболезненно заменять компоненты. А если это болезненно, какой в нем смысл?


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Короче не получается инкапсулировать звездочку внутрь контейнера. Контейнер начинает разбухать в кодовой базе и его использование становится не таким приятным как раньше. Слишком много нужно объявлять манки-кода в карте зависимостей, что бы все заработало, становится сложнее контролировать зависимости. В итоге пока оставлю все как раньше, ведь формально он соответствует PSR-11.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (twin @ 10.01.2021 - 01:28)
Чтобы безболезненно заменять компоненты. А если это болезненно, какой в нем смысл?

а ты уверен что сможешь безболезненно заменить контейнер, которые работает по PSR-11 в живом проекте? Я вот сейчас смотрю другие DI на основе PSR-11, чет я понял, что и другие контейнеры заменить возможно будет с болью и страданием.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 9.01.2021 - 21:37)
В итоге пока оставлю все как раньше, ведь формально он соответствует PSR-11.

Твое право, наше дело предложить)))
Только ответь пожалуйста на вопрос, который ты проигнорировал. Ты проблему то осознал?

Цитата (chee @ 9.01.2021 - 21:37)
а ты уверен что сможешь безболезненно заменить контейнер, которые работает по PSR-11 в живом проекте?
Нет конечно. Больше тебе скажу, я вообще считаю PSR модным фантиком. И предпочитаю если и делать соответствие, то оставлять альтернативу. Мы как то с тобой холиварили по поводу мидлваров, там это видно.

Так что для меня PSR вообще не довод. А вот глобальные зависимости - еще какой.







_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Цитата (twin @ 10.01.2021 - 02:10)
И предпочитаю если и делать соответствие, то оставлять альтернативу. Мы как то с тобой холиварили по поводу мидлваров, там это видно.

Я тебе ответил это
Цитата (chee @ 17.01.2018 - 16:13)
P.S: За критику надо говорить спасибо, а ты осуждаешь. Вот не буду писать в твоих темах, так и захлебнешься в своем же говне

и удалился, дальше ты спорил не со мной, там ты откровенный бред нёс. В этой теме не начинай только про свои супер альтернативные миделвары, хочешь приглашай в ту тему. Хотя я там не вижу темы для разговора.

Цитата (twin @ 10.01.2021 - 02:10)
Ты проблему то осознал?

Нет, я лишь ее понял, но не принял. Эта проблема не приводит к протекающим абстракциям, то есть так или иначе эту проблему решают фабрики - инкапсулируя в себе общение с контейнером. Что бы эту проблему решить мне нужно: посмотреть решают ли ее другие контейнеры, оценивать вообще как они решают эту проблему и чего им стоит превозмогание решения этой проблемы, ну и конечно самое главное нужно понять как переписать потроха контейнера, что бы все работало также просто как сейчас.

Ну и конечно, вернусь к твоему примеру, я не позиционирую свой контейнер на домохозяйку из твоего примера, у которой на складе и магазине один заказ. Все таки контейнер решает проблемы связанности не в бизнес логике, а между инфраструктурными компонентами приложения.

Проще говоря: Я понимаю проблему, но для меня это низко приоритетная течь абстракций, сделав оценку я понял, что ресурсы, которые я затрачу на решение этой проблемы могут привести в худшем случае - к новым проблемам, в лучшем - результат будет еще хуже текущего.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Гость_chee
Предложи 100% готовую реализацию при этом не усложнив код в раза два, я просто похлопаю и скажу спасибо.
twin
Цитата (Гость_chee @ 9.01.2021 - 23:34)
Предложи 100% готовую реализацию при этом не усложнив код в раза два, я просто похлопаю и скажу спасибо.

А что именно реализовать? Внедрение зависимостей по карте? Легче простого. Инъекции через публичные свойства - не буду. Принципиально. Потому что считаю это неразумным. Избавиться от глобальных зависимостей? Так просто не нужно их делать. В чем затык то, что не так?

В общем то я тут вспомнил децтво, как говорится, выдернул свой контейнер и немного доработал его, чтоб было на твой похоже. На счет простоты - оценка субъективная, но кода не больше чем у тебя, хотя он умеет больше твоего. Но он лишен недостатков, которые я описывал. Уж с глобальными зависимостями точно.

Вот тут исходники, специально для тебя. Вот усага:

$container = new ABCDIC\Container;

$map = $container->mapper()->services([
'service' => 'Recipient'
// more services
])->injections([
'service' => [ 'first' => 'FirstDependency',
'second' => 'SecondDependency'
]
// more dependences
]);

$container->add($map);

$obj = $container->get('service');
$obj->run();

///////////////////////////////////////////////////////////////
// Examples
///////////////////////////////////////////////////////////////
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>';
}
}


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.