大话PHP设计模式笔记

针对PHP的设计模式进行总结记录。

顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻烦了。

 笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2

 

一、关于命名空间
命名空间
1.命名空间介绍
2.命名空间使用

实例:
test1.php文件代码:


1

2

3

4

5

6

7


<?php

namespace Test1;

function test(){

echo __FILE__;

}

?>

  

test2.php文件代码:


1

2

3

4

5

6


<?php

namespace Test2;

function test(){

echo __FILE__;

}

?>

test.php文件代码:


1

2

3

4

5

6

7

8

9


<?php

// 如果没有 namespace命名空间 就会出现冲突

require ‘test1.php‘;

require ‘test2.php‘;

// 这样输出

Test1\test();

Test2\test();

?>

  

二、类的自动载入
test.php文件代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27


<?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.几种数据结构介绍:

实例:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36


<?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();

实例:
前页:


1

2

3

4

5

6

7

8

9

10


<?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代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17


<?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

我是一名热爱旅游,读书,学习的文艺程序员。 不甘于平庸,不甘于舒适,愿不断挑战经历不同的美好。 如果您和我有共同的爱好,本人热爱交友,可以联系我。 QQ:330168885

分类: PHP开发

标签: PHP设计模式PHP设计

好文要顶 关注我 收藏该文  

琉忆光年
关注 - 0
粉丝 - 6

+加关注

0

0

?上一篇:PHP的加密方法汇总
?下一篇:关于git和SVN的介绍和区别

时间: 2024-08-26 01:52:07

大话PHP设计模式笔记的相关文章

设计模式----看大话设计模式笔记(二)

9.原型模式(Prototype): 用原型实例指定创建对象的种类,并通过拷贝这些原型创建行的对象. UML图: 原型模式其实就是从一个对象创建另一个可定制的对象,并且不需要知道任何创建的细节. .NET 中实现ICloneable接口即可. 一般在初始化信息不发生变化的情况下,克隆是最好的办法,隐藏了对象创建的细节,又提高了性能. MemberwiseClone()方法,如果字段是值类型,对该字段进行逐位复制:如果是引用类型,复制引用但是不复制引用的对象,因此原始对象及产生的副本引用同一对象.

php设计模式笔记:单例模式

意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现: Singleton定义了一个instance操作,允许外部访问它的唯一实例,instance是一个类方法,负责创建它的唯一实例. singleton适用场景: 1.当类只能有一个实例而且外部可以从一个公共的访问点访问它.2.当这个唯一实例应该是通过子类化可扩展的.并且用户应该无需更改代码就能使用一个扩展的实例时. Singl

Asp.net设计模式笔记之一:理解设计模式

GOF设计模式著作中的23种设计模式可以分成三组:创建型(Creational),结构型(Structural),行为型(Behavioral).下面来做详细的剖析. 创建型 创建型模式处理对象构造和引用.他们将对象实例的实例化责任从客户代码中抽象出来,从而让代码保持松散耦合,将创建复杂对象的责任放在一个地方,这遵循了单一责任原则和分离关注点原则. 下面是“创建型”分组中的模式: 1.Abstract Factory(抽象工厂)模式:提供一个接口来创建一组相关的对象. 2.Factory Met

(CZ深入浅出Java基础)设计模式笔记

一.面向对象思想设计原则 1.单一职责原则 其实就是开发人员经常说的"高内聚,低耦合",也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 2.开闭原则 核心思想是:一个对象对扩展开放,对修改关闭.其实开闭原则的意思就是:对类的改动是通过增加代码进行的,而不是修改现有代码.也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直运行下去,如何能够做到这一点呢?这就需要借助于抽象和

[设计模式] .NET设计模式笔记 - 了解设计模式

今天在TerryLee的cnblog(http://terrylee.cnblogs.com)里看到了与设计模式相关的整套文章,初学设计模式看完每篇文章后做些笔记和摘抄. ●什么是设计模式,什么是架构? 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的

[设计模式] .NET设计模式笔记 - 有多少种设计模式

.NET下的23中设计模式. ※创建型模式篇 ●单件模式(Single Pattern) ●抽象工厂模式(Abstract Factory) ●建造者模式(Builder Pattern) ●工厂方法(Factory Method) ●原型模式(Protype Pattern) ※结构型模式篇 ●适配器模式(Adapter Pattern) ●桥接模式(Bridge Pattern) ●装饰模式(Decorator Pattern) ●组合模式(Composite Pattern) ●外观模式(

大话数据结构读书笔记

大话数据结构读书笔记 编程基础: 数据结构 算法 1 线性表 //顺序储存结构的结构代码: #define MAXSIZE 20//储存空间的起始分配量 typedef int ElemType;//ElemType类型根据实际类型而定,这里假设是int typedef struct{ ElemType data[MAXSIZE];//数组储存元素,最大值为MAXSIZE int length;/线性表当前长度: }SqList; //顺序存储结构需要三个属性: //1存储空间的起始位置:数组d

学习小笔记---大话PHP设计模式

PHPStorm IDE 开发字体选用:Source Code Pro , Courier New , Concolas php命名空间 :可以解决 不同类中 相同名字方法的冲突 namespace test1: function test(){ } 自动载入  : function  __autoload($class){ require  __DIR__.'/'$class.'.php'; } spl_autoload_register(); 这个函数,可以允许多个 autoload 必须现

大话设计模式笔记 原型模式

原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节. 基本类型与引用类型的区别于关系在efficient java. http://www.cnblogs.com/linkarl/p/4785329.html 浅复制:对象的引用仍然指向原来的对象 深复制:把引用对象的变量指向复制过的新对象 我认为一般深复制比较常用. package prototype; public