zoukankan      html  css  js  c++  java
  • 制作自己的MVC框架(三)——应用

    一、数据库操作

    目前封装了两种数据库,“MongoDB”和“MySQL”,用到了一次接口“IDatabase.php”。

    namespace librarydb;
    interface IDatabase {
        public function connect($database);
    }

    为了方便增删改查,给两种数据库封装了统一的方法,query、getCount、add、getRowById等。

    将demo用的数据库文件放在了“db”内。

    二、辅助函数、常量与字典

    1)辅助函数

    这个是参考了CI后加进来的,有时候老是初始化某个类再调用很不方便,直接是函数的话,引用就快捷。

    目前就三个,文件、正则和域名的操作,里面也没几个方法,可扩展。

    2)常量与字典

    常量的应用,例如订单的状态,可以用数字1,2或3等,而如果直接赋这种数字,不容易理解,并且万一修改了一个状态意义。

    那就有潜在危险了,可能赋值比较分散,不能完全修改过来。

    但如果作为一个变量预先设置好,即使改了也没关系,只是层引用关系。

    class ConstEnum {
        const Status_Normal = 1;
        const Status_Delete = 0;
        //字典
        public static $Enum_Select = [
            ['1'=>'正常'],
            ['0'=>'错误']
        ];
    }

    而字典的话,例如订单状态的下拉框,直接引用这个字典再输出,比每次都重新设置要快捷许多。

    三、工具类

    框架中会有许多工具类,例如分页、Session、过滤、Curl等。我这边就简单的封装了几个而已。

    其中“Weixin”开头的两个文件是专门用于微信开发的,曾经写过四篇文章,专门讲《微信开发》。

    四、控制器

    1)类库

    core/Controller.php”中做的是核心工作,渲染模版、返回JSON数据等。

    controller/Web.php”是某个业务中的通用控制器,继承自“Controller.php”中。

    2)项目

    app中可以包含多个项目,例如下面的“admin”和“weixin”,包含多个项目可以复用“library”中的代码。

    在“weixin”文件夹中包含了四个文件夹。

    1. “conf”是配置文件,前面说过的,三种环境有三种配置。

    2. “controllers”中是控制器,命名我做了规定,一定要“Controller”结尾。

    3. “layouts”是通用模版,例如head、footer等部分,很多页面可以复用。

    4. “views”中就是视图了。

    除了这些,还有“third”第三方库的引入,“service”通用业务逻辑的封装。

    如果要封装自己的业务层,其实就是新加一个文件夹而已。

    以上这些也只是按照我的思路做的封装,都是对第一篇文章《粗暴的实现》的扩展。

    框架下载:

    https://github.com/pwstrick/PrimusPHP

  • 相关阅读:
    牛客练习赛51 D题
    Educational Codeforces Round 72 (Rated for Div. 2) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Educational Codeforces Round 72 (Rated for Div. 2) B题
    Educational Codeforces Round 72 (Rated for Div. 2) A题
    《DSP using MATLAB》Problem 7.2
    《DSP using MATLAB》Problem 7.1
    《DSP using MATLAB》Problem 6.24
  • 原文地址:https://www.cnblogs.com/strick/p/5770403.html
Copyright © 2011-2022 走看看