PHP试图在symfony2中实现接口但未成功
我刚开始学习Symfony2。我在控制器中使用接口时遇到问题。我已经创建了一个非常简单的接口,然后在控制器中实现了它,现在Symfony调试器大声说我的方法和接口不兼容。下面是我的代码 Webrama\UserBundle\Controller:PHP试图在symfony2中实现接口但未成功,php,symfony,abstract-class,Php,Symfony,Abstract Class,我刚开始学习Symfony2。我在控制器中使用接口时遇到问题。我已经创建了一个非常简单的接口,然后在控制器中实现了它,现在Symfony调试器大声说我的方法和接口不兼容。下面是我的代码 Webrama\UserBundle\Controller: namespace Webrama\UserBundle\Controller; use Webrama\UserBundle\Model\InitializableControllerInterface; use Symfony\Bundle\Fr
namespace Webrama\UserBundle\Controller;
use Webrama\UserBundle\Model\InitializableControllerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller implements InitializableControllerInterface
{
public function initialize(Request $request,
SecurityContextInterface $security_context,
FilterControllerEvent $event)
{
}
}
以及界面:
namespace Webrama\UserBundle\Model {
interface InitializableControllerInterface
{
public function initialize(Request $request,
SecurityContextInterface $security_context,
FilterControllerEvent $event);
}
}
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
我只是简单地从接口复制了这个方法,在其中添加了一个主体,在这里我看不到任何问题。当然至少有一个。有什么想法吗?尝试将其添加到控制器和界面:
namespace Webrama\UserBundle\Model {
interface InitializableControllerInterface
{
public function initialize(Request $request,
SecurityContextInterface $security_context,
FilterControllerEvent $event);
}
}
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
尝试将其添加到控制器和界面:
namespace Webrama\UserBundle\Model {
interface InitializableControllerInterface
{
public function initialize(Request $request,
SecurityContextInterface $security_context,
FilterControllerEvent $event);
}
}
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
尝试将其添加到控制器和界面:
namespace Webrama\UserBundle\Model {
interface InitializableControllerInterface
{
public function initialize(Request $request,
SecurityContextInterface $security_context,
FilterControllerEvent $event);
}
}
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
尝试将其添加到控制器和界面:
namespace Webrama\UserBundle\Model {
interface InitializableControllerInterface
{
public function initialize(Request $request,
SecurityContextInterface $security_context,
FilterControllerEvent $event);
}
}
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
愚蠢的我不明白这是为什么,但它的工作。。。看起来我必须阅读一些symfony tut.+1来详细说明正确的答案;接口的参数类型提示假定位于同一命名空间(
Webrama\UserBundle\Model
)内,因为您没有使用use
语句显式定义它们。这与Symfony无关。这只是与PHP OOP相关。不,绝对不是:)我只是指“看起来好像我必须阅读一些symfony tut。”愚蠢。我不明白这是为什么,但它的工作。。。看起来我必须阅读一些symfony tut.+1来详细说明正确的答案;接口的参数类型提示假定位于同一命名空间(Webrama\UserBundle\Model
)内,因为您没有使用use
语句显式定义它们。这与Symfony无关。这只是与PHP OOP相关。不,绝对不是:)我只是指“看起来好像我必须阅读一些symfony tut。”愚蠢。我不明白这是为什么,但它的工作。。。看起来我必须阅读一些symfony tut.+1来详细说明正确的答案;接口的参数类型提示假定位于同一命名空间(Webrama\UserBundle\Model
)内,因为您没有使用use
语句显式定义它们。这与Symfony无关。这只是与PHP OOP相关。不,绝对不是:)我只是指“看起来好像我必须阅读一些symfony tut。”愚蠢。我不明白这是为什么,但它的工作。。。看起来我必须阅读一些symfony tut.+1来详细说明正确的答案;接口的参数类型提示假定位于同一命名空间(Webrama\UserBundle\Model
)内,因为您没有使用use
语句显式定义它们。这与Symfony无关。这只是与PHP OOP相关。不,绝对不是:)我只是指“看起来好像我必须阅读一些symfony tut。”