跟随我在oracle学习php(55)

Posted rightgram

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟随我在oracle学习php(55)相关的知识,希望对你有一定的参考价值。

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

 

 

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

 

 

 

 

 

 

shop34-5-登录表单

登录功能分析

 

 

 

功能登录表单

C控制器-动作

back后台admin控制器loginAction动作完成该功能。

Application/back/controller/AdminController.class.php

 

增加动作:

完成动作:

 

M模型

不需要

V视图层-模板

增加登录表单模板,展示!

Application/back/view/login.html

 

按照ecshop的后台样式展示结构即可!

 

表单action地址:

 

必要的元素:

 

 

提交

 

 

测试请求该动作:

Index.php?p=back&c=Admin&a=login

 

 

 

 

处理页面的图片,CSSJS

项目中所用的CSSJS,图片需要在浏览器端请求到,在浏览器解释执行的。

项目中核心类,模型类,控制器类,模板文件不同,这些不能在浏览器端直接请求到。

 

应该css,图片统一管理在一个可以被访问到的地址!

新建一个子目录,专门用于存放哪些可以被浏览器直接请求的资源(JSCSSImage

 

依据平台进行管理:

 

 

模板中载入css或者图片的路径需要更改:

Login.html

 

 

 

 

Tip:防止浏览器直接请求到framework及其appliction

 

以上是关于跟随我在oracle学习php(55)的主要内容,如果未能解决你的问题,请参考以下文章

跟随我在oracle学习php(58)

跟随我在oracle学习php(31)

跟随我在oracle学习php(35)

跟随我在oracle学习php(33)

跟随我在oracle学习php(56)

跟随我在oracle学习php(37)