01 2021 档案

摘要:setTemplate($path) 设置默认的模板目录。默认是在根目录,如果你的html文件放在别的目录下需要设置,不设置报错 //如我的html文件就放在了根目录下的cc文件夹; $smarty->setTemplateDir('cc/'); getTempalte() 获取模板的目录路径,返回 阅读全文
posted @ 2021-01-31 21:47 WhiteSpace 阅读(47) 评论(0) 推荐(0) 编辑
摘要:上图中,其中Smarty.class.php为主类文件 <?php //引入Smarty include './Smarty/Smarty.class.php'; //实例化 $s=new Smarty(); //给变量赋值或传值,那小伟传给name,相当于 $this->name='杜伟' $s- 阅读全文
posted @ 2021-01-30 19:36 WhiteSpace 阅读(94) 评论(0) 推荐(0) 编辑
摘要:在项目中,尤其是MVC的项目中,前段后后端的代码是分开的, 后端控制前段的代码只需要incdude 引入就可以, 那么前段的代码 里面包含<?php?>,需要怎么分离呢? 原理: 前段的人员都喜欢< p > < a > 这样的代码,那我们能不能使用{ }来替换呢? 这样做php 也解析不了{ }中的 阅读全文
posted @ 2021-01-30 15:11 WhiteSpace 阅读(145) 评论(0) 推荐(0) 编辑
摘要:基本需求 引入PDO之后,用户可以自己选择到底是使用MYSQL还是PDO扩展,只需要在配置文件中进行配置就行了 而不需要修改项目中的其他的任何代码,实现无缝切换 基本策略 封装MysqlDB类和PDODB类,让二者都实现(implements) 相同的接口 接口中定义一些方法,MyPDO和MySql 阅读全文
posted @ 2021-01-28 13:22 WhiteSpace 阅读(98) 评论(0) 推荐(0) 编辑
摘要:引入配置文件,先我们MyPDO类中 有数据库的连接信息,还有在框架类中的一些平台参数等 配置文件创建并分组 <?php //配置文件 return array( /** * 配置文件分组 */ 'db' =>array( // 数据库信息组 'host' =>'localhost', 'port'= 阅读全文
posted @ 2021-01-28 08:58 WhiteSpace 阅读(161) 评论(0) 推荐(0) 编辑
摘要:1、引入MyPDO 操作数据的的类 2、引入MybanModel mybank模型类,主要对表的数据操作 3、引入MybankController mybank控制器类,主要对表的调用和对html的调用控制 4、引入Factory类,用户在Controller类中,对Model类创建单例,要不每次都 阅读全文
posted @ 2021-01-27 15:50 WhiteSpace 阅读(188) 评论(0) 推荐(0) 编辑
摘要:分析下目前的入口文件,index.php的特点; 1.实现的功能比较多,代码也比较多 2.不符合面向对象编程风格(还是面向对象) 解决方法: 将原来的入口文件的功能,放到一个专门的类中来完成,而入口文件的各个功能,由该类的各个 方法来实现,这个类一般也叫做框架初始化类,也叫框架类 第一步:在Fram 阅读全文
posted @ 2021-01-27 15:18 WhiteSpace 阅读(104) 评论(0) 推荐(0) 编辑
摘要:概念,确保每个文件夹,目录(路径正确),如app文件夹改了applaction 或者frame改成framework,那么index.php入口文件就会出错 基本目录 getcwd()函数,获取当前工作的路径,我们是index.php来调用的,那就是针对于index.php 或获取路径,而__DIR 阅读全文
posted @ 2021-01-27 14:27 WhiteSpace 阅读(85) 评论(0) 推荐(0) 编辑
摘要:思考: 有哪些类文件需要加载? 回答: 一共有三种: 1.核心框架类(已经确定好了); 2.控制器类(可以增加)‘ 3.模型类(可以增加) 对于所有的类,可以分成两个方面来考虑 1.对于已经确定好了的类,最好采用最简洁的方式进行直接加载 2.对于不确定的可以增加类,需要通过类名的规律,完成其位置的判 阅读全文
posted @ 2021-01-26 13:26 WhiteSpace 阅读(105) 评论(0) 推荐(0) 编辑
摘要:基本概念: platform 平台,在view/html中 填写参数p 用来确定当前的平台,比如 index.html?p=test&c=Mybank&a=show test平台下的Mybank控制器类中的show动作 index.html?p=home&c=Myuser&a=delete home 阅读全文
posted @ 2021-01-26 11:18 WhiteSpace 阅读(138) 评论(0) 推荐(0) 编辑
摘要:application 存放应用程序代码目录 home 放置前台的代码 Model 模型 View 视图 Controller 控制器 back 放置后台的代码 Model 模型 View 视图 Controller 控制器 Test 测试项目文件 Model 模型 Mybank.class.php 阅读全文
posted @ 2021-01-25 15:46 WhiteSpace 阅读(64) 评论(0) 推荐(0) 编辑
摘要:基本概念: 通model基础类一样,所有控制类的父类,提供公共代码。 <?php class Controller { public function __construct(){ $this->initHeader(); } protected function initHeader(){ hea 阅读全文
posted @ 2021-01-25 13:53 WhiteSpace 阅读(61) 评论(0) 推荐(0) 编辑
摘要:思考: 是否需要为每一个功能都增加一个入口文件(前端控制器)? 回答: 不需要,但是,我们要想办法让一个前段控制器来执行一个控制器内的不同动作 这个时候,需要使用动作分发参数a 基本概念 在请求前端控制器index.php的时候,向其传递参数啊,表示当前所需要执行的动作的名字! 比如: index. 阅读全文
posted @ 2021-01-25 13:00 WhiteSpace 阅读(140) 评论(0) 推荐(0) 编辑
摘要:思考:目前我们的一个控制器就对应着网站的一个功能(Mybank 显示),但是,一个网站有很多的功能,难道我们要为每一个功能都单独的创建一个控制器文件吗? 回答:不需要 但是,此时 我们需要引入控制器类 控制器类 概念 我们将一些列相关或相似的功能,使用一个控制器来处理!而该控制器内的每一个方法就对应 阅读全文
posted @ 2021-01-25 11:21 WhiteSpace 阅读(101) 评论(0) 推荐(0) 编辑
摘要:如果在一个功能中(控制器),需要使用某个表的多次操作,应该使用该表的一个模型就可以完成全部的任务! 思考:如何保证模型类的单例呢? 典型的,可以通过一个单例的工厂来实现!( 为什么不用三私一公呢?因为基本上所有的模型类都需要单例模式,把所有的模型类都修改为三私一公比较麻烦 而且通过单例工厂来实现更加 阅读全文
posted @ 2021-01-24 12:50 WhiteSpace 阅读(131) 评论(0) 推荐(0) 编辑
摘要:代码展示 数据库操作类 <?php class MyPDO { private static $instance; //保存对象 private $host; //主机地址 private $dbname; //数据库名字 private $port; //端口 private $user; //用 阅读全文
posted @ 2021-01-23 17:20 WhiteSpace 阅读(73) 评论(0) 推荐(0) 编辑
摘要:所谓的模型类,就是把MVC中的数据处理单元的功能封装到一个类中, 由于数据处理单元都是和数据库进行交互,而数据表又是数据库的基本单元,所以典型的我们 一般将一张数据表的所有操作,封装到一个典型的类当中,也就是说,一张数据表对就对应着php 项目中的一个模型类。(如果我数据库中有10张表,那我就需要创 阅读全文
posted @ 2021-01-23 10:54 WhiteSpace 阅读(168) 评论(0) 推荐(0) 编辑
摘要:php编程的几种模式 混编模式:php和html混合在一起 逻辑和显示模式:php和html代码分开,先写逻辑php部分,引入html文件 MVC:就是把逻辑部分 分离成controlor (控制器)和model(模型) 、显示(view); M:Model,模型,项目中的数据处理单元,专门负责和数 阅读全文
posted @ 2021-01-22 12:03 WhiteSpace 阅读(460) 评论(0) 推荐(0) 编辑
摘要:<?php class MyPDO { private static $instance; //保存对象 private $host; //主机地址 private $dbname; //数据库名字 private $port; //端口 private $user; //用户名 private $ 阅读全文
posted @ 2021-01-22 11:48 WhiteSpace 阅读(74) 评论(0) 推荐(0) 编辑
摘要:<?php //dsn 数据资源名称,里面内容没有先后顺序,但是数据库类型必须是小写mysql:的 //如果是本地host 可以省略,端口也可以省略,数据库名字和字符集也可以省略 $dsn="mysql:host=localhost;dbname=my_db;port=3306;charset=ut 阅读全文
posted @ 2021-01-21 14:21 WhiteSpace 阅读(210) 评论(0) 推荐(0) 编辑
摘要:1.获取当前页码数据 页码 Sql语句 1 select * from my_user limit 0 ,10 2 select * from my_user limit 10 ,10 3 select * from my_user limit 20 ,10 结论: $pageNo:页码 $star 阅读全文
posted @ 2021-01-20 14:37 WhiteSpace 阅读(73) 评论(0) 推荐(0) 编辑
摘要:循环输出数组 <?php $arr=["小王","小杜","小高","小刘"]; //重置数组指针,并且指向数组中第一个元素 reset($arr); while(key($arr)!==null){ //验证键是否有效 echo key($arr)."-". current($arr)."<br> 阅读全文
posted @ 2021-01-19 14:59 WhiteSpace 阅读(42) 评论(0) 推荐(0) 编辑
摘要:<?php //数据库连接单例模式 /** * 以后开的时候 注意事项 * 尽量在一个函数中 实现一种功能 * 之后,可以在构造函数中去调用函数 */ class MySqlDB{ //创建私有属性 private static $instence; private $host; private $ 阅读全文
posted @ 2021-01-15 15:59 WhiteSpace 阅读(375) 评论(0) 推荐(0) 编辑
摘要:我们在前面学过魔术常量 比如 __LINE__ __FILE__ 魔术方法是自动调用的比如: 在给不可访问属性赋值时,__set() 会被调用。 读取不可访问属性的值时,__get() 会被调用。 当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用。 当对不可 阅读全文
posted @ 2021-01-15 15:25 WhiteSpace 阅读(75) 评论(0) 推荐(0) 编辑
摘要:当我们向把数组或者对象 写入文本中的时候,会保存吗?答案是不会的?那就需要用到 序列化 序列化:serialize() 反序列化:unserialize() 数组的存储 <?php $arr=["中国","美国","韩国","新加坡"]; $file="./1.txt"; file_put_cont 阅读全文
posted @ 2021-01-15 14:53 WhiteSpace 阅读(89) 评论(0) 推荐(0) 编辑
摘要:单例模式:一个类只能有一个对象 我们都知道 创建对象有两种方法, 第一种是new 实例化 第二种是clone 克隆 三私一公 私有的属性保存对象,私有构造函数 阻止实例化,私有克隆模式 阻止克隆对象,公有方法创建对象 <?php /** * * 作用:单例模式 一个类只能有一个对象 * 应用场景:多 阅读全文
posted @ 2021-01-15 10:51 WhiteSpace 阅读(68) 评论(0) 推荐(0) 编辑
摘要:__autoload() 大家发现没,方法前面凡是带有__的 都是自动调用的,比如 __construct __destory 等 <?php /** * 作用:自动加载类 * @param 类名字 */ function __autoload($class_name){ require "./$c 阅读全文
posted @ 2021-01-14 16:25 WhiteSpace 阅读(121) 评论(0) 推荐(0) 编辑
摘要:集中成功优酷在代码块中发生的异常 在代码块中发生了异常直接抛出,代码块中不处理异常,将异常集中起来一起处理 使用的关键字 try:检测代码块 catch:捕获异常 throw:抛出异常 finally:无论有无异常都会执行,可以省略 Exception:异常类 在文档中Exception 类中有属性 阅读全文
posted @ 2021-01-14 12:20 WhiteSpace 阅读(103) 评论(0) 推荐(0) 编辑
摘要:<?php $stu=new class(){ public $name='tom'; public function __construct(){ echo "我是匿名类"; } }; #1:如果类只被实例化一次就可以使用匿名类。 #2:好处,实例化完毕后就回收了类的空间 阅读全文
posted @ 2021-01-14 11:08 WhiteSpace 阅读(87) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示