[英]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.