
Pavel
11.01.2018
09:41:03

M
11.01.2018
09:41:05

ainu
11.01.2018
09:41:17
аа, 14-я убунта. всё понятно

Sergo
11.01.2018
09:42:48

Google

M
11.01.2018
09:44:05
У меня 16.10 и 2017.3, работает.

Yuriy
11.01.2018
09:44:32

Vadim
11.01.2018
09:45:20
16.04 убунта, 2017.3 шторм, фикс работает

M
11.01.2018
09:45:23
У коллеги 16.04.3 LTS и 2017.3.1 не работает.
При чем когда на 16.04 сам был - работало. Странно...

Anton
11.01.2018
10:00:08

Nurik
11.01.2018
11:40:28
а как понять слово «псевдометод»?
Ну я ввёл этот временный термин, чтобы объяснить, что генератор возвращает итератор, который йилдит, значение. Вот итератор, когда возвращает что-то, он подобен методу, но это не метод, это итератор. Блин, кароче. фигню написал.

Maksim
11.01.2018
11:41:04
трижды перечитал, нихера не понял)

Stephen
11.01.2018
11:43:12
Ребзя, оффтоп, но вдруг кто знает какой-то приличный (только не из гугла, а по своему опыту) генератор CV под европейских HR'ов?)
Можно платный, если за вменяемые деньги

Nurik
11.01.2018
11:43:41
1. Результатом генератора является итератор.
2. Итератор возвращает значение.
3. Псевдометод, в конткесте моего сообщения, означает, что итератор ведёт себя как метод, который возвращает значение. Корое говоря все методы итератора которые возвращают значения next , current и так далее.

ainu
11.01.2018
11:44:16

Maksim
11.01.2018
11:44:32
для начала проще будет не разделять понятия генератора и итератора) между ними не так много разницы, как может показаться на первый взгляд.

Nurik
11.01.2018
11:50:18

Google

Maksim
11.01.2018
11:51:14
ну я в целом знаком с генераторами) но описание всё равно херня, вгоняющая в ступор)

Nurik
11.01.2018
11:51:54
У всех свои асбтракции для понимания. Я вообще генераторы представляю себе как буфер.

Maksim
11.01.2018
11:52:17
генераторы - однонаправленные итераторы) тчк)

Nurik
11.01.2018
11:52:50
В генераторы, можно кинуть значения.

Maksim
11.01.2018
11:53:33
rewind не сделать. Итерации идут только вперёд

Nurik
11.01.2018
11:54:39

Maksim
11.01.2018
11:55:17
чё?

Nurik
11.01.2018
11:57:49
Ну т.е. у нас есть generator по файлу, который считывает построчно например. Мы можем, с помощью send() отправить REWIND и в генераторе поставить условие, что нужно заново считать файл.
Типа того.

Maksim
11.01.2018
11:58:58
не уверен, что такое прокатит

Nurik
11.01.2018
12:00:43

Dmitry
11.01.2018
13:34:00
это не будет перемотка генератора, это просто будет изменение ряда данных внутри генератора

Maksim
11.01.2018
13:34:57
в принципе идея, кхм, сомнительная и странная

Dmitry
11.01.2018
13:35:40

Nurik
11.01.2018
13:37:36

Dmitry
11.01.2018
13:38:11
это не эмуляция rewind... ну в общем не стоит ее называть так, что бы не запутать всех
ну в общем то я понял о чем ты про эмуляцию, но лучше не загоняться

Nurik
11.01.2018
13:39:40

Maksim
11.01.2018
13:40:45
да нормальное определение) вполня понятно о чём речь.
вот "эмуляция" сброса в голову здорового человека редко постучится)

Google

Dmitry
11.01.2018
13:40:49
да все итераторы однонаправленные ;) это и есть их отличие от массива
у генератора просто нет rewind, но оно в общем на "однонаправленность"не влияет
однонаправленные значит, что нельзя в другую сторону ;)

Maksim
11.01.2018
13:42:20
сброс - это и есть по сути в другую сторону) ровно поэтому его и нет :)

Dmitry
11.01.2018
13:43:03
ну.. не... не согласен ;) сброс - это сброс ;) он тебе никак не поможет итерировать в "другую сторону" ;)

Sergey
11.01.2018
13:43:25

Maksim
11.01.2018
13:44:06

Dmitry
11.01.2018
13:44:08
вот, кстати, да... однонаправленность можно двояко понимать ;)

Nurik
11.01.2018
13:45:24
А где вообще можно почитать про одно|дву/ направленности итераторов ? Просто я всегда итераторы воспринимал как нечто простое, а оказывается вон оно как.

Dmitry
11.01.2018
13:57:08
да не, это просто наш поток сознания ;) да еще оказалось, что у каждого свой ;)

Maksim
11.01.2018
14:10:26
поток всегда у каждого свой) я вон пилил-пилил свой велосипед, а потом нарисовался бывший коллега и полтора часа рассказывал, какое говно я сотворил) хотя в общем-то на двоих говно одно и то же делаем)

Evgenii
11.01.2018
14:12:35
Как правило, говно это по-любому не твой код

Maksim
11.01.2018
14:13:00
да не) мой всегда говно (в моих же глазах) и это проблема)

Evgenii
11.01.2018
14:13:55

Maksim
11.01.2018
14:14:33
@fes0r, ещё бы от тебя фидбэк в тему был, если время есть)
я как раз все пинки пособираю и на выходных будет чем заняться)

