五种常见的 PHP 设计模式
Submitted by gouki on 2009, January 4, 4:58 PM. PHP
设计模式只是为 Java™ 架构师准备的 —— 至少您可能一直这样认为。实际上,设计模式对于每个人都非常有用。如果这些工具不是 “架构太空人” 的专利,那么它们又是什么?为什么说它们在 PHP 应用程序中非常有用?本文解释了这些问题。
设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗称 “四人帮”)。所介绍的设计模式背后的核心概念非常简单。经过多年的软件开发实践,Gamma 等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板。使用这些模板或者说设计模式 意味着可以更快地设计更好的建筑物。同样的概念也适用于软件。
设计模式不仅代表着更快开发健壮软件的有用方法,而且还提供了以友好的术语封装大型理念的方法。例如,您可以说您正在编写一个提供松散耦合的消息传递系统,也可以说你正在编写名称为观察者 的模式。
用较小的示例展示模式的价值是非常困难的。这往往有些大材小用的意味,因为模式实际上是在大型代码库中发挥作用的。本文不展示大型应用程序,所以您 需要思索的是在您自己的大型应用程序中应用示例原理的方法 —— 而不是本文演示的代码本身。这不是说您不应该在小应用程序中使用模式。很多良好的应用程序都以小应用程序为起点,逐渐发展到大型应用程序,所以没有理由不 以此类扎实的编码实践为基础。
既然您已经了解了设计模式以及它们的有用之处,现在我们来看看 PHP V5 的五种常用模式。
出于版权问题,我不能继续往下贴。不过原文也很方便的可以被访问到。
原文:http://www.ibm.com/developerworks/opensource/library/os-php-designptrns/index.html
原文译文:http://www.ibm.com/developerworks/cn/opensource/os-php-designptrns/index.html
本站采用
创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"
易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.
附件: php_imagick_st-q8.rar (1.25 M, 下载次数:3898)
Tags: php, ibm, developer, works
« 上一篇 | 下一篇 »
只显示10条记录相关文章
快速生成目录树 (浏览:
52298, 评论:
7)
8年了。。。我的能力还停留在写留言本的技术能力上。。。。 (浏览:
48912, 评论:
0)
PHP的XSS攻击过滤函数 (浏览:
47777, 评论:
3)
PHP常见错误(二) (浏览:
47345, 评论:
1)
PHP中Eval的作用 (浏览:
46399, 评论:
4)
PHP sendmail (浏览:
42468, 评论:
7)
Imagick DLL (浏览:
42017, 评论:
0)
TP单字母函数整理 (浏览:
37531, 评论:
1)
何为RBAC (浏览:
34881, 评论:
5)
利用array_diff函数更新tag (浏览:
34417, 评论:
1)
6条记录访客评论
感谢楼主。 这个可以用 其他网上说的装magickwand 那个不能用。 不知道怎么用。
Post by jackie on 2011, April 12, 9:07 AM
#1
楼主啊,我哭啊,我痛哭涕零,我太感谢您啦,我用官方的,始终说“Class 'Imagick' not found “
而且官方的版本还是支持php5.2.0的,
但是楼主啊,您的貌似php5.2.1的,我用的php版本是5.2.12,为啥也能兼容呢
总之,再次感谢,不知道您老人家还会将他升级吗?
Post by 格子 on 2010, February 14, 9:08 PM
#2
如果没有cavans。。。那背景肯定是黑色的。
好久没有用过了。
Post by gouki on 2009, December 4, 5:12 PM
#3
为啥子是黑色背景呢
Post by crane on 2009, December 4, 1:47 PM
#4
你的代码能够正常运行?我是提示有方法不存在。。
最近在赶项目,没空定下心来测试。
Post by gouki on 2009, September 12, 10:20 PM
#5
<?
$image = new Imagick('1.png');
$image->borderImage(new ImagickPixel( "white" ) ,1,1);
$image->paintfloodfillimage ( 'none', 20 , NULL ,0,0); //transparent
$draw = new ImagickDraw();
$draw->setFillOpacity(0.0);
$draw->setFillAlpha(0.0);
$draw->setFillColor('transparent');
//$draw->color(0,0,imagick::PAINT_FLOODFILL);
$image->drawImage( $draw );
$image->shaveImage(1,1);
header( "Content-Type: image/{$image->getImageFormat()}" );
echo $image->getImageBlob();
# //$image->writeImage('o.png');
$image->clear();
$image->destroy();
?>
bug么? 背景色出来怎么是黑色的?代码有问题?还是 dll 有问题??
Post by phper on 2009, September 11, 8:35 PM
#6
发表评论