
Dmitry
15.11.2017
10:49:44
похоже ему просто плохо с document стилем... родной клиент с ним тоже не очень, к слову ;) но обычно решается просто немного другим порядком вложенности объектов подаваемынх на вход... в родном. А в том, что этот клиент нагенерил, тут я хз, с ним не работел

Urmat
15.11.2017
10:52:28


Dmitry
15.11.2017
10:54:13
в document стиле нет названия метода в теле...

Google

Urmat
15.11.2017
10:54:17
А в качестве параметра он принимает тип OTA_PingRQ

Dmitry
15.11.2017
10:54:42
по-этому подавайте на вход Ping у которого внутри OTA_PingRQ

Urmat
15.11.2017
10:56:54

Dmitry
15.11.2017
10:59:07
вот если хотите немного в теме быть https://www.ibm.com/developerworks/library/ws-whichwsdl/ - про стили... в rpc стиле там в body идет имя метода, а у вас скорее всего document стиль (гляньте wsdl)... там в body уже только данные
но в общем хз, нужно смотреть реальный пример ;) скиньте wsdl что ли ;)

Urmat
15.11.2017
11:03:21

Dmitry
15.11.2017
11:04:18
я в общем всегда нативный использовал, он прекрасно умеет с классами работать, а не только в stdClass, только их руками создавать нужно разве что

Urmat
15.11.2017
11:06:57

Sergey
15.11.2017
11:11:04

Dmitry
15.11.2017
11:11:07
не, стиль указан в wsdl

Google

Dmitry
15.11.2017
11:11:51
просто в зависимости от стиля может чуток меняться порядок пораметров, насколько я помню, у soapclient были какие-то проблемы c document стилем

Urmat
15.11.2017
11:11:55

Dmitry
15.11.2017
11:12:06
а если эта либа сама генерит xml... то могут быть проблемы и у нее ;)

Urmat
15.11.2017
11:13:26
Вряд ли, внутри либы:
$result = $this->soapClient->__soapCall( $method, $arguments );
/**
* @var SoapClient
*/
protected $soapClient;

Виктор
15.11.2017
11:19:21
Кто-то что-то слышал по поводу того, что сервисы надо именами классов теперь именовать и дескать старый подход планируется убрать? Я вроде на такую статью натыкался, а теперь найти не могу

Andrey
15.11.2017
11:21:53
Кто-то успешно съехал с jms serializer на симфы?
Меня как-то напрягает, что летит 502 пару запросов, пока толком jms не соберёт кеш по объектам

Urmat
15.11.2017
11:22:43

Dmitry
15.11.2017
11:25:13
Я в лс скинул
https://gist.github.com/miksir/adfd03ece9dd92836b8d39170da61d5b

Виктор
15.11.2017
11:27:44
Тут сложно не услышать - ведь при новой установке СФ по этой схеме описаны сервисы по умолчанию в service.yml...

Andrey
15.11.2017
11:29:12
The traditional service definition will keep working as always (and it's even mandatory to use it in cases like decorating services). However, this new feature together with other optional features such as autowiring and defining default service options per file, will enable RAD ("rapid application development") for those projects and developers that need it:
Тут сложно не услышать - ведь при новой установке СФ по этой схеме описаны сервисы по умолчанию в service.yml...

Urmat
15.11.2017
11:30:16
АААААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dmitry
15.11.2017
11:31:45
ну так а как... SoapClient::__getFunctions делаем и видим ;) [0] => PingResponse Ping(Ping $parameters)

Urmat
15.11.2017
11:32:49

smile
15.11.2017
17:01:11
Может кто скинуть норм статеек/практик по подходам к организации валидации?
Для меня например непонятны и интересны моменты по типу:
1) Сущность всегда должна быть валидна => хочется добавить проверку на валидность изменяемых в сущности свойств в саму сущность (например changeEmail), но в это же время сущность не в состоянии проверить этот email на уникальность. Что делать в таком случае?
2) Что делать если ранее сущность была валидна и уже сохранена, а сейчас при получении из базы - не валидна (например возраст не было обязательным полем, а теперь является обязательным)

Антон
15.11.2017
18:16:22
Есть ли по доктрине какие то статьи с лучшими практиками? Стоит ли использовать ленивую загрузку и если да то всегда ли?

Google

Егор
15.11.2017
18:18:53
Есть доклад: https://www.youtube.com/watch?v=WW2qPKukoZY
Ещё Марко периодически пишет в блог: http://ocramius.github.io/blog/doctrine-orm-optimization-hydration/

Владимир
15.11.2017
18:20:12
На сколько нужно быть погруженным в профессию, чтобы еще и блоги успевать писать?

