#php #doctrine #phpunit
#php #доктрина #phpunit
Вопрос:
в моем текущем проекте я использую doctrine и прослушиватель, проверяя наличие определенных изменений, чтобы вызвать аннулирование кэша.
В моем тесте из-за использования $entityManager->getUnitOfWork()->getEntityChangeSet($entity)
я получаю следующую ошибку:
Returning by reference not supported
Базовый код для этого находится внутри класса Doctrine UnitOfWork:
public function amp; getEntityChangeSet($entity)
{
что я, очевидно, не буду / не могу изменить.
Код, который его вызывает, уже работал в рабочей среде:
$args->getEntityManager()->getUnitOfWork()->getEntityChangeSet($entity)
Я обновился до последней стабильной версии PHPUnit, которую мы поддерживаем (4.8), и не могу подняться выше с тех пор, как мне пришлось переписать все тесты (из-за устаревших серверных методов).
Как мне решить эту проблему?
Ответ №1:
Я полагаю, вы можете использовать doctrine/orm
версию 2.5. У него нет этой передачи по ссылке, он только master
хранит ее
Комментарии:
1. Извините, вы говорите, что я должен использовать 2.5 (которым я являюсь) или я должен использовать master?
2. В 2.5 нет этого ссылочного вызова (насколько я вижу) github.com/doctrine/doctrine2/blob/2.5/lib/Doctrine/ORM /…
3. Я использую master 2.5 github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM /…
4. Но как у вас есть зависимость в composer.json? Я только что проверил это с помощью «doctrine / orm»: «^ 2.5» — он импортирует версию без amp;amp;
5. я пробовал «2.5» и «^2.5» и даже «2.5.4», каждый из которых давал мне amp; в коде.