
da horsie
11.12.2016
20:14:49
у меня проект на php7 и silex уже год

Sergey
11.12.2016
20:15:09
экстеншен под пхп7 норм сбилдился?

Aleksandr
11.12.2016
20:15:37
di - сама по себе настолько примитивная штука, что непонятно, что еще нужно от pimple? либо ты делаешь symfony di со всем на любой чих, либо pimple с конкретным функционалом. Т.к. автор один и тот же (fabpot) то тут все ясно
ну и вообще https://github.com/php-fig/fig-standards/blob/master/proposed/container.md
мы же про микрофрейворки говорим. зачем тяжелый di?

Google

da horsie
11.12.2016
20:16:48
я потерял нить разговора

Pavel
11.12.2016
20:47:50
Поясните за структуру ларавел. Почему контроллеры в http а модели хуй знает где
Почему не сделать как в симфони бандлы, а внутри папки controllers, views, models

Aleh
11.12.2016
20:48:27
Оо

Pavel
11.12.2016
20:48:29
В моделях и формы и сущности и логика

Aleh
11.12.2016
20:48:49
в симфони хорошей практикой ваши сущности держать вне бандла
а в самом бандле контроллеры, да конфиги
ну и прочее фреймворк-специфик

Pavel
11.12.2016
20:49:31
Ну я использую сущности ток в концепте бандла. Если это будет общая сущность я бы вынес
А еще в ларавел зачем-то роуты в отдельной папке
Вот этого я вообще не понимаю

Aleh
11.12.2016
20:50:22
я не шарю в ларе

Google

Pavel
11.12.2016
20:51:01
Я тоже. Я чист пошарился в ней и понял что мне очень не нравится. Хотя отзывы о ларе всегда слышал положительные

Aleh
11.12.2016
20:51:04
у нас есть проект, от силекса controller collection + php-di + reactphp
сделали по приколу
нужна была простая мидлвара
короче такой аналог экспресса по сути

Mihail
11.12.2016
20:52:15

Aleh
11.12.2016
20:52:39
в симфони нет понятия сущности

Pavel
11.12.2016
20:53:43
Entity - сущность

Mihail
11.12.2016
20:53:47
0_о

Aleh
11.12.2016
20:53:50

Aleksandr
11.12.2016
20:53:52
угу. не надо путать предлагаемые практики, обычно используемые практики с данностью фреймворка

Mihail
11.12.2016
20:54:32

Aleh
11.12.2016
20:54:45
контроллеры
формы
конфиги

Mihail
11.12.2016
20:56:14
http://joxi.ru/brRlvzBhJQeNp2http://joxi.ru/brRlvzBhJQeNp2
и сущности
ну может у тебя их нет хз

Aleh
11.12.2016
20:56:57
сущности это доктрина

Google

Aleh
11.12.2016
20:57:26
там ж написано так
вот например если доктрину юзаете, то у нее там есть сущности

Mihail
11.12.2016
21:00:20

Aleh
11.12.2016
21:00:43
там ж прямо и напсиано: если шарите, то кладите их отдельно
If you're more advanced, you can of course store them under your own namespace in src/.

Mihail
11.12.2016
21:01:38
бля
пора идти спать
я уже не шарю )
чет я пераработал на этой неделе походу

Aleh
11.12.2016
21:02:53
The recommended approach of using the AppBundle/ directory is for simplicity. If you're advanced enough to know what needs to live in a bundle and what can live outside of one, then feel free to do that.

Sergey
11.12.2016
21:07:32

Sergey
11.12.2016
21:08:30
более того, это понятие из DDD
где модель предметной области представляется объектами-значениями, сущностями и сервисами.
а в laravel под моделью подразумевается исключительно модель данных
во всяком случае если ты используешь eloquent

Aleksandr
11.12.2016
21:22:31

Aleh
11.12.2016
21:25:58
ну доменная модель с тех же времен
это ж не Эванс придумал))

