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']));
}
私がやりたいのは、フロントエンドの誰もがバックエンド関数を呼び出せないようにすることです。そこで、関数を保護するように設定し、アクセス許可を調整するために2つの拡張クラスを作成することを考えました。そのようです
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();
}
}
それは他のみんながやる方法ですか、それとももっと良い方法がありますか?