Php 控制器mvc中的handleswitch语句

Php 控制器mvc中的handleswitch语句,php,model-view-controller,design-patterns,switch-statement,Php,Model View Controller,Design Patterns,Switch Statement,我的控制器类中有很多开关盒。如何减少开关盒或更好地处理控制器中的开关盒。 我必须使用开关箱来处理按钮和链接。 我可以使用工厂模式吗? 请参阅我的代码结构: class manageController { private $controller; private $action; public function __construct($controller,$action) { $this->controller=$controller; $this->actio

我的控制器类中有很多开关盒。如何减少开关盒或更好地处理控制器中的开关盒。 我必须使用开关箱来处理按钮和链接。 我可以使用工厂模式吗? 请参阅我的代码结构:

class manageController
{
private $controller;
private $action;

public function __construct($controller,$action)
{
    $this->controller=$controller;
    $this->action=$action;
}
public function dispatch()
{  ...  }
private function indexAction()//for index.php
{  ...  }
private function managecontentAction()//for managecontent.php
{
    ...
           if(isset($_POST['delete_page'])){
             ...        
    }elseif(isset($_POST['save_page'])){
    ...
    }elseif(isset($_POST['reset_subject_menu'])){
    ...
    }elseif(isset($_POST['remove_subject_menu'])){  
    ...
    }elseif(isset($_POST['insert_subject_menu'])){
    ...
    }elseif(isset($_POST['update_subject_menu'])){
    ...
    }elseif(isset($_GET['subject_menu_id'])){
    ... 
    }elseif(isset($_GET['action']) && $_GET['action']=='add-subject-menu'){
            ...     
    }elseif(isset($_GET['action']) && $_GET['action']=='add-page-menu'){
    ... 
    }
    ...
    $this->render();
}
 }

 ?>
我在处理我的
url
时遇到了一些问题。例如,当我输入
http://localhost/manage/managecontent
它加载良好,但当我输入
http://localhost/manage/managecontent/
html加载,但
css
文件和图像不加载
请参见
引导中的“我的代码结构”:

<?php
if(!defined('ROOT_PATH')){
define('ROOT_PATH','../');
}

require_once ROOT_PATH.'function/my_autoloader.php';

use application\controllers as controllers;

$uri=strtolower($_SERVER['REQUEST_URI']);
$actionName='';
$uriData=array();
$uriData=preg_split('/[\/\\\]/',$uri );

$actionName = (!empty($uriData[3])) ? preg_split('/[?].*/', $uriData[3] ): '' ;
$actionName =$actionName[0];

if(empty($controllerName))
die('ERROR your request page doesn\'t exist!');
else {
if(empty($actionName))
    $actionName='index';
}
switch ($controllerName) {
case 'manage':
    $controller = new Controllers\manageController($controllerName,$actionName);
    break;
default:
    die('ERROR WE DON\'T HAVE THIS ACTION!');
    exit;
    break;
 }
 // function dispatch send url to controller layer
 $controller->dispatch();
?>

在我看来,你似乎做错了。所有这些切换案例操作都应该是另一个控制器中的操作。我没有看到任何
切换
案例您是否使用CSS和图像的相对路径?我应该说您是wright
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ public/index.php [NC,L]