簡體   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