sanMvc框架详解:环境准备、安装配置、路由模型控制器视图及文件管理完整指南

准备环境

  • PHP 5.3 或更高
  • Apache 2.4 或更高

安装

  • 克隆项目到本地

配置

  • Apache服务器请打开rewrite模块
  • 数据库配置和上传路径于根目录的config.php中修改

路由

  • 在index.php中配置和添加路由,形如:
$route->addRoute("/","IndexController","index");

三个参数分别是url、控制器名、调用方法名
url中纯数字只能出目前最后一级作为参数,出目前中间无法解析
控制器如果在次级目录,应该加上次级目录名,如”admin/IndexController”

模型

  • 默认用户模型文件存放于models目录下,使用模型需要用户创建一个模型文件,形如:
    //Articles.php
class Articles extends module{
      function __construct()
    {
        parent::__construct("articles");
    }
}

只需要一个参数--数据表名

  • 模型中包含了数据操作常用方法,可以在实例话模型对象的任何地方使用,一般在控制器中,形如:
    //IndexController.php
class IndexController extends controller{
      public function index(){
            $Articles = new Articles();
            $articles = $Articles->All();
      }
}

控制器

  • 控制器有两种响应模式,路由是其中一种,还有一种是表单响应模式,通过表单中的”__method”参数指示控制器调用相对应的方法,例如:
function formMethods($_method, $id){
        switch ($_method) {
            case  UPDATE :
                $this->update($id);
                break;
            case  DELETE :
                $this->delete($id);
                break;
            case  ADD :
                $this->create();
                break;
            case  SEARCH :
                $this->search();
        }
}
  • 控制器中可以对数据进行读取和处理,完成后交由视图模块进行展示

视图

  • 调用页面文件,也就是展示页面效果,例如:
    //IndexController.php
class IndexController extends controller{
      public function index(){
            $Articles = new Articles();
            $articles = $Articles->All();
            $view = new view();
            $view->show("welcome.php",[ articles  => $articles]);
      }
}
  • 递增页面分页显示,只显示当前页面需要的部分数据,例如:
    //IndexController.php
class IndexController extends controller{
      public function index(){
            $page=$_GET[ page ]?$_GET[ page ]:1;
            $Articles = new Articles();
            $articles = $Articles->All();
            $view = new view();
            $articles = $view->pageData($articles,$page,10);
            $view->show("welcome.php",[ articles  => $articles]);
      }
}

以上例子中pageData方法需要的三个参数分别为:要分页显示的数据、当前的页码、每页显示的数据条数

  • 在页面文件中可以插入一组分页按钮,形如:
view::paginate($totalPage);

image
需要知道总页数,可以在控制器中进行计算,也可以通过其他你知道的方式得到

文件系统

  • 文件管理的方法在fileManager.php中,包括上传、下载、删除单个文件、创建、删除文件夹,遍历目录和文件,查询文件基本信息(文件名,格式,上传时间,文件路径),例如:
$allFiles=fileManager.getFiles("/");

这将可以得到上传目录下的所有文件的基本信息数据,以数组格式进行存储

  • 需要注意的是,getFiles不能查询到文件夹,反之getDirs也不能查询到文件,所以若需要同时查询,可以两者配合递归使用。
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容