随笔分类 - MVC框架
php
摘要:我们在检验用户名是否合法的sql语句是这样的 select * from my_user where user='$id' and pwd=$pwd; 如果我们输入的是‘or 1 #,此时的sql语句变成了 select * from my_user where user='' or 1 # and
阅读全文
摘要:我们在login页面中已经添加了对用户名和密码的检验是否合法,但是如果在页面中输入index.php?p=back&c=Index&a=index,那么就不会通过login界面,直接进入到后台首页 怎么解决呢? 引入平台控制器类,PlateFormController.class.php,why?为
阅读全文
摘要:在项目实施时,用户只能访问根目录下 index.php 入口文件 或者一些公共的文件,那app 程序代码目录 或者Framework 框架核心 是不允许访问的,那怎么解决? 使用.htaccess来控制哪些文件夹可以访问,哪些不可以被访问 比如 : 我们正常访问 localhost 回车后,就会进入
阅读全文
摘要:在项目中,尤其是MVC的项目中,前段后后端的代码是分开的, 后端控制前段的代码只需要incdude 引入就可以, 那么前段的代码 里面包含<?php?>,需要怎么分离呢? 原理: 前段的人员都喜欢< p > < a > 这样的代码,那我们能不能使用{ }来替换呢? 这样做php 也解析不了{ }中的
阅读全文
摘要:基本需求 引入PDO之后,用户可以自己选择到底是使用MYSQL还是PDO扩展,只需要在配置文件中进行配置就行了 而不需要修改项目中的其他的任何代码,实现无缝切换 基本策略 封装MysqlDB类和PDODB类,让二者都实现(implements) 相同的接口 接口中定义一些方法,MyPDO和MySql
阅读全文
摘要:引入配置文件,先我们MyPDO类中 有数据库的连接信息,还有在框架类中的一些平台参数等 配置文件创建并分组 <?php //配置文件 return array( /** * 配置文件分组 */ 'db' =>array( // 数据库信息组 'host' =>'localhost', 'port'=
阅读全文
摘要:1、引入MyPDO 操作数据的的类 2、引入MybanModel mybank模型类,主要对表的数据操作 3、引入MybankController mybank控制器类,主要对表的调用和对html的调用控制 4、引入Factory类,用户在Controller类中,对Model类创建单例,要不每次都
阅读全文
摘要:分析下目前的入口文件,index.php的特点; 1.实现的功能比较多,代码也比较多 2.不符合面向对象编程风格(还是面向对象) 解决方法: 将原来的入口文件的功能,放到一个专门的类中来完成,而入口文件的各个功能,由该类的各个 方法来实现,这个类一般也叫做框架初始化类,也叫框架类 第一步:在Fram
阅读全文
摘要:概念,确保每个文件夹,目录(路径正确),如app文件夹改了applaction 或者frame改成framework,那么index.php入口文件就会出错 基本目录 getcwd()函数,获取当前工作的路径,我们是index.php来调用的,那就是针对于index.php 或获取路径,而__DIR
阅读全文
摘要:思考: 有哪些类文件需要加载? 回答: 一共有三种: 1.核心框架类(已经确定好了); 2.控制器类(可以增加)‘ 3.模型类(可以增加) 对于所有的类,可以分成两个方面来考虑 1.对于已经确定好了的类,最好采用最简洁的方式进行直接加载 2.对于不确定的可以增加类,需要通过类名的规律,完成其位置的判
阅读全文
摘要:基本概念: platform 平台,在view/html中 填写参数p 用来确定当前的平台,比如 index.html?p=test&c=Mybank&a=show test平台下的Mybank控制器类中的show动作 index.html?p=home&c=Myuser&a=delete home
阅读全文
摘要:application 存放应用程序代码目录 home 放置前台的代码 Model 模型 View 视图 Controller 控制器 back 放置后台的代码 Model 模型 View 视图 Controller 控制器 Test 测试项目文件 Model 模型 Mybank.class.php
阅读全文
摘要:基本概念: 通model基础类一样,所有控制类的父类,提供公共代码。 <?php class Controller { public function __construct(){ $this->initHeader(); } protected function initHeader(){ hea
阅读全文
摘要:思考: 是否需要为每一个功能都增加一个入口文件(前端控制器)? 回答: 不需要,但是,我们要想办法让一个前段控制器来执行一个控制器内的不同动作 这个时候,需要使用动作分发参数a 基本概念 在请求前端控制器index.php的时候,向其传递参数啊,表示当前所需要执行的动作的名字! 比如: index.
阅读全文
摘要:思考:目前我们的一个控制器就对应着网站的一个功能(Mybank 显示),但是,一个网站有很多的功能,难道我们要为每一个功能都单独的创建一个控制器文件吗? 回答:不需要 但是,此时 我们需要引入控制器类 控制器类 概念 我们将一些列相关或相似的功能,使用一个控制器来处理!而该控制器内的每一个方法就对应
阅读全文
摘要:如果在一个功能中(控制器),需要使用某个表的多次操作,应该使用该表的一个模型就可以完成全部的任务! 思考:如何保证模型类的单例呢? 典型的,可以通过一个单例的工厂来实现!( 为什么不用三私一公呢?因为基本上所有的模型类都需要单例模式,把所有的模型类都修改为三私一公比较麻烦 而且通过单例工厂来实现更加
阅读全文
摘要:代码展示 数据库操作类 <?php class MyPDO { private static $instance; //保存对象 private $host; //主机地址 private $dbname; //数据库名字 private $port; //端口 private $user; //用
阅读全文
摘要:所谓的模型类,就是把MVC中的数据处理单元的功能封装到一个类中, 由于数据处理单元都是和数据库进行交互,而数据表又是数据库的基本单元,所以典型的我们 一般将一张数据表的所有操作,封装到一个典型的类当中,也就是说,一张数据表对就对应着php 项目中的一个模型类。(如果我数据库中有10张表,那我就需要创
阅读全文
摘要:php编程的几种模式 混编模式:php和html混合在一起 逻辑和显示模式:php和html代码分开,先写逻辑php部分,引入html文件 MVC:就是把逻辑部分 分离成controlor (控制器)和model(模型) 、显示(view); M:Model,模型,项目中的数据处理单元,专门负责和数
阅读全文