Bohdan
11.01.2018
15:29:27
блиц-вопрос
в контроллере получаю файл и хочу перекинуть его дальше на уровень обработчиков
1. считать файл, забросить объект с ним (phpexcel) в DTO и там инкапсулировать правила валидации
2. забросить в DTO объект UploadedFile и валидировать все уже глубже
склоняюсь к первому

Kirill
11.01.2018
15:31:30
Получать файл в контроллере - зачем?

Google

Kirill
11.01.2018
15:31:54
Может сразу же дернуть обработчик, который его заберет и уже будет знать, что с ним делать?
Но из двух вариантов второй выглядит лучше.

Bohdan
11.01.2018
15:32:51
что ты имеешь ввиду под "обработчиком"?

Artem
11.01.2018
15:32:56
`$password = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
if (preg_match('/^[A-z0-9]{4,30}$/', $password) )
{
}`
как сделать проверу
пароля

Kirill
11.01.2018
15:33:17
я имею ввиду какой-нибудь сервис =)

Bohdan
11.01.2018
15:33:32
ну оно в любом случае уйдет из контроллера в сервис)

Admin
ERROR: S client not available

Artem
11.01.2018
15:33:33
что бы соблюдал эти требования

Bohdan
11.01.2018
15:33:54
вопрос только в том, какого уровня сырости данные кидать в сервис

Kirill
11.01.2018
15:34:12
Я к тому, что сама по себе идея работать с сырыми данными в контроллере - не есть хорошо. Контроллер должен дергать сервис.
А уже сервис работать с сырыми данными, из $_FILES или абстракции
иначе вы заранее завязываетесь на формате этих входных данных

Bohdan
11.01.2018
15:37:57
я в любом случае завязываюсь
просто если я прокидываю через DTO сырой файл - то валидировать его мне нужно уже на стороне обработчика
если я прокину через DTO объект phpexcel - то в DTO же я могу при создании сразу провести базовую валидацию и если что не так - прямо в контроллере получаю ошибку и могу ее сходу вернуть
делаю все же второй вариант, дабы не размазывать правила валидации по разным файлам

Батманов
11.01.2018
15:45:11
Ребят, нормально ли для постов сделать статус в бд в виде поля enum, например, черновик, опубликовано, отклонено, подтверждено? Можно ли будет потом на рабочей бд добавить еще один статус? И если данных будет много?

Muhammad
11.01.2018
15:46:36

Valentin
11.01.2018
16:21:23

Батманов
11.01.2018
16:39:20

Google

Vladislav
11.01.2018
16:41:09
Вопрос по организации работы с множеством репозиториев(7 штук на данный момент). Проект состоит из модулей друг от друга фактически зависимых - клиент, бэкэнд, конфигурации, статика и т.д. каждый живет в своем репозитории. Сейчас все работают только в двух ветках - develop и release. Все это собирается через CI и деплоится по кнопке аля teamcity. Минусы подхода очевидны - только 2 ветки не дают возможности раздельно тестировать\разрабатывать фичи.
В виду коммерческого характера проекта - не все члены команды должны иметь доступ ко всем репозиториям- например в статику имеют доступы художники поддержки(льют картинки), но к репозиторию с серверным кодом они доступ не имеют.
Хотим перейти на git-flow-подобную схему работы, но заводить по ветке в каждом репозитории накладно, когда не каждый реп нужно менять. Ситуацию осложняет то, что есть несколько однотипных проектов и например бэкэнд посути у них общий.


M
11.01.2018
16:47:32
Тут на днях поднимался вопрос о EAV Model, какие есть мнения против?
Моё мнение таково, что при использовании РСУБД EAV Model это хорошее решение, поскольку на данный момент всякие json(b)/hstore/xml/etc. не имееют нормальной поддержки инструментами.
Для того, чтобы не городить кучу JOIN'ов для поиска/фильтрации/агрегации/etc. поверх EAV можно просто прикрутить ElasticSearch.

Dmitry
11.01.2018
17:01:15
хм, т.е. написать запрос SQL с использованием синтаксиса работы с json - это нет нормальной поддержки, а городить эластик - это нормальная поддержка ;)


Борис
11.01.2018
19:15:51

Luka
11.01.2018
20:37:42
Подскажите, нужен не прихотливый почтовый сервис с smtp чтобы к опенкарту привязать, чтобы свой не использовать

Борис
11.01.2018
20:43:28

Max
11.01.2018
20:44:32
MailChimp еще

Roman
11.01.2018
20:47:44
Mailgun

Max
11.01.2018
20:49:54

Vlad
11.01.2018
20:55:44

Ivan
11.01.2018
21:17:34
pdd.yandex.ru - сердито бесплатно

Luka
11.01.2018
22:24:55
Да яндекс, маил и гугл лочат иногда письма... ладно на таймвебе завел акк почтовый. пока летают письма

Eugene
11.01.2018
22:28:09
Доброй ночи всем.
Подскажите, есть кто хорошо знакомый с PostgreSQL?
Можно ли как то сделать функцией, чтоб при записи в таблицу, поле само заполнялось на основе двух других соседних полей?

Dmitriy
11.01.2018
22:34:05
можно. через тригеры

Eugene
11.01.2018
22:36:38

da horsie
11.01.2018
22:39:30
я допускал такую ошибку, именно с постгресом, потому что очень соблазнительно было в нем понаделать триггеров
а потом оказалось, что все завязано на базу, сложно тестировать
кажется, что ты оптимизируешь производительность, а на самом деле роешь себе яму