打算把公司業(yè)務(wù)一部分用webman去實現(xiàn),workerman經(jīng)過這么些年的迭代也越來越好
但是感覺現(xiàn)在webman自身的包比較少,比如自動路由、多應(yīng)用域名綁定插件,其實代碼量并不是很多,
搞成插件的話,感覺整體變得不簡潔了,想先用webman重構(gòu)自己的開源項目,但是糾結(jié)如下;
1、webman1.4版本,是否會將自動路由、日志、event、action-hook融合到框架自身的,比如action-hook,我按照文檔中間件寫法
使用initialize函數(shù)代替beforeAction函數(shù),更貼合基礎(chǔ)PHP開發(fā)者寫法。其實這種小插件是web開發(fā)肯定要必須使用的,并且代碼量也不多,
像TP那樣其實更好一些,沒必要過多的安裝擴展。
2、插件系統(tǒng)的事件,鉤子初始化執(zhí)行、動態(tài)加載路由,不知道1.4版本的這個什么時候會出,是否會在8.15之前,插件系統(tǒng)外面開源的很多,
比如onethink、zz-studio/think-addons,本來打算魔改,但walkor大神畢竟是webman的開發(fā)者,最主要的,不想自己再去填坑!
== webman的大部分用戶,tp laveral占比肯定是大部分,所以這個插件的架構(gòu)不知道亮哥打算如何設(shè)計,或者說還沒動工。
如果說插件架構(gòu)類似于zz-studio/think-addons這種,重構(gòu)完項目后等1.4,如果不是類似于這種zz-studio/think-addons,則打算自己造輪子!
感覺webman的命名規(guī)范不是很好,默認(rèn)的app文件夾為小寫,當(dāng)然也可以寫成大寫,但是命名空間是App
可以在JSON更改,但是,要么全部小寫,控制器首字母大寫駝峰,
要么全部文件夾是首字母大寫,比較統(tǒng)一
app\admin\controller\Index.php
App\admin\controller\Index.php // 這是當(dāng)前的,但是app文件夾如果小寫的話,感覺不統(tǒng)一,大寫的話,感覺跟目錄其他小寫的有些突兀,
要么像app\admin\controller\Index.php 基于TP的,
或者像自身的App\Admin\Controller\Index.php // 這種基于TP3的寫法也可以啊
composer.json 里的App 配置主要是為了兼容有些項目使用大寫命名空間。
創(chuàng)建控制器可以用命令 php webman make:controller 控制器名字
來生成,它會自動識別大小寫
我已經(jīng)全部搞成小寫了,但是dumpautoload后 IDE有時候還是提示App命名空間,等會自己找找,其實webman核心大小寫都無所謂
app文件夾里面還是建議小寫,第一書寫方便不需要切換大小寫,第二app文件夾小寫也跟整體項目契合,像TP3那種命名空間大寫的,
他的文件夾也是App大寫,webman出來的時間并不是很長,期望越來越好,這些小細(xì)節(jié),其實也特別重要,感謝webman!
1、1.4版本內(nèi)核預(yù)計會加入自動路由。1.4版本支持是否復(fù)用控制器配置,不復(fù)用控制器將每次初始化控制器,自動調(diào)用__construct
構(gòu)造函數(shù),所以action-hook不再需要了。其它目前沒有打算加入到內(nèi)核
2、1.4版本預(yù)計8月15日出
1.4版本里的應(yīng)用插件實際上和開發(fā)普通應(yīng)用區(qū)別不大。所有插件放在plugin目錄下,每個插件在plugin下是一個目錄,將插件復(fù)制到plugin下安裝好了插件,將目錄刪除就是卸載插件。
感謝,我自己再去重新造個插件輪子吧,另外還有一些問題,webman1.4的多應(yīng)用下域名綁定,是否會加入內(nèi)核,并且現(xiàn)在的綁定,不支持前綴,需要寫全域名感覺不是很友好,另外事件默認(rèn)讀取event.php,是否可以增加一個插件初始化鉤子,比如appinit 或者pluginInit。不復(fù)用控制器配置則會自動調(diào)用__construct函數(shù),如果在這個函數(shù)里面設(shè)置event.on初始化事件,是否會重復(fù)執(zhí)行實例化次數(shù)?
多應(yīng)用下域名綁定 不會加入內(nèi)核。我不清楚你說的前綴具體什么作用。appinit事件到時候看具體需要。事件初始化應(yīng)該都放在event.php配置里,這樣可以保證每個進程只初始化一次。手動調(diào)用event.on重復(fù)監(jiān)聽同一個事件將會重復(fù)觸發(fā)事件回調(diào)。
當(dāng)前的域名綁定是直接寫 例如a.domain.com綁定到一個應(yīng)用,前綴就是直接寫a,手動注冊事件重復(fù)回調(diào),事件這個流程我自己看源碼吧,新版跟這個應(yīng)該出入不太大吧?