
Sergey
02.01.2018
17:05:29
cohision/coupling

Dinar
02.01.2018
17:05:36
Давай. :)
Спасибо за беседу. :)

Shmaltorhbooks
02.01.2018
17:05:49
вы поговорите, а я домой пойду))

Google

Shmaltorhbooks
02.01.2018
17:06:00
только сначала терминологию синхронизируйте))
а то cohision и coupling часто путают))

Sergey
02.01.2018
17:06:36

Dinar
02.01.2018
17:08:12
У меня возник вопрос.
Я подчичаю депрекейты для симфы 4.
И вот logout_on_user_change поставил в true
И теперь не логинится.
Что бы это могло быть?

Dmytro
02.01.2018
17:14:28
fos?

Dinar
02.01.2018
17:15:19
Нет. Просто обычный

Pavel
02.01.2018
19:42:12
Это нормально что после перехода на 4 симфони http exception'ы не обрабатываются? Или я что-то не так сделал? http://beta.api.findmedia.xyz
И еще если грузить зависимости компосера без дева то удаляется дотенв и все падает. Это все такое сырое или я тупой просто?
Если смотреть на этот гайд https://symfony.com/doc/current/deployment.html то symfony_requirements вообще не существует, а —no-dev ложит дотенв

Google

$iD
02.01.2018
19:55:19
https://github.com/symfony/symfony/blob/4.0/composer.json
не тянет dotenv ни в каком виде.. значит его тянет какой-то пакет как dev зависимость
в чём проблема самому добавить то?

Pavel
02.01.2018
19:56:43
В том, что он добавлен в дев из коробки, и врятли это сделали "по приколу"

$iD
02.01.2018
19:57:29
пересмотри composer.json - там нет dotenv. его тянет другой пакет а не symfony/symfony

Pavel
02.01.2018
19:57:44
Он есть, ctrl+f
По той ссылке, что ты скинул

$iD
02.01.2018
19:57:56
replace

Pavel
02.01.2018
19:57:58
symfony/dotenv

$iD
02.01.2018
19:57:59
секция
а не require-dev

Pavel
02.01.2018
19:58:24
Блин, мой компосер жсон вообще не похож на этот
Хотя я не так давно создавал проект с нуля
Ну он и не должен быть похож...

$iD
02.01.2018
19:59:44
зависит от того как ты создавал

Pavel
02.01.2018
19:59:45
В общем в скелетоне dotenv в require-dev

$iD
02.01.2018
19:59:46
https://github.com/symfony/skeleton/blob/4.0/composer.json
такой у тебя?

Pavel
02.01.2018
20:00:00
Да
composer create-project symfony/skeleton my-project

$iD
02.01.2018
20:00:39
ну так впили dotenv в require вместо require-dev

Google

Pavel
02.01.2018
20:02:10
Ну дк это же не нормально что он сейчас в дев зависимостях
В симфони даже ишью есть, там важный хуй сказал что дотенв только в дев и должен быть, но так и не обьяснил как тогда должно работать

$iD
02.01.2018
20:12:11
https://symfony.com/doc/current/components/dotenv.html
это то, про что говорил Фабиан

Pavel
02.01.2018
20:15:11
Очень странное решение

Pavel
02.01.2018
20:18:14
А чего странного?

Pavel
02.01.2018
20:20:13
В чем тогда смысл юзать .env, если это должно использоваться только на дев?
В чем профит

Pavel
02.01.2018
20:20:28
В удобстве редактирования

Pavel
02.01.2018
20:20:50
Конфиг так же было удобно редактировать

Sergey
02.01.2018
20:20:51

Sergey
02.01.2018
20:22:03
вся соль в возможности переопределить содержимое .env за счет экспорта нужных переменных

Pavel
02.01.2018
20:23:19

Sergey
02.01.2018
20:23:47
у тебя просто есть .env и для продакшена будут засечены энв переменные. Если у тебя вдруг не отличаются параметры какие-то с dev - тебе никто не запрещает их из .env подгружать

Big_Shark
02.01.2018
20:50:23
@fes0r Вроде все круто, но единственное я не очень понимаю как в public function resovlePost(Post $post) приходит $post?

