Встречал кто-нибудь реализацию DI (особенно конфигурации) как у Phalcon только на php? В общем суть в том, что там минимум магии и то что чаще нужно: С конструктором: http://docs.phalconphp.ru/ru/latest/reference/di.html#constructor-injection С геттерами и сеттерами: http://docs.phalconphp.ru/ru/latest/reference/di.html#setter-injection PS Конечно, не сложно самому написать, я просто исключаю уже (возможно) существующий велосипед, который сам не могу все найти (если таков есть).
Все не то, в этих DI (типа Pimple или особенно в Yii2) куча магии, избыточная попытка сделать все за тебя или псевдокодом, когда нужно в действительности описать просто список действий (мол вызвать это с этими аргументами, вызвать то с этим)). В симфонии же кажется все что нужно, но как блин глянешь сколько там пусто-кода, глаза на лоб лезут, представляя, что нужно будет туда лесть, если поддерживать (совершенно бестолковый монстр созданный видимо для тренинг-продаж, я его не понимаю, уж извините).
Так никто его не выбирает, как раз ищу настоящую реализацию DI (возможно на подобие java, с минимум магии), а не такую где DI умудряется хранить глобальные переменные, или где в реализации нужно 2 класса, а там их штук 15 (симфони).
у симфонической реализации есть плюсы, во первых конфигурировать можно через yaml (используя симфонические компоненты Yaml и Config), во вторых, контейнер можно кешировать, в результате генерируется один пхп файл и приложение работает только с ним. т.е. в рабочем приложении все эти 350кб кода вообще не используются а только в момент генерации кеша.
LukiDuki1980 - вы же не лезете во внутренности фалкона? Вот во внутренности других DI контейнеров не лезьте. Оценивайте по интерфейсам, скорости и т.п. DI симфони просто дает больше возможностей.. ну и как результат - посложнее. pimple к слову тоже от автора симфони - попроще. Можете еще погуглить php simple di container.
Хорошо, когда вы не профессиональный разработчик и можете такое говорить. Я вам завидую, у меня так не получается (предлагаю эту тему даже за-дискутировать и обсудить, когда действительно нужно лесть внутрь и почему нужно туда вообще лесть). Да и что вы к фалкону привязались. Я не сторонник его совсем. Мне просто была нужна DI c конфигом, которая построена как командная система, то есть не делает чудесную магию по определенному образцу, а как бы конфигом прямо говорит - сделай это(вызови этот метод с этими параметрами, прикрути сюда этот компонент-зависимость и т.д). Ну еще нужно, чтобы DI была просто прослойкой и можно прикрутить ко всему говнокоду который найдешь, то есть, чтоб DI не навязывала подход, как скажем в Yii2 с геттерами и сеттерами (или для решения зависимостей вызывала внутри себя Instance::ensure). Из всех предложенных и изученный мной за этот время, норм оказалась симфони. Но я уже написал свою с блэкджеком и... Ибо умудриться такое решение упихать десятком классов, это реально талант. PS мне кажется, когда требуется писать на симфони, можно смело уходить на java или любой другой язык с поддержкой полноценного веб-приложения (то есть запущенного и инициализированного фонового приложения, а не подход цикличного запуска скрипта).
экзотику и кустарные решения можно тут поискать https://github.com/search?l=PHP&o=desc&q=di&s=&type=Repositories и можно даже найти что-то по душе
А что тут обсуждать? Чужие библиотеки менять нельзя. Если вы профессионал, а не просто просто "профессиональный разработчик ака получающий за работу деньги", то должны это понимать. Когда кажется... сами знаете что нужно делать
Вот поэтому отличается профессиональный разработчик от кустарного, в код лезут не только чтобы менять, еще за тем чтобы определить функционал, банально бывает документации не достаточно и нужно в живую понять поведение в тех или иных случаях или узнать есть там эта фича или нет, или понять почему библиотека ведет себя так, а не так. Или же актуальный случай простой - либа крашится и нужно пофиксить (да и мы вышлем патч разработчику ). Еще случай, когда либа является звеном нашего продукта и мы расширяем его (то есть нам нужно изучить что-то в ней чтобы расширить её, в программирование это можно), или же мы просто хотим глянуть как реализован какой-то микро функционал, который мы бы хотели видить у себя. Ну и последнее, наверно, актуально, если либа опенсорс, грех ее не адаптировать под себя, внося туда изменения, продолжая её сопровождать своей командой под свои задачи, в этом и мощь опенсорса (вы же не будете вставлять кривую балку, вы её подгоните под свое строение). Но я согласен, есть случае когда в библиотеку лесть не стоит (исключая ограничения лицензии), это случаи, когда у вас продукт с какой-либо гарантией и техподдержкой. В php такого я не видел, хотя не отрицаю что есть. Да и в этом случае иногда приходится смотреть сорцы, чтобы правильно впихнуть плагин) Добавлено спустя 1 минуту 10 секунд: Пока вы креститесь, другие получают деньги в мире полноценных веб-приложений Добавлено спустя 3 минуты 15 секунд: оттуда и начинал, не брезгуя подсказками гугла. Просто хотел спросить у сообщества, вдруг кто видел, знает...
Хотел написать умный ответ, потом увидел первую тему автора и решил, что я еще недостаточно профессионален для каких-то споров с ним.
Ну правильно) Когда больше не можешь "в диалог", сразу надо переключиться на личности и убежать от разговора, прикрываясь оффтопом, это так профессионально ОФФТОП: А что с первой темой не так то? Я надеюсь ты понял, что там вопрос проектирования, или же тебе твоим опытным глазом почудилось, что я спрашиваю про диалект языка ? Не вижу ничего забавного в том, когда человек уточняет, какой стиль или подход принят в том или ином языке, особенно когда нужно удержаться в рамках парадигмы PHP фреймворков (которые, я вижу, сомнительно иногда решают задачи).
Автору для справки: MiksIr не может не начать срач. В ходе срача не может не перейти на личности. В ходе перехода на личности не может не начать упоминать что он Д'Артаньян. Если это не принимается всерьез, он начинает буквально навязывать эту идею, попутно объясняя собеседнику, почему он недостоин ничего в этой жизни и как он ничтожен по сравнению с Великим. Данные факты, как и то, что пациент - тролль, были признаны им самим, цитирую "Я на форум изредка захожу пар спустить", автор цитаты - MiksIr . Спасибо за внимание.
Для справки. Суслик считает себя очень умным и самое главное - справедливым. Даже решил модератором стать. Правда, мало кто считает так же. Но он, так же как и все - плохо слышит чужие мнения и мучительно сопротивляется быть неправым. В таких случаях начинает активно кидаться бородатыми картинками и демотиваторами. Правда, долго не выдерживает, срывается и начинает хныкать какой несправедливый мир. Спасибо за внимание. Добавлено спустя 7 минут 55 секунд: Я понял, что вам стоит хотя бы прочитать http://www.books.ru/books/shablony-korporativnykh-prilozhenii-728454/ вот эту книжку. Как минимум, что бы не говорить "ORM или ActiveRecord - не важно" (hint: AR - это реализация ORM). Ну и по архитектуре это откроет вам глаза. Хотя, может стоит начать с того, что такое инкапсуляция и где вообще должна находится бизнес-логика относительно данных. Соответственно обсуждать архитектуру DIC мне не интересно. Хотите - пообсуждайте с сурикатом.
Собственно, подтвердил каждое мое слово. Молодцом. ЧСВ, уязвленное самолюбие, синдром ложного консенсуса, попытка унижения собеседника, попытка игры на публику. Ты перестал быть оригинальным. Его Величество покинуло залу! Думаю, впредь будет понятно, что это за товарищ, и чего стоит с ним связываться. Просто игнорируй впредь этого троля.
Да, тут я ошибся, своих ошибок не стыжусь (но это ошибка не понимания, а просто опечатка моя грубая) Хотя да, это удачный корм для таких людей как ты кушай, а то мухи налетят, отберут) Ну потому, что ты ничего не понимаешь в этом К сожалению, я не виду беседу с местными клоунами (прочими социальными "ущербами", которые пытаются компенсировать свои расстройства негативным поведением). Я догадывался что ты такой, но вот люди тоже подтверждают.
В отрыве от темы - еще можно было бы на это съехать. Но там вся тема... такая. С русским языком тоже проблемы, да Вот по-этому и не буду. Не потому, то вы что-то не знаете, что-то не понимаете, в чем-то заблуждаетесь. А потому, что вы почти сразу начали гнуть пальцы. Аппелируя, что мол вы весь в белом, а остальные - говнокодеры тут. Ну вот я и пошел посмотреть уровень квалификации. В итоге, имеем у вас четко выраженный эффект Даннинга-Крюгера. Можете тут сколько угодно дальше соревноваться с сусликом в словоблудии, а книжечку почитайте. Может что-то получится из вас. Ты можешь сказать свое мнение, это нормально. Когда о тебе сказали свое менение - это ЧСВ и троль Ну чо, как обычно, бревно в своем глазу не видно Забавный.
VLK, да нормальный но освоить на их вкус много времени нужно! К примеру я его освоил половина суть кода лишь за месяц!