TL;DR

如果选择通过 curl_multi_* 函数并行发起请求,需要在使用 curl_multi_select 返回 -1 时增加休眠时间以降低 load。形如(代码来自 Guzzle):

1
2
3
4
5
if ($this->active &&
curl_multi_select($this->_mh, $this->selectTimeout) === -1
) {
usleep(250);
}

使用的软件版本为:

  • PHP 5.4.41
  • libcurl 7.19
  • Guzzle 5.3
阅读全文 »

TL;DR

设计模式有助于写出组织结构更为合理的代码,少数实现上也和语言特性有所关系。

设计模式的样例以及说明网上都存在很多的样例,本文作为学习笔记,只简要记录学习过程中的个人理解的一些要点,如有错误,烦请指出。

阅读全文 »

TL;DR

集成方法参见 Yaf集成Eloquent

集成基类的多个 Model 如果要正确的运行事务,需要保证各个 Model 的实例使用的是同一个数据库连接,在代码上可以通过共用同一个 Illuminate\Database\Capsule\Manager 对象实现。

使用 DB Facade 需要为 Facade 提供已经关联了 db 作为键,以 Illuminate\Database\Capsule\Manager 的实例为值的容器。

阅读全文 »