Size: a a a

2021 March 19

ДЩ

Дмитрий Щербаков... in phpGeeks
Ратмир Диронин
1 сущность Logger и в её конструктор передавай название файла
вооотт и мы приходим к тому что как мне это сделать если я собираюсь логгер протаскивать через конструктор в классы
источник

FL

First Last in phpGeeks
Ратмир Диронин
Всё равно много
У тебя логгер не пишет в файл, че делать будешь?
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Ратмир Диронин
1 сущность Logger и в её конструктор передавай название файла
аа ну и я так и делаю вообще-то )) в DI
источник

РД

Ратмир Диронин... in phpGeeks
Дмитрий Щербаков
вооотт и мы приходим к тому что как мне это сделать если я собираюсь логгер протаскивать через конструктор в классы
У тебя объект Logger. Не интерфейс, а класс просто. Создай у него конструктор с именем файла и всё
источник

РД

Ратмир Диронин... in phpGeeks
First Last
У тебя логгер не пишет в файл, че делать будешь?
Отлаживать и права настраивать
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
вот мои дефинишины в 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
Ратмир Диронин
У тебя объект Logger. Не интерфейс, а класс просто. Создай у него конструктор с именем файла и всё
ты говоришь про такое?
            LoggerFactory::class => function (ConfigInterface $c) {
               return new LoggerFactory($c->get('file')['path_logs']);
           },
           CoreLogger::class => function (LoggerFactory $l) {
               return $l->create('Core');
           },
           AppLogger::class => function (LoggerFactory $l) {
               return $l->create('App');
           },
источник

РД

Ратмир Диронин... in phpGeeks
Дмитрий Щербаков
вот мои дефинишины в 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');
           },
new Logger('core')->factory();
new Logger('app')->factory();
источник

РД

Ратмир Диронин... in phpGeeks
Или как там в пыхе... Вроде так
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Ратмир Диронин
new Logger('core')->factory();
new Logger('app')->factory();
это понятно, как мне в return в DI это дать, какой класс задать в дефинишине?
источник

T🐜

The Ant 🐜 in phpGeeks
Alex Surname
сильное заявление.  сам язык значительно уступает С и С++
и? программисты много не учитывают, привыкли делать делать что скажут. А если им дает право выбора, начинают делать так, как сами мечтали, и объективности в этом выборе хрен найдешь. Яркий тому пример повальное увлечение микросервисами. Вот блять надо и все, а чо, почему и какие проблемы решают? А похеру, надо микросервисы.

Я вот например как человек, который часто нанимает людей со стороны должен учитывать то, что исполнителя найти на конкретный язык под веб бекенд может быть крайне сложно. Даже если и критична скорость, врятли я быстро найду челика, который сможет на сях написать то что нужно (портировать логику с пыхи например). Врятли на сях будут библиотеки, которые мне нужны и которые +- поддерживаются сообществом и т.д. И вообще, если бы я мыслил вашими категориями, и рубля бы не заработал :D
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
как создать два разных экземпляра это понятно, как их в DI хранить чтобы потом прокидывать дальше, вот в чем загвоздка
источник

РД

Ратмир Диронин... in phpGeeks
Дмитрий Щербаков
это понятно, как мне в return в DI это дать, какой класс задать в дефинишине?
Как ты функцию объявляешь после ::class ?
(не шарю)
источник

A

Andrey DEV in phpGeeks
кстати такой вопрос - кто начинал своб веб студию насколько вам было сложно?
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Дмитрий Щербаков
вот мои дефинишины в 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');
           },
у этого решения есть офигенный плюс, в будущем можно легко взять и переделать реализацию чтобы отныне App срал в stdoute вместо файла и не надо будет весь код шерстить, а просто в DI поменял реализацию и готово
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Ратмир Диронин
Как ты функцию объявляешь после ::class ?
(не шарю)
это DI
            CoreLoggerInterface::class => function (LoggerFactory $l) {
               return $l->create('Core');
           },

это контроллер
class Controller { function __construct(CoreLoggerInterface $logger) }

а вот через DI запустили контроллер на исполнение
echo $container->get(Controller::class);

DI запустил контроллер и разрулил зависимости
источник

ПМ

Премьер Министр... in phpGeeks
Как прописать sql код в mysql  чтобы сделать связь один ко многим внешний ключ в одной таблице первичные в нескольких? Стандартный блог, связь статья и комментарии, юзер и комментарии? Пробовал прописывать foreign key но выдает ошибку. С одним полем все работает. Из документации тоже не ясно.
источник

РД

Ратмир Диронин... in phpGeeks
Ратмир Диронин
new Logger('core')->factory();
new Logger('app')->factory();
Factory->add($logger);
Factory->get($nameLogger);
источник

РД

Ратмир Диронин... in phpGeeks
Ратмир Диронин
Factory->add($logger);
Factory->get($nameLogger);
Т.е. в фабрике хранить список логгеров. Так будет динамично
источник

СП

Сергей Предводителев... in phpGeeks
Добрый вечер!

Подскажите, как можно отсортировать массив по значениям по возрастанию, НО при этом если значения одинаковые, порядок должен сохранится исходный.

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