我現在有點困惑......在CakePHP文檔中,它指出PHP的可見性可以替換爲:private
與__
和protected
與_
。但是做必要的替換,並且從另一個類中調用private
方法會導致該方法的執行沒有任何限制。我錯過了什麼?CakePHP方法可見性
回答
下劃線只對控制器的方法有效的工作,因爲用戶無法訪問。在Cake應用程序中,它實際上只是一個約定。此外,我不認爲這是一個問題:你只需要從外面鎖上你的房子,如果你是唯一的門,你不需要鎖住每扇門。如果你想實現那個使用private
和protected
PHP關鍵字。
然後我會使用'private'和'protected'關鍵字。謝謝! – linkyndy
使用_和__表示受保護的resp。私有方法是CakePHP約定,因爲CakePHP(高達v1.3.x)仍然是PHP4框架,而PHP4沒有protected
和private
關鍵字。這意味着,即使您以這種方式爲您的方法名添加前綴,但就PHP而言,它們仍然是公共方法。
在您的應用程序中,我將遵循即將推出的CakePHP 2所使用的方法:將命名約定與各自的可見性關鍵字一起使用。例如,一個私有方法將被定義爲private function __myPrivateMethod()
。
謝謝你的提示。我會這樣做,因此準備CakePHP 2。 – linkyndy
- 1. 方法的可見性及其成本
- 2. C++特殊方法的可見性
- 3. php OOP - 與方法可見性有關
- 4. 抽象方法的標準可見性
- 5. 動態確定方法的可見性
- 6. 更改方法的可見性
- 7. php5 ---方法可見性問題
- 8. 方法不可見
- 9. 方法不可見
- 10. StackPanel可見性VS網格可見性
- 11. Bean中的方法屬性可見性(線程安全嗎?!)
- 12. 錯誤與CSS可見性屬性和JavaScript setTimeout方法
- 13. 類方法可見細化
- 14. Vb.net DLL方法不可見
- 15. 擴展方法不可見
- 16. 子類可以影響虛擬方法的可見性嗎?
- 17. 如何使用方向更改控制視圖可見性(可見/不可見)?
- 18. 無法降低從Rideable繼承的方法的可見性
- 19. Javascript:可見性
- 20. SimpleExoPlayerView可見性
- 21. 綁定的DataTemplate父項的可見性(可見性或可見性),以在ViewModel
- 22. 使用CSS可見性淡入:可見?
- 23. 將XAML中的可見性綁定到可見性屬性
- 24. 改變方法的可見性而無需重新定義方法
- 25. 做一個布爾或可見性的最佳方法
- 26. 在onClick()方法中切換元素的可見性
- 27. 如何更改實例方法的可見性
- 28. 在MVVM中設置可見性的最佳方法
- 29. 匿名類方法中的變量可見性
- 30. 獲取每種方法的訪問/可見性修改器
您是在控制器還是模型中設置這些私有方法?因爲命名約定只能在控制器上工作,據我所知。此外,我相信它只適用於有人試圖從URL訪問它,如www.example.com/controller/_protectecAction – 8vius
我設置他們在一個模型,但如果他們只爲URL訪問工作,爲什麼會有一個'保護'和'私人'等價? – linkyndy
我不知道,這只是蛋糕的工作方式,如果它的模型只是設置爲私有的,並且保護它,因爲_只適用於控制器 – 8vius