關於yaf的控制器命名,乙個糾結的問題。

2021-06-15 02:27:52 字數 916 閱讀 7429

在zf中,控制器是可以繼承其他控制器的,無論是繼承本模組的還是繼承其他模組的控制器,但在yaf中,這種做法會遇到一些小障礙....

舉個子:

/

controllers/

base.php

index.php

modules/

module1/

controllers/

base.php

index.php

如果module1中的index控制器要繼承base控制器,**會寫成這個樣子:

class indexcontroller extends basecontroller

可是,basecontroller這個類名是重複的!因為index模組中的base控制器也叫這個名字,而且確實會繼承index模組中的base,悲劇了!

更悲劇的是,如果module1模組中的index控制器想繼承index模組中的index控制器,那麼**會更悲催的變成這個樣子:

class indexcontroller extends indexcontroller
看上去,像是自己繼承了自己,這會非常令人疑惑...

為什麼會這樣?

這個問題,跟yaf裡模組、控制器、plugin等的類的命名規範有很大關係,控制器的命名並沒有區分模組,而且自定義的spl自動載入不會對他們起作用....

更重要的問題是,它的分發器不可修正,yaf並沒有提供這些個介面...

要解決這個問題,要嘛修改yaf的原始碼以後重新編譯,要嘛自定義乙個分發器,可是分發器是mvc的核心,換了它,跟換了框架沒什麼區別...

希望yaf越來越好、越來越完善!

解決方案:

關於yaf的控制器命名,乙個糾結的問題(續)

loader相關的步驟,已經補上!what 我們要達成什麼樣的目標?1 修改yaf控制器的命名規範,如zf一樣 控制器類名 模組名 控制器名controller 檔案命名不變。2 為了相容以前預設模組中的 在預設模組中,控制器命名規則使用yaf預設的規則,即 控制器類名 控制器名controller...

關於在乙個控制器裡新增另乙個控制器的View的問題

最近的專案由於專案需要,涉及過多次在當前控制器上新增另乙個控制器的view問題。這裡做個筆記,為了方便,當前檢視控制器記為控制器1,新增的檢視記為控制器2 第一種情況 1.首先,因為控制器2的檢視上有需要與使用者互動的需求,所以一定要設定2為1的子控制器 viewcontroller vc2 vie...

如何建立乙個控制器

控制器的常見建立方式有以下幾種 1 直接建立 mjviewcontroller mj mjviewcontroller alloc init 2 通過storyboard建立 需要新建乙個storyboard檔案 1 先載入storyboard檔案 test是storyboard的檔名 uistor...