在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...