@prophp7

Страница 653 из 1387
Evgeniy
01.10.2017
08:50:06
и с любой пс

ты оплачиваешь, картой, пс берет твои учетные данные (тут 2 вариант ввод данных карты на стороне пс или на стороне магазина, для второго надо спец сертификат)

Moz
01.10.2017
08:51:45
фискализация как ты выражаешься, никто не ждет пока платеж будет учтен налоговой
Ага, их checkAviso прилетает только тогда, когда онлайн касса выдаст ответ со всеми данными по чеку.

Evgeniy
01.10.2017
08:51:49
далее пс проверяет является ли карта 3ds если да, то пс(или магазин, от типа ввода карты зависит) пересылает пользователя на банк эмитет для подтверждения платежа

Google
Evgeniy
01.10.2017
08:52:13
пользователь вводит смс код, и банк эмитет возвращает пользователя в пс или магазин

и специальную подпись подтверждения, если это был магазин то он эту подпись передает в пс что платеж подтвержден

если пс то она перекидывает пользоваля на successUrl

это вариант одно стадийной оплаты

есть еще двустадийная

где в начале идет block

а потом списание заблокированных средств или частичное списание

Moz
01.10.2017
08:53:59
Ну про это я в курсе все

Aleserche
01.10.2017
11:47:51
я тут задумался. Допустим есть класс, в нем штук 10 свойств, которые должны быть доступны только для чтения и обязательно заполнены. Как такой класс инициализировать? В конструктор загонять 10 параметров такое себе, принимать на входе архив - теряем контроль типа. Какие еще могут быть варианты?

Dzmitry
01.10.2017
11:51:01
дефолтные? гидратор?

Aleserche
01.10.2017
11:51:51
у Guzzle json принимаем и его нужно в объект запихнуть

я вот что-то не помню, чтобы видел гидратор с контролем типов

Dzmitry
01.10.2017
12:01:08
либо тупо, аля как в зенде, exchangeArray метод сделать, вариантов в принципе не много

Google
Oscar
01.10.2017
12:02:21
Либо в конструктор передавать экземпляр класса

Dzmitry
01.10.2017
12:02:26
и самому там уже все разруливать

так даже, вероятно, контроля больше

Aleserche
01.10.2017
12:03:15
можно конечно еще класс сделать для параметров и натолкать в него методов типа setFoo(type $foo): self {... return $this; }. Но что-то мне ненравится идея переливания данных из одного сосуда в другой

ладно, mapper еще гляну какой

https://github.com/cweiske/jsonmapper типа такого

Evgeniy
01.10.2017
13:38:46
вообще если у тебя класс так от много зависит то очень похоже на то что он GOD object

а с точки зрения SOLID у класса должна быть единственная отвественность

ну и еще одна точка зрения что аргументы конструктора должны проставляться из di инструменты

которые определяются автоматически

но это так в теории

Dmitry
01.10.2017
13:41:56
мне кажется просто он пытается решить вопрос десериализации

тут вообще конструктор не должен отрабатывать

Evgeniy
01.10.2017
13:43:19
ну что он хочет конкретно только ему известно

но обычно если у класса много аргументов

ты их либо групируешь и складываешь в другие классы

либо пытаешься исходный класс разбить на несколько и тем самым уменьшить количество аргументов

Google
Evgeniy
01.10.2017
13:44:11
имхо

я по поводу именнованных конструкторов как раз и стримил, но это не панацея от всех бед

Dmitry
01.10.2017
13:47:42
именованные да, не так часто нужны реально, хотя я обычно всегда их использую, даже если он один, вместо конструктора

Evgeniy
01.10.2017
13:48:20
в следующем видео я хочу по пинать на тему аргумента в виде массива с разной структурой, а также ответ из метода в виде массива

показать почему это плохо и как можно делать по другому

суть в том что массив использовать только для массивов однотипных элементов, в других случаях юзать(valueobject,dto, pojo, entity и тд)

а как вообще стоит выпускать такие короткие видео о популярных проблемах ?

Dmitry
01.10.2017
13:52:48
кому-то, наверное, по приколу ;) я к видео плохо отношусь

Evgeniy
01.10.2017
13:53:20
ну да статьи писать но хз куда на gist ?

да я плохой писатель(

хотя стример еще хуже

Dmitry
01.10.2017
13:53:46
когда нужно клиентам дать какую-то инструкцию по пользованию каким-то интерфейсом, если мне лень тратить время на нормальную инструкцию, я пишу видео ;)

Evgeniy
01.10.2017
13:54:10
я видел по работе популярные проблемы в коде показываю

чтобы потом видно было как рефакторить)

следующая проблема это всякие сверх умные массив в аргументах методов или ответы от методов в виде всяких сложных массивов

ну и попутно с людьми делюсь потому что проблемы у всех похожие)

Aleserche
01.10.2017
13:58:03
Вроде вещи простые, но вот задумаешься над ними и все, приплыл

