如何在php中扩展多个类?

时间:2012-10-29 11:14:55

标签: php symfony extends

我想在“contactus”页面中创建一个表单。 我正在关注this tutorial。 我必须扩展sfFrom类以使用sfWidget,但在我的代码中我已经扩展了BaseController。

在没有新课程的情况下有没有解决办法呢?

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

3 个答案:

答案 0 :(得分:1)

你做错了。

symfony 1 与Symfony 2完全不同(查看本文:How Symfony2 differs from symfony1)。您可以按照sf1中的教程在sf2中创建表单。

您应该尝试为sf2查找资源,例如:

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

然后,当您阅读这些教程时,您可以回到此处询问有关实施表单时遇到的问题的新问题。

答案 1 :(得分:0)

使用组合或界面。

在你的情况下,作文是解决方案。

PHP不允许多重继承

答案 2 :(得分:0)

如果您可以使用PHP5.4,请使用以下特征: http://php.net/manual/en/language.oop5.traits.php

<?php 

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

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

它们允许您通过使用合成来获得与多重继承相似的结果。

编辑:由于问题下方的标签更改为Symfony2: 您不需要多重继承,因为Symfony2以不同的方式处理这种情况。接受的答案很好地描述了它。