
Sergey
27.10.2017
22:35:41
ну я про штуки типа read model
повторюсь - пока я не видал что бы это было удобно прям
ну мол много инфраструктуры выходит, а так да - удобно

Valentin
27.10.2017
23:28:43
там английское все(
Кстати не советую гугл транслейт, зато советую multitran.ru
С виду 99-й год, зато переводит и слова, и словосочетания, да ещё и отраслевые словари есть

Google

Vladislav
27.10.2017
23:31:22
Посоветуй лучше англ поучить :)

Valentin
27.10.2017
23:41:07
Да английский-то учить, конечно, надобно, но в слов в нём ещё больше, чем в русском, всего не запомнишь. Понадобилось тебе перевести, не знаю, "водоотталкивающее покрытие" - вот оно

Arky
28.10.2017
02:16:34

Art
28.10.2017
09:58:13
А кто знает почему httpKernel getArguments(request, controller) ничего не возвращает? Причем входные параметры не null. getController возвращает а аргументы нет из 'Class::indexAction'. Пишу с телефона, могу по памяти ошибаться что как называется, но в скрипте синтаксических ошибок нет. Уже по разному перепробовал вызывать этот getArguments
Это отдельные компоненты, не самим фреймворком работаю

Sergey
28.10.2017
10:02:11

Art
28.10.2017
10:02:58
Ну по мануалам вызываю

Sergey
28.10.2017
10:03:10
$arguments = $this->argumentResolver->getArguments($request, $controller);
так?

Art
28.10.2017
10:03:52
Без this в процедурном стиле
Там просто переменнач

Sergey
28.10.2017
10:04:38
xdebug, ставишь бряку в doGetArguments и смотришь

Art
28.10.2017
10:05:40
Там раньше был один класс а разбили на два. Один для контроллера второй для аргументов

Google

Dmitry
28.10.2017
10:07:39
или ты роутингом не пользуешься?

Art
28.10.2017
10:10:26
А для роутера без разницы куда передавать запросы? Сейчас в htaccess все запросы идут в (.*) index.php?req=$1 передаю url вида category/page/2 и срабатывает без вызова request->get('req')

Dmitry
28.10.2017
10:11:57

Art
28.10.2017
10:13:29
Нужна небольшая админка с парой страничек ну и с возможностью добавления новых. Вот решил на компонентах запилить как раз и с фреймворком познакомиться

Dmitry
28.10.2017
10:16:20
точне было все на процедурках, а потом что бы поудобнее было добавил компосер, компоненты symfony

Владимир
28.10.2017
10:18:13

Art
28.10.2017
10:18:47
Хз, ссылка называется The components
В доках

Dmitry
28.10.2017
10:19:03

Art
28.10.2017
10:20:12
А фильтрация параметров там отдельный компонент или в ручную регулярки с strip_tags htmlspecialchars прописывать?

Dmitry
28.10.2017
10:21:04
если про валидацию, то это уже где то в логике твоего приложения должно быть, но компанент для этого помоему есть

Dinar
28.10.2017
10:22:12
Фильтрацию делай при выводе.

Art
28.10.2017
10:23:24
Да в запросах которые, ковычки там например, например что цифра пришла а не текст is_numeric(), обычные фильтры от sqlinj xss и тд

Dmitry
28.10.2017
10:24:45

Art
28.10.2017
10:25:08

Google

Vladislav
28.10.2017
10:26:36
Юзайте eval и все будет нормально

Sergey
28.10.2017
10:27:04
если я хочу себе юзернейм <script>alert('xss');</script> кто ты такой что бы мне это запрещать?

Art
28.10.2017
10:29:02
Препаред это в pdo который?

Sergey
28.10.2017
10:29:17

Dmitry
28.10.2017
10:29:29
Оч просто делается

Sergey
28.10.2017
10:30:31

Vladislav
28.10.2017
10:30:42

Sergey
28.10.2017
10:30:44

Sergey
28.10.2017
10:30:54
нахрена AR прикручивать
или ты про Database компонент? так это другое

Dmitry
28.10.2017
10:31:22

Vladislav
28.10.2017
10:31:47
Так а зачем ?

Dmitry
28.10.2017
10:32:29
что бы с базой норм работать, а не через pdo напрямую

Art
28.10.2017
10:33:34
а в AR/Doctrine/Propel делаются сложные запросы или они чисто для crud?

