Pin
типа public function mymethod(MyClass $myclass) {}
Pin
будет создан экземляр твоего класса в переменной $myclass
invariance
а для вызова методов мне что делать) Типо сделать
Pin
ну у тебя в переменной $myclass будет находиться экземляр твоего класса
Pin
т.е. $myclass->method();
invariance
т.е. внедрение зависимостей в одну сторону только работает?
invariance
блин странно
Pin
не совсем понял
Pin
что значит в одну сторону
invariance
я думал типо создаешь сервис-провайдер, заполняешь его сервис-контейнерами. И при вызове любого сервис-контейнера у тебя в провайдере автоматически конфиги бутстрапятся
Pin
Вооооотт...
Pin
это простая инициализация класса в ioc
Pin
если ты хочешь
Pin
предварительно вызвать конструктор например
Pin
и загрузить конфиг например
Pin
это значит тебе нужны фасады
Pin
сейчас попробую объяснить
invariance
а фасад зачем? Это ж вроде интерфейс контейнера
invariance
по крайней мере в ооп паттернах оно так
Pin
для примера
Pin
на фасадах в ларавеле реализованы все глобальные модули
Pin
типа Request, Cache
Pin
итп
Pin
через них типа предоставляется статический интерфейс
Pin
т.е. если ты хочешь сделать некий модуль со своим конфигом итп
Pin
то лучше реализовать его как фасад
Pin
я бы так сделал
Pin
либо давай прикладно посмотрим, скажи что ты хочешь сделать?
Pin
что будет делать класс?
invariance
Ну вот смотри
invariance
у меня апи будет работать с очередями
invariance
я хочу сделать сервис провайдер, который коннектит rabbitmq
invariance
что бы мне не делать это в каждом методе каждого контроллера
invariance
Мне тут сказали, что так - будет правильно
Pin
дык стоп
Pin
тебе просто драйвер нужно описать свой
Pin
кастомный
Pin
для работы с очередями
invariance
не не
Pin
и по моему laravel уже имеет такой драйвер
invariance
мне просто нужно коннектить это дерьмо и все, Александр
invariance
не усложняй еще и драйверами :D
Pin
ну тогда фасад тебе идеально подойдёт насколько я вижу
invariance
просто сделать обертку, которая грузит AMQP и делает коннект, а когда прила отработала делает дисконнект
Pin
просто будешь юзать его также как все остальные фасады
Pin
понял
Pin
тебе нужен фасад
Pin
100% инфа
invariance
так
Pin
я щас опишу примерно даже как это будет выглядеть
Pin
код накидаю, погожи
Pin
погоди
Pin
версия ларавеля какая?
invariance
5.4
Pin
отлично
Pin
тогда дай мне 5 минут
invariance
Конечно)
Pin
Конечно)
http://pastebin.com/jPxdfjRz
Pin
если я ничего не забыл
Pin
то будет примерно так
Pin
потом ты можешь где угодно юзать свой AMQPClient и он уже будет заиничен в приложении как синглтон
Pin
через сервис провайдер
invariance
а как его заюзать?
Pin
как статический фасад
Pin
AMQPClient::lisqQueues()
Pin
ну для примера конечно же
Pin
если реализуешь у него метод listQueues()
invariance
Аа
invariance
и типо все управление очередями реализуется в этом классе?
Pin
да
invariance
Понял
Pin
а в сервис провайдере просто инитишь его в приложении кк бы
invariance
а как мне коннект\дисконнект сделать? в конструкторе и деструкторе?
Pin
мм... хороший вопрос
invariance
а, я ж статические методы юзаю
invariance
ну, мне вызывать каждый раз придется AMQPClient::connect(); что как бы не оч)
Pin
не нужно
Pin
сек
Pin
с конектом всё понятно
Pin
он при ините фасада будет происходит