Swoole实战:构建HTTP Server框架与秒杀系统技术训练.pdfVIP

  • 0
  • 0
  • 约3.26千字
  • 约 16页
  • 2026-02-10 发布于北京
  • 举报

Swoole实战:构建HTTP Server框架与秒杀系统技术训练.pdf

swoole混合实战之秒

杀前传

快帅酷

刻意训练自己的技术套路

讲师:沈逸

swoole混合实战之

秒杀前传

快帅酷

刻意训练自己的技术套路

讲师:沈逸

穿插知识点:理解依赖注入/控制反转

穿插知识点:理解依赖注入/控制反转

先看一段古老却常见的封装代码

classMyDB{private$db;//这里可能是pdo可能是别的,

仅仅为了演示publicfunctionconstruct($connInfo){//

略}publicfunctionqueryForRows($sql){return[

__

userid=101,username=shenyi];}}class

MyUser{private$mydb;

先看一段古老却常见的封装代码

classMyDB{

private$db;//这里可能是pdo可能是别的,仅仅为了演示

publicfunctionconstruct($connInfo)

{

//略

}

publicfunctionqueryForRows($sql){

return[user_id=101,user_name=shenyi];

}

}

class

MyUser{privat

e$mydb;

publicfunctionconstruct($

dsn){$this‑mydb==new

MyDB($dsn);

publicfunctionconstruct($dsn)

{

$this-mydb=newMyDB($dsn);

调用

$user=newMyUser(mysql:host=localhost;);

_

vardump($user‑getAllUsers());

一个很明显的问题在于:

我们将MyUser和数据库这两个概念混为一谈,变成一个。

当数据库密码或其他信息改变时,我们就需要修改MyUser的构造。函数。

造成模块耦合。

事实上,MyUser应该专注于业务处理,Db应该是独立的。

调用

$user=newMyUser(mysql:host=localhost;);

var_dump($user-getAllUsers());

一个很明显问题在于:

我们把MyUser和数据库两个概念混淆在了一起,变成了一个。

当数据库密码或其他信息变掉了,我们就要修改MyUser的构造函数。

造成模块耦合

事实上,MyUser就应该专注于业务处理,Db就应该是独立的

正确做法

MyDB

向MyUser注入

MyDB的实例

MyUser

正确做法

向注入

的实例

代码

$db=newMyDB(mysql:host=l

ocalhost;);$user

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档