Andrew
28.10.2017
10:33:47
я пропустил, а что, через PDO с базой работать не норм?

Sergey
28.10.2017
10:34:01

Google

Sergey
28.10.2017
10:34:10

Dmitry
28.10.2017
10:34:27
можно и доктрину, я не спорю :)
и twig
для полного феншуя )

Art
28.10.2017
10:36:16
Например посчитать сколько постов у всех категорий и вывести tv - 8, mp3 - 56. И прочая sql арифметика с датами и прочее

Sergey
28.10.2017
10:37:28
Laravel Database/Doctrine Dbal - вот это оно

Vladislav
28.10.2017
10:38:35
Какие-то нанотехнологии тут рассказываете

Sergey
28.10.2017
10:39:18
хотя doctrine orm позволяет тебе через DQL все это замутить и сразу завернуть в объекты какие-нибудь)

Admin
ERROR: S client not available

Dmitry
28.10.2017
22:28:59
подскажите, а можно ли сделать так, чтобы замоканый метод возвращал резульатат N-e к-во раз одно, а N-e к-во раз другое? на подобии:
$mock
->expects($this->exactly(2))
->method('getName')
->with($this->equalTo('baz'))
->will($this->returnValue(Entity\Tag::class));
$mock
->expects($this->exactly(2))
->method('getName')
->with($this->equalTo('bar'))
->will($this->returnValue(Entity\Category::class));

Sergey
28.10.2017
22:30:00
толку от тестов которые зависят от последовательностей вызовов тестируемого кода..
скорее всего требуемое тобой поведение просто должно быть внутри класса который ты мокаешь

Dmitry
28.10.2017
22:31:55
дело в том, что тестируется рекурсивный метод, а в нем используется метод для получения метадаты класса
и я вот мокаю метадату, чтобы возвращал необходимый результат

Sergey
28.10.2017
22:32:40

Dmitry
28.10.2017
22:32:55
ага

Sergey
28.10.2017
22:33:03
короч не, понятия не имею как такое сделать, попахивает плохим дизайном

Dmitry
28.10.2017
22:33:54
если в сущности есть ассоциативные поля и данные для заполнения этих полей предоставлены - будет один результат, иначе - другой

Sergey
28.10.2017
22:34:23

Google

Sergey
28.10.2017
22:34:43
p.s. конечно же ты тестируешь не сущность а некий менеджер, так?

Dmitry
28.10.2017
22:34:45
private function setAssociations(ClassMetadata $metadata, $object, array $data)
{
$this->accessor->addMetadataClass($class = $metadata->getReflectionClass(), $metadata->getAssociationNames());
foreach ($data as $attribute => $value) {
if ($setter = $this->accessor->getMethod($class, $attribute)) {
$associationClass = $metadata->getAssociationTargetClass($attribute);
if ($metadata->isSingleValuedAssociation($attribute)) {
$object->$setter($this->denormalize($value, $associationClass));
} else {
foreach ($value as $item) {
$object->$setter($this->denormalize($item, $associationClass));
}
}
}
}
}
я тестирую денормалайзер

Sergey
28.10.2017
22:36:06
я к тому что твой тест будет просто дублировать реализацию

Dmitry
28.10.2017
22:39:13
нужно проверить, что корректно заполняются все свзяи в сущности

Sergey
28.10.2017
22:39:33

Dmitry
28.10.2017
22:40:15
я мокаю доктриновский entity manager, а в нем classmetadata

Sergey
28.10.2017
22:40:39

Dmitry
28.10.2017
22:40:52
тоже мокаю

Sergey
28.10.2017
22:40:53
$object - мокаешь?

Dmitry
28.10.2017
22:41:06
неа
$object - это сущность

Sergey
28.10.2017
22:41:47
есть крутое правило - не мокай код, которым ты не владеешь
ну как правило, совет

Dmitry
28.10.2017
22:42:36
хм.. тогда лучше не мокать доктрину вообще?

Sergey
28.10.2017
22:42:52
тип того

Dmitry
28.10.2017
22:42:59
понял, спс

Sergey
28.10.2017
22:43:04
интеграционные тесты типа

Dmitry
28.10.2017
22:43:25
я сейчас unit-тесты пока пишу

Sergey
28.10.2017
22:43:26
проще, надежнее, и не так восприимчевы к изменениям

Dmitry
28.10.2017
22:43:44
спасибо за совет
тогда эту часть в фунциональные тесты перенесу