DoctrineExtensions ищет в неправильном каталоге

Я использую Doctrine ORM в своем проекте PHP.

В одном из моих запросов я использую функции «COS» (косинус) и «SIN» (синус), чтобы сделать это возможным в Doctrine, я должен добавить это в свою конфигурацию управления объектами:

$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\sin');

Это прекрасно работает, когда я запускаю его на своем локальном ПК + сервере.

Но как только я размещаю проект на онлайн-сервере, я сталкиваюсь с этими ошибками:

Fatal error: Class 'DoctrineExtensions\Query\Mysql\cos' not found in /home/USER/domains/USER.com/public_html/MYDIRECTORY/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php on line 3418

Fatal error: Class 'DoctrineExtensions\Query\Mysql\sin' not found in /home/USER/domains/USER.com/public_html/MYDIRECTORY/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php on line 3418

Он ищет в каталоге vendor \ doctrine вместо каталога vendor \ beberlei \ DoctrineExtensions.

Мой композитор содержит:

"beberlei/DoctrineExtensions": "dev-master"

А автозагрузчик производителя содержит:

'DoctrineExtensions\\' => array($vendorDir . '/beberlei/DoctrineExtensions/src')

Может кто-нибудь объяснить это мне … Я попытался добавить загрузчик классов, но все еще та же проблема.

Localhost работает нормально …

0

Решение

При добавлении функций синуса и косинуса в конфигурацию entitymanager я использовал:

$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\sin');

Решение выше работает на локальном ПК + сервер.

При перемещении файлов проекта на веб-сервер вышеуказанная конфигурация не будет работать.

Вы должны изменить первую букву последнего слова в DoctrineExtensions namespace в верхний регистр, вот так:

$config->addCustomNumericFunction('COS', 'DoctrineExtensions\Query\Mysql\Cos');
$config->addCustomNumericFunction('SIN', 'DoctrineExtensions\Query\Mysql\Sin');

В принципе соз становится Cos а также грех становится грешить .

Теперь он работает на онлайн-сервере. Наконец-то все заработало!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]