@symfony_php

Страница 364 из 1418
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
Да английский-то учить, конечно, надобно, но в слов в нём ещё больше, чем в русском, всего не запомнишь. Понадобилось тебе перевести, не знаю, "водоотталкивающее покрытие" - вот оно

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

Это отдельные компоненты, не самим фреймворком работаю

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')

или ты роутингом не пользуешься?
Да все как по статье - как создать фреймворк у них на сайте. Роутинг тоже

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

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

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

В доках

Dmitry
28.10.2017
10:19:03
Компоненты - это бандлы в терминологии Symfony?
нет, это сдендэлоне библиотеки которые где угодно использовать можно

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 и тд

Art
28.10.2017
10:25:08
Фильтрацию делай при выводе.
Так на входе же нужно чтобы не хакнули или шеллкод не загрузили

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

Sergey
28.10.2017
10:27:04
Юзайте eval и все будет нормально
Григорий, я вас раскусил

если я хочу себе юзернейм <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
если я хочу себе юзернейм <script>alert('xss');</script> кто ты такой что бы мне это запрещать?
эх, самая большая проблема при регистрациях, это почему я могу иметь пароль меньше 6 символов? Это типа магическое число?

Препаред это в pdo который?
кстати можешь AR laravel-евский прикрутить. И забыть про это.

Оч просто делается

Sergey
28.10.2017
10:30:31
эх, самая большая проблема при регистрациях, это почему я могу иметь пароль меньше 6 символов? Это типа магическое число?
count(alphabet)^6 комбинаций. только даже если ты 4 символа будешь использовано но твой пароль не будет входить в 1000 самых популярных шансы на перебор меньше будут

Vladislav
28.10.2017
10:30:42
Препаред это в pdo который?
Все что надо - не конкатенировать запрос с параметрам, просто байндить их все будет хорошо

Sergey
28.10.2017
10:30:54
нахрена AR прикручивать

или ты про Database компонент? так это другое

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
что бы с базой норм работать, а не через pdo напрямую
мы если что в чате симфони, у нас тут dbal есть, он умеет все тоже что твой Database и немного больше

Google
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
а в AR/Doctrine/Propel делаются сложные запросы или они чисто для crud?
запомни - ORM это ORM, они нужны для того что бы достать парочку объектов (до сотни например) связанных между собой как-то, помашнить с ними чего и сохранить. А то что ты описал - это просто SQL

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
дело в том, что тестируется рекурсивный метод, а в нем используется метод для получения метадаты класса и я вот мокаю метадату, чтобы возвращал необходимый результат

Dmitry
28.10.2017
22:32:55
ага

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

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

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
я мокаю доктриновский entity manager, а в нем classmetadata
его тоже мокаешь или подставляешь какой-то?

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
спасибо за совет

тогда эту часть в фунциональные тесты перенесу

Страница 364 из 1418