Sergey
02.01.2018
20:55:12
@fes0r Вроде все круто, но единственное я не очень понимаю как в public function resovlePost(Post $post) приходит $post?
короч я сейчас пытаюсь сделать следующую схему.
- ресолвер latestPosts по схеме возвращает список Post. То есть ресолвер должен вернуть "список чего-то что мы назовем Post".
- мы определили дефолтный ресолвер для типа Post, и он будет вызван для каждого элемента списка. Соответственно Post придет из парент ресолвера. То что там тип Post у аргумента - это так совпало. ты мог бы просто массив прокинуть например (хотя с массивом не прокатит автовайринг, придется забирать из контекста)
или слишком жестко?

Google

Big_Shark
02.01.2018
20:58:26
Не гибко будет в итоге, думаю надо чтото более простой

Sergey
02.01.2018
20:59:05
ну давай по другому
что бы более предметно - возьмем инстаграм
у тебя там есть посты
и есть десяток-два списков постов

Big_Shark
02.01.2018
20:59:49
я имею ввиду что у нас может и не быть выборки на некоторое количество элементов, а только по одному посту, через ид

Sergey
02.01.2018
21:00:21
и дальше ресолвер по типу подхватит

Admin
ERROR: S client not available

Sergey
02.01.2018
21:00:46
иначе как ты предлагаешь? как сделать проще?

Big_Shark
02.01.2018
21:01:13
Так у тебя че 2 резолва с одним именем тогда бедет?

Sergey
02.01.2018
21:01:28
ммм.... не можешь назвать transformPost))
тот который по типу

Big_Shark
02.01.2018
21:01:34
я предлагаю 2 метода, онит как у тебя конвертирует, а второй загружает

Sergey
02.01.2018
21:01:59
то есть вместо мудрения с ресолверами сделать возможность делать для типов трансформеры?

Big_Shark
02.01.2018
21:02:05
да

Sergey
02.01.2018
21:02:23
трансформер ~= дефолтный ресолвер для типа

Big_Shark
02.01.2018
21:02:34
/**
* @Resolver(path="latestPosts", transformer="Post")
*/

Google

Big_Shark
02.01.2018
21:02:38
вот так допустим

Sergey
02.01.2018
21:02:45
ммм.... нет
это как-то глупо
хотя...
не, глупо
у тебя на уровне схемы есть что должен "трансформировать" latestPosts. Нет смысла это прописывать на стороне ресолвера...

Big_Shark
02.01.2018
21:03:37
ну да, ну тогда у теб просто должно быть

Sergey
02.01.2018
21:04:03
хм... дай подумать...
тут неявная связь выходит в моем варианте

Big_Shark
02.01.2018
21:04:57
/**
* @Resolver(path="posts")
*/
public function resolvePost(int $id)
{
return $this->gateway->getPostById($id);
}
/**
* @Transformer(type="Post")
*/
public function transformerPost(Post $post)
{
return [
'id' => $post->getId(),
'title' => $post->getTitle(),
'brief' => $post->getBriefDescription(),
'body' => $post->getBody(),
];
}

Sergey
02.01.2018
21:05:34
ну тип того, идея именно в этом была. Просто посчитал что вводить отдельно трансформеры как-то излишне...
ну и еще - Transformer(type="Post") - как думаешь не будет недоразумений что этот тип - это тип по схеме а не то что в аргументах
я потому это ресолвером и назвал... что сомневался

Big_Shark
02.01.2018
21:06:54
Но как тогда быть с resolvePostPreviewImage вопрос
там ка бы резолвер
но нам же нужен и трансформер

Sergey
02.01.2018
21:09:09
трансформер не обязателен

Big_Shark
02.01.2018
21:09:20
Либо указания что он не нужен

Sergey
02.01.2018
21:09:28
в качестве оного выступает дефолтный ресолвер

Big_Shark
02.01.2018
21:09:37
Получается трансформеры только для типов, остальное не трогаем

Sergey
02.01.2018
21:09:40
(потому я все еще сомневаюсь что надо вводить Transformer ибо это все же ресолвер))