手写一个协调的简约MVC框架myPHP

一、项目纯粹入口

7、开起session

ACCESS 1

小心:所有的法子都要在单纯出口访问

ACCESS 2

总结:

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

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

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


application之所以可以将依据用户的央求,准确的调用类中的方法,完全依靠于大家定义的url的规则与类的命名规则。

使用命名空间:

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

      假使涉及到空中,那么自然要考虑到类名前会有空间名。

进口文件

myphp\index.php前台

     
一个网站有着的呼吁都呼吁一个文书(入口文件)index.php\admin.php。入口很粗略,用于定义一个走访的权力,引入初始化文件。

模型M

     
一个模子对应数据表,模型在代码中彰显是一个类。类中的方法就是按照用户的作业请求完结的对数据表的操作SQL语句(用户的哀告最终在模型中的突显是一条SQL)。

      SQL语句的推行由DB类(本框架中采纳的是自已打包的PDO类)来实施。

开头化文件

      字符集

      路径

      配置文件

      自动加载

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

     
首要用以得以完成字符集的设置、路径常量的配置、配置文件、系统错误等,分析URL中的模块或作为,之后自动分发模块与行为(本质就是实例化对象,并调用对象的措施)。Application

 

2、创设主机

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

 ACCESS 3

4、初阶化文件

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

 ACCESS 4

先举办测试是否足以访问;注意:在上面我不会截图到class名那里,所有的方式都是在类内的。

b、在Application类中开创setChar方法来成功字符集的装置

 ACCESS 5

在写入一个私有的静态方法后须求在作为单纯出口的公有静态方法访问使其收效:注意:在上边我不会再多截图其余方法的单纯出口,都在这些中。

ACCESS 6

c、设置系统错误处理格局

 ACCESS 7

诚如在做开发的时候,为避免用户看到错误音信,而产出的不友好界面,故一般性会在php.ini的布局文件display_errors=off;关闭

d、定义目录常量

     
由于php文件中会频仍的引入文件,被引入的文书存放在目录内,为了统一保管,方便维护,将引得的相对路径,设置为目录常量

(echo,var_dump是开展部分调式,查看你想要的音讯是否科学)

ACCESS 8

e、引入配置文件

      配置文件中的配置的音信一般是网站中或许会转移,但很少更改的新闻

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

 ACCESS 9

 

说明:

      php文件中的return是将数据重临文件包括语句处(include、require)

 ACCESS 10

总结:

      全局变量          只在大局

      局地变量          只在概念的函数内

      类属性             可以跨方法应用

      全局常量          可以跨类使用

      $_SESSION      可以跨脚本利用

     

f、自动加载

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

      spl_autoload_register();       
由PHP为大家提供的可以向机动加载机制中添加多个类似于__autoload()的函数。

ACCESS 11

调节要在单入口举行测试:

ACCESS 12

ACCESS 13

别的文件夹的电动加载:一般只加载有类文件的公文夹

ACCESS 14

ACCESS 15

 注册指定函数作为机关加载函数:

ACCESS 16

说明

所有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 17

 

3、入口文件

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

ACCESS 18

ACCESS 19

 

说明:

     
在入口文件定义ACCESS常量,在此后的拥有的PHP文件中判断此常量,若是有,则意味着合法访问,假诺没有,则意味不合法访问

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

拓展:

      另一种完结项目纯粹入口的方案是运用Apache的rewrite机制。

myPHP框架

1、目录结构:

对于一个网站有前台部分与后台部分,有二种达成方案:

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

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

 

X:\按照你协调搭的环境的门路\myphp                     网站根目录

X:\据悉你自己搭的条件的途径\myphp\ACCESS,Admin       网站后台主目录

 那里所创的公文夹:

ACCESS 20

 

6、分发请求

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

 ACCESS 21

视图V

      主要用来落实将数据彰显在HTML页面中。

温馨画的图:

ACCESS 22

MVC的优势:各司其职,互不苦恼,有利于开发中的分工;

                 有利于代码的录用;

                 市场上主流的框架基本都满意MVC的思想。

8、效果显示

当访问网址的时候会举行默许的路由转载:

ACCESS 23

ACCESS 24

 

 举办别的控制器的主意访问,通过url

ACCESS 25

ACCESS 26

填补:pathinfo方式可以透过$_SERVER[‘PATH_INFO’];

ACCESS 27

ACCESS 28

大致就是这么,其它一些等随后我有空再补充,我还有很多亟待学习的。

座右铭:人生就是不停地在学习,再上学。

 

控制器C

     
主要基于用户的请求完成工作逻辑处理。调用模型(M),接收数据,并调用视图类来处理多少,回显数据给用户。

二、搭建框架myPHP

      在一个网站中会用很多文书,合理的做法,是接纳目录
分门别类的拓展存放。

      接纳的是MVC
思想,应用纯面向对象及项目纯粹入口,落成的一个自定义的框架。(自己兴趣的演习)

相关文章