国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

初學(xué)webman,和自己之前了解的tp6做了對(duì)比,簡(jiǎn)單的分享、建議一下~

深林孤鷹

我一直是TP的用戶,從v3、v5到v6都擼過幾遍官方教程,今年開始了解了CRMEB和二開,直到真正做項(xiàng)目,認(rèn)識(shí)workerman也是從CRMEB的技術(shù)說明才知道的,看了workerman的介紹,真心感覺不錯(cuò),雖然剛出不久,但作者大神能把PHP還能玩成這花樣真是意想不到,相見恨晚吶,于是花了一周時(shí)間擼了官方教程,不得不說官方教程確實(shí)比TP的簡(jiǎn)潔(TP的500多頁(yè)P(yáng)DF),而且框架也是輕量的(不像TP有點(diǎn)過度封裝,啰啰嗦嗦),但TP也有一些方便實(shí)用的東西而Webman沒有的,看帖子作者不了解TP,所以我想著來簡(jiǎn)單分享建議一下(菜鳥級(jí)別的)。
1、容器
TP6中有容器和依賴注入,調(diào)用其他類的方法時(shí)會(huì)非常便捷,而且默認(rèn)是單例類(也可以選擇非單例),比如:
class Foo
{
public function __construct(Bar $bar)
{}
public function bar(Bar $bar)
{
// ...
}
}
$foo = invoke('Foo'); //自動(dòng)注入構(gòu)造函數(shù)
$result = invoke(['Foo', 'bar']);//自動(dòng)注入方法中
或者:$arrayItem = app('org\utils\ArrayItem'); //容器構(gòu)造
Webman中好像需要插件才支持依賴注入,但沒有容器的概念。

2、路由
TP6默認(rèn)的路由是支持控制器中子目錄的,比如:
app\Controller\admin\Index.php,訪問時(shí)是:
/admin.index/方法名
而Webman中不可行,看了作者大神的帖子,可以對(duì)每個(gè)路由重新定義,也可以使用一段代碼來自動(dòng)路由,但我覺得不太方便,而且發(fā)現(xiàn)會(huì)和多應(yīng)用的路由有一個(gè)沖突,比如:
app/test/Controller/Index.php
app/Controller/test/Index.php
同時(shí)存在時(shí),Webman就報(bào)錯(cuò)無法啟動(dòng)了。。
另外,我覺得 自動(dòng)路由優(yōu)先級(jí)應(yīng)該小于手動(dòng)路由,不然手動(dòng)路由就沒辦法存在了(都被替換掉了)

3、中間件
中間件兩個(gè)感覺差不多,雖然我沒用到控制器中間件,但感覺這個(gè)也是相對(duì)重要,希望還是能有~

4、事件
這個(gè)Webman還沒有,我想作者大神以后會(huì)加進(jìn)去的。

5、其他
TP6的門面(Facade),感覺也方便那么一點(diǎn),沒有其實(shí)也無所謂,就是靜態(tài)方式調(diào)用對(duì)象的方法,有了依賴注入或容器也差不多。
TP6的服務(wù)一直沒用到,所以也不清楚具體作用。。
另外,關(guān)于訪問的URL對(duì)應(yīng)的控制器、方法和參數(shù),官方說明不是很詳細(xì),比如TP6中明確說:
/控制器/方法名/參數(shù)名1/參數(shù)/參數(shù)名2/參數(shù)。。。
而Webman沒有說明如何給控制器方法傳參,還得自己試(還是只能靠Get或Post?)
最后有個(gè)問題,Webman對(duì)大文件上傳有沒有好的現(xiàn)成的方案呢?

我會(huì)一直關(guān)注Workerman系列和作者大神的,目前先用TP6把這票干完,后面我的游戲引擎框架后臺(tái)會(huì)用GateWay試試,同時(shí)也試著參與貢獻(xiàn)下,對(duì)于我這種不會(huì)Java和Go的真是福音,哈哈~
愿這個(gè)框架會(huì)發(fā)揚(yáng)光大~

10106 5 2
5個(gè)回答

Mr_Deng

愛分享是好事,但是可以再多學(xué)習(xí)下,workerman yyds

  • 深林孤鷹 2022-07-19

    剛?cè)肟右恢茏笥遥瑢W(xué)習(xí)之路漫漫其修遠(yuǎn)兮^^

liziyu

精神可嘉,加油!

walkor 打賞

非常好的分享,非常感謝。
1、workerman自帶容器,容器符合PSR11規(guī)范。容器默認(rèn)不支持依賴注入。不過可以通過安裝 php-di/php-di來支持依賴注入。因?yàn)椴⒉皇撬杏脩舳夹枰蕾囎⑷耄赃@部分沒有強(qiáng)制安裝,需要的用戶選擇安裝也很方便,參考依賴注入文檔
webman容器的用法就是PSR11規(guī)范的用法

use support\Container;
Container::get('類名');
Container::make('類名', [構(gòu)造函數(shù)參數(shù)]);

2、/admin.index/方法名 這樣的默認(rèn)路由看起來不是很規(guī)范,webman不支持這樣的用法。路由有沖突需要給用戶一個(gè)提示(當(dāng)然報(bào)錯(cuò)可能不是一個(gè)好的方案),否則有一個(gè)路由不生效用戶可能以為是bug調(diào)試很久。復(fù)雜的業(yè)務(wù)目錄路由目前沒有想到好的解決方案,如果你有歡迎提出。

