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
所有的涉及到文件地址的都有常量来完成:
php_mvc实现步骤六的更多相关文章
- 搭建vue开发环境的步骤,六步完成
搭建vue开发环境的步骤,其实也挺简单的,之前这环境的配置也困扰着我一:在搭建vue的开发环境之前,一定一定要先下载node.js,vue的运行是要依赖于node的npm的管理工具来实现,下载地址:h ...
- php_mvc实现步骤九(登录验证码,退出-登录标记)
shop34-17-登录验证码 验证码的分析 登录:防止暴力破解 论坛:防止灌水水 展示类:被抓取. 需要技术: 图片处理技术. 会话session技术. PHP图片处理技术 – GD 具体操作步骤 ...
- php_mvc实现步骤十
shop34-19-商品添加 功能:添加商品表单 Index.php?p=back&c=Goods&a=add Controller-Action: 新建商品控制器类 Applicat ...
- php_mvc实现步骤八
shop34-10-框架类 框架类(框架初始化类) 将原来入口文件中功能,放在该类中完成,入口文件变得简单,轻量! 将入口文件中的各个功能,由框架类的各个方法,完成: 为了简单化,使用纯静态的类.(看 ...
- php_mvc实现步骤七
shop34-5-登录表单 登录功能分析 功能:登录表单 C控制器-动作 back后台admin控制器loginAction动作完成该功能. Application/back/controller/A ...
- php_mvc实现步骤五
5.match_controller 控制器层典型实现 控制器类 依据功能的相关性,将一系列相关的功能,使用一个控制器类来处理,而该控制器的每个方法,就对因某个功能. 注意:控制器是按照功能划分的.( ...
- php_mvc实现步骤三,四
3.match_mvc MVC 以ecshop的前台为例: 功能一: 首页 购物车数据,商品分类数据,其他的首页需要的数据 功能二: 拍卖活动 购物车数据,商品分类数据,拍卖相关数据 功能三: 团购商 ...
- php_MVC实现步骤二
2.match_split 显示逻辑相分离 将功能强制分成两个部分,显示html文件,和逻辑PHP文件: 要求浏览器请求负责功能的PHP逻辑文件: 该PHP逻辑文件,对需要的显示内容进行载入. 逻辑P ...
- php_MVC实现步骤一
1.Match 基本实现 功能,比赛列表,球队信息 数据表初始化: 比赛列表: 球队一 比分 球队二 比赛时间 韩国 1:2 澳大利亚 15-01-31 17:00 从SQL思考,如何完成上面的查询: ...
随机推荐
- 使用go-mysql-server 开发自己的mysql server
go-mysql-server是一个golang 的mysql server 协议实现包,使用此工具我们可以用来做好多方便的东西 基于mysql 协议暴露自己的本地文件为sql 查询 基于mysql ...
- linux命令之------Find命令
Find命令 1)作用:用来在指定目录下查找文件. 2)案例:将当前目录及其子目录下所有延申档名是c的文件列出来. Find -name “*.txt” 其中:*表示通配任意个字符:?表示通配单个字符 ...
- mysql ,with rollup的用法
如下,可以看到使用后,也统计了null的个数. mysql> select * from table1; +----------+------------+-----+------------- ...
- Shiro安全框架-简介
1. 简介 Apache Shiro是Java的一个安全框架.功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案. 实际上,Shiro的主要功能 ...
- 解析.msh或.cas文件
代码如下:
- intellij ide调用一个对象所有的set方法
1.下载地址:https://github.com/yoke233/genSets/releases/download/1.1/genSets.jar 2.plugin 从本地磁盘安装找到jar,并重 ...
- ubuntu之路——day17.2 RGB图像的卷积、多个filter的输出、单个卷积层的标记方法
和单层图像的卷积类似,只需要对每一个filter构成的三层立方体上的每一个数字与原图像对应位置的数字相乘相加求和即可. 在这个时候可以分别设置filter的R.G.B三层,可以同时检测纵向或横向边缘, ...
- LOL佐伊官方手办
花199元在某宝上买的官方正版佐伊手办终于到了,话不多说直接上图! 虽然脸有点不切实际的大,但还是很可爱~
- Java-Maven(十二):idea多项目:common module进行compiler和install正常,运行domain-perf module提示:Could not resolve dependencies for project
前提: product项目下有三个module,分别是: driver module domain-perf module common module 问题: driver 和 domain-perf ...
- 第2课第7节_Java面向对象编程_内部类_P【学习笔记】
摘要:韦东山android视频学习笔记 1.什么是内部类:在类的内部定义一个类,内部类可以访问类的私有属性 class Outer{ ; class Inner{ public void print ...