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

Thinkphp+Webman=Pandaman 輕框架分享

wasoncheung

為什么有了Thinkphp和Webman還要如此蛋疼的搞個(gè)Pandaman出來?

在深度折騰過兩者后,基于自己的使用痛點(diǎn),改善而來。

傳統(tǒng)的PHP框架笨重,workerman已經(jīng)很好的解決了

容器管理 現(xiàn)代開發(fā)中已經(jīng)必不可少了?;谌萜髯鲩_發(fā),后期可以對(duì)各種實(shí)現(xiàn)的無縫切換。
同時(shí)對(duì)于類也可以很好的解耦

在使用workerman后 遇到的最多的問題,就是隱藏的bug,這并不是worker的問題。很多composer包都不適用于這種持久環(huán)境,這種問題及其隱秘,你不打印根本不可能知道。
.....

Pandaman的特點(diǎn)

框架非常簡(jiǎn)單,結(jié)構(gòu)層次分明,每個(gè)階段都有鉤子,方面隨時(shí)擴(kuò)展

可以任意增改系統(tǒng)流程

(new App())
// 設(shè)置環(huán)境
->setEnv('dev')
// 初始化鏈 程序啟動(dòng)前的必備工作 講究順序 比如配置加載合并
->appInit()
// 啟動(dòng)鏈 程序可以做些運(yùn)行前的工作,比如注冊(cè)路由 注冊(cè)插件 webman的bootstraps可以在這里實(shí)現(xiàn) 內(nèi)置實(shí)現(xiàn)了thinkphp的services
->appBoot()
// 運(yùn)行鏈 核心業(yè)務(wù)的運(yùn)行模塊,例如http-server 請(qǐng)求只會(huì)在這一層處理
->appRun();
    // 初始化器
    private array $initializers = [
        // 加載公共函數(shù)
        LoadFunctions::class,
        // 加載內(nèi)置函數(shù)
        LoadBuiltinFunctions::class,
        // 加載全局配置文件
        LoadConfigFiles::class,
        // 合并環(huán)境配置到全局配置
        MergeEnvConfigs::class,
        // 初始化應(yīng)用狀態(tài)
        AppStatusInit::class
    ];

    // 啟動(dòng)器
    private array $bootstraps = [
        //加載全局容器配置
        LoadProviders::class,
        // 加載事件配置
        LoadEvents::class,
        // 加載多語(yǔ)言
        LoadLang::class
    ];

無配置啟用,約定大于配置 你只要關(guān)心你最在意的配置即可。

默認(rèn)的配置流程是 超全局配置(類似環(huán)境配置)->全局配置。系統(tǒng)會(huì)自動(dòng)覆蓋全局配置

debug=true

timezone=Asia/ShangHai

lang.default=zh-cn

cache.default=file

monitor.command=php bin.php http

session.default=redis

route.404_template=111

所有的地方都支持依賴注入

這也是我喜歡thinkphp的地方 能依賴注入就不想別的。

    // 還可以這樣注入依賴
    #[Autowired]
    private Route $route;

    // 獲取配置
    #[GetConfig('route.root_path')]
    private string $routePath;

無處不在的屬性類

相對(duì)注釋 屬性類更加優(yōu)雅,內(nèi)置的路由,控制器 服務(wù)注冊(cè)都是用屬性類實(shí)現(xiàn)的

#[GET]
#[Middleware([Test::class])]
public function index(): string
{
return 'index';
}

總體的中間件,事件,緩存,日志 等等 都和thinkphp webman一模一樣
不同的是全部采用了容器來管理
目前還有視圖沒有完成,路由和控制器還需要在使用中發(fā)現(xiàn)和修復(fù)問題。如果你閑著無聊,那就一起來玩玩吧

倉(cāng)庫(kù)已經(jīng)上傳,歡迎大神指教。(我沒學(xué)過php硬上手的,遇到噴點(diǎn),輕點(diǎn)噴)
https://github.com/wasonCheung/pandaman

3357 1 0
1個(gè)評(píng)論

tangniyuqi

兄弟不錯(cuò)啊 支持

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表評(píng)論

wasoncheung

1070
積分
0
獲贊數(shù)
0
粉絲數(shù)
2022-11-15 加入
??