php_mvc实现步骤六

shop34-1-目录布局

存在项目的根目录 shop34

框架代码与应用程序代码划分

框架代码:

各个应用程序间可以通用的代码。

应用程序代码:

当前项目的业务逻辑实现的代码。

分别创建两个子目录存储,框架与应用程序代码:

示例:框架内的代码:

入口文件在站点根目录

平台platform的划分

功能的聚合!

称为:模块module,分组group

辨析

前台,后台。

美工,程序。

需要将实例代码,作为测试test平台进行处理的话,应该为test平台建立平台子目录

MVC的划分

功能由MVC三部分实现的,因此将某个平台下,分成:

当前平台下的 控制器,模型,视图 文件进行分别管理!

例如

整体目录布局

Shop34/

Index.php入口文件

Application/应用程序目录

Front/前台

Back/后台

Test/测试平台

Model/模型

View/视图

Controller/控制器

Framework/框架代码目录

MySQLDB.class.php数据库操作类DAO

Factory.class.php工厂类

Model.class.php基础模型

Controller.class.php基础控制器类

shop34-2-运转-平台分发

运行起来

配置一个可以访问到shop34虚拟主机:

Apache/conf/extra/httpd-vhost.conf

Apache restart

Hosts

修改需要载入的文件路径

如果相对路径,注意当前目录。

当前目录不是代码所在文件的目录代码不是在文件中运行,而是在内存中)。

当前位置由浏览器所请的脚本来确定(当前PHP处理脚本,第一个处理的文件位置,被视为当前工作目录)。

可见单入口程序,所有的相对地址,都是相对于入口文件地址而言的。

分发参数p,确定当前平台

URL

测试平台比赛列表功能:

Index.php?p=test&c=Match&a=list

前台用户注册

Index.php?p=front&c=User&a=register

生成正确的URL

入口文件index.php处理:

Tip

分发参数共3

P平台目录)

C控制器类)

A动作(方法)

shop34-3-自动加载实现

自动加载

总结

控制器(可增加)

模型可增加)

框架核心类确定的)

对于所有的类,分成两方面考虑:

:可以确定的类。(当自动加载方法确定,类文件已经确定了)

:可以被增加的类。当自动加载方法确定时,没有办法确定

已经确定的类,采用最简洁的方式进行加载。

对于需要增加的类,需要通过类名 规律,完成其位置的判断,进而完成自动加载。

规律是

XXXController结尾的,控制器类,在当前平台下controller目录将其载入

XXXModel结尾的,模型,当前平台下的model目录将其载入

编码实现:

入口中增加自动加载方法,并注册:

实现 userAutoload

核心类加载

增加类(控制器,模型):

测试

项目所有对类文件的加载都删掉!

shop34-4-路径常量

目录地址常量

项目中,使用目录常量的形式,管理项目中所需要的地址,通过拼凑,连接操作形成某个位置。

使用目录常量

作为项目的初始化阶段,开始初始化目录常量:

先确定根目录,再拼凑确定子目录

Index.php

Tip:函数 getCWD()可以用来获得当前工作目录。Current Working Directory

所有的涉及到文件地址的都有常量来完成:

posted @ 2018-11-02 09:43  收起你的小情绪  阅读(314)  评论(0编辑  收藏  举报