在PHP中共享MVC开发经验
首先,入口输入文件可以是单个文件或多个文件。我现在使用的基本上是多个文件,但是入口文件的内容基本相同,这是将来修改其他输入模式的基础。
复制代码代码如下所示:
< PHP
require'command /配置PHP的;
require'command /应用PHP的;
应用程序:运行(配置);
>
首先,您不必说您可以看到它,加载系统配置文件,然后通过引擎加载系统配置。
两。发动机
复制代码代码如下所示:
公共函数运行(配置){
标题(内容类型:文本/ HTML;字符集= UTF-8);
自我::$配置;加载系统配置
自:版权();
自::(系统); / /系统环境
自::(系统); / /设置系统参数
自::incinfo();
如果(!in_web){退出(Web网站被关闭和维护,请稍等!);}
定义('keheng_debug)或定义('keheng_debug',true); / /或调试模式
自::(SETPATH); / /设置系统路径
自::(getdatabase); / /测试数据库
自::(loadlib); / /加载库
自::(getrouteconfig); / /运行路由和负载控制器
}
在第一集的配置文件的引擎,那么参数测试系统、加载系统模块,在网站获取网站信息配置文件需要设置路径,数据库参数测试系统配置,加载库文件,最后加载路由请求。我不知道这样的方法是否正确。这只是我自己学习的一套基于我自己的学习,但是缺少缓存和如何设置特定的缓存。
这里的数据库测试是基于数据库的配置类型和重新封装文件,这种类型的数据库操作。
三。路由
下面是上面的最后一个函数,加载控制器文件,并根据配置文件获取请求表单。
复制代码代码如下所示:
公共功能getrouteconfig(){
route_type美元=自我::{ } { $配置路线url_type };
开关($ route_type){
案例1:
/ / echo $ _server { 'script_name}。;
query_string美元美元'query_string_server { } =;
/ / echo $ _server { 'request_uri}。;
urlstr美元美元'controller_get { } =;
打破;
案例4:
$ URL =端(爆炸($ _server {、php_self}));
urlstr美元= strtolower(substr($ URL,0,4));
打破;
}
如果(file_exists(contr_dir。'controller。php)){
需要contr_dir。'controller PHP的;
/ /回声urlstr美元;
美元:美元自:模板配置{ 'templates};
控制器::负载(urlstr美元,美元的模板);
其他{ }
退出('controller文件不存在);
}
}
四。控制器
控制器文件非常简单,只需根据路由分析的地址加载模型文件和查看文件。
复制代码代码如下所示:
类控制器{
公共$ obj;
公共功能负载(URL,$模板){
$ $模板;
如果(file_exists(model_dir。$ URL。模型。'/library/loader.php')){
视图=新视图;
/ /回声model_dir。$ URL。模型。php;
需要model_dir。$ URL。模型。php;
0;
如果(临时$ = NULL =!!isset($ TEMP)){
如果(file_exists(templ_dir。$ TEMP)){
/ /回声templ_dir美元的温度;
需要templ_dir美元的温度;
其他{ }
退出('文件不存在!;
}
其他{ }
退出(这页不设置显示模板!;
}
设置(视图);
其他{ }
退出(模型文件不存在:美元的URL。模型。'/library/loader.php');
}
}
}
但是有一个注意,需要在模型文件中输出的数据是通过视图类输出的,包视图文件中的所有系统参数。不知道,这个方法在原来的显示中是不必要的移动,封装了所有的输出数据。
其它的模板文件也被封装在类中,如何写一个专家现在应该知道,这只是我个人的意见,但缓存应该怎么写,它仍然是一个模糊的概念,没有时间阅读的方向,数据应该读缓存,然后决定是否有是一个高速缓存,以确定是否建立缓存具体的操作方法还不是很清楚,我希望有一个很高的建议。