Size: a a a

2020 July 23

A

Adel in Laravel Pro
Yaroslav
ты не прав совсем. провайдеры возвращают фабрики, а они уже по требованию резолвят через контейнер (лениво). и под капотом классов намного намного больше. не берусь за точную статистику но каждый класс поднимает через psr-4 загрузчик еще по 4 класса, т.к. интерфейс, три трейта и еще пара-тройка зависимостей внедренных в конструкторе. это конечно хорошо, но и создает повышенные требования в фс по сравнению с модкс
все же в памяти висит после первой загрузки. фс там сильно не страдает
источник

Y

Yaroslav in Laravel Pro
Adel
все же в памяти висит после первой загрузки. фс там сильно не страдает
да, после первой загрузки висит. по страданию я просто тесты предложил, у меня гипотеза, не утверждение
источник

PZ

Pavel Zarubin in Laravel Pro
Yaroslav
где вообще может понадобиться использовать синглтон в контексте какого-нибудь сайта? (в прикладной части)
Любой сервис который должен инициализироваться при загрузке приложения единожды с определенным конфигом, зачем каждый раз дергать инициализацию и плодить в памяти кучу одинаковых сервисов? Элементарный пример сервис смс отправки или логгер в монгу
источник

PZ

Pavel Zarubin in Laravel Pro
А на счёт modx все классы подключаются втупую через инклюд
источник

PZ

Pavel Zarubin in Laravel Pro
источник

A

Adel in Laravel Pro
Pavel Zarubin
Любой сервис который должен инициализироваться при загрузке приложения единожды с определенным конфигом, зачем каждый раз дергать инициализацию и плодить в памяти кучу одинаковых сервисов? Элементарный пример сервис смс отправки или логгер в монгу
ты до пхп на другом языке писал, да?
источник

Y

Yaroslav in Laravel Pro
Pavel Zarubin
Любой сервис который должен инициализироваться при загрузке приложения единожды с определенным конфигом, зачем каждый раз дергать инициализацию и плодить в памяти кучу одинаковых сервисов? Элементарный пример сервис смс отправки или логгер в монгу
это сервисы с состоянием.ок, но это исключение, а не правило
источник

PZ

Pavel Zarubin in Laravel Pro
Adel
ты до пхп на другом языке писал, да?
Угу, что не так в моем утверждении?)
источник

A

Adel in Laravel Pro
Pavel Zarubin
Угу, что не так в моем утверждении?)
потому что пхп работает не так. после каждого запроса всё умирает.
источник

A

Adel in Laravel Pro
сервис отправки смс понадобится один раз из нескольких тысяч запросов.
источник

A

Adel in Laravel Pro
здесь немного по-другому ресурсами надо управлять )
источник

PZ

Pavel Zarubin in Laravel Pro
Adel
потому что пхп работает не так. после каждого запроса всё умирает.
Я понимаю, но если я за "сеанс" использую несколько раз один и тот же сервис через bind каждое использование будет иметь свой экземпляр этого сервиса и свой айдишник в памяти
источник

PZ

Pavel Zarubin in Laravel Pro
Проверял через dd
источник

A

Adel in Laravel Pro
да. но обычно париться за это не надо. они почти всегда stateless.
источник

A

Adel in Laravel Pro
а настоящая конфигурация... нужна когда именно отправляется смска например.
источник

A

Adel in Laravel Pro
очень странно если она будет отправляться несколько раз за сеанс
источник

A

Adel in Laravel Pro
да еще и в совсем разных местах приложения
источник

Y

Yaroslav in Laravel Pro
подключаются через loadClass, который на скрине упущен, чтобы показать require_once, который я и так помню где находистя в этом методе, т.к. на днях автозагрузку классов написал для модкс и внедрил сервис-контейнер. psr-4 загрузчик тоже подключает не через космос, а через require/include. Есть примеры имплементации.
источник

PZ

Pavel Zarubin in Laravel Pro
Adel
да. но обычно париться за это не надо. они почти всегда stateless.
Нет, я понимаю конечно же что если сервис дёргается в паре мест и только по надобности то не стоит для него делать синглтон привязку, но сервисы бывают разные в зависимости от приложения и довольно часто сервисы дёргаются по всему приложению в десятках разных мест. Приведу пример из своей работы, мы банковское приложение и у нас есть сервис по работе с финансами (задолжности, балансы etc) за один сеанс в этом сервисе может пройти с десяток обращений из десятка мест, каждый раз инициализировать его по мне моветон и жирновато, особенно учитывая объем конфига который он принимает
источник

PZ

Pavel Zarubin in Laravel Pro
Yaroslav
подключаются через loadClass, который на скрине упущен, чтобы показать require_once, который я и так помню где находистя в этом методе, т.к. на днях автозагрузку классов написал для модкс и внедрил сервис-контейнер. psr-4 загрузчик тоже подключает не через космос, а через require/include. Есть примеры имплементации.
Я не у компа сейчас, вообще не удобно вести так диалог, но я бы с удовольствием продолжил бы его завтра уже с примерами и вырезками кода
источник