Видимость метода CakePHP - PullRequest
       7

Видимость метода CakePHP

3 голосов
/ 29 августа 2011

Я сейчас немного запутался ... в документации CakePHP говорится, что видимость PHP можно заменить следующим образом: private на __ и protected на _. Но выполнение необходимых замен и вызов метода private из другого класса приводит к выполнению этого метода без каких-либо ограничений. Чего мне не хватает?

Ответы [ 3 ]

3 голосов
/ 29 августа 2011

Если вы устанавливаете их в модели, просто используйте private и protected, _ и __ работают только для действий контроллера

2 голосов
/ 30 августа 2011

Использование _ и __ для защищенного соотв. Закрытые методы - это соглашение CakePHP, потому что CakePHP (до v1.3.x) по-прежнему является средой PHP4, а PHP4 не имеет ключевых слов protected и private. Это означает, что даже если вы префиксируете имена своих методов таким образом, они все равно являются открытыми методами для PHP.

В вашем приложении я бы следовал подходу, который используется в CakePHP 2: используйте соглашение об именах вместе с соответствующим ключевым словом видимости. Например, закрытый метод будет определен как private function __myPrivateMethod().

2 голосов
/ 30 августа 2011

подчеркивание действует только для метода контроллера, так как пользователь не может получить к нему доступ. В приложении Cake это просто соглашение. Кроме того, я не думаю, что это проблема: вам нужно запирать свой дом снаружи, вам не нужно запирать все двери, если вы единственный в нем. Если вы хотите добиться этого, используйте private и protected ключевые слова PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...