Иван
01.10.2017
14:07:08
Народ, подскажите плз: В контроллере дергаем сервис, который должен отдать сущности. Сервис получает объекты из репозитория. Вопрос: кэширование выполняем в репозитории, верно? Не в сервисе? Кэш ведь вроде больше относится к реализации репозитория...с другой стороны если кэш - абстракция, объект которой передать в сервис, то можно закешировать и в сервисе то, что отдаст репозиторий...запутался я вообщем

Sergey
01.10.2017
14:09:35
кто за что отвечает и кому важно кэш там или нет. Ну мол если твой сервис что-то хитрое делает - то кэш может быть там нужен. Если он просто один раз просит у репозитория - то значит кэш если тебе и нужен то на уровне репозитория.

Google
Sergey
01.10.2017
14:10:37
короч... идея в том что бы "скрыть детали". Если для сервиса кэш это деталь репозитория - сам понимаешь)

можешь про information hiding почитать

Иван
01.10.2017
14:12:41
попробуй прикинуть по ролям и зонам ответственности. У тебя есть "хранилище", у тебя есть "сервис" (что он делает к слову и зачем он нужен тут?), у тебя есть контроллер.
Спасибо) оч хороший наводящий вопрос) Буду задавать себе подобные. На самом деле пока писал вопрос - уже сам почти ответил на него, но все же ответ мне был полезен, иногда нужно мнение окружающих, чтобы понимать, на верном ли ты пути)

Evgeniy
01.10.2017
14:23:06
и еще кэш может быть сразу во всех местах что ты перечислил, если это требуется, в начале потребности потом реализация)

Евгений
01.10.2017
14:55:59
Потестируйте бота))

@notify_prosperodesu_bot

/subscribe

https://notify.ecsv.org.ua/callback/send?message=%D0%9E%D1%82%D0%B0%D0%BA%D0%B5&key=key

Хочу сделать уведомления в ТГ с сайта

?
01.10.2017
16:15:25


Виталий
01.10.2017
16:19:43
Ха. Я работал с чуваком, который, по собственным словам "переболел паттернами". А потом я увидел его код.

Konstantin
01.10.2017
16:30:22
Хз, хз. Ляпать их в дело и не в дело тоже не стоит

Danil
01.10.2017
16:31:30
Я ж не заставляю напрямую юзать, просто задача вполне подходит под его описание

Но картинка зачёт)

Evgeniy
01.10.2017
18:25:22
иногда патерном проще объяснить суть о чем ты говоришь

туже прокси можно несколькими способами делать

Dmitry
01.10.2017
19:12:31


Виктор
01.10.2017
19:26:53
Структура вполне себе symfony-like

Danil
01.10.2017
19:27:57
Это разраб любит в бандлы)

Google
Алексей
01.10.2017
19:28:10
можно еще раз ссылку на канал?)

туже прокси можно несколькими способами делать

Sergey
01.10.2017
19:30:36
в симфони приложениях не должно быть разбития по бандлам

Виктор
01.10.2017
19:36:41
Что значит не должно? Если определенный функционал можно сделать независимым, то очень даже удобно использовать отдельные бандлы.

Если же функционал очень сильно переплетен, то дробить на множество мелких бандлов не имеет смысла.

Vasiliy
01.10.2017
19:43:01
Всем доброго!

Konstantin
01.10.2017
19:43:14
привет

Chupa
01.10.2017
19:47:41
Предлагается делать папочки с названием проекта и названием компании или себя. Код писать в папочке компании, чтобы он не был связан с приложением, по хорошему даже с симфони (мосты делать). Если совсем уже никак, то переносить бандл в папочку проекта. Внутри обоих папочек можно сильную связность делать, но между ними связь через конфигурацию. Это из книжки "Год с симфони".

Пишут, реиспользования ради такое

ну и хорошие привычки формирует

Moz
01.10.2017
21:08:58
/stat@combot

Combot
01.10.2017
21:08:58
combot.org/chat/-1001042383571

Sergey
01.10.2017
22:08:08
Пишут, реиспользования ради такое
тут главное понимать, когда ты будешь реюзать. В большинстве случаев попытки "сделать реюзабельное" происходят раньше чем это требуется что влечет за собой проблемы. "Преждевременное обобщение" так скажем

Konstantin
02.10.2017
05:49:22
Яро плюсую. Нечего впустую время тратить

Konstantin
02.10.2017
13:39:02
Кто глубоко копал php? Тут пришла инфа, что foreach для перебора массива, копирует его, что занимает некоторые ресурсы, и что для перебора порядковых, лучше юзать for какой нибудь. Где об этом почитать подробнее можно?

Konstantin
02.10.2017
13:40:58
Для того, чтобы напрямую изменять элементы массива внутри цикла, переменной $value должен предшествовать знак &. В этом случае значение будет присвоено по ссылке.

копирует

но это не настолько бешеная операция\

Страница 653 из 1387