
Arky
19.04.2018
22:13:48
И меня уволили со стажировки)0

Sad but
19.04.2018
22:14:27
ну допустим для несложного реста я быстро тесты напишу да и в симфони есть свои фичи для тестов , тот же ConstraintValidatorTestCase который мне сейчас нужно разобрать

Maksim
19.04.2018
22:15:28
ConstraintValidatorTestCase нахера?)

Sad but
19.04.2018
22:15:39

Google

Sad but
19.04.2018
22:15:45

Maksim
19.04.2018
22:16:04

Sergey
19.04.2018
22:16:07

Arky
19.04.2018
22:16:10

Sad but
19.04.2018
22:16:22

Sergey
19.04.2018
22:16:25

Sad but
19.04.2018
22:16:28

Arky
19.04.2018
22:17:18
Там самописный фреймворк был, с активрекордом в энтити менеджере)0 Фесору бы понравилось)0

Maksim
19.04.2018
22:17:23

Sergey
19.04.2018
22:17:27
ну это я могу
ну вот и пробуй)) ConstraintValidatorTestCase - это больше хэлпер для интеграционных тестов
поиграть в код рескью

Google

Arky
19.04.2018
22:18:39

Maksim
19.04.2018
22:18:49
хотя, на старости лет вон "фреймворк" запилил)

Sad but
19.04.2018
22:19:00
но проигнорил ибо удалёнка мне сейчас не мила
https://github.com/symfony/validator/blob/master/Tests/Constraints/EmailValidatorTest.php

Arky
19.04.2018
22:21:04
ты дописал чатики?
А что если прикрутить центрифугу к не доделаному бекенду с поломанной пагинацией(и я уже не помню чо там было)?)0

Sergey
19.04.2018
22:21:25

Sad but
19.04.2018
22:21:46

Arky
19.04.2018
22:23:49
хз
Надо проверить как-нибудь. Какие щас есть модные пет проекты для джунов?

Sergey
19.04.2018
22:24:22
хз, то что мне в голову приходит больше для студента какого кто загоняется по теории компилятров
и готов тратить на это кучу времени

Arky
19.04.2018
22:25:09
теория компиляторов?

Maksim
19.04.2018
22:25:14

Sergey
19.04.2018
22:25:32
все никак не дойдут руки до нее)

Sergey
19.04.2018
22:25:56
довольно изощрённый выбор для джуна)
я и не говорю что это для джуна, специально ж уточнил что для студента... что бы он как минимум потом курсовой какой сделал на базе этого добра или дипломную
вот мне б эти штуки 4 года назад ....

Google

Arky
19.04.2018
22:26:15
пхп и компиляторы? наверное это не те компиляторы)0

Sergey
19.04.2018
22:26:33
когда я просиживал ночи на пролет в реализации своего интерпритатора JS на шарпах.... так бы хоть что-то полезное бы сделал
или YAML
парсеры, преобразования кода, кодогенерация
DSL отдельный жирный топик который в php вообще слабо развит
а развит он слабо потому что вообще инструментов нет.... ну то есть они то есть но их мало

Arky
19.04.2018
22:27:42
юзал
кодогенерация - это типа когда комманду вводишь и мне энтити с сетерами создается?)0

Sergey
19.04.2018
22:30:42
ну тип того... или прокси классы для ленивой инициализации свящей в сущности.... или еще чего такого
или возможность каким-то DSL описывать правила для генерации DTO
написал в файлике data class UserDTO {name: string, dateOfBirth: \DateTime}

Sergey
19.04.2018
22:31:46
а оно тебе класс с конструктором и геттерами например.... или еще чего

Arky
19.04.2018
22:32:25
Это пока мэджик для меня
А какая разница между DTO и VO?)0
вернее я понимаю что такое VO, но не понимаю что такое дто)0

