84PHP框架可以幫助用戶在建立網站和設計應用程序的時候使用,當您需要通過PHP開發程序和web應用的時候就可以部署這款框架,軟件可以連接到多種使用,可以結合MySQL使用,提供更快速的訪問速率,快速在傳輸數據,無論是設計網站還是設計程序都可以使用這款框架;這里小編推薦的是發布的5.0版本,新版增加和修復了很多功能,新增了Wng模塊對報錯樣式的配置項,修復了Setting模塊的潛在錯誤,新增用以緩存數據的Data模塊!
84PHP框架模塊介紹
Wng:輸出預定義的報錯。
Vcode:生成驗證碼。
Tool:一些實用的小功能。
Sms:通過服務商提供的接口,實現發送手機短信的功能。目前支持阿里云通信。
Setting:讀取或修改模塊配置文件中的配置項。
Session:會話(Session)功能模塊。Session功能的參數定義,其中每一個元素為一個參數,元素的 鍵 為參數的名稱(名稱無需包含 session. 前綴),元素的 值 為參數對應的值,您可以自行添加/刪除這些參數。
Send:通過HTTP協議,以GET或POST方式發送數據。
Receive:接收數據并對數據的可進行驗證和對數據進行安全處理。
Pay:通過第三方支付平臺提供的接口,實現在線支付。目前支持支付寶支付和微信支付。
Page:以分頁的方式執行Mysql模塊的SelectMore()方法。
Mysql:本模塊底層通過 MySQLi 驅動,進行 CD (增刪改查)以及執行自定義SQL的作。
Mail:向指定的郵件地址發送Email。
Log:將志進行保存。
本功能在寫入文件時會執行 加鎖作 ,因此不保證能夠記錄到 每一個 客戶端的訪問數據。請務必確保Temp目錄具有 讀寫權限 。
Load:將瀏覽器上傳的文件存儲至以及將遠程的文件下載至。
Ip:通過對IP地址( IPv4 )黑白名單的作,來允許或阻止程序運行。如要使用本模塊,請務必保證Temp目錄下的ip-blacklist.php和ip-whitelist.php具有 讀寫權限 ,否則將報錯。當上述兩個文件不存在時,將 自動建立 這兩個文件。
Img:對圖片進行處理。
Ftp:通過FTP進行上傳、下載等作。
Dir:獲取目錄或文件的屬、狀態;復制、刪除目錄或文件。
Data:將數據緩存至指定的位置,并在需要時讀取/清除它。
84PHP框架軟件特色
簡單
沒有復雜的模式和概念,新手同樣輕松使用。獨創的中文快捷傳參,更加方便記憶
高效
功能全面、使用方便的功能模塊,為面向AP編程特別優化和改進的框架,讓您事半功倍。
快速
僅100KB的框架代碼,就足以支撐起大型互聯網應用。更加優化的緩存模式,大大節省開銷
安全
特有的防注入方式,從根源上阻止代碼入侵行為。對安全問題的周全考慮,是我們的大優勢。
主流框架能(QPS)對比
測試方式: Apache Bench/并發50共5000次請求/測試5次取平均值(四舍五入)
測試項目:文本輸出/從一個包含2000數據的數據庫中,用分頁的方式,取出第920-1000行數據
環境:云上海四區標準型2Win2008r2-sp1企業版/ Apache2.4.41-win/php7.4.3-x-ts
數據庫環境:云-上海四區高可用版-1核1000MB -MySQL5-5.7
84PHP框架使用說明
Cache
模塊簡述
更新或重建緩存。
模塊配置
配置文件位于 /Config/Cache.php 。
ExpTime (Int) 300 :
緩存的有效期。
調試模式未開啟時,有效期內的緩存不會被重建,單位為 秒 。
TPath (Stng) ‘/Source/Template’ :
靜態模板的路徑,務必以 / 開頭。
您還可以修改此路徑以增加代碼安全。
如果修改了此配置項,請務必確保已經存在對應的擁有 讀寫權限 的模板目錄。
DPath (Stng) ‘/Source/Data’ :
后端模板的路徑,務必以 / 開頭。
您還可以修改此路徑以增加代碼安全。
如果修改了此配置項,請務必確保已經存在對應的擁有 讀寫權限 的模板目錄。
CacheMatch (Array) (省略) :
前端語法捕獲規則的正則表達式的數組,其中元素的鍵為 規則名稱 ,值為 正則表達式 。
您還可以通過修改此配置項自行設計前端語法。
請確保在 CacheReplace 配置項中有對應的替換規則。
CacheReplace (Array) (省略) :
前端語法替換規則的數組,其中元素的鍵為 規則名稱 ,值為 替換表達式 。
請確保在 CacheMatch 配置項中有對應的捕獲規則。
Compile()方法
語法
Cache :: Compile ( 傳參數組 )
說明
建立或更新單個緩存。
此方法 支持 中文參數名。
參數
path(路徑) (Stng) <必須>:
模板文件的 相對路徑 ,即不包含模板文件夾的路徑,并且不含后綴名,例如:/user/login 。
通常情況下,此參數的值就是頁面的 I 。
force(強制編譯) (Bool) FALSE:
是否強制編譯緩存,默認關閉。
當傳入的值為 TRUE 時,代表忽略緩存的修改時間,再次建立緩存。
傳入的字符串可同時包含上述字符。
返回
無。
示例
更新訪問路徑為 /user/login 的頁面的緩存,且無論緩存文件是否過期,都 強制編譯 :
ReBuild()方法
語法
Cache :: ReBuild ()
說明
重建所有緩存。
參數
無。
返回
無。
示例
Cache::ReBuild();
Mysql
模塊簡述
本模塊底層通過 MySQLi 驅動,進行 CD (增刪改查)以及執行自定義SQL的作。
依賴
本模塊依賴于基模塊 Log 。
模塊配置
配置文件位于 /Config/Mysql.php 。
Log (Bool) FALSE :
用以指定是否將報錯寫入志。
TRUE 代表寫入志、FALSE 代表不寫入志,默認不寫入志。
RW_Splitting (Bool) FALSE:
用以指定讀寫分離是否開啟,當值為 TRUE 時開啟,值為 FALSE 時關閉。
讀寫分離按照 一主多從 模式進行,其中 deflt 組為寫入組,其余組為讀取組,讀取組選擇的方式是 隨機選取 。
如果要使用讀寫分離功能,至少需要一個讀取組和一個寫入組,此外您還需要對這些數據庫進行 額外的 主從同步配置。
DbInfo (Array) (省略) :
此配置項為一個二維數組(Array),用以指定數據庫。在第一維數組中, 鍵 為配置組名稱, 值 為一個數組,且該數組(即第二維數組)只能有以下五個元素:
鍵為 address ,值為數據庫地址。如果非遠程數據庫,請使用默認值 localhost ;
鍵為 username ,值為數據庫用戶名;
鍵為 password ,值為數據庫密碼;
鍵為 dbname ,值為數據庫名稱;
鍵為 port ,值為數據庫端口號。
其中,配置組deflt 不可刪除 ,也不可將deflt改為其他名稱,可以在第一維數組中增加更多的元素以配置多數據庫。
公共參數
表的指定
table(表) (Stng | Array) <必須>:
用以指定所作的數據表表名。
當本參數為 Stng 類型時,表示僅作一個表。
當本參數為 Array 類型時,數組鍵無需定義,每一個元素的值代表一個需要作的表。
WHERE子句
field(字段) (Stng | Array) NULL:
用以指定查詢條件中的字段。
本參數值的類型應當與參數 value 保持一致,且傳入本參數時, value 參數也必須被傳入。
當本參數為 Stng 類型時,表示僅限定一個查詢條件。
當本參數為 Array 類型時,數組鍵無需定義,每一個元素的值代表一個限制條件,且元素與參數 value 以及參數 condition (如果傳入)中的元素保持相互對應。
如需進行多表作,可以將傳入的字段名設置為 <表名>*<字段名> ,例如 student*id 代表的就是 student 表的 id 字段。
value(值) (Stng | Array) NULL:
用以指定查詢條件中字段對應的值。
本參數值的類型應當與參數 field 保持一致,且傳入本參數時, field 參數也必須被傳入。
當本參數為 Stng 類型時,表示僅限定一個查詢條件。
當本參數為 Array 類型時,數組鍵無需定義,每一個元素的值代表一個字段,且元素與參數 field 以及參數 condition(如果傳入)中的元素保持相互對應。
condition(條件) (Stng | Array) ‘=’:
用以確定參數 field 和參數 value 之間的比較符以及與下一個條件之間的并列關系,以及指定各個條件之間的優先級關系。
當本參數為 Stng 類型時,表示僅限定一個查詢條件。
當本參數為 Array 類型時,數組鍵 無需定義 ,值為 比較符[,并列關系] 的字符串,其中比較符為字段與條件值之間的比較符( = ,<> ,> ,>= ,<= ,<> ,LIKE ,NOT LIKE ),并列關系為與下一個限制條件之間的并列關系( and 或 or ,未被定義時默認值為 and ),并且每一個元素與參數 field 和參數 value 中的元素保持相互對應。
如需進行多表作,可以將傳入的字段名設置為 <表名>*<字段名> ,例如 student*id 代表的就是 student 表的 id 字段。
此外,還可以在多個限定條件中,確定條件(或條件組合)之間的優先級。
即在最終的SQL中,框架會根據傳入的優先級參數的值,使用括號“()”對查詢條件進行優先級的指定,例如
… where `id` = ‘1’ and ( `ll` = ‘a’ or `class` > ‘3’ ) …
的查詢。
如需使用此特,則參數 condition 必須為數組,且數組的每一個元素的值將由 Stng 類型改變為 Array 類型,且包含兩個元素,且數組的鍵無需定義:
第一個元素的值為 比較符[,并列關系] 的字符串,該字符串的定義方式不再贅述。
第二個元素的值為 前置括號[,后置括號] 的字符串。其中前置括號為添加在該條件前的左括號,可以為0個或多個 ( ;后置括號為添加在該條件后、下一個并列關系符前的右括號,可以為0個或多個 ) 。
當僅需要添加右括號時,字符串應當定義為 ,后置括號 ,即起始字符為一個英文逗號。
若要實現上面的SQL,那么應該按下面的方式定義這三個參數:
order by子句
order(順序) (Stng | Array) 默認值見方法參數:
用以指定對結果排序時所依據的字段。
當本參數為 Stng 類型時,表示僅限定一個排序字段。
當本參數為 Array 類型時,數組鍵無需定義,每一個元素的值代表一個排序所依據的字段,且元素與參數 desc (如果傳入)中的元素保持相互對應。
如需進行多表作,可以將傳入的字段名設置為 <表名>*<字段名> ,例如 student*id 代表的就是 student 表的 id 字段。
desc(降序) (Bool | Array) FALSE:
用以指定是否使用倒序的排序方式。
當本參數為 Bool 類型時,則指定所有字段的排序方式,TRUE 代表倒序、FALSE 代表正序,默認倒序。
當本參數為 Array 類型時,數組鍵無需定義,每一個元素的值為一個字段排序所依據的方式,且元素與參數 order 中的元素保持相互對應。
例如,將結果按照字段 id 正序排序,并且按照 money 倒序排序:
如需進行多表作,可以將傳入的字段名設置為 <表名>*<字段名> ,例如 student*id 代表的就是 student 表的 id 字段。
其它子句
limit(限制) (Array) NULL:
用以從 位置偏移量 為起始行取得 指定行數 的記錄。
數組的鍵無需定義,當數組僅存在一個元素時,此元素定義 行數 ,此時位置偏移量 默認為0 ;當數組存在兩個元素時,第一個元素定義 位置偏移量 ,第二個元素定義 行數 。
例如,從結果中的第3行開始取15行:
$Limit=array(2,15);
//偏移量從0開始計算。
index(索引) (Int) NULL:
用以指定執行作時使用的索引。
sql(sql) (Stng) NULL:
附加執行自定義的SQL。
gup_by(分組) (Stng | Array) NULL:
用以指定對結果分組時所依據的字段。
當本參數為 Stng 類型時,表示僅指定一個分組依據的字段。
當本參數為 Array 類型時,數組鍵無需定義,每一個元素的值代表一個排序所依據的字段。
如需進行多表作,可以將傳入的字段名設置為 <表名>*<字段名> ,例如 student*id 代表的就是 student 表的 id 字段。
field_limit(字段限制) (Stng | Array) *:
用以指定取回結果的字段范圍。
當本參數為 Stng 類型時,表示僅指定一個取回的的字段。
當本參數為 Array 類型時,數組鍵無需定義,每一個元素的值代表一個需要取回的字段。
* 代表取回所有字段。
如需進行多表作,可以將傳入的字段名設置為 <表名>*<字段名> ,例如 student*id 代表的就是 student 表的 id 字段。
data(數據) (Array) 默認值見方法參數:
用以指定需要插入或更新的數據。
本參數中 鍵 為字段名, 值 為字段名所對應的值。
如需進行多表作,可以將傳入的字段名設置為 <表名>*<字段名> ,例如 student*id 代表的就是 student 表的 id 字段。
升級指南
從4.0.2升級到當前版本
備份所有代碼文件 ;
閱讀 入門指南 ;
覆蓋 /Core 路徑下的全部文件;
覆蓋 /Config 路徑下的全部文件,并參考備份代碼中配置文件,更改新版本配置文件中的 配置項 ;
覆蓋 /Web/index.php 文件;
如果自定義了報錯頁樣式,請進行修改。
將所有模板中的 exit;# 刪除。
參照 入門指南 修改模板文件中的 模塊語法 為標準的靜態方法調用語法。