繁体   English   中英

如何在php中扩展多个类?

[英]How to extends multiple classes, in php?

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

有没有解决方案,而无需上新课?

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

你做错了

symfony 1与Symfony 2 完全不同 (请检查本文: Symfony2与symfony1有何不同 )。 您遵循sf1的教程在sf2中创建表单。

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

由于您是法国人,因此建议您阅读以下教程:

然后,当您阅读了这些教程之后,可以回到这里提出有关实现表单时遇到的问题的新问题。

使用组合或接口。

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

PHP不允许多重继承

如果可以使用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以不同的方式处理了这种情况。 公认的答案描述得很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM