170 похожих чатов

Столкнулся с неожиданной ситуацией. При попытке выполнения миграции миграция не

выполнялась, так как в одном из сервис классов в конструкторе было обращение к таблице, которая ещё не создана(как раз создавалась этой миграцией).
Вопрос :
в конструкторах сервисов не принято работать с БД? Зачем artisan migrate создаёт экземпляры всех сервисов?

4 ответов

13 просмотров

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

self- Автор вопроса

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

self
теперь это понятно:) Получается, что в конструктор...

не верно по поводу создания экземпляров

self
теперь это понятно:) Получается, что в конструктор...

в Ларавел без особой необходимости не стоит использовать конструктор: 1) в контроллерах, т.к. при обработке маршрута экземпляр класса контроллера будет создан, а в этот момент могут еще не все посредники сработать и например на момент создания нет еще пользователя, потому все зависимости лучше подтягивать на уровне метода контролера (action) 2) в командах, т.к. для получения информации о имени команды, параметрах, описании нужно создать экземпляр, потому зависимости тянем через метод handle() в момент запуска команды в остальных случаях вполне можно, но я описал только там где я лично обжегся

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта