По сути он просто усовершенствовал общение. И поиск собеседников. Но придумал то это не он изначально по большому счету. Он просто "изобрел велосипед". И он поехал с невиданной скоростью.
Воооот. Вот именно. Тебе придется распилить и скрутить изолентой
длинный велосипед, иначе до Протугалии не доедешь, не впишешься в первый же поворот. А теперь давай конкретно.
Я на практике покажу. Смотри, есть задача сделать адаптер, который
1. Будет работать с любым мидлваром (PSR-15, Slim, Zend Expressive и иже с ними)
2. Это должен быть мидлвар по определению. На любую другую функцию/класс он должен ругаться
3. Ругаться должнен еще и на неверное количество аргументов.
4. Ругаться должен моим механизмом, а не просто эксепшеном.
5. Он
не должен зависеть от интерфейсов PSR-7 (не обсуждается, прими как данность).
6. Ну и еще мелочи, хватит этого.
Идем на гитхаб и находим "подходящую" либу. В ней
есть такой адаптер. Но! Он отвечает только первому пункту из требований. А значит что? Правильно. Допиливание.
Два варианта - наследование либо декорация. Декорация не подходит сразу - см. п 5.
Остается наследование. Хотя и оно тоже не годится по тому же поводу. Ну ладно, допустим обошли этот пункт, сделали интерфейсы для проформы.
Что получается? Нужно полностью переопределить почти все методы. Полностью!
Так мало того, кроме этого адаптера там есть экзекутор (у них диспетчер). Он тоже нужен и у него такие же проблемы. Переопределяем и его. Что остается? Остается механизм выбора библиотеки PSR-7. Который мне нахер не нужен. От слова вообще.
Вот теперь скажи мне, какой смысл в этой либе и зачем мне тратить время и нервы на "допиливание", вернее перепиливание поверх? Зачем мне эта основа, если все равно все действо в наследниках? Только ради того, чтобы пустить слезу умиления - я не строю велосипедов?
Я посмотрел, как у них сделано, прикинул свои хотелки и потребности, и запилил свою. Снуля. Принцип получился немного не такой, как у них. Для меня намного удобнее. Они берут все подряд (любой callable), исполняют, результат упаковывают в RESPONSE и получается мидлвар. У меня наоборот. Сначала мидлвар приводится к стандарту PSR-15, потом спокойно выполняется в очереди.
Соответственно я могу сразу распознать , что там такое, и отреагировать (см п.п. 2, 3, 4). А это крайне важно - фреймворк учебный. Чем больше таких реакций, тем проще разобраться в ошибках.
И это гораздо проще сделать снуля, нежели корячиться раком, пытаясь подогнать эту хрень под свои хотелки. Причем практически не оставив от неё камня на камне.
Ты дядю Боба в пример приводил, с его чистым кодом. Я представляю, как было бы насрано, послушай я тебя. А так чистота и порядок. Ничего лишнего (YAGNI) и все по делу.
И так очень много где. Особенно последнее время, с популяризацией композера. Попросишь банан... ну ты знаешь.
Я лучше возьму на себя ответственность, нежели засру все мегабайтами мертвого кода. Иначе получится вот такой результат "допиливания".
http://fishki.lv/uploads/posts/2014-01/139..._dorogakh_3.jpg
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.