The Ant
ну т.е. это это штука чтоб писать переменную как есть ) т.е. описанный тобою кейс до атрибутов надо биндить в переменную обязательно, а тут нет
коряво написал. называть переменную обязательно надо было по использованию глобального бинда
std::mechanicus
Я думал ты это знаешь)
Aleksandr Khristenko
вообще не юзать таргет? ) такое себе завязываться в коде на что-то из конфига. Прям максимально такое себе...
Это нужно было для тестового контроллера. Непосредственно в сервисах, которые используются в случае неоднозначности разруливание идет на стороне ямл файла.
std::mechanicus
понапишут этих своих ямлов и депенденси инжектят друг друга
std::mechanicus
нет бы в ларастайл писать
Aleksandr Khristenko
https://www.php.net/manual/ru/language.oop5.decon.php#language.oop5.decon.constructor.promotion
Посмотри внимательно на имена переменных в моем примере выше.
std::mechanicus
а, туплю с утра
Aleksandr Khristenko
Про промошн я конечно знаю. Тут вопрос был именно про то, что Target получается нужен чтобы жить с промошеном, но при этом использовать имя свойства отличное от того, которое в сервисах описано.
std::mechanicus
Ну т.е. public function __construct(#[Target('some_name') private I $name) {} просто сахар для private I $name; public function __construct(I $someName) { $this->name = $someName; } ?
только я не врубаю какой смысл этого, не проще написать public function __construct(private I $someName) {} ?
std::mechanicus
Вот и я не врубаю, какой смысл.
ну ИДЕ подсвечивает если ты в сигнатуре наследника переопределяешь название параметра
std::mechanicus
кого-то видимо раздражает, ну и мб это кидает нотисы, но кому не похуй на нотисы
The Ant
только я не врубаю какой смысл этого, не проще написать public function __construct(private I $someName) {} ?
Начнешь врубать когда будешь долго сидеть на поддержке проекта А не скакать из одной конторы в другую каждые 2 месяца :D Потому что большинство решений получаются именно из долгосрочной поддержки, исптывания боли во время поддержки.
The Ant
А на самом деле, если мы только пишем код, какая боль переименовать свойство?
есть много факторов опечатки, кол-во использований, частные случаи всякие. Искать бегать где чо накладно
The Ant
с ямлами этими еще бида, оно не поддерживает переименование класса. Можно тупо забыть, а вспомнить уже когда на проде вылезет бага. Лично меня это ебало несколько раз с мессенджером )
std::mechanicus
вывод: меньше декларативной магии, господа
The Ant
ладно контейнер не соберется, а когда собирается и ошибок нет... а в проде просто не работает, потому что роут неправильный стал
std::mechanicus
5.4 к сожалению
а там сильно много блокеров переезда на 7.0 хотя бы?
The Ant
а там сильно много блокеров переезда на 7.0 хотя бы?
на 6.0 ) нету ниодного, *.4 это всегда переходная версия, отличий практически нету
std::mechanicus
почему нельзя 6 версию скачать кстати, я бы глянул на этот обкек
The Ant
я не знаю как тестить мессенджер )
The Ant
его дебажить то проблема, не то что тестить 😄
Aleksandr Khristenko
а там сильно много блокеров переезда на 7.0 хотя бы?
Тут организационные проблемы, а не технические, что сидим на лтс. А 6.4 релизнулся совсем недавно, на него переезд только планируется в ближайшем будущем.
Aleksandr Khristenko
на 6.0 ) нету ниодного, *.4 это всегда переходная версия, отличий практически нету
Есть в *.4 есть депрекейтед фичи и они работают. А вот в *.0 их просто выпиливают.
Aleksandr Khristenko
на 6.0 ) нету ниодного, *.4 это всегда переходная версия, отличий практически нету
Так что переезд на 6.4 будет простой, а для переезда на 7.0 нужно будет после обновления до 6.4 все депрекейтеды править.
The Ant
это да, но диприкейтеды надо править сразу, как тока диприкейтнулись :D
The Ant
к тому же *.4 и *.0 одновременно выходят если не ошибаюсь
Aleksandr Khristenko
это да, но диприкейтеды надо править сразу, как тока диприкейтнулись :D
Ну так мы сейчас на 5.4, у нас логично что нет того, что было задепрекейчено в 6.* ветке.
Aleksandr Khristenko
к тому же *.4 и *.0 одновременно выходят если не ошибаюсь
This deprecation policy also requires a custom development process for major versions (6.0, 7.0, etc.) In those cases, Symfony develops at the same time two versions: the new major one (e.g. 6.0) and the latest version of the previous branch (e.g. 5.4). Both versions have the same new features, but they differ in the deprecated features. The oldest version (5.4 in this example) contains all the deprecated features whereas the new version (6.0 in this example) removes all of them.
Павел
@ibxth Гыг прикол. Name binding в php конфиге через функцию alias делается :)
Aleksandr Khristenko
Чем не устраивает по старинке вариант? App\ClientInterface: '@App\Client'
А почему ты решил что не устраивает? У меня просто была ситуация что есть пара сервисов реализующих интерфейс, у них есть алиасы. Я поиском по доке нашел Target, и по описанию было похоже что это как раз то, что на стороне класса поможет указать какую зависимость прокинуть. Но оно не заработало и я сел разбираться.
Aleksandr Khristenko
Понятно, просто через target не очень очевидно выглядит, чисто мое субъективное мнение
Мне это надо было для того, чтобы протащить зависимость в действие тестового контроллера. Просто чтобы проверить одну гипотезу, как можно меньшими усилиями.
The Ant
Так и не с ямлам это будет. Переименуешь класс, а в других местах останется
Это если в блокноте сидишь ) шторм умеет умно переименовывать
Михаил
А что за шторм?
Aleksandr Khristenko
Михаил
Это же вроде ide для js
Михаил
PhpStorm
Гляну
Павел
Мощь, если не троллинг
Aleksandr Khristenko
Гляну
Вообще удивительно. Писать на пхп и не знать про него.
The Ant
Это же вроде ide для js
и да и нет. у компании несколько иде, под разные задачи. есть вебшторм, он для фронта, есть пхп шторм, он для пыхи под другие языки тоже есть
Михаил
Не могу говорить об этой компании не уходя в политику, так что закроем тему.
The Ant
вскод тоже кстати плохо переименовывал, по крайней мере года 4 назад, когда я на нем активно кодил )
Михаил
вскод тоже кстати плохо переименовывал, по крайней мере года 4 назад, когда я на нем активно кодил )
У меня он стал хуже работь, использую его как ide - раньше реально лучше работала. Такое ощущение что создатели плагинов деграднули или им апи порезали
Михаил
Пишу на одном непопулярном функциональном языке, раньше ctrl + click или форстачем можно было проваливаться в имплиментации или в юзаджи. Недавно обновился и всё резко потупело - теперь низя
The Ant
оно может стало платной фичей )
The Ant
пейсателям плагинов что в шторме что в вскоде накидали функционала для монетизации
Михаил
оно может стало платной фичей )
Если не троллинг то писдец
The Ant
так посмотри плагин то, есть нет платная версия, и какие фичи в платной
Aleksandr Khristenko
Aleksandr Khristenko
Пишу на одном непопулярном функциональном языке, раньше ctrl + click или форстачем можно было проваливаться в имплиментации или в юзаджи. Недавно обновился и всё резко потупело - теперь низя
поддержка языков ведь идет в виде плагинов/лсп, может там что поменяли. или наоборот вышла новая версия языка а плагин остался старый. А что за непопулярный функцоинальный язык?
Konstantin
А в симфе нет никакого http экспешена, чтоб передать ему ConstraintViolationList и он его сам отрисовал? Я нашел ValidationFailedException и ValidatorException, но они наследуют RunimeExcpetion, что приводит к 500, а мне нужна 422
Kirill
Проблема в том, что валидейшн фейлед содержит список ошибок
Kirill
поэтому тебе придётся самостоятельно придумывать и договариваться с клиентом как отдавать этот список
Andrew
Товарищи, здравствуйте! Кто-нибудь имел близкие контакты с ux-react на symfony? Или, может быть, кто-то видел рукописные труды на эту тему? Есть желание попробовать на практике эту штуку, но сразу хочется узнать о подводных камнях. Например, один из таких, из того что нашел с наскока: нет встроенной поддержки scss модулей, и все решения в интернете похожи на танцы с бубном. Вот я как в него уткнулся, так решил спросить у знающих людей, что ещё мне ждать.
Pavel
использовал на практике только сам symfony/stimulus + turbo и scss спокойно подключается дополнительным лоадером в конфиге и парой зависимостей в package.json
Null
Привет из будущего. Рекомендую не заниматься этими извращениями, а писать апи и фронт отдельно друг от друга.
Andrew
Само собой. Но давай вспомним что задачи бывают разные и кошельки у заказчиков не резиновые. В ближайшей перспективе делать именно статичный сайт, с отдельными динамическими компонентами.
Andrew
использовал на практике только сам symfony/stimulus + turbo и scss спокойно подключается дополнительным лоадером в конфиге и парой зависимостей в package.json
scss замечательно подключается и работает, но только как отдельные таблицы стилей т.е. компонент и его стилизация выходят как-будто две независимые друг от друга вещи, я не могу быть уверен что мой стиль существует а хочется сделать вот так:
Andrew
Но при компиляции мне пишут, мол: "scss - это не модуль и ваще не знаю как с этим работать"
Pavel
скорее всего в конфиге реакт-лоадера можно пошаманить
Andrew
Может и можно это решить. Я видел варианты, но они не очень элегантны. Вопрос всё-же заключался в том, какая проблема возникнет следующей и что будет ждать за поворотом 🙂 Странно что так мало фидбека, вроде react довольно популярен из-за простоты входа.
Andrew
Ооо да. Это похоже на то, чего желает моя душа.
Pavel
ну и сообщение "я не знаю как работать с scss" похоже на не подключенный scss-loader
Алексей
всем привет, в наличии имеется апи, нелмио док бандл, роуты с аттрибутами в которых описан реквест и респонз. вопрос, есть ли какой нибудь генератор что бы на основании jsona генерить эти блоки ? очень уж геморно их руками писать, если ответ не пару строчек.