摘要:百分之百單元測試覆蓋直面一劍封喉,基于實現(xiàn)框架常駐,依托生態(tài)實現(xiàn)業(yè)務(wù)常駐,此刻未來逐步漸進(jìn)。國際化例子函數(shù)隨機(jī)數(shù)字優(yōu)化最開始采用的的繼承一個基礎(chǔ)的,方便單元測試有一定性能損失。
經(jīng)過 1 個月的開發(fā),QueryPHP v1.0.0-beta.1 版本可以發(fā)布了,這也是 beta 3 個版本的開始部分。這個版本的主要是代碼解耦和性能提升,文檔開發(fā)。
關(guān)于 QueryPHPQueryPHP 是一款現(xiàn)代化的高性能 PHP 7 常駐框架,以工程師用戶體驗為歷史使命,讓每一個 PHP 應(yīng)用都有一個好框架。
百分之百單元測試覆蓋直面 Bug 一劍封喉,基于 Zephir 實現(xiàn)框架常駐,依托 Swoole 生態(tài)實現(xiàn)業(yè)務(wù)常駐,此刻未來逐步漸進(jìn)。 我們的愿景是 USE LEEVEL WITH SWOOLE DO BETTER, 讓您的業(yè)務(wù)撐起更多的用戶服務(wù)。
更新日志Facade 優(yōu)化,不再繼承一個基礎(chǔ)的 Facade,不影響單元測試,并且減少了復(fù)雜度和調(diào)用鏈
函數(shù)惰性加載方案支持,將靜態(tài)類解耦為真正的函數(shù),框架底層組件直接調(diào)用函數(shù)本身
文檔更新,這次更新了 20 多篇文檔
新增幾十例測試用例,框架測試用例終于突破 3000 大關(guān),框架部分 3008 測試用例, 9835 斷言
PHP 最低依賴版本從 PHP 7.1.3 修改 PHP 7.3.2,框架正在迭代距離用戶使用還有段時間,我們可以使用最新的特性
框架自帶的 composer 載入優(yōu)化器支持輔助函數(shù)白名單
QueryPHP 自身是一個包含基礎(chǔ)權(quán)限的后臺系統(tǒng),代碼優(yōu)化更符合領(lǐng)域驅(qū)動設(shè)計分層架構(gòu),引入工作流簡化流水賬代碼
鎖定 doctrine/annotations ~1.6.0 和 zendframework/zend-diactoros ^2.1.1 減少兼容性問題和修復(fù)用戶安裝報錯的問題
去掉視圖中 v8js 的支持,刪除基類 Facade, 刪除宏擴(kuò)展,簡化設(shè)計減少復(fù)雜度。
技術(shù)債務(wù),框架底層大量的代碼優(yōu)化進(jìn)行解耦,減少復(fù)雜減少技術(shù)債務(wù)
函數(shù)惰性加載PHP 的函數(shù)式特性已經(jīng)逐步被純對象所取代,函數(shù)庫很多時候被包裝為靜態(tài)類,很多時候其實不需要一個類,為此 QueryPHP 底層框架提供了全局函數(shù) fn 來實現(xiàn)了惰性加載。
精簡框架自身助手函數(shù)庫
僅僅提供 4 個助手函數(shù)就完全滿足了系統(tǒng)的庫函數(shù)的加載使用。
https://github.com/hunzhiwang...
fn("LeevelSupportStr and_num", 5); hl("dump", 1, 2); app("request"); __("國際化");例子函數(shù)
Facade 優(yōu)化最開始采用的 Laravel 的繼承一個基礎(chǔ)的 Facade,方便單元測試,有一定性能損失。后來覺得在做單元測試只需要清空容器注冊的服務(wù)就可以所以優(yōu)化了一版本。
* * @since 2017.06.10 * * @version 1.0 */ class Encryption { /** * call. * * @param string $method * @param array $args * * @return mixed */ public static function __callStatic(string $method, array $args) { return App::singletons() ->make("encryption") ->{$method}(...$args); } }文檔更新系統(tǒng)新增了 20 個新的文檔,后續(xù)會逐漸豐富起來。
https://www.queryphp.com/docs/
自動載入優(yōu)化器QueryPHP 實現(xiàn)了一套基于并且優(yōu)化了 composer 的自動加載,并且屏蔽了助手函數(shù)的載入。
這次提供了白名單來讓你選擇部分函數(shù)的載入。
/** * --------------------------------------------------------------- * Composer * ---------------------------------------------------------------. * * 用于管理 PHP 依賴包 * 優(yōu)化 composer 性能,提煉 composer 中的 autoload_static 中的我們關(guān)注的 psr4 命名空間映射 * 我們 classmap 需要通過 `php leevel autoload` 生成,包含命令 `composer dump-autoload -o` * 對于助手函數(shù)需要自己引入 */ $autoloadLeevel = __DIR__."/../vendor/autoloadLeevel.php"; if (is_file($autoloadLeevel)) { $composer = require $autoloadLeevel; } else { $composer = require __DIR__."/../vendor/autoload.php"; }composer.json 部分代碼
{ "name": "hunzhiwange/queryphp", "description": "The QueryPHP Application.", "require": { "php": "^7.3.2", "hunzhiwange/framework": "dev-master" }, "extra": { "leevel-console" : { "autoload": { "@namespaces": "The white of Psr4", "namespaces": [ "Leevel", "Dotenv", "Carbon", "Monolog", "Whoops", "Swagger" ], "@files": "The white of autoload files", "files": [ "common/Infra/functions.php", "hunzhiwange/framework/src/Leevel/Leevel/functions.php" ] } } } }更好地領(lǐng)域驅(qū)動分層實現(xiàn),工作流支持正在嘗試更好地代碼實現(xiàn)領(lǐng)域驅(qū)動設(shè)計分層架構(gòu)。
https://github.com/hunzhiwang...
鎖定部分組件版本鎖定 doctrine/annotations ~1.6.0 和 zendframework/zend-diactoros ^2.1.1 減少兼容性問題和修復(fù)用戶安裝報錯的問題,持續(xù)集成系統(tǒng)在 composer 最低依賴狀況下不會出錯。
https://github.com/hunzhiwang...
幫助我們QueryPHP 是在 2016 年 10 月開始基于一個我早年的 PHP 框架 DoYouHaoBaby 框架開發(fā)的。這個早年的框架是我在 2010 年 7.8 月開始的,那個時候在大二,開始的框架也主要用于自用。早年基于這個框架的一些應(yīng)用作品如下:
DYHB.BLOG_X
DYHB.BLOG_X-2.0詳細(xì)安裝圖文教程?http://www.knowsky.com/804758...
http://www.downcode.com/downc...
https://github.com/hunzhiwang...
WindsForce 社區(qū)
http://www.mycodes.net/code_p...
https://github.com/hunzhiwang...
https://www.oschina.net/p/win...
目前 QueryPHP 由本人一人負(fù)責(zé)開發(fā),文檔,logo 設(shè)計,視頻,官網(wǎng)和宣傳需要大量精力。
如果你覺得可以,可以推薦朋友來試用一下,關(guān)注一哈,希望吸引到有興趣的一起開發(fā),文檔,。
用 10 年打造一個完美的作品,2010-present Xiangmin Liu。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31260.html
摘要:版本完成正式版前的除之外計劃功能,啟動凍結(jié)。百分之百單元測試覆蓋直面一劍封喉,基于實現(xiàn)框架常駐,依托生態(tài)實現(xiàn)業(yè)務(wù)常駐,此刻未來逐步漸進(jìn)。 QueryPHP v1.0.0-beta. 版本完成 1.0 正式版前的除 Swoole 之外計劃功能,啟動凍結(jié)。下一版本專注 Swoole 協(xié)程改進(jìn)。 關(guān)于 QueryPHP QueryPHP 是一款現(xiàn)代化的漸進(jìn)式高性能 PHP 7 不僅僅是常駐框...
摘要:文檔開發(fā)基于單元測試實現(xiàn)的自動化文檔當(dāng)前文檔開發(fā)計劃功能開發(fā)當(dāng)前計劃功能技術(shù)債務(wù)清償當(dāng)前技術(shù)債務(wù)單元測試盡可能減少當(dāng)前單元測試成為開發(fā)者需要加入我們的組織,如有相關(guān)意愿請發(fā)送郵件至小牛哥,我們會聯(lián)系你的。 QueryPHP 非常歡迎各位給我們共同的偉大的作品添磚加瓦,實現(xiàn)為 PHP 社區(qū)提供一個好框架的美好愿景。 文檔開發(fā).基于單元測試實現(xiàn)的自動化文檔 當(dāng)前文檔開發(fā) 計劃功能.開發(fā)...
摘要:是一個基于擴(kuò)展實現(xiàn)的輕量級高性能的常駐內(nèi)存型的和應(yīng)用服務(wù)框架高度封裝了,,服務(wù)器,以及基于實現(xiàn)可擴(kuò)展的服務(wù),同時支持包方式安裝部署項目。基于實用,抽象事件處理類,實現(xiàn)與底層的回調(diào)的解耦,支持同步異步調(diào)用,內(nèi)置等常用組件等。 swoolefy swoolefy是一個基于swoole擴(kuò)展實現(xiàn)的輕量級高性能的常駐內(nèi)存型的API和Web應(yīng)用服務(wù)框架,高度封裝了http,websocket,ud...
摘要:看起來很麻煩是吧,完全可以封裝一個函數(shù),直接調(diào)用就可以了,沒有必要自定義服務(wù)提供者創(chuàng)建契約。將自定義的服務(wù)提供者做如下修改修改了契約的綁定,所有使用契約進(jìn)行依賴注入的實例,都會由實例切換到實例。 導(dǎo)語 laravel 的服務(wù)提供者,是框架的核心,提供了路由、日志、緩存等功能。這里要實現(xiàn)的需求是使用第三方 API 獲取天氣情況,涉及到服務(wù)提供者、契約、依賴注入等方面。相關(guān)內(nèi)容可以通過下方...
摘要:確實,要獨立一個操作層出來,確實會增加大量代碼,非常繁瑣。如果你是小項目,未必需要使用這一模式。但如果是年以上的復(fù)雜大型項目,這種模式的好處就比較明顯了。如果你是純新手,建議你暫時不要往下看,先把用得比較熟練后再回來學(xué)習(xí)。 為什么要學(xué)習(xí)Repository Pattern(倉庫模式) Repository 模式主要思想是建立一個數(shù)據(jù)操作代理層,把controller里的數(shù)據(jù)操作剝離出來...
閱讀 1808·2021-11-22 09:34
閱讀 3096·2019-08-30 15:55
閱讀 675·2019-08-30 15:53
閱讀 2061·2019-08-30 15:52
閱讀 3007·2019-08-29 18:32
閱讀 1996·2019-08-29 17:15
閱讀 2402·2019-08-29 13:14
閱讀 3564·2019-08-28 18:05