webman是否可以统一组件的调用方式

aphper

例如Laravel中各种组件使用facades

DB::connect()
Redis::connect()
Request::input()
Custom::method()
...

Yii2中调用组件使用

Yii::$app->request
Yii::$app->redis
Yii::$app->custom
...

而在webman中没有预定义定义这种方式 也没有对插件开发者有什么要求,导致了官方提供的组件和workerman.net/plugin 页面的开发者提供的插件没有一个统一的调用方式 风格各异

比如

//作者提供的
//https://www.workerman.net/doc/webman/queue/redis.html

use Webman\RedisQueue\Client;

Client::send($queue, $data);
//第三方提供的
//https://www.workerman.net/plugin/32

use yzh52521\mailer\think\Mailer;

Mailer::instance()...

作者是否号召一下大家统一这些组件的调用方式风格

1146 2 0
2个回答

nitron

WM里面确实也是有需要统一的,比如你上面说的

DB::connection();
Redis::connection();

还有

中间件的process()
Console的execute()
Consumer的consume()
自定义进程的onXXXX

RedisQueue的话,Client发送(send)一个消息,不用send用啥?push?add?
instance的话,是个经常看到的用法啊.获取一个实例,而且看namespace应该是对ThinkPHP里Mailer的封装

  • aphper 2022-03-29

    如果统一 它应该是这样的 Mailer::send() 或者 Mailer::subject('xxx')->send();

  • aphper 2022-03-29

    就像不会有 Redis::instance()

  • nitron 2022-03-29

    有Redis::instance,只不过你没用到罢了

  • walkor 2022-03-29

    这个没办法统一吧,每个库可能有自己的考虑。::instance()也是常用的方法,怎么统一,禁止使用instance()方法?

不败少龙

自由自在多好,干嘛要一个标准

  • 暂无评论
年代过于久远,无法发表回答
🔝