JKDYAF - V2.0.0 基於 YAF + SWOOLE APi框架

JKDCRY發表於2021-09-18

JKDYAF - V2.0.0 基於 YAF + SWOOLE APi框架

JkdYaf - 基於 YAF + SWOOLE 高效能API框架

介紹

簡單、直接、非傳統

JkdYaf 一個簡單、高效能常駐記憶體的PHP框架。

基於Yaf與Swoole開發,效能較傳統基於 PHP-FPM 的框架有質的提升。

一款專為Api開發的輕量級框架。一款面向中小型企業級專案的高可用、低門檻PHP開源框架。

詳細文件

特性

  • HTTP 服務
  • Redis連線池
  • Jwt 認證
  • 協程化
  • 定時任務
  • 日誌管理
  • 路由管理
  • Yac無鎖共享記憶體

伺服器要求

  • php 7.x 或更高版本
  • yaf 3.3.x 或更高版本
  • swoole 5.4.x 或更高版本
  • mysql
  • redis
  • yac (可選)

安裝JkdYaf

git clone https://github.com/crytjy/JkdYaf.git

php.ini配置

extension=yaf.so
[yaf]   
yaf.environ=product
yaf.cache_config=1
yaf.use_namespace=1
yaf.library="/path/JkdYafLibrary/"  //全域性類庫的目錄路徑
 extension=yac.so
[yac]
;是否開啟yac,1表示開啟, 0表示關閉
yac.enable=1 
;4M可以得到32768個key, 32M可以得到262144個key
yac.keys_memory_size=4M
;申請的最大value記憶體
yac.values_memory_size = 64M 
;是否壓縮資料ss
yac.compress_threshold = '-1' 
;關閉在cli下使用yac
yac.enable_cli = 1

修改後需要重啟php service php-fpm restart

app.ini配置

專案conf/app.ini
[common]
application.directory = APP_PATH "/app"
application.dispatcher.catchException = TRUE
application.dispatcher.throwException = TRUE
;本地類庫
application.library = APP_PATH "/library"
application.library.namespace = "Com"
;多模組(多個模組)
application.modules = "Api"
;域名
siteUrl = "http://localhost/"
;公共類庫路徑 (該路徑必須和php.ini配置裡填寫的一致)
comLibsPath = "/www/wwwroot/yaf/yafLibrary/"

#資料庫配置
[db]
db.host = "localhost"
db.port = 3306
db.dbname = "dbname"
db.username = "username"
db.password = "password~"
db.charset = "utf8mb4"

#日誌配置
[log]
;日誌保留天數
log.day = 7
;日誌路徑
log.path = APP_PATH "/runtime/log/"

[product : common : db : log]

jkdYaf.ini配置

專案conf/jkdYaf.ini
; JKDYAF 配置
[common]
ip = "0.0.0.0"
port = 12222    //監聽埠,隨意改
app_name = JkdYaf   //專案名稱(英文),多個專案時區分
master_process_name = JkdYaf-Master
manager_process_name = JkdYaf-Manager
event_worker_process_name = JkdYaf-Worker-%s
event_tasker_process_name = JkdYaf-Tasker-%s

; 記錄master和manager的程式id
pid_file = APP_PATH "/runtime/master.pid"
; 記錄worker的程式id
worker_pid_file = APP_PATH "/runtime/worker.pid"
; 記錄tasker的程式id
tasker_pid_file = APP_PATH "/runtime/tasker.pid"
; 記錄timer的程式id
timer_pid_file = APP_PATH "/runtime/timer.pid"

; 以下引數根據伺服器配置相應改動
[server]
process_num = 1
worker_num = 4
max_request = 30000
dispatch_mode = 3
log_file = APP_PATH "/runtime/swoole.log"
log_rotation = SWOOLE_LOG_ROTATION_DAILY

[product : common : server]

啟動

配置好後,進入專案根目錄,啟動專案
cd /yaf/php bin/JkdYaf.php startphp bin/JkdYaf.php start -d  //守護程式
瀏覽器訪問 http://localhost:12222/api/index

{“code”:1,”message”:”success”,”data”:”Hello JkdYaf !”}

github地址: github.com/crytjy/JkdYaf
gitee地址: gitee.com/jkdcry/JkdYaf

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章