我正在 MVC 文件结构中创建一个购物车,并且我有一个购物车控制器,它具有一组用于前端和后端的功能。
Class ShoppingCartController{
//frontend function
public function viewCart(){
//do something
require 'view/viewCart.php';
}
//backend function
public function viewOrders(){
//do something
require 'view/viewOrders.php';
}
}
$controll = new ShoppingCartController();
if(isset($_GET['action']) && in_array($_GET['action'], get_class_methods($controll))){
call_user_func(array($controll, $_GET['action']));
}
我想要做的是防止来自前端的任何人能够调用后端函数。所以我想我应该将函数设置为受保护并编写两个扩展类来规范权限。像这样
Class ShoppingCartController{
//frontend function
protected function viewCart(){
//do something
require 'view/viewCart.php';
}
//backend function
protected function viewOrders(){
//do something
require 'view/viewOrders.php';
}
}
Class ShoppingCartFrontendController Extends ShoppingCartController{
//frontend function
public function viewCartExtended(){
//do something
$this->viewCart();
}
}
Class ShoppingCartBackendController Extends ShoppingCartController{
//backend function
public function viewOrdersExtended(){
//do something
$this->viewOrders();
}
}
其他人都会这样做还是有更好的方法?