2 回答
TA贡献1784条经验 获得超8个赞
看看最简单的 Singleton 实现:
class Singleton {
protected static $_instance = null;
public static function newInstance()
{
if (null === self::$_instance)
{
self::$_instance = new self;
}
return self::$_instance;
}
// disallowed
protected function __clone() {}
// disallowed
protected function __construct() {}
}
它确保在这个单一的请求中只存在一个这样的实例。
所以你的 Swift_SmtpTransport 是一个单例:
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl');
这意味着Swift_SmtpTransport 的每个实例都是您刚刚创建的实例(针对此请求)(这并不意味着您不能更改属性 - 也许该实例在创建后具有要调用的 getter 和 setter)。
现在让我们看看你已经发现了什么:
在一个 Request 中创建的 Singleton 正是为了那个请求而存在的。
所以它是每个请求,请求也不会影响其他请求。所以不,我不认为其他用户会受到影响。即使您根据单个请求更改配置也不会。
有关更多信息,请阅读:对 PHP 脚本的同步请求- 对于每个请求,一个新的独立进程被分叉,与其他进程没有任何关系。唯一的问题是他们可能会互相阻止。
Laravel 的文档说:
在运行时设置的配置值仅针对当前请求设置,不会被带到后续请求中。
TA贡献1808条经验 获得超4个赞
在传统的 php 中,每个请求都是一个不同的实例。从一个实例到另一个(从一个请求到另一个)继承(变量明智)没有任何东西。
在同一个实例中,邮件程序在其生命周期内是一个单身人士
- 2 回答
- 0 关注
- 164 浏览
添加回答
举报