Sergey
15.11.2017
18:22:45
и прикинуть что на один пост уходит пару часов
(это намек что у Марко нет времени на блоги)

Vladislav
15.11.2017
18:23:15

Антон
15.11.2017
18:23:39
http://ocramius.github.io/doctrine-best-practices/#/44
В сущности используется репозиторий. Это норм?

Alan
15.11.2017
18:24:02

Sergey
15.11.2017
18:24:09

Vladislav
15.11.2017
18:24:33
там же он разделил даже две картинки

Sergey
15.11.2017
18:25:22
ну и судя по всему это пример "как делать не надо".
там на 46-ом слайде лучше

Антон
15.11.2017
18:26:02
Ааа

Егор
15.11.2017
18:27:14
Писать в блог это одно, а вот педалить код по 8 часов в день, а потом ещё в свободное время активно заниматься опенсорсом уже гораздо сложнее.

Владимир
15.11.2017
18:27:36

Антон
15.11.2017
18:27:58
Sergey т.е. на 46 слайде норм решение? Есть метод ban у сущности пользователя. Находим в репертуаре пользователя и и его сущность умеет делать бан?

Sergey
15.11.2017
18:28:07

Google

Антон
15.11.2017
18:28:16
Репозитории *

Sergey
15.11.2017
18:28:49

Антон
15.11.2017
18:29:37
Ну то есть метод ban именно в классе User

Sergey
15.11.2017
18:29:47
вечный спор - делать данные (контейнеры для стэйта) и процедуры (сервисы-менеджеры) или же дробить логику на value object-ы и сущности

Антон
15.11.2017
18:30:08
А не в отдельном классе сервисе BanService

Sergey
15.11.2017
18:30:26
если хочешь)
в моем случае например смысла в таких сервисах почти нет

Admin
ERROR: S client not available

Антон
15.11.2017
18:31:52
Entities are not typed arrays. Entities have behavior

Sergey
15.11.2017
18:32:20
ну или "данные должны обрабатываться там где они есть")

Антон
15.11.2017
18:33:11
Видимо я перекупил принцип Single responsibility

Sergey
15.11.2017
18:33:29

Антон
15.11.2017
18:33:35
Типа на каждый чих свой класс. А то щас в ларавел крупные классы

Sergey
15.11.2017
18:34:17
а не в том "сколько методов у класса"
если у тебя много маленьких объектов - скорее всего закончится все низким кохиженом и высокой связанностью, что противоречит целям SRP
ну и в целом проблема в том что "размер" надо мерять не кодом а поведением

Google

Sergey
15.11.2017
18:37:22
а это уже слишком неформальная метрика

Антон
15.11.2017
18:40:46
Ну т.е. в том же ларавел нет смысла плодить класс OrderService, OrderManager, когда есть сущность Order, и она сама способна с собой работать? Пока симфони изучаю

Sergey
15.11.2017
18:42:19
в Laravel с eloquent у тебя как бы active record что уже нарушение SRP
в Doctrine сущность - это просто объект, у нее нет других "поведений" кроме как то что тебе от нее надо. А потому с SRP будет все хорошо (если сделать)

Антон
15.11.2017
18:43:17
Ну я пока пытаюсь понимать как вообще правильно его использовать

Sergey
15.11.2017
18:43:27

Антон
15.11.2017
18:43:39
Принцип SRP
Пойду почитаю ещё этого чувака с докладами.

Sergey
15.11.2017
18:44:46
Принцип SRP
слишком сложно на данном этапе. Это надо обсуждать "контексты", разные источники изменений требований и т.д. Я бы рекомендовал сосредоточиться на Coupling/Coheasion + information expert + information hiding
наверное в обратном порядке

Антон
15.11.2017
18:45:23
@fes0r а ты репетиторством не занимаешься ли? Я бы готов был заплатить за обучение

Sergey
15.11.2017
18:45:34
подсказать помочь могу, специально заниматься не буду

Антон
15.11.2017
18:45:53
Чувствую что нужно шагнуть дальше, но пока незнаю как. Нет таких проектов в моем городе

Sergey
15.11.2017
18:46:05
как раз таки хорошо, на простых штуках это все взлетает не хуже (не сложнее) но понимать чуть проще
да, профит от соблюдения сложнее прочувствовать но можно научиться определять насколько чего надо дробить что бы "все еще было удобно"
это ж не абсолютные принципы)

Антон
15.11.2017
18:48:24
Ну нет уж. E-commerce проект есть на ларавел. Но внутренний перфекционизм подсказывает что можно лучше

Sergey
15.11.2017
18:48:36
идеал недостижим и всегда разный