大话PHP设计模式笔记
针对PHP的设计模式进行总结记录。
顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻烦了。
笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2
一、关于命名空间
命名空间
1.命名空间介绍
2.命名空间使用
实例:
test1.php文件代码:
<?php
namespace Test1;
function test(){
echo __FILE__;
} ?>
test2.php文件代码:
<?php
namespace Test2;
function test(){
echo __FILE__;
}
?>
test.php文件代码:
<?php
// 如果没有 namespace命名空间 就会出现冲突
require 'test1.php';
require 'test2.php'; // 这样输出
Test1\test();
Test2\test();
?>
二、类的自动载入
test.php文件代码:
<?php
// 这样输出
Test1::test();
Test2::test(); //下面这个函数允许有多个文件加载 ②新方法 这种比第一种先进
spl_autoload_register('autoload1');
spl_autoload_register('autoload2');
spl_autoload_register('autoload3'); function autoload1($class){
require __DIR__.'/'.$class.'php';
}
function autoload2($class){
require __DIR__.'/'.$class.'php';
}
function autoload3($class){
require __DIR__.'/'.$class.'php';
}
…………
/*
//①原来的旧方法 下面这个函数后面被抛弃了,因为多次引入相同文件会冲突
function __autoload($class){
require __DIR__.'/'.$class.'php';
}
*/
?>
三、开发一个PSR-0的基础框架
PSR-0规范
1.命名空间必须与绝对路径一致
2.类名首字母必须大写
3.除入口文件外,其他".php"必须只有一个类
开发符合PSR-0规范的基础框架
1.全部使用命名空间
2.所有PHP文件必须自动载入,不能有include/require
3.单一入口
四、SPL标准库简介
1.几种数据结构介绍:
实例:
<?php /* 栈结构 后进先出
$stack = new SplStack();
$stack->push("data1<br>");
$stack->push("data2<br>"); echo $stack->pop();
echo $stack->pop();
*/
/*
队列 先进先出
$queue = new SplQueue();
$queue->enqueue("data1<br>");
$queue->enqueue("data2<br>");
echo $queue->dequeue();
echo $queue->dequeue();
*/ /* 堆
$heap = new SplMinHeap();
$heap->insert("data1<br>");
$heap->insert("data2<br>"); echo $heap->extract();
echo $heap->extract();
*/ // 打印固定尺寸数组
$array = new SplFixedArray(10);
$array[0] = 123;
$array[9] = 1234; var_dump($array); ?>
2.PHP链式操作的实现
$db->where()->limit()->order();
实例:
前页:
<?php
$db = new IMooc\Database();
$db->where("id=1");
$db->where("name=2");
$db->order("id desc");
$db->limit(10); echo $db->where("id=1")->order("id desc")->limit(10); ?>
Database代码:
<?php
namespace IMooc; class Database{
function where($where){
return $this;
}
function order($order){
return $this;
}
function limit($limit){
return $this;
} } ?>
笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2
大话PHP设计模式笔记的更多相关文章
- php设计模式笔记:单例模式
php设计模式笔记:单例模式 意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现 ...
- <大话设计模式>笔记
读完了<大话设计模式>这本书,收获很多,对程序设计有了很多新的理解.将每章模式的大概要点做了些笔记以备查阅,一些设计模式书读完也对其了解得不是很透彻,需要以后在实践中来不断地加深理解吧.读 ...
- 韩天峰《大话PHP设计模式》听课笔记
课程主要内容 1.PHP面向对象的高级特性 2.11种设计模式 3.PSR-0,Composer,Phar等最流行的技术 目标 掌握PHP各类设计模式,并具备设计纯面向对象框架和系统的能力 二.编 ...
- Asp.net设计模式笔记之二:应用程序分离与关注点分离
本次笔记主要涉及的内容如下: 1.将智能UI(SmartUI)反模式重构成分层方式的示例代码 2.分层设计与传统的Asp.net WebForm模型(代码后植)相比具有的优势 3.逻辑分层概念以及分离 ...
- [设计模式] .NET设计模式笔记 - 了解设计模式
今天在TerryLee的cnblog(http://terrylee.cnblogs.com)里看到了与设计模式相关的整套文章,初学设计模式看完每篇文章后做些笔记和摘抄. ●什么是设计模式,什么是架构 ...
- php设计模式笔记--总结篇
一.引入 设计模式的一般定义不再说,只大概说一下我理解的设计模式,我理解的设计模式的主要目的是利用面向对象(类.接口等)特点,让代码更加易于扩展,易于重用,易于维护.这三个特点也就要求我们不要将太多 ...
- grasp设计模式笔记回顾
根据讲师所讲做了一下笔记以便自己能方便学习: ------------------------------------------grasp设计模式: grasp(general responsibi ...
- Javascript设计模式笔记
Javascript是越来越厉害了,一统前后端开发.于是最近把设计模式又看了一遍,顺便做了个笔记,以方便自己和他人共同学习. 笔记连载详见:http://www.meteorcn.net/wordpr ...
- 设计模式笔记(一):Singleton 设计模式
今天开始学习设计模式,借此机会学习并整理学习笔记. 设计模式是一门不区分语言的课程,什么样的编程语言都可以用到设计模式.如果说java语法规则比作武功招式的话,那么设计模式就是心法. 设计模式共有23 ...
随机推荐
- python 面向对象:封装---对象的属性可以是另一个类创建的对象
# 对象封装:对象的属性可以是另一个类创建的对象 # 案例需求: # 1.士兵许三多有一把AK47 # 2.士兵用枪射击标靶 # 3.枪能装填和发射子弹 class Gun: # 分析: # 枪的属性 ...
- mysql5.7初始化密码报错 ERROR 1820 (HY000): You must reset your password using ALTER USER statement
mysql初始化密码常见报错问题 1,mysql5.6是密码为空直接进入数据库的,但是mysql5.7就需要初始密码 cat /var/log/mysqld.log | grep password 2 ...
- JSP页面实际上就是Servlet
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6513069824690618883/ 前面一直提到了Servlet的内容,也是我们平时理解的后台,这次说一下前台的 ...
- xray 与 awvs 爬虫联动
awvs 的爬虫很好用,支持表单分析和单页应用的爬取,xray 的扫描能力比较强,速度也更快.awvs 和 xray 搭配使用则是如虎添翼.这里演示的是扫描 awvs 的在线靶站 http://tes ...
- 【Java】抽象类与抽象方法
文章目录 抽象类与抽象方法 abstract关键字的使用 abstract修饰类:抽象类 abstract修饰方法:抽象方法 abstract使用上的注意点: 抽象类的匿名子类 模板方法设计模式 抽象 ...
- Idea操作Maven详细使用:
Idea操作Maven详细使用: Maven简介 什么是 Maven Maven 的正确发音是[ˈmevən] "卖v",而不是"马瘟"以及其他什么瘟. Mav ...
- 《剑指offer》面试题16. 数值的整数次方
问题描述 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 示例 1: 输入: 2.0 ...
- ProE许可、PTC许可、Creo许可、许可分析、分析许可
Pro/Engineer操作软件(又简称ProE)是美国参数技术公司(PTC)旗下的CAD/CAM/CAE一体化的三维软件,Creo是美国PTC公司于2010年10月推出CAD设计软件包,creo是P ...
- 【记录一个问题】在goland中的_test.go文件中,点右键点run,无法执行测试用例
比较奇怪的是: 在命令行下,用 test -v alloc_test.go -test.run TestAlloc_utilJoinCPUAndGpu alloc.go 可以执行测试用例 比较奇怪的是 ...
- Asp-Net-Core学习笔记:身份认证入门
前言 过年前我又来更新了~ 我就说了最近不是在偷懒吧,其实这段时间还是有积累一些东西的,不过还没去整理-- 所以只能发以前没写完的一些笔记出来 就当做是温习一下啦 PS:之前说的红包封面我还没搞,得抓 ...