我已经生成了一个捆绑包(@ShopfishApiBundle
),generate:bundle
就像我有很多次一样。它已经自动在 中注册了捆绑包,并且还添加了捆绑包的AppKernel
加载。这是在运行的安装中routing.yml
app/Resource/config/routing.yml
Sylius
Symfony 2.3
@ShopfishApiBundle/Resource/config/routing.yml
看起来像这样:
shopfish_api:
resource: "@ShopfishApiBundle/Controller/ProductController.php"
type: annotation
产品控制器如下所示:
namespace Shopfish\Bundle\ApiBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
/**
* @Route("/api")
*/
class ProductController extends Controller
{
/**
* @Route("/products")
* @Method({"GET"})
*
* @Rest\View
*/
public function allAction()
{
$products = array();
return array('products' => $products);
}
}
立即加载任何页面会产生以下异常:
FileLoaderLoadException: Cannot load resource "@ShopfishApiBundle/Controller/". Make sure the "ShopfishApiBundle" bundle is correctly registered and loaded in the application kernel class.
在另一个 Symfony2(2.4 版)应用程序中,我制作了一个类似的包,并且它没有错误地工作,我在想 Sylius 中的某些东西把它搞砸了。你知道我可以在哪里解决这个问题吗?
注意:我做了一个小测试,看看直接无注释代码片段是否有效,这似乎有效。虽然我想使用 FOS Rest 捆绑包,但使用 Annotations for Routing。
sf_api_controller:
pattern: /no-annotation-test
defaults:
_controller: ShopfishApiBundle:Product:all