以下是【會員:墨子於】分享的內容全文:
QueryPHP 是一款現代化的高性能 PHP 7 常駐框架,以工程師用戶體驗為歷史使命,讓每一個 PHP 應用都有一個好框架。
百分之百單元測試覆蓋直面 Bug 一劍封喉,基于 Zephir 實現框架常駐,依托 Swoole 生態實現業務常駐,此刻未來逐步漸進。我們的愿景是 USE LEEVEL WITH SWOOLE DO BETTER,讓您的業務撐起更多的用戶服務。
兩年重構,只為更好的自己
QueryPHP 基于一款成立于 2010 年的 PHP 框架 DoYouHaoBaby 開發,繼承了上一代產品的優秀之處,徹底革新并進行了長達 2 年重構.
在這個基礎上,我們引入了 Laravel、Symfony 等框架現代化先進特性,站在巨人的肩膀上保持創新。
#它是如何工作的?
QueryPHP 是一個漸進式 PHP 常駐框架,我們強調的是一個漸進式,它既可以運行在 php-fpm 場景,也可以將框架核心編譯成 C 擴展,同時還支持在 swoole 服務中運行。
#運行在 php-fpm 場景或者 PHP 內置 webserver
事實上,QueryPHP 也是一個普通的 PHP 框架,目前最低版本要求 PHP 7.1.3,我們對環境并沒有特別的要求。
PHP ^7.1.3
ext-mbstring 字符處理
ext-openssl 加密組件
我們系統依賴的組件可以通過 composer.json 找到,我們提供了大量開箱即用的功能。
~ $ php leevel server
# => Now visite http://127.0.0.1:9527/
上面就是運行在 PHP 內置 webserver 中,也可以用 nginx 搭建站點。
#框架編譯成 C 擴展
我們為了更好的性能,為整個 QueryPHP 的核心開發了一套可選的 C 擴展,它不是必須要安裝的。
Leevel 是一個開源 PHP C 擴展開發框架,采用 zephir 編寫,是為了解決使用框架帶來性能下降的經典矛盾,Leevel 是為了解決 QueryPHP 性能而開發,可以與同版本的 QueryPHP 混合使用,將接管 composer 中的 PHP 版本功能。
它是如何做到接管 composer 中的底層核心的呢。
我們訪問一個類, composer 根據 psr4 規則去搜索到我們文件而載入,如下的腳本會被載入。
Leevel/Di/Container.php
instance('foo', 'bar');
var_dump($container->make('foo')); // bar
...
如果我們存在一個擴展就提供了這樣一個類并隨著 PHP 常駐,是不是性能不錯,實際上是可以,QueryPHP 選擇了 zephir 來實現。
leevel/di/container.zep
實際上會被編譯成 C,被最終被編譯成 PHP 擴展。
leevel/di/container.zep.c
這樣子,不需要修改代碼直接提升性能。
#Windows 系統
暫未提供 dll.
#Linux 操作系統
下載源代碼.
git clone git@github.com:hunzhiwange/leevel.git
cd ext
編譯擴展.
$/path/to/phpize
$./configure --with-php-config=/path/to/php-config
$make && make install
將擴展添加到你的 php.ini, 使用 php -m 查看擴展是否被安裝.
extension = leevel.so
#運行在 Swoole 環境中
swoole 的問世對于 PHP 后端來說是一種福音,swoole 4.1 已經開始支持原始 pdo,redis 協程,支持 swoole 勢在必行。已經做了一些基礎工作,對于第一個版本我們要完善單元測試,所以下一個版本主要支持 swoole。
php leevel swoole:http
WARNING
Swoole 部分在第一個版本被撤下來了,后面回歸。
#特性
框架理念 (值得托付的使命感,讓每一個 PHP 應用都有一個好框架。)
組件系統 (框架底層由獨立的高內聚低耦合組件構成,可以輕松無侵入接入現有系統。)
路由系統 (框架提供 MVC 自動路由并能夠智能解析 Restful 請求和基于 OpenApi 3.0 規范的 swagger-php 注解路由,文檔路由一步搞定。)
整體解決方案 (框架提供了從緩存、Session、IOC 容器、模板引擎、Ddd ORM 等大量開箱即用的功能,提供了基于 Symfony Console 命令行工具集。)
框架常駐 (Leevel 可選擴展接管底層核心)
業務常駐 (基于 Swoole 4 開發,我們的愿景是少量代碼或者無修改,讓你的業務撐起更多的用戶服務。)
百分之百單元測試覆蓋(單元測試一直是國產 PHP 開源項目的痛)
拜師國外現代化框架 (從 Laravel、Symfony 吸收大量特性,也包含其它的框架.)
PHP 7 嚴格模式 (每一個 PHP 腳本都是 strict_types = 1)
PHP 7 類型提示 (僅可能為每一個方法提供確定的參數類型和返回值類型)
依賴注入 (完整實現,關鍵 mvc、命令行腳本、事件監聽器全部接入 IOC)
領域驅動設計 (在妖怪的 QeePHP 基礎上保持創新,提供了 UnitOfWork[事務工作單元]、Repository[倉儲]、Specification[查詢規約],Entity getter setter[領域實體或叫模型] )
more...
#Todo
QueryPHP 仍然處于開發中,這里有一些目前還不支持、但已經在計劃中的特性:
基于 Vue + IView 通用權限系統
完善 Swoole
開發文檔
我們歡迎你為 QueryPHP 的開發作出貢獻。
#為什么不是...?
#Laravel
Laravel 是一個非常優秀的框架,擁有非常龐大的社區,實際上 QueryPHP 大量吸收了 Laravel 的一些優秀特性。一致依賴 Laravel 性能確實為人詬病,QueryPHP 開發了一個 Leevel 來解決這一部分問題,用 Laravel 沒錯,QueryPHP 只是其中一個選擇。
#Symfony
Symfony 實際上是 PHP 社區事實標準,QueryPHP 底層大量使用 Symfony 的基礎組件例如 console、finder 等,Symfony 可以與 QueryPHP 更好地結合。
#ThinkPHP
ThinkPHP 是我最佩服的一個國產 PHP 框架,10 多年來還在持續不斷的革新,國內很少有生命力這么久的框架。我在 2010 年就通讀了 ThinkPHP 2.0 代碼,在后面工作中主要也是使用 ThinkPHP 3 系列,有苦也有樂。加油!
#Phalcon & Yaf
Phalcon 與 Yaf 世界上最快的 PHP 框架,Yaf 很輕,Phalcon 很重,它們都是世界級的框架。
QueryPHP 選擇一部分由 PHP 編寫,一部分編譯成擴選擴展 Leevel。
Leevel 位于 Yaf 和 Phalcon 輕重之間,是一種可選的方案。
1.軟件源碼推廣展示:目的展示軟件相關功能,接收技術學習者測試、測評;
2.教程課程信息展示:展示課程信息,傳授課程各階段內容;
3.設計素材圖片展示:展示素材設計理念、思維方式、傳播設計理念;
4.福利優惠信息展示:分享各類最新的福利信息,各種優惠信息展示;
以上分享目的僅供學習、參考使用,請勿用于其他用途,如果想商業使用或者代理,請自行聯系版權方獲取授權。任何未獲取授權的商業使用與本站無關,請自行承擔相應責任。
本站不存儲任何資源文件,敬請周知!
如果您認為本頁信息內容侵犯了您的相關權益(包含但不限于:著作權、首發權、隱私權等權利),或者您認為自己是此信息的權利人但是此信息不是自己發布的,可以直接版權舉報投訴,我們會根據網站注冊協議、資源分享協議等協議處理,以保護您的合法權益。
本網站采用 BY-NC-SA 協議進行授權 轉載請注明原文鏈接:QueryPHP漸進式PHP常駐框架引擎 v1.0 rc3

侵權舉報/版權申訴



