ACCESS手写一个友好的简要MVC框架myPHP

myPHP框架

      采用的是MVC
思想,应用纯面向对象及项目纯粹入口,实现之一个自定义的框架。(自己感兴趣之操练)

如出一辙、项目纯粹入口

输入文件

myphp\index.php前台

     
一个网站有着的求都呼吁一个文件(入口文件)index.php\admin.php。入口非常简单,用于定义一个造访的权能,引入初始化文件。

初始化文件

      字符集

      路径

      配置文件

      自动加载

      系统错误display_errors=’on’      error_reporting =E_ALL

     
主要用以落实字符集的安、路径常量的布、配置文件、系统错误等,分析URL中之模块或行为,之后自动分发模块和表现(本质就是是实例化对象,并调用对象的计)。Application

 

控制器C

     
主要根据用户的求完成业务逻辑处理。调用模型(M),接收数据,并调用视图类来处理数据,回显数据让用户。

模型M

     
一个模型对应数据表,模型在代码中体现是一个看似。类中之道就是是根据用户之政工要实现之对数据表的操作SQL语句(用户之呼吁最终以模型中之反映是同一长达SQL)。

      SQL语句的尽由DB类(本框架中采取的凡自曾打包的PDO类)来推行。

视图V

      主要用以落实将数据显示在HTML页面中。

团结绘画的图:

ACCESS 1

MVC的优势:各司其职,互不干扰,有利于开发被的分工;

                 有利于代码的选定;

                 市场达成主流的框架基本还满足MVC的盘算。

次、搭建框架myPHP

      在一个网站中见面为此成千上万文本,合理之做法,是采用目录
分门别类的进展存放。

1、目录结构:

对此一个网站有前台部分和后台部分,有个别栽实现方案:

      1、双主机(两单域名),前台和后台各对应一个域名。安全

      2、前后大共同用一个主机。方便(首先方案)

 

X:\因你自己多的环境的门道\myphp                     网站根本目录

X:\依据你协调多的条件之途径\myphp\Admin       网站后台主目录

 这里所开创的文件夹:

ACCESS 2

 

2、创建主机

以httpd-vhosts.conf配置文件配置

 ACCESS 3

3、入口文件

在/myphp/下创建index.php文件

ACCESS 4

ACCESS 5

 

说明:

     
在输入文件定义ACCESS常量,在今后的享有的PHP文件被判断是常量,如果产生,则表示合法访问,如果无,则象征非法访问

     
由于引入的Application.class.php文件中应用命名空间,所以于访问Application类时需要利用非限定访问。Core\Application::run();

拓展:

      另一样种实现种纯粹入口的方案是使Apache的rewrite机制。

4、初始化文件

a、在core目录创建Application.class.php文件

 ACCESS 6

先进行测试是否好看;注意:在下面我弗见面截图及class名那里,所有的法门还是当相近内之。

b、在Application类中创造setChar方法来形成字符集的安装

 ACCESS 7

当描写副一个私房的静态方法后待在作单纯说的公有静态方法访问使其收效:注意:在脚我不见面重复多截图其他办法的单一说,都在即时间。

ACCESS 8

c、设置系统错误处理方式

 ACCESS 9

相似在举行开发之时光,为防范用户观看错误信息,而产出的不和谐界面,故一般性会在php.ini的布置文件display_errors=off;关闭

d、定义目录常量

     
由于php文件中会频繁的引入文件,被引入的公文存放于目录内,为了统一管理,方便维护,将引得的绝对路径,设置也目录常量

(echo,var_dump是进展有调式,查看你想使之音讯是否科学)

ACCESS 10

e、引入配置文件

      配置文件被之安排的音一般是网站受到或者会见转,但异常少又改的信息

创办布局文件myphp/config/config.php

 ACCESS 11

 

说明:

      php文件被的return是拿数据返回文件包含语句处(include、require)

 ACCESS 12

总结:

      全局变量          只当全局

      局部变量          只在概念之函数内

      类属性             可以过方法应用

      全局常量          可以跨类使用

      $_SESSION      可以过脚论用

     

f、自动加载

      __autoload();                     由PHP自动加载机制调用的

      spl_autoload_register();       
由PHP为我们提供的可以为机动加载机制中补充加多只类似于__autoload()的函数。

ACCESS 13

调剂要以单入口进行测试:

ACCESS 14

ACCESS 15

任何文件夹的机动加载:一般只是加载有类文件的公文夹

ACCESS 16

ACCESS 17

 注册指定函数作为活动加载函数:

ACCESS 18

说明

所有loadCore、loadController、loadModel等,都被autoLoad调用,

autoLoad又当run方法吃受调用

具的好像的实例化及类的方式的活动是当index.php中

5、分析URL

     
所有的请的本质者是一个URL,都呼吁提Application,如果想叫Application能够规范掌握用户的呼吁,要出于哪一个类公事的呐一个术处理,那么网站占所有的URL的安要起肯定的条条框框,类公事称也要是出得的平整:

l  URL的规则:

      http://localhost/index.php?module=类名&action=类中的方法名

l  类的命名规则:

      如果是控制器类:

            类名Controller       文件名:      类名Controller.class.php

      如果是范类:

            类名Model             文件名:      类名Model.class.php

 ACCESS 19

 

6、分发请求

(本质是动态实例化控制器,调用控制器的计)

 ACCESS 20

7、开起session

ACCESS 21

顾:所有的措施还要于单纯说访问

ACCESS 22

总结:

l  所有的php文件之运转都在index.php文件中。

l  application只处理控制器(controller)文件

l  controller控制器文件处理model模型文件


application之所以能用因用户之请求,准确的调用类中之道,完全靠让我们定义之url的条条框框及类似的命名规则。

应用命名空间:

      命名空间的命名的平整,是以文件所在的目录名吧命名空间名。

      如果涉及到空中,那么势必要是考虑到类名前会有空间名。

8、效果亮

当访问网址的时光会开展默认的路由转发:

ACCESS 23

ACCESS 24

 

 进行其它控制器的不二法门访问,通过url

ACCESS 25

ACCESS 26

补偿:pathinfo模式可以通过$_SERVER[‘PATH_INFO’];

ACCESS 27

ACCESS 28

粗粗就是是这样,其它一些相当随后自己生空重添,我还有好多亟待学习的。

座右铭:人生就是是绵绵地当读书,再学。

 

相关文章