Size: a a a

2021 March 19

ПГ

Павел Г. in phpGeeks
Дмитрий Щербаков
Подскажите кто в теме, я тут начал воевать с тру веем )) сижу на этапе DI, вот такой дефинишн создал для логгера https://pastebin.com/enKzvqw0
теперь там где нужен будет логгер буду делать (LoggerInterface $logger)
всё супер все понятно

а если я хочу сделать еще один дефинишн логгер допустим с именем App чтобы писал в файл app.log то... и вот тут я сломался

навскидку придумал только сделать класс AppLoggerInterface который екстендится от LoggerInterface и тогда можно будет сделать дефинишн AppLoggerInterface::class и юзать как (AppLoggerInterface $logger)

гавно или норм?
Как это решается в Symfony DI - Автоваринг понимает нейминг переменной. Т.е. можно забиндить на $appLoger один логер, а на $superLogger другой логер.
Дальше уже вопрос к вашему контейнеру и есть ли автовайринг. Можно например разрулить через контекст, если контейнер вызывается вручную. Если генерировать этот контекст автоварингом, в которм как раз одна из переменных будет неймингом.
источник

ПГ

Павел Г. in phpGeeks
Ну а так же в сборке конкретного класса в DI указывать конкретную реализацию, а не интерфейс тянуть. Т.е. класс в котором нужен дургйо логер спецом конфигурирцется в DI а не автоматом билдится
источник

ПГ

Павел Г. in phpGeeks
Короче разные  варианты есть )
источник

АБ

Александр Базилев... in phpGeeks
Добрый день! Не подскажете, какой проект нужно реализовать на PHP, что бы попасть на стажировку в компанию. PHP изучаю давно, но цельного проекта для портфолио нет.
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Павел Г.
Как это решается в Symfony DI - Автоваринг понимает нейминг переменной. Т.е. можно забиндить на $appLoger один логер, а на $superLogger другой логер.
Дальше уже вопрос к вашему контейнеру и есть ли автовайринг. Можно например разрулить через контекст, если контейнер вызывается вручную. Если генерировать этот контекст автоварингом, в которм как раз одна из переменных будет неймингом.
дак ты тоже самое и говоришь )) забиндить разные логгеры и дальше использовать где надо какой надо, я тоже к этому пришел, и это уже третий ответ что так и есть нормально
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Павел Г.
Ну а так же в сборке конкретного класса в DI указывать конкретную реализацию, а не интерфейс тянуть. Т.е. класс в котором нужен дургйо логер спецом конфигурирцется в DI а не автоматом билдится
дак я и первый спецом конфигурирую
            LoggerFactory::class => function (ConfigInterface $c) {
               return new LoggerFactory($c->get('file')['path_logs']);
           },
           CoreLoggerInterface::class => function (LoggerFactory $l) {
               return $l->create('Core');
           },
           AppLoggerInterface::class => function (LoggerFactory $l) {
               return $l->create('App');
           },
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
два логгера в разные файлы, в будущем можно будет легко поменять реализацию любого из логгеров не меняя в коде приложения
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Александр Базилев
Добрый день! Не подскажете, какой проект нужно реализовать на PHP, что бы попасть на стажировку в компанию. PHP изучаю давно, но цельного проекта для портфолио нет.
спроси в компании, самый простой путь ) а то окажется потом что им это нафиг не надо и лучше бы ты сделал "вот так вот" ))
источник

RS

Rick Sanchez in phpGeeks
Александр Базилев
Добрый день! Не подскажете, какой проект нужно реализовать на PHP, что бы попасть на стажировку в компанию. PHP изучаю давно, но цельного проекта для портфолио нет.
Програмирование это не дизайн, тут не нужно иметь портфолио для устройства на работу, достаточно знать базовые понятия языка и минимальный стек технологий, PHP, JavaScript, MySQL, ну и само собой писать код такой чтобы тебе руки не хотелось оторвать
источник

N

NoMad42 in phpGeeks
Rick Sanchez
Програмирование это не дизайн, тут не нужно иметь портфолио для устройства на работу, достаточно знать базовые понятия языка и минимальный стек технологий, PHP, JavaScript, MySQL, ну и само собой писать код такой чтобы тебе руки не хотелось оторвать
И не быть мудаком.
источник

N

NoMad42 in phpGeeks
Сейчас, говорят, это маст хэв
источник

АБ

Александр Базилев... in phpGeeks
=)) Спасибо, я учту выше сказанное =)
источник

RS

Rick Sanchez in phpGeeks
NoMad42
И не быть мудаком.
Не слышал о таком, люди разные, иногда нужно терпеть старших програмистов, но зато потом они сделают из тебя хорошего специалиста и когда-то ты также будешь надрывать свой голос обучая новых джунов
источник

r

release-tracker in phpGeeks
Вышла новая версия PHPStan: static analysis tool:  0.12.82
источник

N

NoMad42 in phpGeeks
Rick Sanchez
Не слышал о таком, люди разные, иногда нужно терпеть старших програмистов, но зато потом они сделают из тебя хорошего специалиста и когда-то ты также будешь надрывать свой голос обучая новых джунов
Я тут смотрел / слушал разных ребят на тему "что спрашивать" и про хард скилы там было вообще чуть чуть. Ну просто проверить что человек не совсем на уровне hello world. За то в всегда звучала идея что "человек должен вписаться в коллектив". Так что "терпеть" кого-то это прям для староверов или тех кому очень тежело нанять нормального специалиста
источник

DD

Den Den in phpGeeks
подскажите, как сделать так чтобы абсолютно любая строка русская парсилась в json? почему если вырезать все обратные слеши, то комбинации  \n \r \* всё это крашит всё равно?
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Den Den
подскажите, как сделать так чтобы абсолютно любая строка русская парсилась в json? почему если вырезать все обратные слеши, то комбинации  \n \r \* всё это крашит всё равно?
не знаю, у нас работает ))
источник

t0

tele_yi 001 in phpGeeks
Hello, everyone!
источник

N

NoMad42 in phpGeeks
P. S. Смотрел / слушал ребят из фирм калибра avito, lamoda и т. д.
источник

АБ

Александр Базилев... in phpGeeks
Спасибо за ответы!
источник