PHP 框架 QueryPHP 1.0 正式版,四年打磨生產可用!

【開源新聞】https://www.oschina.net/news/...php

今天是一個很是特殊的日期,在這裏咱們將向你們宣佈一個重要的消息,徹底重寫的 QueryPHP 1.0 正式版發佈了!git

關於 QueryPHPgithub

QueryPHP 是一款現代化的高性能 PHP 漸進式協程框架, 咱們仍是主要面向傳統 PHP-FPM 場景,以工程師用戶體驗爲歷史使命,讓每個 PHP 應用都有一個好框架。npm

百分之百單元測試覆蓋直面 Bug,致力於創造高品質產品 Level Level Leevel,依託 Swoole 開啓將來更多可能,此刻將來逐步漸進。 咱們的願景是USE LEEVEL WITH SWOOLE DO BETTER, 讓您的業務撐起更多的用戶服務。緩存

特性app

  • Production-Ready (生產可用)
  • 框架理念 (值得託付的使命感,讓每個 PHP 應用都有一個好框架。)
  • 組件系統 (框架底層由獨立的高內聚低耦合組件構成,能夠輕鬆無侵入接入現有系統。)
  • 路由系統 (框架提供 MVC 自動路由並可以智能解析 Restful 請求和基於 OpenApi 3.0 規範的 swagger-php 註解路由,文檔路由一步搞定。)
  • 總體解決方案 (框架提供了從緩存、Session、IOC 容器、模板引擎、Ddd ORM 等大量開箱即用的功能,提供了基於 Symfony Console 命令行工具集。)
  • 高品質 (百分之百單元測試覆蓋直面 Bug,致力於創造高品質產品 Level Level Leevel。)
  • 業務協程化 (基於 Swoole 4 開發,咱們的願景是少許代碼或者無修改,讓你的業務撐起更多的用戶服務。)
  • 百分之百單元測試覆蓋(超過 3500 例測試用例保證系統可靠性和可持續維護。)
  • PHP 7 嚴格模式 (每個 PHP 腳本都是 strict_types=1,嚴格模式能夠避免不少弱類型帶來潛在 BUG。)
  • PHP 7 類型提示 (儘量爲每個方法提供肯定的參數類型和返回值類型,以及類屬性的類型支持。)
  • 依賴注入(完整實現,關鍵 MVC、命令行腳本、事件監聽器所有接入 IOC 容器。)
  • 領域驅動設計(支持 UnitOfWork 事務工做單元、Repository 倉儲、Specification 查詢規約,Entity Getter Setter 領域實體等。)
  • 避免閉門造車 (QueryPHP 一直從 Laravel、Symfony 等框架吸取一些優秀的設計,同時咱們自身也進行了大量的創新設計。)
  • 更多的特性期待你的發現...

緣起composer

在發佈 QueryPHP 前,早在 2010 年 10 月便去嘗試發佈了一個開源框架 DoYouHaoBaby,可是代碼早期的用戶體驗和質量都很是的不理想。在後來基於這個框架去作了一些應用如 DYHB.BLOG 和社區 WindsForce,事實上框架的一些 BUG 和設計都是經過這些具體的應用來驗證的,後來的故事就是所有中止開發。框架

緣滅frontend

2013 年 11 月開始了第一份工做上班了,慢慢地時間也少了,也不多再有多少心情去作一些業餘的項目了。後來就是內心只留下些許遺憾,沒有一顆再折騰的心。加上 2014 下半年想走出去,常常出去唱歌和遊玩,回來的時候又玩玩 Dota,就這樣過了 2 年。工具

重生

展轉來到 2016 年 8 月,當時天天下班回來都要玩 Dota,玩得盡興的時候會到了深更半夜。當時很是的迷茫,一直在尋找機會,也就是在那個月開始了第一行重構 DoYouHaoBaby 的代碼。慢慢地找到了些感受,也就慢慢改掉了遊戲,開始了一段全新的旅程。

Alpha.1 發佈

經歷了 2 年時間斷斷續續開發,第一個版本很快就問世了,QueryPHP 1.0.0-alpha.1 發佈,《漸進式 PHP 常駐框架引擎》。第一個版本花了 2 年時間,主要是吸收之前失敗的經驗,但願多花點時間在設計上,避免後期反反覆覆推倒重構。

