@symfony_php

Страница 219 из 1418
Daniel
01.06.2017
11:46:27


Под каждом классом предлагает это сделать

Salavat
01.06.2017
11:48:38
Это в последнем обновлении они воткнули генератор сервисов?

Alan
01.06.2017
12:09:03
та уж давно по-моему оно там

Google
Alan
01.06.2017
12:09:37
phpstorm cms))

Lezhnev
01.06.2017
12:17:56
@sitsalavat :) отключи Symfony Plugin - и магия уйдет :) с 2014 года генератор там https://confluence.jetbrains.com/display/PhpStorm/Symfony+Development+using+PhpStorm

Dmitriy
01.06.2017
12:19:04
А пихать логгер в сервисы гуд идея?

Dinar
01.06.2017
12:19:20
А почему нет?

Dmitriy
01.06.2017
12:20:29
логгер больше инфраструктурный слой.. к бизнесу сервисов имеет слабое отношение

Salavat
01.06.2017
12:20:34
Вот я лох. Я не видел этого генератора )

Dmitriy
01.06.2017
12:20:34
или я усложняю?

Lezhnev
01.06.2017
12:23:04
усложняешь. Если не нравится в сервисе - декорируй https://symfony.com/doc/current/service_container/service_decoration.html

Dmitriy
01.06.2017
12:23:45
или лучше евент?

Dinar
01.06.2017
12:27:55
Но я не утверждаю.

Daniel
01.06.2017
13:37:37
Дыа, мне тоже не особо нравится, что логгер инжектится

Я вот думаю CompilerPass мб делать? Типа чтобы autowire для тех, у кого есть setLogger(Psr\LoggerInterface $logger)

Google
Daniel
01.06.2017
13:37:44
Че то такое по любому есть



Dinar
01.06.2017
13:38:45
Но почему???

Вот вам надо вывести какую-то инфу в логи в сервисе

Какие предложения в таком случае?

Daniel
01.06.2017
13:41:02
Но эта херня короче все равно обязывает calls определять, по которому она будет искать аргумент с именем $logger (ПОПРАВОЧКА, ТУТ НЕ ИМЯ АРГУМЕНТИКА)

И уже менять на нужный логер \ канал

Либо конструктор смотрит

Хммм

Dinar
01.06.2017
13:49:16
Ну я думал, ты ждешь в сервисе ЛоггеИнтерфейс, и туда что тебе нужно инжектишь.

Daniel
01.06.2017
13:55:03
Не понял ненмого, ты вроде тоже считаешь, что логгер и сервис - разные уровни, не?

Или ты о level говоришь как о info, debug, crit?

Dinar
01.06.2017
13:55:53
Я считаю, что логгер можно инжектить, когда он нужен. Я к тому, что логгер может быть на разных уровнях, в том числе и на уровне сервиса.

Не не. не про уровни ошибки.

Про принципиальные уровни

Просто не вижу проблемы тут :)

Daniel
01.06.2017
13:57:57
Какие предложения в таком случае?
Неявно инжектить, т.е. не определять логгер в calls или arguments, в которых типа должны пробрасываться только те данные, которые нужны бизнесу

Dinar
01.06.2017
13:58:37
Пытаешься идеализировать?

:)

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

Google
Daniel
01.06.2017
13:58:56
Да хз, у меня тоже просто всё чешется, когда я @logger в конфиге прописываю

Dinar
01.06.2017
13:59:11
Ну я думаю, тут стоит руководствоваться опытом.

Daniel
01.06.2017
13:59:16
В качестве зависимости

Dinar
01.06.2017
13:59:20
У тебя когда нибудь возникала проблема из-за этого?

Daniel
01.06.2017
13:59:29
Ну чешусь

Dinar
01.06.2017
13:59:40
Ну прокинь туда свой сервис, в котором уже будет прокинут нужный логгер

Тогда тебе надо будет только в сервисе логгер заменять

Типа оберни это в свой сервис

Мне кажется, такое может решить проблему эту идеологическую. :)

Daniel
01.06.2017
14:02:49
А это для чего? Я как раз не хочу ничего вообще прокидывать лишнего, ни логгер, ни сервис с логгером, ни сервис с сервисом у которого логгер Я хочу autowire для логгеров в любом сервисе, которые, например, имеют интерфейс Loggable, т.е. чтобы автоматом регистрировался нужный вызов setLogger для таких сервисов, а в самих сервисах чисто трейт, в котором есть этот метод.

