2012年11月19日

PHP中的工厂方法模式

摘要: 使用工厂来替换new操作•思路:动态的根据传递的数据,新建相应的类的对象。•<?phpclass Example{ // The parameterized factory method public static function factory($type) { if (include_once 'Drivers/' . $type . '.php') { $classname = 'Driver_' . $type; return new $classname; } else { ... 阅读全文

posted @ 2012-11-19 17:27 ellisonDon 阅读(256) 评论(0) 推荐(0) 编辑

php之工厂模式

摘要: 工厂类是指包含一个专门用来创建其他对象的方法的类,工厂类在多态性编程实践中是至关重要的,它允许动态的替换类,修改配置,通常会使应用程序更加灵活,熟练掌握工厂模式高级PHP开发人员是很重要的。 工厂模式通常用来返回符合类似接口的不同的类,工厂的一种常见用法就是创建多态的提供者,从而允许我们基于应用程序逻辑或者配置设置来决定应实例化哪一个类,例如,可以使用这样的提供者来扩展一个类,而不需要重构应用程序的其他部分,从而使用新的扩展后的名称。 通常,工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而这只是一种原则,工厂方法可以任意命名,这个静态还可以接受任意数据的参数,必... 阅读全文

posted @ 2012-11-19 17:09 ellisonDon 阅读(211) 评论(0) 推荐(0) 编辑

php-工厂模式

摘要: 针对自己的不足与加深php的认识,选择用php来研究各种设计模式。今天就看了设计模式的介绍,并学习了工厂模式,因为工厂模式比较简单,也比较常用。工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。下面是一个简单例子:<?phpabstract class Parents{ public function show(){}}class Sons extends Parents{ public function show() { echo 'i am son!'; }}class Girls extends Parents{ public function show() 阅读全文

posted @ 2012-11-19 16:56 ellisonDon 阅读(165) 评论(0) 推荐(0) 编辑

PHP函数spl_autoload_register()用法和__autoload()介绍

摘要: 详细出处参考:http://www.jb51.net/article/29624.htm又是框架冲突导致__autoload()失效,用spl_autoload_register()重构一下,问题解决__autoload()的用法就不再说了,以前已经在我的WEB开发笔记中说过。PHP __autoload函数(自动载入类文件)的使用方法, 原文地址:http://www.jb51.net/article/29625.htm 。 说一说,spl_autoload_register()的用法吧,很简单,可以这样理解,就是声明一个自定义__autoload(),你可以是A函数,也可以是B函数,想怎么 阅读全文

posted @ 2012-11-19 16:38 ellisonDon 阅读(1483) 评论(0) 推荐(0) 编辑

php-cli模式学习(PHP命令行模式)

摘要: 之前知道php—cli模式是一种类似shell命令式的执行php程序,不过一直以为这个是一种落后的方式,应该没有什么意义,因为从没有遇到过使用这个cli模式编程的。不过今天遇到了使用cli模式的应用。php_cli模式简介php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等) 也就是说,php不单可以写前台网页,它还可以用来写后台的程序。 PHP的CLI shell脚本适用于所有的PHP优势,使创建要么支持脚本或系统甚至与GUI应用程序的服务端!——注: 阅读全文

posted @ 2012-11-19 16:37 ellisonDon 阅读(24404) 评论(0) 推荐(0) 编辑

PHP CLI模式开发

摘要: PHP CLI模式开发不需要任何一种Web服务器(包括Apache或MS IIS等),这样,CLI可以运行在各种场合。 有两种方法可以运行PHP CLI脚本。第一种方法是使用php -f /path/to/yourfile.php。调用PHP CLI解释器,并给脚本传递参数。这种方法首先要设置php解释器的路径,Windows平台在运行CLI之前,需设置类似path c:\php的命令,也失去了CLI脚本第一行的意义,因此不建议使用该方法。第二种方法是首先运行chmod+x <要运行的脚本文件名>(UNIX/Linux环境),将该PHP文件置为可执行权限,然后在CLI脚本头部第一行 阅读全文

posted @ 2012-11-19 16:36 ellisonDon 阅读(35250) 评论(1) 推荐(2) 编辑

PHP __autoload函数(自动载入类文件)的使用方法

摘要: 详细出处参考:http://www.jb51.net/article/29625.htm在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子:class ClassA{ public function __construct(){ echo “ClassA load success!”; } } //定义一个类ClassA,文件名为ClassA.php clas 阅读全文

posted @ 2012-11-19 16:31 ellisonDon 阅读(452) 评论(0) 推荐(0) 编辑

joomla结构分析 - 动态加载文件(类)

摘要: 很多框架都有动态加载文件这个功能,这样就不用在开头处把框架中的文件一次全部 include 进来,可以按需加载。joomla中提供了这个功能的文件是libraries/loader.php文件中开头的这句spl_autoload_register(array('JLoader', 'load'));spl_autoload_register 是php5.1.2版本以上才提供的功能,类似 __autoload() 函数,但[/size]__autoload()只能提供一个参数,spl_autoload_register 的参数可以是多个(数组),上面那句的意思就是 阅读全文

posted @ 2012-11-19 16:27 ellisonDon 阅读(620) 评论(0) 推荐(0) 编辑

PHP unset销毁变量并释放内存

摘要: PHP的unset()函数用来清除、销毁变量,不用的变量,我们可以用unset()将它销毁。但是某些时候,用unset()却无法达到销毁变量占用的内存!我们先看一个例子:<?php$s=str_repeat('1',255); //产生由255个1组成的字符串 $m=memory_get_usage(); //获取当前占用内存 unset($s);$mm=memory_get_usage(); //unset()后再查看当前占用内存 echo $m-$mm;?>最后输出unset()之前占用内存减去unset()之后占用内存,如果是正数,那么说明unset($s)已 阅读全文

posted @ 2012-11-19 16:12 ellisonDon 阅读(17957) 评论(0) 推荐(1) 编辑

PHP中基本符号及使用方法

摘要: 用这么久了,竟然PHP的基本符号都没有认全,看到@号还查了半天才知道什么意思.把基本符号列表帖一下吧,需要的朋友可以参考~注解符号: // 单行注解 /* */ 多行注解引号的使用 ’ ’ 单引号,没有任何意义,不经任何处理直接拿过来; " "双引号,php动态处理然后输出,一般用于变量.变量形态: 一种是True 即 真的; 另一种是False 即假的常见变量形态: string 字串(数字\汉字\等... 阅读全文

posted @ 2012-11-19 15:58 ellisonDon 阅读(271) 评论(0) 推荐(0) 编辑

PHP函数set_magic_quotes_runtime()的作用

摘要: 新手经常遇到的问题是特殊字符提交的时候提示数据库错误,今天给大家介绍一个set_magic_quotes_runtime函数,来帮助我们过滤里面的内容php函数 set_magic_quotes_runtime(0); 可以修改php.ini中 magic_quotes_runtime boolean的设置当你的数据中有一些\"'这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前加上\中国\地大物博"哈哈"中国\\地大物博\"哈哈\"set_magic_quotes_runtime是用来设置PHP 环境配置的 阅读全文

posted @ 2012-11-19 15:57 ellisonDon 阅读(173) 评论(0) 推荐(0) 编辑

php dirname(__FILE__)

摘要: __FILE__的路径是当前代码所在文件dirname(dirname(__FILE__));得到的是文件上一层目录名dirname(__FILE__);得到的是文件所在层目录名 阅读全文

posted @ 2012-11-19 15:55 ellisonDon 阅读(130) 评论(0) 推荐(0) 编辑

DIRECTORY_SEPARATOR的作用

摘要: DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用。在windows下路径分隔符是(当然/在部分系统上也是可以正常运行的),在linux上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,调试机器上指定的上传文件保存目录是:define(ROOT, dirname(__FILE__)."/upload");在本地调试都很正常,但是上传到linux服务器的时候会发现会出错。于是php引入了DIRECTORY_SEPARATOR变量,可以将上面的写法改写为:define(RO 阅读全文

posted @ 2012-11-19 15:17 ellisonDon 阅读(608) 评论(0) 推荐(0) 编辑

Joomla1.5 笔记【转】

摘要: MVC结构index.php?option=组件名&view=视图名&controller=控制器名&layout=视图分页名index.php?option=com_test模板和组件com_test的展示index2.php?option=com_test仅组件com_test的展示组件开发需要在数据库添加记录,并以com_开头,组件分前台与后台,后台组件放在administrator/components下,前台组件放在components下。Task是Controller下的分支,没有Task时用默认处理。建立了View可以用 index.php?option= 阅读全文

posted @ 2012-11-19 11:52 ellisonDon 阅读(349) 评论(0) 推荐(0) 编辑

PHP中的stdClass 【转】

摘要: 如果所有的Class都应该存在于一个默认的层级中的话,那么最顶层应该是最为一般的Class,也就是说极为抽象的,每一个下层的Class均比其上层的Class(即父类)更加专门化。基于该思想,在PHP中,这个顶层的Class被命名为“stdClass”,且作为一个“Standard Class”,你可以把它看成是一个不含任何属性和方法的类。使用stdClass的目的: 在运行时添加属性到基对象(Base Object)问题你想创建一个对象,并在其中添加一些属性,但是你却不想把它作为一个明确的类正式地定义它。这一点在一些情况下是相当有用的,例如当你需要定义一个方法来返回带有某些属性(不确定的)的. 阅读全文

posted @ 2012-11-19 11:47 ellisonDon 阅读(10981) 评论(0) 推荐(1) 编辑

体验Joomla2.5,从joomla1.5说起【转】

摘要: 搞了joomla1.5二次开发一年多,已经算是对joomla非常了解了,joomla1.5总体来说还是不错的,不过系统自身还是有不少的缺点,我一一列举一下:1. 文章组件层次当你建一篇文章,要么不属于任何分类,要么需要选一个分类,而且这个分类必需要属于一个单元,也就是文章的层次性是:单元/分类,也就是二级分类。不过很多时候,只有两个级别是不够的,更复杂的内容需要三级或以上层次。Joomla的确有很多插件,但没有一个可以直接扩展文章组件的功能,因为这是系统限制,文章组件没有对向提供很多接口。所以这个问题只有用第三方CCK(内容管理工具)组件来取代默认的文章组件。但这就让系统变得很奇怪,文章组件是 阅读全文

posted @ 2012-11-19 11:45 ellisonDon 阅读(431) 评论(0) 推荐(0) 编辑

Joomla! 1.5框架结构简述 [转]

摘要: 一个软件的框架结构是为软件系统的可重用性而设计的。这是对于某一特定类型软件中抽象类及其实例间合作集的一种表述。软件框架可以是一个面向对象的设计,虽然设计不一定必须是面向对象而实现的,但通常是面向对象的。一个软件框架可能以包含支持程序、代码库、脚本语言以及一些其他的软件的方式来帮助开发,或者将不同的软件项目组件融合在一起。各式各样的框架结构都可能通过API的方式被导出,以供使用。(From Wikipedia)Joomla! 1.5 是一个三层系统:顶层 - 为扩展层,包含对Joomla Framework和应用程序的扩展Modules (模块),是对页面展示的一种轻量而灵活的扩展。有时候它.. 阅读全文

posted @ 2012-11-19 11:44 ellisonDon 阅读(532) 评论(0) 推荐(0) 编辑

导航