Konstantin
я вообще ничего не понял, сорян, умываю руки
Юра
Смотри как реализован метод forward у контроллера
crang
Посмотрю, спасибо
Юра
Ну вообще как бы обычно пишут rest api
Юра
Дергать свои же контроллеры в своем же коде скорее всего что-то не то
Alexander
Может речь о задачах в кроне.. Зачем там урлы:
crang
в стороннем коде, для rest api нужно хостить приложение, хотя бы локально, но сервер не предусмотрен
Konstantin
иногда кажется, что сюда нейросети какие-то проникают
Alexander
а в чем проблема с сервером... хоть тот же "встроенный"?
Konstantin
и вроде генерят фразы из знакомых слов, но начисто лишенных смысла
Alexander
и вроде генерят фразы из знакомых слов, но начисто лишенных смысла
Ну а куда сейчас за подсказкой податься... форумы не активны особо... Знаний если нет... А в чатах, инфа "убегает" не задерживаясь....
Alexander
в стороннем коде, для rest api нужно хостить приложение, хотя бы локально, но сервер не предусмотрен
Короче вам надо сначала все же разобраться с чем вы хотите работать. Поднять сервер не проблема же... И не надо будет ни каких костылей городить
crang
а в чем проблема с сервером... хоть тот же "встроенный"?
В том что сервер не нужен, приложение это api для доступа к бд, это api требуется разным клиентам локально
Alexander
Клиенты обращаются по http?
Alexander
Или просто "командами"?
Alexander
Протокол общения то какой?
crang
Пока никак, протокол - пхп файл, внутри класс с набором методов из приложения symfony
Alexander
делайте консольные команды... раз хотите рабоать через cli
Alexander
А если все же это монолитный проект и "чужой код" лишь условность... тогда вообще не понятно в чем вопрос... Почитайте про "гексокгональную" архитектуту, может это то, что вы хотите
crang
Ну с рест api и консольными командами вроде понятно, я хочу чтоб была возможность из клиентского кода вызвать что-то вроде $symfonyApp->doSomething($data);
Alexander
Это как то не слишком гуд..
Юра
Что тогда?
Юра
Получается какой-то чисто заточенный на пхп клиент
Юра
Непонятно вообще что такое клиентский код
Юра
Это какой-то плагин?
Сергей
че то похожее на soap wsdl )) как будто. но это один хер на http
Юра
Если клиент это плагин который запускается в твоем приложении то можно да написать сервис, который принимает httl kernel и делает запрос на твой же контроллер
Юра
Но
Юра
Правильнее наверное было бы сразу написать сервис, и своим же контроллером как и плагину дергать этот сервис
Юра
Ну это если сначала делать
Павел
Приветствую. Подскажите плиз с вопросиками: 1) Как работает ResetInterface? Как я понял, метод reset должен вызываться у метода после запроса, но по факту я этог не вижу. Или это только для роадраннера и подобного? 2) Есть statefull сервис, я хотел бы сбрасывать состояние в мессенджере между запросами. Думал решу через resetInterface - но это не работает. Мидлвар делать под сервис? Другого варианта нет?
Сергей
1 помоему вызывается после перезагрузки кернела 2 тут только мидлвар
Сергей
1. Надо глянуть, но мо моему в РР делает ребут кернела для этого как раз
Alexander
Пытаюсь выполнить команду bin/console d:m:diff и "ничего не происходит"..... Т.е. команда типа выполняется... долго... и не завершается. .. у меня всего 5 сущностей. все потри поля и одна на 10 полей...... Как то можно понять что происходит?
Alexander
Запускаю bin/console doctrine:schema:validate - Раздел mapping - ОК, раздел Database - не звершается (только заголовок вывел)
Alexander
Alexey
Народ, а чуть офтопа, кто в phpstan шарит? Как пофиксить вот такое: https://phpstan.org/r/87b25cb2-7396-4984-8061-b883a7c0b1c6
Konstantin
Запускаю bin/console doctrine:schema:validate - Раздел mapping - ОК, раздел Database - не звершается (только заголовок вывел)
похоже что проблема с сетью и подключением к базе. либо днс-имя базы не резолвится, либо адрес недостижим, но тцп не рефьюзится и не дропается
Alexander
все локально
Konstantin
и тем не менее
Alexander
из шторма вообще спокойно конекчусь и делаю что хочу
Alexander
кстати, бБД при помошщи консоли удалил и создал вновь
Konstantin
попробуйте, во-первых, добавить -vvv к аргументам, во-вторых, подождать там 5 минут, какой-нибудь эксепшн да выпадет
Alexander
ок. пасибо
Konstantin
вообще интересно. а ядро цпу при этом в 100%?
Konstantin
то есть может какой-то бесконечный цикл, если правда не сетевые проблемы
Alexey
Либо заменить iterable на array, либо вернуть итератор/генератор
Точно нет. Заменить можно, но ошибку это не фиксит: Method HelloWorld::sayHello() should return array<SuperObject> but returns array<object>.
Alexander
вообще интересно. а ядро цпу при этом в 100%?
нет. ядра процентов на 10 максимум
Konstantin
в Creator добавить дженерик
только хотел сказать
Konstantin
нет. ядра процентов на 10 максимум
тогда вряд ли бесконечный цикл и действительно куда-то в ио упирается - сеть, скорее всего
Alexander
чудесато... ладно попробую разобраться....
Konstantin
попробуйте что выше советовал, оно там скажет рано или поздно что не так)
Alexander
да. я запустил.... пока пытаюсь на чистом скелетоне поиграться
Alexander
бред какой то запустил "bin/console doctrine:schema:create -vvv" - все ок.... Пытаюсь diff сразу же - висит....
Dmitry
Народ, а чуть офтопа, кто в phpstan шарит? Как пофиксить вот такое: https://phpstan.org/r/87b25cb2-7396-4984-8061-b883a7c0b1c6
А так iterable имеет смысл для входящих параметров метода указывать. Для return его возвращать нет особого смысла, если там в итоге возвращается просто массив, а не генератор или итератор.
Alexey
Konstantin
тогда в интерфейсе должен быть \Traversable
Alexey
Ладно, вопрос не про это...
Alexey
в Creator добавить дженерик
Да вот он там есть, но как обойти ошибку пока не очень доходит до меня https://github.com/doctrine/persistence/blob/3.0.x/src/Persistence/ObjectRepository.php#L12
Alexey
Я про ObjectCreator
Да и я про него.
Alexey
Вот он пример с дженериками есть в доке, но там реализация интерфейса. Но HelloWorld не реализует интерфейс ObjectCreator'а /** * @template T of Message */ interface Consumer { /** * @param T $message */ function consume(Message $message); } /** * @implements Consumer<SendMailMessage> */ class SendMailMessageConsumer implements Consumer { function consume(Message $message) { ... } }
Alexey
Гасить игнором только похоже такие случаи, все примеры с наследованием
Alexey
тогда в интерфейсе должен быть \Traversable
Так \Traversable array не включает вроде как, в отличии от iterable
Юра
В пхп и тут намудрили
Пилот
ребе, а такую штуку кто то юзал же? https://ocramius.github.io/blog/doctrine-orm-optimization-hydration есть некоторая проблемка с этим, хотел кое шо спросить
Павел
ребе, а такую штуку кто то юзал же? https://ocramius.github.io/blog/doctrine-orm-optimization-hydration есть некоторая проблемка с этим, хотел кое шо спросить
Не понятно в чем проблема, мб статья уже старая. Сейчас же можно указать add('entityAlias') и не будет n+1 проблемы. Или я не догнал)
Пилот
вот описал проблему) буду благодарен если глянешь)
Павел
вот описал проблему) буду благодарен если глянешь)
Если я правильно понял, то при запросе юзера с participation (с участием add(participation) ), если participation пустые и к ним идут потом обращения - то идет запрос в БД ? Выглядит как баг, если это так. Может быть у вас просто юзер уже в UoW из-за первого запроса и поэтому он заного не гидрируется и его коллекции?
Павел
Я просто как то делал, что ограничивал содержимое one-to-many в join, т.е. не все элементы коллекции возвращал в сущность. При повторном запорсе этой сущности, там были такие же ограничения, что были в предыдущем запросе, хотя в новом запросе их не было. Так как сущности с коллекциями уже были в UoW
Павел
Для чистоты эксперимента - почистите UoW перед запросом
Павел
Точнее IdentityMap, UoW тут не при чем )