Возврат по ссылке не поддерживается

#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; в коде.