如何在php中扩展多个类?

如何在php中扩展多个类?,php,symfony,extends,Php,Symfony,Extends,我想在我的“联系人”页面中创建一个表单。 我跟在后面。 为了使用sfWidget,我必须扩展sfFrom类,但在我的代码中,我已经扩展了BaseController 在不创建新类的情况下,有什么解决方案可以做到这一点吗 class InfoController extends BaseController { /** * * @Route("/contactus", name="info_contactus_page") * @Template()

我想在我的“联系人”页面中创建一个表单。 我跟在后面。 为了使用sfWidget,我必须扩展sfFrom类,但在我的代码中,我已经扩展了BaseController

在不创建新类的情况下,有什么解决方案可以做到这一点吗

class InfoController extends BaseController
{
    /**
     *
     * @Route("/contactus", name="info_contactus_page")
     * @Template()
     */
    public function contactusAction()
    {
        return array();
    }
}

使用组合或接口

在你的情况下,组成就是解决方案


PHP不允许多重继承

如果可以使用PHP5.4,请使用traits:


你做错了

symfony1与symfony2完全不同(请参阅本文)。按照sf1中的教程在sf2中创建表单

相反,您应该尝试查找sf2的资源,如:

既然你是法国人,我建议你阅读以下教程:


然后,当您阅读完这些教程后,您可以回到这里,就您在实现表单时遇到的问题提出一个新问题。

我不知道如何才能做到这一点。在本文中,C类是在文件顶部创建的,但我的类是symfony类。“你能帮我吗?”拉布德一点也不。你看过完整的问题了吗?@Tom pouce你是在和symfony 1还是2合作?因为
BaseController
不存在于symfony1中,而存在于sf2中。然后,你读错了教程。我刚刚注意到,控制器不应该扩展sfForm。控制器在某些操作中应该创建自定义sfForm子对象的实例并使用它。整个问题没有任何意义sense@j0k我正在研究Sf2。我找不到任何Symfony2教程来创建表单=(什么?我的意思是,如果你有类A{},那么你可以用类B{public/private/protected$instanceOfA;}来“继承”类B中的类A行为。我必须实例化一个sfFrom对象(在函数SomethingSomething…)?是的,您可以这样做,并在InfoController中提供它。然而,这不是Symfony2的工作方式;)我没有看到我的教程是针对sf1的。=/谢谢你的评论,我花了几个小时寻找解决方案。。。
<?php 

trait SomeOtherControllerTrait {
    function SomethingSomethingSomething() { /* Something */ }
}

class InfoController extends BaseController {
    use SomeOtherControllerTrait;
    /* ... */
}