Sergey
19.04.2018
22:38:22
DTO - тупая структура данных лишенная логики которая нужна что бы данные из одного слоя в другой передавать. Хороший пример применения DTO - когда ты данные запроса на какой-то тупой класс мэпишь. Можешь даже с публичными полями если хочешь.
ассоциативный массив тоже может восприниматься как DTO. Например когда ты из базы достаешь данные.
просто в php в этом случае у тебя нет возможности структуру описать и соответственно в компайлтайме убедиться что все ок
потому все делают классы явно и вот эти классы называют DTO

Google

Timur
19.04.2018
22:40:07

Sergey
19.04.2018
22:40:45

Dmitry
19.04.2018
22:40:53
если использовать ее как посредник между персистом и доменной сущностоью, то, наверное, можно ;)

Sergey
19.04.2018
22:41:46
именно, важный аспект - данные которые ты передаешь ты кому-то должен именно передать во владение. И сервис-менеджер - это не тот персонаж который именно владеет данными.

Timur
19.04.2018
22:42:05

Sergey
19.04.2018
22:42:11
но это надо рассказывать в чем соль инкапсуляции, вникать в связанность и т.д. и я не в настроении
если ты любишь торт наполеон или лазанью должен понимать о чем я)

Dmitry
19.04.2018
22:45:10

Admin
ERROR: S client not available

Sergey
19.04.2018
22:47:36
это нормальный кейс когда все что надо это данные сохранить в базу без какой-либо обработки
незачем нам в такой ситуации вводить доменные модели или там слои какие-то....
как и писать бэкэнд))

Dmitry
19.04.2018
22:48:26
ну просто симфоневская форма по сути DTO и есть
наверное... хотя не... я тут понял, что никогда не использовал симфоневские формы ;)

Arky
19.04.2018
22:50:29
Как валидацию без симфони форм делать?(

Konstantin
19.04.2018
22:51:19
изящно

Dmitry
19.04.2018
22:51:34
а как валидация связана с формой? ;) ассерты отдельно, мухи отдельно ;)

Sergey
19.04.2018
22:54:02

Google

Sergey
19.04.2018
22:54:09
$validator->validate и все такое

Arky
19.04.2018
22:54:31

Sergey
19.04.2018
22:54:41
точнее так... оно не может быть больше чем с формами)

Arky
19.04.2018
22:54:55
а с формами все элегантней выглядит
значит я что-то делал не так)0

Timur
19.04.2018
23:08:18
Как валидацию без симфони форм делать?(
Форма не делает валидацию...себя. Она заполняет сущность, затем валидирует ее, ошибки маппит уже на свои поля. То есть ты можешь вручную ту же сущность валидировать

Sergey
19.04.2018
23:08:41
я например запросы валидирую)
валидация штука такая.... она для разных целей по разному может быть реализована

Timur
19.04.2018
23:10:25
Именно из за того, что она сначала заполняет сущность, некоторые считаю это неправильным, потому что в случае непрохождения валидации сущность остается с невалидными данными и ты ее теоретически можешь персистнуть. Поэтому некоторые предлагают использовать DTO в связке с формой, чтобы невалидные данные в случае чего оставались в нем

Borislav
19.04.2018
23:17:45
Привет! Пробую сделать загрузку файлов по инструкции https://symfony.com/doc/current/controller/upload_file.html
Entity:
public function getCover(): ?string
{
return $this->cover;
}
public function setCover(?string $cover): self
{
$this->cover = $cover;
return $this;
}
getCover возвращает строку, соответственно PHPStorm показывает ошибку:
ЧЯДНТ?
Если cделать так:
public function getCover():
{
return $this->cover;
}
PHPStorm не подсвечивает ошибку, но при попытке отправить форму ее выдает symfony

Егор
19.04.2018
23:20:28
там же всё написано, аплоадить нужно объект UploadedFile, а ты даёшь строку

Alan
19.04.2018
23:20:44
new File($this->uploader->getTargetDirectory().'/'.$fileName) не хватает
недочитал)

Borislav
19.04.2018
23:23:40
А можете ткнуть носом где это в инструкции?
Там же вроде это в сервисе указывается