所以我做了一个扩展Symfony\Bundle\FrameworkBundle\Routing\Router
的课程
并使用router.class: My\Bundle\Router\Class
在配置中定义为我的默认值,但现在每当我更改路径模式或名称这么简单的东西时,我得到......
致命错误:在第312行的/.../app/cache/dev/classes.php中的非对象上调用成员函数get()
在该行中有:
$this->collection = $this->container->get('routing.loader')->load($this->resource, $this->options['resource_type']);
我错过了什么?
答案 0 :(得分:2)
$this->container
在Router
课程中是私有的。您无法直接访问它。
你需要让它易于理解:
/**
* Router
*/
class Router extends BaseRouter
{
protected $container;
/**
* Constructor.
*
* @param ContainerInterface $container A ContainerInterface instance
* @param mixed $resource The main resource to load
* @param array $options An array of options
* @param RequestContext $context The context
* @param array $defaults The default values
*/
public function __construct(ContainerInterface $container, $resource, array $options = array(), RequestContext $context = null, array $defaults = array())
{
$this->container = $container;
parent::__construct($container, $resource, $options, $context, $defaults);
}
}