Welcome to Feiffy's Blog

踏歌长行,梦想永在!

RabbitMQ实现延时任务

场景:下单之后的15分钟内如果没有下单,则自动取消订单。 第一个想到的方法是开启一个定时任务,每隔1分钟就去扫描订单状态,如果有符合条件的,则取消之。这种方式缺点很明显,很浪费资源,因为大部

2 分钟阅读

组合与组合模式

继承的问题 继承是一种强大的设计方式,但是它也会限制灵活性,特别是类承担多职责时。 下面是一个继承的简单示例。 抽象类 Food 表示食物,它定义了抽象方法 make()

19 分钟阅读

CodeIgnitor 配置类的使用

CI 的配置文件统一放在 application/config/ 目录下面,框架有一个默认的主配置文件 application/config/config.php。其部分内容如下: p

3 分钟阅读

变量存储区:堆和栈

最近在看PHP源码解析,涉及到堆栈存储区的知识,而我对于这个却不太清楚,因此,看了一下相关资料,总结一下。 栈 栈,存储函数中的局部变量(临时变量),存储函数地址,栈是后进先出的结构,由CP

4 分钟阅读

Distinct 与 Group by 的比较

看了很多文章,这两个SQL语句在不同的数据库上面的实现上可能有相同或有不同,但是应当要明确它们在功能概念上的区别,最终得出结论: > GROUP BY 用来使用聚集函数获得值,比如 AVG, MAX

0 分钟阅读

CI框架入门笔记

当前(2019-03-22)CodeIgniter 框架的最新版本是 3.1.5,于2017年6月发布,距今快两年了也没有更新,这与 Laravel 的更新速度相比差距太大了。因为确实,它是一个很古老

14 分钟阅读

Laravel 中的异常处理

这篇文章里,我们将研究 Laravel 框架中最重要也最少被讨论的功能 —— 异常处理。 Laravel 自带了一个异常处理类,它能够让你以简单、优雅的方式 report 和 render 异常。

12 分钟阅读

正确使用PHP数组

在这篇教程里,我将使用实际的例子来介绍一些常用的PHP数组及其最佳实践。每个PHP开发者都必须知道如何使用他们,并且组合使用这些数组函数写出可读性好、简洁的代码。 基本 让我们从最基本的处理数

16 分钟阅读

PHP Generators

Overview 生成器提供了一种简易的方式来实现简单的迭代器,生成器就是简单的迭代器,相比较定义类实现Iterator接口的方式,其性能开销和复杂性大大降低。 一个生成器可以让你直接用for

5 分钟阅读