Sergey
11.12.2016
21:33:42
ну как бы да, как и не Янг придумал Event Sourcing

Google

Sergey
11.12.2016
21:33:55
о чем он любит говорить в своих докладах

Pavel
11.12.2016
22:03:36
В чем проблема?

Aleksandr
11.12.2016
22:04:32
типы не соответствуют, думаю

Pavel
11.12.2016
22:06:13

Aleksandr
11.12.2016
22:06:39
ddl таблицы приведи

Pavel
11.12.2016
22:06:45
Мб эти названия столбцов зарезервированы?

Aleksandr
11.12.2016
22:06:54
нет

Admin
ERROR: S client not available

Pavel
11.12.2016
22:07:50
Да, фуллтекст зарезервирован

Aleksandr
11.12.2016
22:08:04
неожиданно

Pavel
11.12.2016
22:08:29
Как и лонг текст
Какое имя тогда использовать-то...

Jan
11.12.2016
22:44:59
@iSize1ce body?

Pavel
11.12.2016
22:45:46

da horsie
11.12.2016
22:54:08
А вот что вы думаете про такую архитектуру?
У меня есть приложение - API сервер. Есть слой моделей - просто тупые DTO с геттерами/сеттерами. Есть на каждую маппер, который умеет их в персистентные хранилища совать и доставить оттуда в том числе по частям. Есть слой контроллеров, которые умеют создавать модельки из JSON, отдавать их мапперам, и в обратную сторону - из мапперов доставать и в JSON отрисовывать. И несколько слоев тестов. 1.Функциональные тесты приложения - я создают моки для мапперов и некоторых других тяжеловесных сервисов, напихиваю их в приложение, отправляю запрос, проверяю ответ. 2. Тесты самих мапперов, для этого поднимается настоящее хранилище. 3. Модульные тесты на все остальные компоненты.
Не слишком ли много обязанностей у контроллеров: связывают модель с json представлением, зависят от мапперов, еще и бизнес-логику держат кое-где.


Aleksandr
11.12.2016
22:58:10
много. контроллер должен принять реквест и передать в сервис. результат отдать в респонс. в идеале

da horsie
11.12.2016
22:58:50
все запросы и ответы - json. в каком виде он должен передат запрос сервису?
как json-объект?
распарсенный

Google

Aleksandr
11.12.2016
22:59:27
между реквестом и сервисом какая-нибудь фабрика/ассемблер, конвертирующая реквест в запрос, понятный сервису (модель, dto, ServiceRequest)

da horsie
11.12.2016
23:02:16
т.е. контроллеры не должны знать о мапперах?

Aleksandr
11.12.2016
23:03:23
лучше минимизировать знания контроллеров введением сервисного слоя. То есть контроллер должен знать только о реквесте и респонсе

Alex
12.12.2016
08:13:40
Никто не сталкивался с zip файлами без имени файла?
Как их растоптать?
через php
`

da horsie
12.12.2016
08:14:20
?

Alex
12.12.2016
08:14:52
Внутри пустое имя файла. Не пробел а именно пусто.
unzip -l ZIP_invoice-191128214-2016-0081093315.sgn.xml.zip
Archive: ZIP_invoice-191128214-2016-0081093315.sgn.xml.zip
Length Date Time Name
--------- ---------- ----- ----
2447 12-06-2016 15:23
--------- -------
2447 1 file
Примерно так. Распоковать можно графическим распаковщиком file-roller но ни консольные утилиты не ZIPArchive такой не берут.
А из налоговой иногда такое приходит.
Коллега попросил спросить.
Вот пример файла.

Viktor
12.12.2016
08:19:40
это архив по типу gzip. распакуй с unzip -p path > out.file.xml

Alex
12.12.2016
08:20:39
А пыхом?

Nadirq
12.12.2016
08:21:18
exec('unzip -p path > out.file.xml');