Terminator
15.10.2018
01:51:31
Katulos⠀ будет жить. Поприветствуем!
Katulos
15.10.2018
01:51:50
Господа
bin/console doctrine:database:create
2018-10-15T04:48:28+03:00 [error] Error thrown while running command "doctrine:database:create". Message: "Connection does not contain a 'path' or 'dbname' parameter and cannot be dropped."
Как это лечить?
Google
Katulos
15.10.2018
01:52:20
Хеловорд копипастом по мануалу
в .env Все верно вроде
Я так понял, оно просит именно переменную среды, но не читает .env файл проекта
т.к. если в косноли сказать export DATABASE_URL="mysql://root:root@127.0.0.1:3306/db_name" и позвать bin/console doctrine:database:create - оно отработает без ошибок
ЧЯДНТ?
Александр
15.10.2018
05:11:59
ЧЯДНТ?
Дев режим или прод? А то переменные окружения из файла читаются только в дев режиме
Katulos
15.10.2018
05:19:19
Дев
Александр
15.10.2018
08:14:25
Anton ?
15.10.2018
08:14:59
днище какое то
$container
->register('api.command_handler_locator', ServiceLocator::class)
->addTag('container.service_locator')
->setArguments([[
'dm' => new Reference('api_handlers.command.dm'),
]])
;
...
$container->register("api_handlers.api.test", GeneralApi::class)
->addMethodCall('setLocator', [new Reference('api.command_handler_locator')]);
....
public function instagramActionsGet($token, $user,) {
$DM = $this->locator->get('dm');
$DM->setup($token, $user, );
}
не подсказывает что есть сервис dm, не автокомплитит методы объекта $DM
я так полагаю нужно где-то указать какой именно локатор используется
Yuri
15.10.2018
08:43:24
$container
->register('api.command_handler_locator', ServiceLocator::class)
->addTag('container.service_locator')
->setArguments([[
'dm' => new Reference('api_handlers.command.dm'),
]])
;
...
$container->register("api_handlers.api.test", GeneralApi::class)
->addMethodCall('setLocator', [new Reference('api.command_handler_locator')]);
....
public function instagramActionsGet($token, $user,) {
$DM = $this->locator->get('dm');
$DM->setup($token, $user, );
}
не подсказывает что есть сервис dm, не автокомплитит методы объекта $DM
Почисти кеш. А при запуске кода ошибку выдает, что сервис не найден? Если да, то сделай ./bin/console debug:container и посмотри есть там твой сервис или нет.
Anton ?
15.10.2018
08:44:06
а почему ты решил что я не чистил кеш?
Google
Yuri
15.10.2018
08:44:20
пробрасывать и регать
Anton ?
15.10.2018
08:44:34
это мой "рабочий" код
Yuri
15.10.2018
08:44:49
Anton ?
15.10.2018
16:31:15
посоны, подскажите. есть классы, у них есть метод setDebug(true)
вот как бы удобнее сказать контейнеру чтобы он вызвал этот метод, при условии что передан, например, get-параметр debug=true.
Александр
15.10.2018
17:43:48
Anton ?
15.10.2018
18:08:08
Што ето?
Yuri
15.10.2018
18:08:55
Што ето?
https://symfony.com/doc/current/service_container/compiler_passes.html
Anton ?
15.10.2018
18:12:46
нужно на проде смотреть трейс некоторых запросов
можно по гет-параметру на лету менять окружение?
Александр
15.10.2018
18:14:11
Можно все, но не знаю насколько хорошая практика так делать. В index.php проверку можно добавить
Anton ?
15.10.2018
18:15:15
не, не вариант
1) классы ничего не знают об окружениях симфы
2) большая часть функционала уже сделана через setDebug(true).
проблема в том что иногда люди забывают это вызвать и отладчик показывает не всё
Александр
15.10.2018
18:33:58
Ну можно тогда какой нибудь Листенер написать и там дергать у твоих сервисов этот метод
@saintnox
Yuri
15.10.2018
18:50:49
Александр
15.10.2018
18:51:00
Yuri
15.10.2018
18:51:14
нет
Google
Yuri
15.10.2018
18:53:40
просто если проект на костылях , то + один костыль не помешает
Просто костыль - потому что, просто задумайтесь, чтобы включить дебаг нужно 1) Создать EventClass + EventListener + вкорячить это в конфигурацию.
Хотя Symfony вроде дает свои готовые инструменты.
И фраза - "Классы ничего не знают об окружении симфони" не понятна если честно
ну в целом не сарказм
а какая версия симфони ?
только не говори что 3.4 или 4
Александр
15.10.2018
18:59:29
Ну как бы понятно что костыль, я просто накидываю варианты человеку что с этим можно сделать, раз уж так получилось и так нужно
Anton ?
15.10.2018
19:05:39
Конечно же 34
Кроме как передать им $debug=true
Александр
15.10.2018
19:08:02
а через чего они выводят?
логгер какой-то один или они сами пишут куда то
Yuri
15.10.2018
19:08:15
echo
скинь пример кода плиз
просто не понятно почему такая задача возникла
Anton ?
15.10.2018
19:09:22
Александр
15.10.2018
19:10:03
а он бы уже сам там разбирался, выводить или не выводить
Maxim
15.10.2018
19:10:50
https://freelancehunt.com/r/oW5EK
Anton ?
15.10.2018
19:10:54
Скажи это автррам всех либ с гитхаба. Им просто похер на это, кодят как хотят
Yuri
15.10.2018
19:11:21
окружение можно скормить любому сервису через конфигурацию
есть DI, а в 3.4 есть еще и autowiring
Google
Yuri
15.10.2018
19:12:53
я без приколов или ухмылок, просто размышеления, если чего
Александр
15.10.2018
19:13:03
автовайринг в 2.8 ещё появился)
Yuri
15.10.2018
19:13:07
а то в сообщениях эмоций не видно, поэтому поясняю
ну да, просто тут 3.4
Anton ?
15.10.2018
19:13:39
Но плюс минус всем либам можно передать флаг дебага либо через конструктор либо через метод
Но нужно тригернуть включения дебага по приходу гет параметра, например
Александр
15.10.2018
19:15:42
я бы сделал всё таки один сервис, который бы логировал в нужном виде, инъектил его в нужные мне сервисы, и в конкретных сервисах вызывал бы что-то типа $logger->log(), причем логгер бы внутри себя проверял, если окружение - дев (или есть гет параметр debug=true), то выводим
Yuri
15.10.2018
19:15:47
Admin
Yuri
15.10.2018
19:16:00
вот твое решение
Смотри на GET и юзай
но кто-нить тоже передаст тебе в GET debug = true
и увидит все потроха
Александр
15.10.2018
19:17:13
Anton ?
15.10.2018
19:17:30
Не передаст
Yuri
15.10.2018
19:17:47
вообще вот общий подход к окружениям https://symfony.com/doc/3.4/debug/debugging.html
тут тебе и дебаг панель будет видна
а в ней все что нужно
Anton ?
15.10.2018
19:18:48
Как заставить сторонние либы срать в эту панель если в их коде echo?
Александр
15.10.2018
19:19:54
адаптер напиши
Google
Александр
15.10.2018
19:20:08
или декоратор какой
Yuri
15.10.2018
19:20:36
Anton ?
15.10.2018
19:20:54
Но зачем мне этот геморой? Ради чего? Какой профит?
Yuri
15.10.2018
19:21:25
ну профит в общем подходе, чтоб потом не париться вот так как ты щас
или потом кто-то после ) как ты щас )
ну в целом есть логика в твоих словах
удобно просто когда в панельке все
а потом зачем echo ? cli mode ?
это консольное приложение ?
Anton ?
15.10.2018
19:24:06
Цель - предотвратить человеческий фактор по забыванию прокидывать. Debug=true в классы. Чтоб оно саио вызывалось для классов из контейнера по определённому триггеру
Это json api
Yuri
15.10.2018
19:25:26
ну тогда лучше не в гет а в теле запроса уж передавать (если POST, PATCH, PUT, DELETE)
хотя смысл такой же
лан я свалил, парни, сорян )
Anton ?
15.10.2018
19:27:27
Yuri
15.10.2018
19:27:54
)
Anton ?
15.10.2018
19:28:17
Я пока не вкурил как он мне поможет
Yuri
15.10.2018
19:28:38
ты хоть кусок кода бы скинул где ты хочешь это применить
Александр
15.10.2018
19:28:39
проставит setDebug(true) там где нужно