早年讀 Vue 和 Laravel 開發歷史新聞,在很早期的時候便開始編寫了大量單元測試用例,因而在 2017 年中的時候接入到 Travis-ci,經過 PHPUNIT 編寫大量單元測試用例來保證可靠產品交付,第一個 Alpha.1 版本的時候,整個框架的測試用例就突破了 2000 例。因爲效果很是良好,這個時候便提出了一個 Slogan 「百分之百單元測試覆蓋直面 Bug」,用工匠精神去作一個純粹的做品,產品文檔、技術債務、計劃功能和測試用例都須要任務化,將品控落實到每個小小的步驟。

工匠精神

「工匠精神」,鼓勵企業開展個性化定製、柔性化生產,培育精益求精的工匠精神,增品種、提品質、創品牌。

QueryPHP 爲了更好地交付產品,按照嚴格的方式逐步推動,一塊一塊將打磨,小到文案、代碼排版,大到接口用戶體驗,慢工出細活,最終設計得以良好呈現。避免粗製濫造的做品,致力於創造高品質產品 Level Level Leevel,品控一直貫穿整個產品開發的各個流程。

  • v1.0.0-ga 2020 年 7 月 22 日
  • v1.0.0-rc.6 2020 年 4 月 18 日
  • v1.0.0-rc.5 2020 年 2 月 8 日
  • v1.0.0-rc.4 2020 年 1 月 20 日
  • v1.0.0-rc.3 2019 年 12 月 26 日
  • v1.0.0-rc.2 2019 年 11 月 24 日
  • v1.0.0-rc.1 2019 年 11 月 6 日
  • v1.0.0-beta.6 2019 年 10 月 16 日
  • v1.0.0-beta.5 2019 年 9 月 9 日
  • v1.0.0-beta.4 2019 年 7 月 28 日
  • v1.0.0-beta.3 2019 年 6 月 6 日
  • v1.0.0-beta.2 2019 年 5 月 20 日
  • v1.0.0-beta.1 2019 年 4 月 14 日
  • v1.0.0-alpha.3 2019 年 3 月 13 日
  • v1.0.0-alpha.2 2018 年 12 月 12 日
  • v1.0.0-alpha.1 2018 年 11 月 8 日
  • First line of code  2016 年 8 月

關於性能與場景

咱們仍是主要面向傳統 PHP-FPM 場景,這是咱們整個產品的核心,咱們的 99% 的組件並不依賴 Swoole。不少時候,這已經夠了,比咱們想象中的更增強大。

依託 Swoole 開啓將來更多可能,整個框架能夠運行於 Swoole 服務中,目前開啓一鍵協程化不可關閉。目前支持了 HTTP 和 WebSocket,能夠知足你的一些開發需求,而且也是咱們的將來的一個重點支持方向。支持了 MySQL 和 Redis 鏈接池,能夠更好地使用。

相對於 Swoole 來講,我特別想推薦的是 Go RoadRunner 來運行你的 PHP 應用。Golang 接受 PSR-7 請求,負責管理運行於 CLI 模式 的 PHP 常駐進程,避免框架化帶來的性能開銷。該公司是一家以 PHP 與 Golang 的爲主語言的公司,據他們新聞說,在實際項目中能帶來 15 倍的提高,兼容性好很強大,目前 QueryPHP 已經支持,將來將會更好地像這個方向完善。

我本身也在搞一些 Golang,Rust 方向,能夠選擇這些其它語言來提高性能與擴展場景。

開發路線

打造出面向企業級的產品,儘量少的破壞性更新,爲企業開發舔磚加瓦。將來主要優化用戶體驗,編寫更多邊界測試,以求提高產品的可靠性。

安裝

爲了簡化入門,咱們開發了一個基於 IView-UI 通用後臺權限系統,能夠在傳統 PHP-FPM,Swoole 和 RoadRunner 3 中模式下面運行。

composer create-project hunzhiwange/queryphp myapp
php leevel server <Visite http://127.0.0.1:9527/>

Swoole 方式運行

php leevel http:server <Visite http://127.0.0.1:9527/>

Go RoadRunner 方式運行

/data/server/roadrunner-1.8.2-darwin-amd64/rr serve -d -v # -d = debug <Visite http://127.0.0.1:9527/>

運行基於 IViewUI 的通用權限系統

cd /data/codes/queryphp/frontend
npm install
npm run dev

cd /data/codes/queryphp
php leevel server
http://127.0.0.1:9528/#/login

聯繫方式

若是你以爲不錯,能夠關注一下項目,謝謝。

https://www.queryphp.com

Email: 635750557@qq.com

相關文章
相關標籤/搜索