🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### MVC * controller 代表控制器(代码逻辑控制) * model 代表模型 (用于数据库处理) * view 代理视图 (网页代码展示) > 在每一个模块中,都要包含这三个目录及执行文件。 ### 默认模块 http://localhost/index.php/home/index/index * home 默认模块 * index 控制器名 * index 方法名 > 通地MVC模式,三个重要的参数对应了程序各目录及文件。所有业务逻辑模块或项目执行文件都在 /App/ 目录中。 **例如:** * home 对应 /App/home 目录也称之为模块,也就是项目所需的入口目录 * 第一个 index 对应 /App/home/controller/index_controller.php 控制器 * 第二个 index 对应 /App/home/controller/index_controller.php 控制器中的index_function() 方法。 ### 增加模块 > 根据不同项目的要求,可能需要多个或N个模块。比如 home是首页 admin是管理后台,那么需要我们手动增加模块。 1. admin 模块名称及目录 2. login 控制器名 3. index 方法名 > 新模块的访问地址 http://localhost/index.php/admin/login/index * 请在/App/目录中增加 /admin/目录 * 在 /admin/ 目录中增加三个MVC基础目录(必须)controller、model、view > 根据url业务的需要,配置执行文件如下: > controller 目录内 创建控制器文件 login_controller.php 并写入初始代码: ``` namespace App\admin\controller; use PHPt\lib\html; class login_controller { public $viewpath; public $geturlstr; public $config; public $model; public $function; public function __construct($viewpath, $geturlstr, $config, $model, $function, $controller) { $this -> viewpath = $viewpath; $this -> geturlstr = $geturlstr; $this -> config = $config; $this -> model = $model; $this -> functions = $function; $this -> controller = $controller; } public function index_function() { //配置文件(必须) $config = $this -> config; //URL传入参数 array(必须) $geturlstr = $this -> geturlstr; //加载数据库操作(必须) $model = "\\App\\".$geturlstr[0]."\\model\\".$this -> controller."_model"; $data = new $model; /* 方法一的业务逻辑,可根据URL在本类中添加更多方法 */ //演示调用数据库数据 $demo = $data -> sql(); /* 业务逻辑结束 */ //加载视图层 require_once(html::I($this -> viewpath)); } } ``` > model 目录内 创建 model模型文件 login_model.php 并写入初始代码: ``` namespace App\admin\model; use PHPt\lib\database; class login_model { public function __construct() { } public function sql() { $db = database::sql(); //数据库开启设置为 true 不然报错 //$web = $db -> select("OP_Website","ourphp_web","where id = 1"); //return $web[0]; } } ``` > view 目录内 创建视图(即浏览器展示页面)文件 login.php ``` 写上你的HTML代码即可。 ``` * 如果不想加载view视图,可在控制器中把 require_once(html::I($this -> viewpath)); 注释掉或删除。 ### 代码编写及命名规范 > controller 控制器及model 模型文件命名必须按url中的参数来命名,不可以随意命名。 > controller 控制器及model 模型文件内的类及方法必须按照URL参数命名。 **例如:** * controller login_controller.php 类名必须是 login_controller(login=url第二个参数) * 方法必须是 index_function(index=url第三个参数)