我也正在研究Controller怎么实现好

解决方案 »

  1.   

    controller就是要设计的简明,结构清晰,使用简单有些controller是通过xml来设定的自己写mvc模式没什么必要吧,不见得比别人写的好http://www.phpmvc.net/
      

  2.   

    看过phpmvc,phrame,晕乎乎的
    注释文档都是英文的,看得累得很
      

  3.   

    phrame 就是用case做分支判断的,phpmvc好像是用xml吧
      

  4.   

    动态生成对象就省去了太多的CASE
    function __autoload($class)
    {
        require_once("model/" . $class . ".class.php");
        $_GLOBAL['obj'] = new $class();
    }这样不用SWITCH了我就是这样做的,下是是主调函数入口
    ----------------------------------------------------
    function run()
    {
    //取得请求的页面
    $request = $this->getRequest(); //调试信息
    if( IB_DEBUG == true )
    {
    echo "current request is <font color='red'>" . $request . "</font><br/>";
    } //是否为非法请求
    if( $this->isValidRequest( $request ) )
    {
    //包含请求页面
    $page = $request . IB_REQUEST_EXT;
    require_once( $page ); //初始化请求的类
    $module = new $request( $this );

    //执行请求
    $module->process();
    }
    else //非法请求
    {
    $this->halt( "invalid request" );
    }
      

  5.   

    严重推荐  ice_berg16(寻梦的稻草人)  的方式!~~~
    关于phpmvc已经有人把中文文档翻译出来了: http://blog.csdn.net/letsflytogether
      

  6.   

    使用case做分支有其一定的好处,他可以在分支里做一些特殊的操作。
    象你示例的情况,用case做分支就显得累赘了。当你的大多数方法入口并不特殊需求时,你可以通过事件指派来简化程序。
    于是
    //利用switch对用户提交的action进行相应响应(就是调用相应的model)
    switch ($action) {
    case "List" :
    $List = new List();
    break;
    case "show" :
    $show = new Show();
    break;
    }
    就变成了
    switch($action) {
      case ....一些需要特殊处理的分支
      default:
        $$action = new $action();
    }
      

  7.   

    推荐xuzuning(唠叨)的方法
    我就是这样的。
    这样很方便结合生成静态页的方法。
    如果不需要生成HTML就CASE掉