控制CakePHP中函数访问的最佳方法

时间:2011-07-12 14:25:30

标签: cakephp

简单的问题:确保仅从我的应用程序内部调用函数的最佳方法是什么?我只是想确保没有人可以输入网址并运行它。

我考虑过使用Auth,但我真的不需要用户名/密码保护。然后我想到了私有/受保护的函数,但我读过CakePHP并没有很好地处理它。如果我使用private,作为一个例子,我将无法从另一个控制器类调用受保护的函数。

我认为必须有一个简单的解决方案,但我想不出一个。

提前谢谢大家。 :)

2 个答案:

答案 0 :(得分:3)

如果您有在不同控制器中使用的功能,那么创建组件会更好。

但....如果你真的需要..如果你真的想......你可以通过在方法名称的开头添加一个下划线来设置访问权限:

class ProductsController extends AppController {

     // a browser can "access" this method
     function iHaveAView(){
     }

     // this method is used only by controllers
     function _cantTouchMe(){
     }

祝你好运

已编辑:(最后找到了关于此的文档)

  

您还可以在CakePHP中更改控制器方法的可见性   使用下划线为控制器方法名称添加前缀。如果是控制器   方法一直以下划线为前缀,方法不会   可从网上直接访问,但可供内部使用。

来源: Controller Conventions

答案 1 :(得分:1)

我认为这很简单,不要将该功能作为控制器的动作。创建一个组件并在需要时使用它。

这会使您的功能对公众无法使用,但可在您的应用中使用。

您怎么看?