onPHP / onphp-framework

onPHP is the mature GPL'ed multi-purpose object-oriented PHP framework.
85 stars 52 forks source link

Problem in CommonDaoWorker::uncacheByIds #265

Open DeryabinSergey opened 2 years ago

DeryabinSergey commented 2 years ago

https://github.com/onPHP/onphp-framework/blob/5234ae39a151bee6be04424d5ae0a55f9cfc16b1/src/Main/DAO/Worker/CommonDaoWorker.php#L512-L523

Определяем $uncacher, мержим его в цикле и передаем $uncacher->uncache() в $this->registerUncacher() вместо $uncacher.

Ошибки из-за этого я пока не получал, но во первых $uncacher->uncache() ничего не возвращает: https://github.com/onPHP/onphp-framework/blob/5234ae39a151bee6be04424d5ae0a55f9cfc16b1/src/Main/DAO/Uncacher/UncacherBaseDaoWorker.php#L53-L60 и в $this->registerUncacher() пойдет NULL вместо ожидаемого интерфейса UncacherBase. Плюс далее по цепочке в https://github.com/onPHP/onphp-framework/blob/5234ae39a151bee6be04424d5ae0a55f9cfc16b1/src/Core/DB/DB.php#L438-L440 вызывается $uncacher->uncache()

По итогу строчку https://github.com/onPHP/onphp-framework/blob/5234ae39a151bee6be04424d5ae0a55f9cfc16b1/src/Main/DAO/Worker/CommonDaoWorker.php#L522 надо заменить на $this->registerUncacher($uncacher); Возврат тоже убрать, потому как смысла в нем нет.