Maksym
setCreatedAt по стандарту используется для изменения поля сущности. а у тебя работает как слушатель = ок
Maksym
Vadim
Maks
что и) в доке же есть...
Vadim
В доке симфони и лары тоже много чего есть, там это есть не как пример, как правильно писать, а как можно использовать ивенты, но использовать их, чтобы время засетить как бы не очень практично. Есть конструктор. Да и если сеттеры используешь, рука не поднимется его вызвать?
Maks
это же наша работа, копипастить из доки и переименовывать переменные, именно за это мы получаем сотни нефти
Vadim
Ясно
Maks
Макеев в своем подкасте рассказывал, что на SO нашелся пример сортировки на java с ошибкой, грепнули его по гитхабу а он там почти везде юзается...
Maks
std::mechanicus
std::mechanicus
Гидра доминатус
std::mechanicus
Я Альфарий
Dmitry
не могу понять почему ошибка?
ты назвал метод setCreatedAt - это правило по умолчанию для сеттеров. Если поля приватные, то гидраторы пытаются выполнить метод setИмяПоля
но поскольку в аннотации стоит PreFlush, то сервис доктрины инжектит туда PreFlushEventsArgs
переименуй по другому методы жизненного цикла
Maksym
Dmitry
Ок. Спс
И в PreFlush должен идти аргумент (LifecycleEventArgs $args)
в PreFlush ты уже не сможешь поменять поля
поля меняются в PrePersist
Maksym
Dmitry
Ну и не мучайся сам)))
Другие уже помучались
http://atlantic18.github.io/DoctrineExtensions/doc/timestampable.html
Просто трейты будешь добавлять в сущности
Dmitry
Dmitry
PrePersist сработает и на создание и на обновление
Maksym
Maksym
Туда же
updatedAt нужно вешать на @ORM\PreUpdate
Гречушников
подскажите пожалуйста. фронт от меня требует дать ему возможность отправлять данные как на картинке выше. методом гет или пост не важно. но request $request у меня ничего не принимает. что я делаю не так? как это можно обработать?
Alexander
php://input выловит такие данные
Vadim
Гречушников
благодарю
Гречушников
// ddd($data);
переодически нахожу d() _dd() вот теперь ddd() нашел
Гречушников
https://github.com/kint-php/kint
Maxim Kainov
artem
Можно задам вопрос блондинки?
artem
У нас есть прелоад и мы подгружаем туда класс, создаём инстанс и его убиваем через GC и класс также остается в памяти по прлоаду?
Kirill
прелоад - это шаред мемори опкеша
artem
Те бинарник и мемори он вообще не могет?
Kirill
чо?
artem
Выше описал от кого пишу) ансетить объекты бесполезно чтобы очистить память созданных из прелоад. Точнее очистить прелоад бесполезно?
Kirill
1) ансет не чистит память
Kirill
2) шаред мемори - это не совсем оперативка
Kirill
3) gc никак не связан с shmop
artem
Ну вот ты на дестроее какой то глобальной конструкции апы понимаешь что тебе все твои предзагруженные не нужны и хочется их побыстрее
artem
Та это даже не столько вопрос как предложение
Kirill
ну так выгружай из шмопа принудительно)
Kirill
\opcache_invalidate(__DIR__ . '/src/file.php')
artem
И он мне почистит кэш?
artem
Зачем?
Kirill
а что говорит по этому поводу документация?
artem
Я понял что я задолбал))
Kirill
Зачем?
Ну я не знаю. Ты сам говоришь, что надо выгрузить из него код, который был в прелоаде подгружен
Kirill
А зачем - у тебя надо спросить)
artem
Та я просто думаю что то что должно прелодится кэшируется и удаляется из текущей памяти мгновенно
Kirill
ээээ
Kirill
Так, давай ещё раз. Есть программа (это одна память). Есть таблица символов (это другая память). Есть локальная таблица символов - это третья.
Kirill
Ты про какую память говоришь, говоря "текущая"?
Kirill
Ну и ещё есть стек для той "памяти", которая идёт сквозь таблицу символов)
artem
Я делаю дестрой на уровне приложения и хочу физически убить классы временно подзагруженные
artem
Не временно я сорри
Kirill
классы убиваются выгрузкой опкодов из шаред мемори
Kirill
Точнее не совсем так. Убить их нельзя, можно лишь выгрузить опкоды
artem
А в коде как их очистить? Без GC и любимых нами
Kirill
никак
Kirill
классы - это декларативные структуры, GC никак с ними не работает
artem
artem
На более низком уровне ок
artem
Я вот просто смотрю что летят фичи не в сторону GC
Kirill
Ну и код классов тоже, кстати, никак не связан с GC
artem
А кто-то есть кто общается с rfc contributors? Благодаря сегодня я понял что не скоро туда попаду. А Феб отвечает раз в год
Kirill
Вот тебе говнокод VM на коленке запиленный, что бы понял:
1) https://gist.github.com/SerafimArts/ce7e0ca28b325e4c8794aede4ffd8a74#file-executor-php-L6-L14 - это код. Пых с подобным взаимодействовать не может. Он и попадает в прелоад
2) https://gist.github.com/SerafimArts/ce7e0ca28b325e4c8794aede4ffd8a74#file-examplevm-php-L15 - вот это рантайм. Его и чистит GC, когда refcount = 0 (за исключением ссылок, т.к. по ссылкам проходить тяжко)
artem
Я просто посмотрел на дженерики и не понял почему ещё нет именнованых аргументов на стыке
Kirill
а дженерики - это перевод плоскости опкодов VM (пункт 1) в рантайм (пункт 2). Т.е. динамическая генерация типов. Ну и естественно все оптимизации DCE, и константного вывода типов (за счёт CFG) летят по хуям
Kirill
Т.е. примерно так же как на этом скрине моего языка:
Kirill
на входе 6 типов, а на выходе 100500 (кроме встроенных)
Kirill
переводя на человеческий язык - пути два:
1) типы\ассерты придётся тоже хранить как переменные
2) генерировать код (копировать опкоды) так же как на скрине
Kirill
Первый, кажется, для пыха логичнее, т.к. тайпчекинг и так на стадии рантайма. А значит ничего особо не мешает выдирать их из таблицы символов
Kirill
Под таблицей символов я подразумеваю хешмапу с zval. Хз как она в пыхе называется))
artem
Ты тоже пхп Москов смотрел?)) Та нет. Вопрос был в том чтобы прибить класс когда он уже не нужен по коду)
artem
Просто хватаешь какой то евент и сбиваешь все что было)
artem
Дестракт, ансет, etc
artem
Только на максималках
artem
Будто и не было