Юра
а думал что можно как-то заюзать данные из того что есть, но .. н есудьба
Юра
так что идея норм, реализация говняна
Юра
Т.е. мое расширение не знает ни о каких классах и не может запросить информацию о них
Юра
Как и сам vscode
Юра
Т.е. они сделали открытый продукт, но сама архитектура не очень подходит для контрибьюта, по крайней мере в случае с пхп
Max
Всем привет. Кто-нибудь настраивал Symfony в связке с RoadRunner? Нужен совет по запуску Consumer-ов (Плагин RR - Jobs)
Viktor
Всем привет! Может, кто-то может помочь разобраться с правами на сервере... Проект лежит в папке, которая принадлежит пользователю test-user из группы test-user. В папке public есть папка uploads с правами 777. Обе этих папки также принадлежат пользователю test-user. Когда я пытаюсь загрузить файл, то UploadedFile()->move() отрабатывает нормально (создает внутри папки uploads всю иерархию, что я указал), но все папки и конечный файл, который создается методом move() имеют права 644 и пользователя www-data. Если с пользователем www-data вопросов нет, то не понятно, почему права он создает 644. Потом не прочитать пока вручную не сделаешь 775, например. Может, кто-то сталкивался?
Иван
Права по умолчанию на создаваемые файлы и папки надо настраивать отдельно
Иван
Для юзера
Viktor
Кейс такой: юзер загружает картинку. Она сохраняется в папку на сервере и одновременно с этим отправляется в RMQ таска. Когда Handler подхватывает таску, он должен обработать картинку с сервера, затем удалить ее. Так вот он ее открыть не может… но она есть
Иван
вот именно поэтому все настраивают докеры на пользователя 1000
Иван
и внутри докера вебсервер под 1000 бегает
Иван
и воркеры под ним же
Viktor
Полностью согласен и понимаю! Но тут говнопроект без докера((( нужно как-то выкрутиться
Иван
погугли права по умолчанию или есть ещё бит у папки, который форсит группу для содержимого
Konstantin
админское решение "в лоб" - umask
Konstantin
но проще по 644 погрепать исходники симфони и понять как переопределить права
Иван
у флайсистем есть настройка для локально схоронённых
Иван
у самой симфы не помню
Иван
но там скорее ничего не делается, чем 644 ставится
Viktor
Понял! Спасибо за консультацию, пошел искать
Konstantin
https://github.com/symfony/symfony/pull/19383
Viktor
https://github.com/symfony/symfony/pull/19383
да, этот ПР видел. не приняли( имеете в виду также сделать отдельно?
Konstantin
ну говорят что либо umask настройте, либо делайте chmod после аплоада
Viktor
умудрился только что решить по другому, на мой взгляд чуть лучше, чем chmod делать поcле аплоада. но, конечно, это только в моем кейсе сработало. поменял юзера процесса в конфиге супервизора на www-data.
Viktor
спасибо большое за помощь!
Юра
Все-таки оно не идеально )
Юра
да для пхп написать нормальный анализатор это надо вывернуться
Spider
странная фигня - вроде сам от чата не отписывался - а оказался отписан
Юра
я бы даже не пытался вывести тип массива если явно не указано пхпдоком
Spider
Админ - нарушений на мне не висит?
Юра
Я не вижу никаких нарушений
Spider
ок - спишем на глюк
Konstantin
помню мы пытались выводить типы статически в каком-то мелком эмбеддед-сабсете жса, но довольно быстро сдались, там совсем адок
Юра
а я думал ты скажешь.. в итоге написали typescript
Юра
я вот все-таки пока не встречал язык с более развитой системой типов чем с++
Юра
там можно творить какие-то умопомрачительные штуки в компайл тайме
Юра
хотя хаскелисты меня засмеют наверное
std::mechanicus
Konstantin
типы в крестах говно, там язык шаблонов мощный
Konstantin
а вот конкретно с типами там грустно. если хочется типов - скала, либо хотя бы тайпскрипт
std::mechanicus
шаблоны пиздец из-за которого компиляция может занимать неделю
std::mechanicus
на каждое. Инстанцирование. Шаблона. Выводится. Новый. Тип.
Konstantin
не без этого. но в гошку вон женерики смешные завезли - с рантайм перформанс пенальти. у плюсов другая идеология. и по мне уж лучше долгая компиляция, чем проблемы в рантайме
std::mechanicus
а чё, в жабе разве не разумный компромисс?
Konstantin
не, в жабе плоховато. плюс в жвм никаких типов нет
Konstantin
она условно как тайпскрипт поверх жса: типы существуют только в момент компиляции, дальше вся инфа о них исчезает. оттуда растет множество дебильных артефактов
std::mechanicus
хотя благодаря компиляции хотя бы за день могли бы уже дебильный баг пофиксить и пнуть в прод уже
Konstantin
кресты - это в целом ужас, я не понимаю как на них можно писать, кем надо быть. я уверен на 100%, что в любом плюсовом коде есть UB, даже в самом крутом и надежном. и исходя из этого, выходит, что весь мир держится на том, что какое-то из этих UB пока еще не выстрелило
Konstantin
но может в любой момент. "и вот на этом невысказанном предположении..."
std::mechanicus
похуй на рантайм пенальти на самом деле должно быть, если не катастрофичное как жсе
std::mechanicus
жаба/скотлин мне кажутся разумными компромиссами между производительностью и высокоуровневостью
Konstantin
котлин жутковатое дерьмо, примерно как руби: хер поймешь где тут дсл, где тут экстеншн-метод
Konstantin
это как пхп с вызовами через __invoke или call_user_func и stdClass-ами
Konstantin
там реально хер поймешь откуда этот метод на этом объекте или почему при сложении двух чиселок отправилось письмо из перегруженного оператора. там реально дохера магии, дслей и расширений
Konstantin
ну типа 10.times { | i | .... }
Konstantin
почему метод times есть у инта (втф??) это стдлиб или рельсы принесли? или не рельсы а еще кто?
Konstantin
очень много времени уходит на понимание этих втфов. сходу вникнуть в чужой проект с чужим набором дслей очень сложно
Konstantin
вот в котлине то же самое, только еще чуть сложнее все и сахарнее
Юра
Неявные экстенщены придуманы тем кто ниразу не писал код наверное
Юра
Вообще дарт более менее похож на вменяемый язык
Юра
Но там нет многопоточности что просто не простительно для нормального языка
Юра
С++ наверное мог бы быть нормальным языком, но где-то он пошел не туда. Очень много идиотских решений и подводных камней и сам язык не помогает а словно наоборот хочет усложнить твою работу
Jonny
Пхп зэ бест ❤️
Konstantin
пошел не туда в совместимости с си :)
Юра
Значит вышел не от туда )
Evgeniy
Всем привет! Имеется такая задача. В бд хранится список категорий и каждой категории есть свои поля. Поля нужны для отображения их на фронте, у каждого поля есть свой тип(TextType, ChoiceType, TimeType и др.). Я создал форму и пытаюсь вывести нужные мне поля через foreach, но они не отображаются Вот мой код public function buildForm(FormBuilderInterface $builder, array $options): void { $parameters = $options['data']['parameters'] ?? []; $builder ->add('title', TextType::class, [ 'attr' => [ 'class' => 'form-control', ], 'label_attr' => [ 'class' => 'form-label' ] ]) ->add('description', CKEditorType::class, [ 'config' => [ 'uiColor' => '#ffffff', 'toolbar' => 'full', ] ]) ->add('possibleParameters', CollectionType::class, [ 'entry_type' => TextType::class, 'entry_options' => [ 'attr' => ['class' => 'email-box'], ], 'allow_add' => true, 'allow_extra_fields' => true, 'prototype_name' => 'parameter', 'by_reference' => false, ]) ; /** @var PossibleParameter $parameter */ foreach($parameters as $i => $parameter) { $builder->get('possibleParameters')->add('item_'.$i, TextType::class, [ 'label' => $parameter->getName() ]); } } Имел кто-то с этим дело? Почему поля, которые я добавляю в коллекцию не отображаются?
🦔
Всем привет! Имеется такая задача. В бд хранится список категорий и каждой категории есть свои поля. Поля нужны для отображения их на фронте, у каждого поля есть свой тип(TextType, ChoiceType, TimeType и др.). Я создал форму и пытаюсь вывести нужные мне поля через foreach, но они не отображаются Вот мой код public function buildForm(FormBuilderInterface $builder, array $options): void { $parameters = $options['data']['parameters'] ?? []; $builder ->add('title', TextType::class, [ 'attr' => [ 'class' => 'form-control', ], 'label_attr' => [ 'class' => 'form-label' ] ]) ->add('description', CKEditorType::class, [ 'config' => [ 'uiColor' => '#ffffff', 'toolbar' => 'full', ] ]) ->add('possibleParameters', CollectionType::class, [ 'entry_type' => TextType::class, 'entry_options' => [ 'attr' => ['class' => 'email-box'], ], 'allow_add' => true, 'allow_extra_fields' => true, 'prototype_name' => 'parameter', 'by_reference' => false, ]) ; /** @var PossibleParameter $parameter */ foreach($parameters as $i => $parameter) { $builder->get('possibleParameters')->add('item_'.$i, TextType::class, [ 'label' => $parameter->getName() ]); } } Имел кто-то с этим дело? Почему поля, которые я добавляю в коллекцию не отображаются?
mapped => false поди не хватает
🦔
вообще мало инпута
Evgeniy
mapped => false поди не хватает
Неа, все равно. Отображается лишь надпись Possible parameters. В HTML создается fieldset, но он пустой, полей нету
Konstantin
для параметров
Evgeniy
Хотя.. ладно. Я пойду по другому пути, сори
Юра
По пути SPA )
std::mechanicus
почему все долбятся в это говно, SPA?