我有一个Symfony2项目,我正在尝试集成GuzzleBundle来构建一个Web服务客户端。我正在为客户端命令(扩展@guzzle
)使用Guzzle\Service\Command\AbstractCommand
注释。
它似乎在开发环境中正常工作,但当我尝试使用prod环境加载页面时,我得到一个Doctrine AnnotationException
:
PHP Fatal error: Uncaught exception 'Doctrine\Common\Annotations\AnnotationException' with message '[Semantical Error] The annotation "@guzzle" in class Admin\FindAnExpertBundle\Entity\SymplecticClient\Rest\Command\UserById was never imported. Did you maybe forget to add a "use" statement for this annotation?'
我还收到有关缺少Proxy
类文件的错误:
PHP Warning: require(/home/httpd/sites/experts.admin/app/cache/prod/doctrine/orm/Proxies/AdminFindAnExpertBundleEntityRelationshipTypeProxy.php) [<a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in /home/httpd/sites/experts.admin/vendor/doctrine/lib/Doctrine/ORM/Proxy/ProxyFactory.php
我认为这是因为致命错误阻止了所有代理类的创建。
Guzzle似乎没有使用Doctrine注释解析器,所以我想知道是否有办法让它忽略@guzzle
注释或以某种方式注册它们?
答案 0 :(得分:0)
你必须导入Gunotation的解析 - 解析器,它处理“@guzzle”注释,例如:
use Guzzle\Service\Inspector as guzzle;
但我不知道它是哪一堂课。
也许this gist file会帮助你。
答案 1 :(得分:0)
我最终将与Web服务客户端相关的类移出Entity文件夹,这阻止了Doctrine注释解析器读取它们。回想起来,无论如何这些课程都不应该在那个文件夹中。