如果要给webman自己开发一些组件,有没有实现的思路?

如果

最近一直在看webman,慢慢看,水平不够,很多东西还不是很懂。
结合以往的一些开发经验。感觉,如果webman可以用配置的方式实现组件化开发,应该会很不错。
举一个例子,比如yii里边,如果想要获取用户id,可以直接用Yii::$app->user->id来获取。这是直接调用了Yii的user组件。并且user组件是完全可以从配置文件中自定义的。
用webman的时候,发现不管是使用数据库还是其他组件,都是use引入某个类,直接写代码。
那么webman能否实现这种功能呢?比如,能在代码中使用类似这种:Webman::$app->oss->xxx()
感觉这样开发起来会比较方便

2672 3 0
3个回答

six

所有组件都用 Webman::$app->xxx->xxx() 这种方式?
感觉没有直接use方便啊。
比如数据库组件:

Db::table('blog')->first();

Webman::$app->db->table('blog')->first();

明显Db::table('blog');Webman::$app->db->table('blog') 简洁,少打很多字。
而且Webman::$app->db 这种入侵太强,耦合度高,如果换个框架要用这个组件简直没法用。

  • 如果 2020-12-31

    数据库的操作这个,不是很典型。平时也不会直接用Webman::$app->db->table('blog')这种方式来做,而是采用模型类来写。比如Blog::find()->xxx()这种方式。
    我说的意思,比如一个阿里云oss上传组件,我们可能会在很多地方调用它。如果不组件化配置,那么每次用的时候,都需要use引入组件类,实例化,然后再调用方法。
    我意思是,像这种需求。可以直接从某个配置文件里,把oss配置进去,那么每个需要上传文件的地方,直接用Webman::$app->oss->upload('file')这种形式来调用就可以了。
    再举一个例子,比如一个user组件,实际程序中有很多地方会需要用到当前user的id,那么我们可以配置好之后,直接在用到的地方用Webman::$app->user->id直接来获取就好了。

  • 张一 2022-04-19

    哈哈找到方法了没有,分享一下兄弟。我也遇到你这样的问题的

admin

请你了解一下 container di

  • 暂无评论
Tinywan

这个插件了解一下 https://www.workerman.net/plugin/10,比你app更加方便,不用use。以下代码在任何地方都可以使用

1、获取当前uid

$uid = Tinywan\Jwt\JwtToken::getCurrentId();

7、获取当前用户信息(模型)。需要插件大于版本 >=1.2.4

$user = Tinywan\Jwt\JwtToken::getUser();
  • 暂无评论
年代过于久远,无法发表回答
🔝