Dinar
01.06.2017
14:04:02
Просто я вообще не вижу тут никакого решения проблемы, кроме проблемы красивого кода

В любом случае, тебе придется рефакторить и убирать в каждом сервисе трейт и интерфейс и т.п.

Alan
01.06.2017
20:29:28
в яве аннотация @Loggable есть для проперти которая инжектит логгер в филд bean после инициализации)

Google
Dmitriy
02.06.2017
05:43:34
Получается у сервиса уже 2 ответственности: своя логика и плюнуть в лог

Dmitriy
02.06.2017
06:31:04
Когда как

я рассуждаю

Пока пришел к мысли что более менее правильно кидать Событие

Daniel
02.06.2017
06:32:26
И в листенере логировать?

Dmitriy
02.06.2017
06:32:28
Есть еще аспектное программирование.. но я его не пробовал

Daniel
02.06.2017
06:32:33
Т.е. несколько листенеров?

Dmitriy
02.06.2017
06:33:13
да.. а подписчики логируют.. причем можно вынести в очередь

Admin
ERROR: S client not available

Daniel
02.06.2017
06:33:53
А если 1 на все случаи жизни? Куда пробрасывается DTO состояния системы, канал и уровень сообщения и само сообщение?

Dmitriy
02.06.2017
06:34:41
1 подписчик на все события? )

можно сделать 1 Subscriber

Dinar
02.06.2017
07:03:08
Так один и надо наверно. Зачем плодить?

Дмитрий
02.06.2017
07:30:40
подскажите по Swift_Mailer $message = \Swift_Message::newInstance() ->setSubject('Hello Email') ->setFrom('xxxxxx') ->setTo($user['email']) ->setBody( $this->container->get('templating')->render( 'AccidentBundle:Default:email_region.html.twig', array('data' => $data['data']) ), 'text/html' ) ; if ($this->mailer->send($message)) { echo "Отправлен\n"; } else { echo "Не отправлен\n"; } пишет что отпралено, но письма нет

Danil
02.06.2017
07:33:42
на сервере в логи почты смотри

Daniel
02.06.2017
07:35:38
Не факт)

Конфиг покажи вообще на swiftmailer

У тебя может быть они в spool ушли

Дмитрий
02.06.2017
07:41:17
скорее всего swiftmailer: transport: "%mailer_transport%" host: "%mailer_host%" username: "%mailer_user%" password: "%mailer_password%" spool: { type: memory }

Google
Daniel
02.06.2017
07:43:21
Ну вот)

Дмитрий
02.06.2017
07:48:01
угу

сделал отправку через гугл, только в поле от пишет почту юзера хотя указано ->setFrom('username@mail.ru')

почему от кого не меняется?

нашел :) array('your fix adress@gmail.com' => $email)

какие настройки должны быть чтобы почту через яндекс слать? указываю mailer_transport: smtp mailer_host: smtp.yandex.com юзера и пароль и в ответ [Swift_TransportException] Expected response code 250 but got code "", with message ""

через гугл получилось, а вот с яндексом засада

Dinar
02.06.2017
09:09:22
Там надо правильный порты указать и тип шифрования

Daniel
02.06.2017
10:00:57
swiftmailer: transport: "%mailer_transport%" host: "%mailer_host%" username: "%mailer_user%" password: "%mailer_password%" encryption: tls port: 587

Мой конфиг для яндекса

Дмитрий
02.06.2017
10:01:57
Damir
02.06.2017
10:17:34
Всем привет! Изучаю фреймворк, пытаюсь сделать роутинг через аннотацию, пишу @Route("/login", "name="login") пишет not found, когда захожу по /login

Через Yaml все работает

кстати сразу вопрос лучше через yaml или аннотации?

Dinar
02.06.2017
10:18:49
Чтобы аннотации заработали, в ямле надо указать, где смотреть на клссы с аннотацией.

Damir
02.06.2017
10:18:58
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

Dinar
02.06.2017
10:19:08
нет

Я не об этом

Damir
02.06.2017
10:19:32
аа все понял

щас покапаюсь

Dinar
02.06.2017
10:20:31
Типа такого в routing.yml в твоем бандле. menu: resource: '@ShopBundle/Controller/' type: annotation

Страница 219 из 1418