最近一直在看webman,慢慢看,水平不夠,很多東西還不是很懂。
結合以往的一些開發(fā)經(jīng)驗。感覺,如果webman可以用配置的方式實現(xiàn)組件化開發(fā),應該會很不錯。
舉一個例子,比如yii里邊,如果想要獲取用戶id,可以直接用Yii::$app->user->id來獲取。這是直接調用了Yii的user組件。并且user組件是完全可以從配置文件中自定義的。
用webman的時候,發(fā)現(xiàn)不管是使用數(shù)據(jù)庫還是其他組件,都是use引入某個類,直接寫代碼。
那么webman能否實現(xiàn)這種功能呢?比如,能在代碼中使用類似這種:Webman::$app->oss->xxx()
感覺這樣開發(fā)起來會比較方便
所有組件都用 Webman::$app->xxx->xxx()
這種方式?
感覺沒有直接use方便啊。
比如數(shù)據(jù)庫組件:
Db::table('blog')->first();
和
Webman::$app->db->table('blog')->first();
明顯Db::table('blog');
比 Webman::$app->db->table('blog')
簡潔,少打很多字。
而且Webman::$app->db
這種入侵太強,耦合度高,如果換個框架要用這個組件簡直沒法用。
數(shù)據(jù)庫的操作這個,不是很典型。平時也不會直接用Webman::$app->db->table('blog')這種方式來做,而是采用模型類來寫。比如Blog::find()->xxx()這種方式。
我說的意思,比如一個阿里云oss上傳組件,我們可能會在很多地方調用它。如果不組件化配置,那么每次用的時候,都需要use引入組件類,實例化,然后再調用方法。
我意思是,像這種需求??梢灾苯訌哪硞€配置文件里,把oss配置進去,那么每個需要上傳文件的地方,直接用Webman::$app->oss->upload('file')這種形式來調用就可以了。
再舉一個例子,比如一個user組件,實際程序中有很多地方會需要用到當前user的id,那么我們可以配置好之后,直接在用到的地方用Webman::$app->user->id直接來獲取就好了。
這個插件了解一下 http://m.wtbis.cn/plugin/10,比你app更加方便,不用use
。以下代碼在任何地方都可以使用
1、獲取當前
uid
$uid = Tinywan\Jwt\JwtToken::getCurrentId();
7、獲取當前用戶信息(模型)。需要插件大于版本
>=1.2.4
$user = Tinywan\Jwt\JwtToken::getUser();