摘要: 单例模式:简单的说,一个对象只负责一个特定的任务。单例类: 1.构造函数需要标记为private,单例类不能再其他类中实例化,只能被其自身实例化 2.拥有一个保存类的实例静态成员变量 3.拥有一个访问这个实例的公共的静态方法。[常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到此类是否已经被实例化] 注:需要创建__clone()方法防治对象被复制作用: 1.php的应用主要用于数据库,所以一个应用中会存在大量的数据库操作,使用单例模式,则可以避免大量new操作消耗的资源 2.如果系统中需要一个类来全局控制某些配置信息,那么使用单例模式可以很... 阅读全文
posted @ 2013-05-15 11:02 jaky666 阅读(307) 评论(1) 推荐(0) 编辑
摘要: 以前对面向对象仅限于死记硬背型,工作这么久了,回过头来看又是一翻体悟,供大家看看。1.finalfinal:php5新增一个final关键字。如果父类中的方法被声明为final,则子类无法覆盖该方法;如果一个类被声明final,则不能被继承。class BaseClass{ public function test(){ ehco "test";} final public function moreTest(){ echo "moretest";}}class ChildClass extends BaseClass{ public functionm 阅读全文
posted @ 2013-04-17 15:11 jaky666 阅读(461) 评论(0) 推荐(0) 编辑
摘要: apc定义:apc是一个开放自由的php opcode缓存。它的目标是提供一个自由、开放和健全的框架,用于缓存和优化php中间代码。apc常用函数:1.apc_clear_cache() 清楚apc缓存内容2.apc_define_constants(string key,array constants,[,bool case_sensitive]) 将数组constants以常量加入缓存3.apc_load_constants(string key) 取出常量缓存4.apc_store(string key,mixed var [, int ttl]) 在缓存中保存数据5.apc_fet.. 阅读全文
posted @ 2013-04-08 20:48 jaky666 阅读(428) 评论(0) 推荐(0) 编辑
摘要: SetFilter("cat_id",array(2));//仅在id为1、3、7的子论坛中搜索$cl->SetFilter("forum_id",array(1,3,7));//范围筛选//筛选发布时间为今天,参数为int时间戳$cl->SetFilterRange("starttime",123,124);//筛选价格$cl->SetFilterRange("price",10.0,99.9);// 分组//按照item_id分组,并且按照orderdesc排序$cl->SetGroup 阅读全文
posted @ 2013-04-08 20:21 jaky666 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 在之前工作的时候都未注重自己的命名规范,现在根据驼峰命名严格要求自己:相关的定义如下基本概念骆 驼式命名法(又称驼峰命名法),正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。程序员们为了自己的代码能 更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读,而利用驼峰命名 法来表示,可以增加程序可读性。例如,下面是分别用骆驼式命名法和下划线法命 阅读全文
posted @ 2013-03-01 12:03 jaky666 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 说说mysql_connect和mysql_pconnect的区别,这俩函数用法上差不多,网上有说应该用pconnect的,pconnect是个 好东西;也有视pconnect如洪水猛兽的,坚决不让用pconnect的,也有态度暧昧不清的。那这个东西到底如何呢? 永久链接并不是说,服务器打开了一个连接,然后所有的人都共享这个链接。永久连接一样是每个客户端来就打开一个连接,有200人访问就有200个连接。其 实mysql_pconnect()本身并没有做太多的处理, 它唯一做的只是在php运行结束后不主动close掉mysql的连接. 在php经cgi方式运行时pconnect和connec.. 阅读全文
posted @ 2013-03-01 11:48 jaky666 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 简介背景:1.数据量大,内容审核现有搜索简历索引慢;人员流动,现有搜索难于维护2.前端调用复杂;使用全表扫描,搜索速度慢;对结果的没有排序;难于最快找到最精确的数据建议优化:1.高速的索引建立2.避免对数据库做like操作,减少压力3.对搜索的结果进行权重排序4.前端开发方便调用5.最好门槛低,易于掌握且后期维护安装1.安装lamp环境如果你已经安装好就跳过此步。2.下载所需文件注意:如果你使用Ubuntu 10.10(sphinxsearch),你可以使用apt-get install直接安装,可以跳过此步(不过不支持中文分词)Coreseek Fulltext Server(源代码) : 阅读全文
posted @ 2013-02-05 17:26 jaky666 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 1、如果同时从同一个客户端插入很多行,使用含多个 VALUE的INSERT语句同时插入几行。这比使用单行INSERT语句快(在某些情况下快几倍)。如果你正向一个非空表添加数据,可以调节 bulk_insert_buffer_size变量,使数据插入更快。参见5.3.3 节,“服务器系统变量”。2、如果你从不同的客户端插入很多行,能通过INSERT DELAYED语句加快速度。参见13.2.4 节,“INSERT语法”。3、用MyISAM,如果在表中没有删除的行,能在SELECT语句正在运行的同时插入行。4、当从一个文本文件装载一个表时,使用LOAD DATA INFILE。这通常比使用很多IN 阅读全文
posted @ 2013-02-05 17:22 jaky666 阅读(857) 评论(0) 推荐(2) 编辑
摘要: nginx缓存nginx有两种缓存机制:fastcgi_cache和proxy_cache下面我们来说说这两种缓存机制的区别吧proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽fastcgi_cache缓存减少了nginx与php的通信次数,更减轻了php和数据库的压力。proxy_cache缓存设置#注:proxy_temp_path和proxy_cache_path指定的路径必须在同 阅读全文
posted @ 2012-11-08 16:45 jaky666 阅读(1587) 评论(0) 推荐(0) 编辑
摘要: mysql的存储引擎myisam和innodb以及memorymemory会在下一章中介绍到innodb支持事物,外键以及行锁,mysql不支持innodb不支持fulltext索引的类型innodb不保存具体行数innodb的auto_increment不支持联合索引innodb删除表的时候是一行行删除大型网站对于数据库的操作优化1.读写分离,采用主/辅的方式,来分散数据的压力,提高查询速度2.按照业务特点横向或者纵向分割数据库。简单的来向就是大库变小库,大表变小表,来提高数据库的访问效率。一般来讲,一个数据库具有很多表或一张表有N多的记录,都会明显降低数据库的服务能力,比如mysql数据表 阅读全文
posted @ 2012-11-08 16:44 jaky666 阅读(392) 评论(0) 推荐(0) 编辑