我現在有點困惑......在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. php OOP - 與方法可見性有關
- 3. 更改方法的可見性
- 4. 方法的可見性及其成本
- 5. 抽象方法的標準可見性
- 6. 方法不可見
- 7. 錯誤與CSS可見性屬性和JavaScript setTimeout方法
- 8. Bean中的方法屬性可見性(線程安全嗎?!)
- 9. 類方法可見細化
- 10. 子類可以影響虛擬方法的可見性嗎?
- 11. 如何使用方向更改控制視圖可見性(可見/不可見)?
- 12. 將XAML中的可見性綁定到可見性屬性
- 13. 改變方法的可見性而無需重新定義方法
- 14. 如何強制Eclipse來更新方法的可見性
- 15. Java中的類之間的方法可見性
- 16. jQuery的CSS可見性不能在加載方法內工作?
- 17. 如何挑選對默認可見性方法的調用?
- 18. java中的繼承方法可見性概念
- 19. 實例方法中類成員變量可見性
- 20. C++中的輔助方法及其可見性
- 21. C#類和成員(字段,方法等)的默認可見性?
- 22. 在PHP中檢查方法的可見性
- 23. 做一個布爾或可見性的最佳方法
- 24. 使用魔術方法的PHP可見性__get&__set
- 25. 獲取每種方法的訪問/可見性修改器
- 26. 匿名類方法中的變量可見性
- 27. 設置Html.ActionLink的可見性,最佳方法?
- 28. System.InvalidOperationException:無法設置可見性
- 29. 我無法更改RecyclerView的可見性
- 30. 計算法向量的可見性
您是在控制器還是模型中設置這些私有方法?因爲命名約定只能在控制器上工作,據我所知。此外,我相信它只適用於有人試圖從URL訪問它,如www.example.com/controller/_protectecAction – 8vius
我設置他們在一個模型,但如果他們只爲URL訪問工作,爲什麼會有一個'保護'和'私人'等價? – linkyndy
我不知道,這只是蛋糕的工作方式,如果它的模型只是設置爲私有的,並且保護它,因爲_只適用於控制器 – 8vius