PHP中设计模式的学习笔记
PHP中设计模式的学习笔记
设计模式(Design Pattern)是面向对象设计中反复出现的问题的解决方案,设计模式是一种比一般类的设计更加抽象的一种思想,
它往往涉及到多个类的定义和使用。
在PHP的开发过程中,经常使用到得设计模式包括:简单工厂模式、单元素模式、观察者模式、命令模式、策略模式以及MVC模式等。
/**
* 简单工厂模式(Simple Factory Pattern),具体指创建一个类似于工厂的类,通过对类中成员方法的调用返回不同的对象
* 该模式的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建并返回哪个产品的实例化对象
*/
//定义抽象类Product
abstract class Product
{
abstract function getName();
}
//定义具体产品类A
class ProductA extends Product
{
public function getName()
{
echo "I am product A";
}
}
//定义具体产品类B
class ProductB extends Product
{
public function getName()
{
echo "I am product B";
}
}
//定义工厂类
class ProductFactory
{
static function create($name)
{
switch($name)
{
case "A":
return new ProductA();
case "B":
return new ProductB();
}
}
}
$product=ProductFactory::create("A");
$product->getName();
echo "<br/>";
$product=ProductFactory::create("B");
$product->getName();
/**
* 单元素模式(Singleton Pattern)是指对指定的类只能实例化一次。
* 该模式通常包含一个私有构造方法,用来确保无法通过创建对象或者克隆的方式对其进行实例化
* 该模式还包含有一个私有静态属性和公有静态方法。
* 公有静态方法负责对其本身进行实例化,而私有静态属性负责存储实例化的对象。
*/
class Singleton
{
private static $ins
相关文档:
搜集不全,链接没有全部测试,大部分可用
Easy Template System
http://ets.sourceforge.net/
http://ets.sourceforge.net/ets.pdf
http://prdownloads.sourceforge.net/ets/ets305b.zip?download
Smarty
http://smarty.php.net/
FastTemplate
http://www.thewebmasters.net/php/FastTemplate.phtml
http://www ......
PHP从PHP5开始,彻底重新编写的和新增了对XML的扩展,如 SAX 解析器、DOM、SimpleXML、XMLReader、XMLWriter 和 XSLT 处理程序。所有这些扩展都以 libxml2 为基础。
=============================
1、DOMDocument对象常用方法:
=============================
a)createElement(elementName)
该� ......
在PHP中使用头文件,会涉及两个函数:include()和require()。这两个函数差别很小,却很重要,所以我们要认真研究一下。
require()函数工作方式与XSSI相类似;不管在程序的哪个部分使用了这个函数,只有程序一开始运行,头文件的内容就被作为程序本身的一部分来处
理。因此,如果您在一个条件判定语句中使用了require()函� ......
PHP 序列化(serialize)格式详解
前言
概述
NULL 和标量类型的序列化
简单复合类型的序列化
嵌套复合类型的序列化
自定义对象序列化
Unicode 字符串的序列化
参考文献
1.前言
PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize、unserialize。不过在
PHP 手册中对这两个函数的 ......
40条优化php代码的小实例
1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;
2.echo的效率高于print,因为echo没有返回值,print返回一个整型;
3.在循环之前设置循环的最大次数,而非在在循环中;
4.销毁变量去释放内存,特别是大的数组;
5.避免使用像__get, __set, __autoload等魔术方法;
6.requiere_once( ......