阿里云服务器下快速安装部署 LAMP 环境 —— 基于 CentOS 6.3

阿里云论坛上的资源很丰富,查了下安装LAMP环境,很多基础性的东西已经内置了,比如防火墙的配置和端口的开启,统统不需要再做操作,所以安装下来也很简单: 1、MySQL的安装 MySQL安装涉及到的软件包: mysql: MySQL客户端以及基础库文件。 mysql-libs: MySQL客户端所必需的库文件。 mysql-server: MySQL服务器端以及相关文件。 安装命令: yu…

Ubuntu 下快速部署安装 Apache + PHP + MySQL + phpMyAdmin 笔记

安装 Apache sudo apt-get install apache2 为了确定安装是否成功,我们来测试一下。打开浏览器,输入以下网址: http://localhost/ 如果成功,你会看到以下内容 “It works!” , 祝贺你,第一步,你算是跨出去了。 安装 PHP5 在终端输入以下命令: sudo apt-get install php5 lib…

Ubuntu 12.04 LTS 中将 PHP 从 5.3 升级到 5.5 笔记

在 Ubuntu 12.04 LTS 中,使用 sudo apt-get install php5-fpm 安装的 PHP 版本是 5.3,如果想要使用 Laravel 或 Yii2 框架,要求 PHP 版本至少是 5.5+,所以要对 PHP 版本进行升级。 升级步骤 初始化操作: sudo apt-get update sudo apt-get install python-softw…

Laravel 中管道设计模式的使用 —— 中间件实现原理探究

所谓管道(Pipeline)设计模式就是将会数据传递到一个任务序列中,管道扮演者流水线的角色,数据在这里被处理然后传递到下一个步骤。 使用管道使用很多好处的,尤其是在单个任务中编写复杂处理代码时管道为我们提供了极大的便利,而且可以在管道中轻松添加、移除或者替换阶段任务。 Laravel 在框架中的很多地方用到了 Pipeline 设计模式,这意味着所有我们需要实现管道设计模式的地方已然是…

PHP 设计模式系列 —— 资源库模式(Repository)

1、模式定义 Repository 是一个独立的层,介于领域层与数据映射层(数据访问层)之间。它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问。Repository 是仓库管理员,领域层需要什么东西只需告诉仓库管理员,由仓库管理员把东西拿给它,并不需要知道东西实际放在哪。 Repository 模式是架构模式,在设计架构时,才有参考价值。应…

PHP 设计模式系列 —— 委托模式( Delegation)

1、模式定义 委托是对一个类的功能进行扩展和复用的方法。它的做法是:写一个附加的类提供附加的功能,并使用原来的类的实例提供原有的功能。 假设我们有一个 TeamLead 类,将其既定任务委托给一个关联辅助对象 JuniorDeveloper 来完成:本来 TeamLead 处理 writeCode 方法,Usage 调用 TeamLead 的该方法,但现在 TeamLead 将 writ…

PHP 设计模式系列 —— 访问者模式(Visitor)

1、模式定义 我们去银行柜台办业务,一般情况下会开几个个人业务柜台的,你去其中任何一个柜台办理都是可以的。我们的访问者模式可以很好付诸在这个场景中:对于银行柜台来说,他们是不用变化的,就是说今天和明天提供个人业务的柜台是不需要有变化的。而我们作为访问者,今天来银行可能是取消费流水,明天来银行可能是去办理手机银行业务,这些是我们访问者的操作,一直是在变化的。 访问者模式就是表示一个作用于某…

PHP 设计模式系列 —— 模板方法模式(Template Method)

1、模式定义 模板方法模式又叫模板模式,该模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 模板方法模式将主要的方法定义为 final,防止子类修改算法骨架,将子类必须实现的方法定义为 abstract。而普通的方法(无 final 或 abstract 修饰)则称之为钩子(hook)。 2、UML类图…

PHP 设计模式系列 —— 策略模式( Strategy)

1、模式定义 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if……