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