单例模式

单例模式(Singleton Pattern)顾名思义,通过这种模式可以保证系统中一个类只有一个实例。

作为一种常用的软件设计模式,单例模式经常被用在数据库操作、缓存、线程池等方面。因为对这些操作来说,只有一个实例很重要,可以避免很多的new操作和连接关闭等操作,减少对系统和内存资源的消耗。

阅读全文

注册树模式

工厂模式为了减少不断的new操作,单例模式为了维持全局唯一的实例,注册树模式跟这两种模式类似的地方在于减少并维持某个实例、变量的唯一性,而不同的地方在于注册树模式将这些实例、变量等放到全局(或相对全局)来进行统一管理调度,而不像工厂与单例模式那么闲散。

注册树模式,顾名思义,该模式实现将某个东西注册(挂)到某棵树的方法。随即引出实现该模式的几个要点:

阅读全文

创建自己的Laravel扩展包

创建自己的Laravel扩展包

阅读全文

支付宝支付配置踩过的坑

在调用支付宝支付时出现以下错误:

这里写图片描述

阅读全文

本地配置的*.dev虚拟域名在Chrome浏览器自动跳转到HTTPS

环境条件:

  1. Windows10
  2. 65版本的Chrome浏览器
  3. 本地配置的.dev后缀虚拟域名

阅读全文

Python 数据类型基础

[toc]

注意

  • 4个空格缩进;
  • 大小写敏感;

阅读全文

解决supervisord进程导致的队列时差问题

最近在处理laravel队列的时候突然发现,每次在线上服务器用dispatch添加的队列所生成的数据的时间总是比北京时间少了8小时,最后花费了很多时间才得以解决。以下是我排查的过程:

  1. 检查config/app.php的时区配置;
  2. 给create方法添加created_atupdated_at字段;

阅读全文

Centos下编译安装fileinfo扩展

这两天发现在服务器上(linux系统)没有安装fileinfo扩展,导致上传文件等操作失败。

于是,尝试使用如下命令安装该扩展:

1
pecl install fileinfo

阅读全文

面向对象编程的基本原则

面向对象编程的基本原则

  1. 单一职责
    一个类,只需做好一件事情。

阅读全文

ThinkPHP 多表事物

在 Thinkphp 3.2.3 下测试通过。

Thinkphp 对事务的处理非常简单。单表事务只需使用 M 函数实例化一个数据表对象,如果操作成功则提交,失败则回滚。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$User = M('user');

$User->startTrans(); // 开启事务
$id = $User->add(['name' => 'hongxuan']);

//
// TODO 其它操作
//

if ($id) { // 插入成功
$User->commit(); // 提交
} else { // 添加失败
$User->rollback(); // 回滚
}

阅读全文