Павел
как решить проблему? её не было раньше
Гуглите postgres role does not exist Еще вариант если локальная разрабокта, грохнуть базу с волюмом и попробовать сначала
Павел
и как это поможет подгпузить дотэнвлокал
Это может понять что посгресс хочет, если разобрались что не прокидывается env - ok
Рома
оказалось всё проще я забыл точку
Рома
symfony var:export --multiline > .env.local
Михаил
оказалось всё проще я забыл точку
Ахахах, а я тоже думал что может ты неправильно что-то написал и всматривался в env.local но подставу не нашёл )))
Magzhan
Коллеги, есть у меня много внешних api реализация в проекте по которым я логинюсь делаю там какие-то изменения у всех этих синхронизации есть метод логин но они немного отличаются смотря как в этом api логиниться Как мне реализовать более грамотна? Через интерфейсы и все такое class FirstSyncService { private string $token; public function __construct(protected Client $httpClient) { $this->login(); } private function login(): void { $this->token = Cache::remember('partner_access_token', 600, function () { $response = $this->httpClient->post(env('PARTNER_URL') . "/api/login", [ 'content-type' => 'application/json', 'accept' => 'application/json', RequestOptions::JSON => [ 'email' => env('PARTNER_EMAIL'), 'password' => env('PARTNER_PASSWORD') ] ]); $data = json_decode($response->getBody()->getContents()); return $data->token; }); } // class SecondSyncService { private string $access_token; public function __construct(protected Client $httpClient) { $this->login(); } private function login(): void { Cache::remember('test2', 3600-60, function () { return 'test_value'; }); $this->access_token = Cache::remember('dynamics_access_token', 3600 - 60, function () { $response = $this->httpClient->post(env('DYNAMICS_TOKEN_URL'), [ 'form_params' => [ 'grant_type' => env('DYNAMICS_GRANT_TYPE'), 'client_secret' => env('DYNAMICS_CLIENT_SECRET'), 'client_id' => env('DYNAMICS_CLIENT_ID'), 'scope' => env('DYNAMICS_SCOPE'), ], ]); $data = json_decode($response->getBody()->getContents()); return $data->access_token; }); }
Magzhan
где копать напишите?
Михаил
Так как это сервис в конструктор это пихать не надо.
Михаил
Так как внешние потребители не должны знать про логин - то его реализация дело каждого сервиса, класть под интерфейс нет смысла
Рома
хех гениальное решение public function setUp(): void { parent::setUp(); putenv("DATABASE_URL=postgres://postgres:12345@127.0.0.1:5432/postgres?sslmode=disable&charset=utf8"); // // $this->stmtService = static::getContainer()->get(StmtService::class); // }
Михаил
Ты можешь немного облегчить себе учесть использовав scoped клинет https://symfony.com/doc/current/http_client.html#scoping-client
Рома
другая ошибка)
Рома
1) App\Tests\StmtServiceTest::testSearchFilterSuccess InvalidArgumentException: "App\Tests\Resource\Fixture\StmtFixture" is not a registered fixture
Михаил
где копать напишите?
Также я наверное бы предложил разделить твой клиент на 2 сущности - репозиторий и декоратор клиента. Декоратор клиента заботится о том, что ему нужно авторизовываться по протуханию кеша. Репозиторий использует клиент и реализует доменные методы (getBannedUsers, addDeal)
Рома
подскажи можно ли отключить это Remaining indirect deprecation notices (5) 1x: Public access to Connection::connect() is deprecated. (Connection.php:367 called by Connection.php:453, https://github.com/doctrine/dbal/issues/4966, package doctrine/dbal) 1x in StmtServiceTest::setUp from App\Tests для кода библиотек
Рома
это не моё
Рома
SYMFONY_DEPRECATIONS_HELPER=999999 установить в disabled
Рома
не понимаю почему phpunit не читает .env.test
Рома
есть
Михаил
SYMFONY_DEPRECATIONS_HELPER=999999 установить в disabled
можно ещё APP_DEBUG в 0 установить - но это слишком жёстко
Павел
Михаил
Ну кстати да
Рома
почти заработало) только данные не сохраняет
Рома
и не понятно как исправить чтоб phpunit читал из .env.test
Вадим
привет! подскажите зачем это и можно ли это как-то обойти
Михаил
привет! подскажите зачем это и можно ли это как-то обойти
User это зарезервированное имя для твоей бд Или users или user но в кавычках
Вадим
Вадим
так?
Михаил
А, ну значит генератор не осиляет
Михаил
Назови по другому а потом уже сам отредактируй название
Вадим
Назови по другому а потом уже сам отредактируй название
отредактировать имя свойства или нельзя чтобы поле в таблице было user_id?
Михаил
А я хз почему он ругается на поле как на reserved. Ты хочешь связь создать?
Михаил
Назови users потом вручную отредактируй
Рома
умы програмирование проходил собез и мне задали вопрос подсчитать количество нулей в 100! (факториал)
Рома
или же как побороть проблему переполнения
Рома
емоё . прикопапался к моей вышке
Рома
матрица в php 😂
Рома
а потом, когда я спросил . Ответил всё у них обычно, эльбрусы не разрабатывают
Рома
ахах я даже определение факториала забыл
Рома
какого бреда не наслушаешься на собесах
Kirill
от факториала я помню только восклицательный знак, это норма)))
Рома
одним надо вычеслить угол между стрелками 16:20 другому это? ты че блт на 500к собеседуешь? или яндекс иновации
Kirill
у тебя 360 градусов и 12 часов
Kirill
360 / 12 - один час
Рома
нехрена не изи, зачем это бэкендеру
Kirill
(20 - 16) * 360 / 12 получается
Kirill
нехрена не изи, зачем это бэкендеру
эм, ну валидацию написать, например
Kirill
нехрена не изи, зачем это бэкендеру
может я что не понял, где не изи?
Kirill
ну т.е. у тебя 2 стрелки, одна на 20, другая на 16
Kirill
разница между ними 4 часа
Kirill
один час - это 30 градусов
Kirill
так что угол между ними получается 120
Рома
не верно
Kirill
Чо?
ну 30 * 4
Михаил
Между 6 и 8 - 120?
Kirill
между 16 и 20 часами
Kirill
Между 6 и 8 - 120?
откуда ты взял 6 и 8?
Михаил
А, ну я не прошёл получается
Kirill
или подожди, надо часы на 16:20 брать и вычислить между минутной и часовой?
Kirill
а, ну так тоже самое получается)))
Kirill
а, не, нифига
Рома
там угол меньше 10 градусов
Рома
между минутной и часовой стрелкой
Kirill
16 часов относительно 0 - это 120
Рома
или ещё дичь расчитайте вероятность выподения числа 5 на 2 кубиках
Рома
нахуя мне камбинаторика
Рома
в програмировании веба
Михаил
или же как побороть проблему переполнения
Ну, нужно решать на языках у которых арефметика больших чисел (типо erlang/elixir, rust)
Kirill
а 20 минут - это 360/60*20 - тоже 120 градусов
Kirill
и получаешь mod(360/60*20 -360/12*16)
Kirill
можешь ещё % 360 взять
Михаил
а 20 минут - это 360/60*20 - тоже 120 градусов
Да всё верно 9 и 3 это 180 9 и 6 это 90 Получается 9 и 5 это 120 (90 + 90/2)