0

我有一个 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注释或以某种方式注册它们?

4

2 回答 2

0

您必须导入 Guzzle 的注解解析器,它处理“@guzzle”注解,例如:

use Guzzle\Service\Inspector as guzzle;

但是不知道是哪个班。

也许这个 gist 文件可以帮助你。

于 2012-07-19T14:04:58.090 回答
0

我最终将与 Web 服务客户端相关的类从 Entity 文件夹中移出,这阻止了 Doctrine 注释解析器读取它们。回想起来,这些类无论如何都不应该在那个文件夹中。

于 2012-07-30T11:44:13.043 回答