使用 Laravel 快速构建网站系列 —— 开源音乐流媒体应用:Koel

1、简介 当你的电脑硬盘空间不够存放音乐怎么办?Phan An 也遇到这个问题,于是他决定创建一个名为 Koel 的应用来解决这个问题。 Koel 是一个基于 Web 的个人音乐流媒体应用,基于 Laravel 5.1 和 Vue.js 开发。 2、GitHub https://github.com/phanan/koel 3、网站 http://koel.phana...

在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解

1、简介 Simple Qrcode 是 Bacon/BaconQrCode 针对 Laravel 框架的封装版本,用于在 Laravel 中为生成二维码提供接口。 2、安装&配置 在项目根目录下使用如下命令安装依赖包: composer require simplesoftwareio/simple-qrcode 1.3.* 在 config/app.php 注册服务...

PHP 设计模式系列 —— 单例模式(Singleton)

1、模式定义 简单说来,单例模式的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个,同时这个类还必须提供一个访问该类的全局访问点。 常见使用实例:数据库连接器;日志记录器(如果有多种用途使用多例模式);锁定文件。 2、UML类图 3、示例代码 Singleton.php <?php namespace DesignPatter...

使用 Laravel 快速构建网站系列 —— RSS 聚合器 & 阅读器:RSS Monster(基于Lumen)

1、简介 RSS Monster 是一个基于Web的、操作简单的、兼容 Fever API 的 RSS 聚合器和阅读器,可用于替代Google Reader。采用轻量级、小巧的响应式设计,基于 Javascript 和 PHP 编写 —— 后端使用 Laravel 的轻量级框架 Lumen,前端使用 twitter 的 Bootstrap 框架。该应用支持很多特性,比如标记为已读、...

PHP 设计模式系列 —— 原型模式(Prototype)

1、模式定义 通过创建原型使用克隆方法实现对象创建而不是使用标准的 new 方式。 2、UML类图 3、示例代码 BookPrototype.php <?php namespace DesignPatterns\Creational\Prototype; /** * BookPrototype类 */ abstract class BookPro...

PHP 设计模式系列 —— 对象池模式(Object Pool)

1、模式定义 对象池(也称为资源池)被用来管理对象缓存。对象池是一组已经初始化过且可以直接使用的对象集合,用户在使用对象时可以从对象池中获取对象,对其进行操作处理,并在不需要时归还给对象池而非销毁它。 若对象初始化、实例化的代价高,且需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的性能提升。常见的使用对象池模式的技术包括线程池、数据库连接池、任务队列池、图...

PHP 设计模式系列 —— 多例模式(Multiton)

1、模式定义 多例模式和单例模式类似,但可以返回多个实例。比如我们有多个数据库连接,MySQL、SQLite、Postgres,又或者我们有多个日志记录器,分别用于记录调试信息和错误信息,这些都可以使用多例模式实现。 2、UML类图 3、示例代码 Multiton.php <?php namespace DesignPatterns\Creational\Mul...

PHP 设计模式系列 —— 工厂方法模式(Factory Method)

1、模式定义 定义一个创建对象的接口,但是让子类去实例化具体类。工厂方法模式让类的实例化延迟到子类中。 2、问题引出 框架需要为多个应用提供标准化的架构模型,同时也要允许独立应用定义自己的域对象并对其进行实例化。 3、解决办法 工厂方法以模板方法的方式创建对象来解决上述问题。父类定义所有标准通用行为,然后将创建细节放到子类中实现并输出给客户端。 人们通常使用工厂模式作为创...

Laravel 5 如何实现网站在维护模式下允许指定 IP 用户访问(白名单)

为了测试需要,有时候需要在网站处于维护模式下允许特定IP访问网站,在 Laravel 中,这可以通过为维护模式编写自定义中间件来实现。 默认情况下,Laravel 使用 CheckForMaintenanceMode 中间件来判断网站是否处于维护模式并进行相应处理,该中间件的 handle() 方法定义如下: public function handle($request, Cl...

PHP 设计模式系列 —— 建造者模式(Builder)

1、模式定义 建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2、问题引出 假设我们有个生产车的工厂,可以制造各种车,比如自行车、汽车、卡车等等,如果每辆车都是从头到尾按部就班地造,必然效率低下。 3、解决办法 我们可以试着将车的组装和零部件生产分离开来:让一个类似“导演”的角色负责车子组装,而具体造什么样的车需要什么样的零部件让具体的“...