3、控制器中間件后面會(huì)支持

4、這個(gè)有插件,在 http://www.wtbis.cn/plugin/64 ,還沒來得及寫文檔

5、門面感覺有點(diǎn)雞肋,不支持智能提示,手寫一個(gè)靜態(tài)代理類感覺更簡(jiǎn)單。當(dāng)然有需要的用戶可以自己實(shí)現(xiàn)一個(gè)門面,放到插件市場(chǎng)給大家使用。

再次感謝你的建議分享,也希望大家多建議分享自己的想法

  • 深林孤鷹 2022-07-19

    謝謝作者大神回復(fù)~依賴注入那節(jié)不小心跳過了沒看,原來是有容器的啊哈哈,抱歉抱歉~再有幾個(gè)問題希望能不厭其煩的解答下:
    1、自動(dòng)路由會(huì)產(chǎn)生單、多應(yīng)用可能沖突,導(dǎo)致Webman無法運(yùn)行的問題,TP的做法是默認(rèn)單應(yīng)用,如果開啟多應(yīng)用的話單應(yīng)用就會(huì)自動(dòng)關(guān)閉,不知這種解決方案如何。
    2、其實(shí)平時(shí)也用不到復(fù)雜路由的情況,我覺得自動(dòng)路由已經(jīng)滿足需求了,但自動(dòng)路由如何和路由中間件結(jié)合呢?
    3、Wokerman不能像TP那樣用PATHINFO給控制器和方法傳參嗎:
    URL:/Example/func/param1/hello
    PHP:
    class Example {
    public func($param1) {。。。}
    }
    還是只能使用 POST 和 GET傳參?
    4、有木有大文件上傳的案例或者示例、解決方案什么的文章,想?yún)⒖枷聗
    謝謝~

  • walkor 2022-07-19

    1、路由沖突解決下就好了,感覺因此關(guān)閉單應(yīng)用并不是用戶想要的方案
    2、如果需要路由中間件需要在config/route.php中單獨(dú)配置
    3、目前不支持這樣的用法,感覺這樣會(huì)有和默認(rèn)路由沖突的情況,如果需要美化可以設(shè)置自定義路由實(shí)現(xiàn)
    4、webman本身沒有在內(nèi)部支持大文件分段上傳。分段上傳屬于業(yè)務(wù)邏輯范疇。普通文件上傳是支持的,如果上傳的文件較大需要設(shè)置congfig/server.php max_package_size選項(xiàng)

  • 深林孤鷹 2022-07-19

    2、我使用了自動(dòng)路由插件(https://github.com/webman-php/auto-route),但我還想對(duì)其中某些路由增加中間件的話,貌似就不能用自動(dòng)路由了,會(huì)有 FastRoute\BadRouteException: Cannot register two routes matching "/test/index/index" for method "GET" 的重復(fù)定義路由的錯(cuò)誤(TP里不會(huì)對(duì)重復(fù)的報(bào)錯(cuò),而是按先匹配的進(jìn)入)。。
    其他問題基本了解了~

  • walkor 2022-07-20

    感覺先匹配進(jìn)入不是很好,開發(fā)者本來期望進(jìn)入后面的,但是實(shí)際進(jìn)入前面的,開發(fā)者為此可能要debug很久才找出問題。直接報(bào)錯(cuò)告訴開發(fā)者路由沖突了,讓開發(fā)者決定使用哪個(gè)路由好些

  • 深林孤鷹 2022-07-20

    自動(dòng)路由方便的一點(diǎn)是可以自動(dòng)識(shí)別多種目錄結(jié)構(gòu)的控制器,手動(dòng)路由可以定義路由組、中間件等等。看來自動(dòng)路由和手動(dòng)路由只能二選一了,如果能有更好的方案我再來提供,謝謝作者大神了~

  • 周小云 2022-10-24
    Container::get(BalanceService::class)->updateUserAmount($user, [
                'amount' => Common::toInt($data['amount']),
                'type' => BalanceLog::PLATFORMRECHARGE,
                'remark' => $data['remark']
            ]);

    我這樣寫 phpstorm updateUserAmount 對(duì)這個(gè)方法顯示未使用 不高亮

  • 27025011 2023-07-04

    phpstorm updateUserAmount 對(duì)這個(gè)方法顯示未使用 不高亮.這個(gè)是編譯器問題.

nitron

不算冷的冷知識(shí)

Workerman差不多有8年歷史,不是剛出不久.

DI不是人人必須,Facade沒有提示讓人抓狂

  • 深林孤鷹 2022-07-20

    是webman剛出不久,打錯(cuò)了。。哈哈

  • liziyu 2022-07-20

    @深林孤鷹 webman實(shí)際上是 workerman的http應(yīng)用,這么算來出來蠻久的了!哈哈

  • Le 2022-07-20

    沒有提示,確實(shí)很難受

  • 深林孤鷹 2022-07-21

    哈哈

gddd

為啥我感覺這些建議都沒用,而且有些 在webman里面已經(jīng)有了

年代過于久遠(yuǎn),無法發(fā)表回答
??