简单的问题:确保仅从我的应用程序内部调用函数的最佳方法是什么?我只是想确保没有人可以输入网址并运行它。
我考虑过使用Auth,但我真的不需要用户名/密码保护。然后我想到了私有/受保护的函数,但我读过CakePHP并没有很好地处理它。如果我使用private,作为一个例子,我将无法从另一个控制器类调用受保护的函数。
我认为必须有一个简单的解决方案,但我想不出一个。
提前谢谢大家。 :)
答案 0 :(得分:3)
如果您有在不同控制器中使用的功能,那么创建组件会更好。
但....如果你真的需要..如果你真的想......你可以通过在方法名称的开头添加一个下划线来设置访问权限:
class ProductsController extends AppController {
// a browser can "access" this method
function iHaveAView(){
}
// this method is used only by controllers
function _cantTouchMe(){
}
祝你好运
已编辑:(最后找到了关于此的文档)
您还可以在CakePHP中更改控制器方法的可见性 使用下划线为控制器方法名称添加前缀。如果是控制器 方法一直以下划线为前缀,方法不会 可从网上直接访问,但可供内部使用。
答案 1 :(得分:1)
我认为这很简单,不要将该功能作为控制器的动作。创建一个组件并在需要时使用它。
这会使您的功能对公众无法使用,但可在您的应用中使用。
您怎么看?