Павел
Странный кейс конечно в ишью, но мне не помог.
Там где у меня не подхыватывается никогда докблок (что устраивает), там есть и no-dev установка (прод), и обычная (тест окружение в ci), и там и там не подхватывается и норм работает.
Dmitry
Konstantin
не, это чушь собачья
Dmitry
не, это чушь собачья
Аналогично и у symfony/validator. Если описываем правила в аннотациях, то доустанавливаем doctrine/annotations. Если пишем в атрибутах, то не доустанавливаем.
Konstantin
единственное место, откуда можно узнать про этот парсер - это саджест. ни в одной доке нигде это не написано охуенно красными буквами (как должно бы). сериалайзер ставил разработчик А полгода назад, ему не надо было докблоки. докблоки потребовались разработчику Б сейчас, никаких саджестов, разумеется, он не видит. просто у него этот кусок говна не работает
Павел
Павел
И получается не ставя специально меняется функионал в ту или иную сторону
Dmitry
Павел
А еще прикол, что у меня он стоит, но при этом докблоки не читаются в моем кейсе))
Konstantin
в саджест исторически пишут тонну говна, я уверяю, ни один разработчик их не читает, их ценность околонулевая обычно, где-то рядом с баннером про соседнюю страну
Dmitry
Dmitry
Либо делаем пакет только с минимальным набором зависимостей как в Symfony, а остальное опциональное предлагаем в suggest. И получаем только то, что надо.
Konstantin
спасибо, кэп! но я думаю, что никто бы не умер, затащи они этот парсер прямой зависимостью, просто бы включали-отключали его в настройках
Павел
Короче спасибо большое за правильную наводку
Konstantin
так о чем и речь, да, что транзитивной зависимостью оно приходит в дев
Dmitry
Либо подключаем абсолютно всё как в валидаторе Laravel с:
{
name: illuminate/validation,
require: {
php,
ext-json,
egulias/email-validator,
illuminate/container,
illuminate/contracts,
illuminate/support,
illuminate/translation
symfony/http-foundation,
symfony/mime
}
}
И получаем четыре тонны вещества, которого нам не нужно...
Konstantin
Павел
Конечно гениально выходит похоже:
Сидишь пишешь, все ок, потом такой - а дайка я доку на нелмио буду писать (а он требует phpdocumentor/reflection-docblock:). И хлобысь из-за доки начал падать функционал.
Павел
Хотя возможно нелмио в проде и не нужен, но мало ли, какая нить открытая внешняя дока
Konstantin
я считаю в конфиге сериалайзера должен быть флаг "парсить докблоки", и если он включен - проверять наличие пакета
Dmitry
Либо подключаем абсолютно всё как в валидаторе Laravel с:
{
name: illuminate/validation,
require: {
php,
ext-json,
egulias/email-validator,
illuminate/container,
illuminate/contracts,
illuminate/support,
illuminate/translation
symfony/http-foundation,
symfony/mime
}
}
И получаем четыре тонны вещества, которого нам не нужно...
...когда у support свои зависимости:
{
name: illuminate/support,
require: {
doctrine/inflector,
illuminate/collections,
illuminate/conditionable,
illuminate/contracts,
illuminate/macroable,
nesbot/carbon,
voku/portable-ascii
},
}
И так поставив валидатор скачали половину интернета.
Павел
...когда у support свои зависимости:
{
name: illuminate/support,
require: {
doctrine/inflector,
illuminate/collections,
illuminate/conditionable,
illuminate/contracts,
illuminate/macroable,
nesbot/carbon,
voku/portable-ascii
},
}
И так поставив валидатор скачали половину интернета.
Так проблема не столько в куче зависимостей, сколько в том, что меняется функицонал.
Ну это бред же.
Dmitry
Konstantin
Павел
@elisdn
Мой кейс говорит об обратном.
У меня дто, я десериализую [file=>uploadFile] на эту дто, ставлю док блок исключительно для дальнейшей типизации работы с дто. Специально не делаю строгую типизацию этого свойства, так как как раз начснает собирать через конструктор.
Тут я ставлю нелмио доку, которая требует этот пакет по разборку док блоков и у меня падают эндпоинты.
Юра
Странности начинаюся что оно начинает собирать через конструктор
Юра
Косяк по-любому. Дев зависимости не должны влиять на прод код
Павел
И опять таки, я ща не могу вырезать в легкую нелмио, и поэтому должен сидеть без какой либо вообще типизации этой проперти теперь
Юра
Напиши свой денормалайзер
Павел
Павел
С учетом того еще, что они через цепочку гоняются и это все замедляется в перспективе, хоть и спички
Юра
Я вообще считаю что сериалайзер должен работать через кодоген
Иван
и без сраного проламывания приватов через рефлексию
Nikolay
Павел
Nikolay
Павел
Такое ....
Ну он и не юзается, кто то начал, потом кто-то забил. Но выпилить пакет просто так - не удается, ругается что где-то анотации юзаются из пакета. Так то решаемо конечно, но сам факт - херня какая то)))
Nikolay
Юра
Короче кому интересно делал рисерч. Ларавель примерно в три раза популярнее симфы. Но чисто в Америке
Иван
Юра
Без понятия )
Юра
Так что если кто планирует работать на амэрыку или канаду то тока ларавель
Юра
Там нету ОРМ?
Nikolay
Павел
https://stackoverflow.com/questions/33427109/memory-usage-goes-wild-with-doctrine-bulk-insert
Павел
Заюзал вот это но память все равно даёт течь
Павел
Куда копать не подскажите?
Павел
Ща пересмотрю
Павел
Да я с очередями решил не заморачиваться, принял файл и запустил консольку чтоб csv в таблицу тзагнать
Nikolay
Павел
А там логику записи надо менять
Юра
Преконвероируй цсв
Юра
А потом базой )
Павел
а так в лоб как я хочу нереально замутить?)
Юра
Ну ты можешь расчехлить xhprof и запрофайлерить
Юра
Возможно баг даже найдешь доктрины
Юра
А может у тебя что-то
Павел
Дело было не в бобине ....
Скорее всего будет вот так)))
Kirill
Привет! Подскажите, можно ли из кода узнать, запущен ли он (скрипт) сейчас в консоли? А еще лучше, если можно узнать какой командой он запущен.
Юра
man pgrep
Konstantin
Konstantin
а я попробую рассказать как это канонично в линуксе решить
Kirill
Есть бандл, который логирует изменения в сущностях. Логируется следующая информация: object_class, object_id, data, blame_user. Я хочу доработать его и добавить информацию о том, какая команда изменила сущность. Потому что blame_user - это авторизованный пользователь, а если команда запускается по крону и какую-то сущность пересохраняет, то информации об этом сейчас нет
Konstantin
норм идея, но я бы делал так: пишу в $_SERVER['command_name'] имя текущей команды
Konstantin
и в том месте, что вставляет в таблицу, доставал бы это
Kirill
спасибо, попробую
Konstantin
тот путь, о котором вы пишете исходно - он точно гиблый, я вас уверяю. там просто море подводных камней и корнеркейсов, надо будет обработать сотни интересных ситуаций. и то не факт что достучитесь
Konstantin
примерно отсюда я бы начал
Konstantin
https://symfony.com/doc/current/components/console/events.html
Kirill
о, супер, спасибо!
Null