新一代輕量級PHP擴充套件框架 Asf

fanjiapeng發表於2018-05-11

新一代輕量級PHP擴充套件框架 Asf

一、Asf 是什麼?

全稱 API Services Framework, 用C語言編寫的高效能PHP框架, 工作變得很簡單。

Asf 具有很多微創新, 屬於新一代輕量級的MVC框架,內部稱為DLS。

開源之路任重而道遠, 我們共同砥礪前行,希望大家多多支援。

二、宗旨

  • 把過去多行程式碼才能實現的功能, 簡化成一行程式碼實現一個功能, 有效得減少了PHP程式碼量、錯誤率
  • 優化重複程式碼, 提升專案開發效率, 開發者更應該把精力花在業務上(您是否經歷過, 老闆上午提需求, 下午就得對外發布)
  • 最大化做到遵循PHP PSR規範
  • 解決使用者輸入, 服務端輸出的安全性問題
  • 解決原生PHP框架嚴重消耗IO、記憶體、CPU的問題

三、特點

重要:穩如泰山,安如磐石。洞察異常,快人一步。

  • 在快速定位問題、高效業務開發、大叢集部署方面富有自己的魅力
  • 999 特殊錯誤號, 攔截程式在runtime時的所有異常
  • 提供 Asf_Sql_LogAsf_Err_Log 機制記錄介面執行時資訊
  • 提供實用的豐富的開發類庫, 類隨PHP程式啟動就常駐記憶體
  • 提供 Logger Buffer Cache , 檔案描述符自動關閉機制
  • 強大的 GPC 機制, 外部($_GET, $_POST, $_COOKIE)引數操作變得簡單
  • 提供配置檔案常駐記憶體, 提升配置檔案內容快速讀取能力(詳細說明)

四、優點

  • 用C語言開發的PHP框架,只有少量的效能消耗
  • 支援本地類庫自動載入規則(library)
  • 支援多種配置檔案格式(INI, PHP, PHP Array)
  • 支援多種路由協議, 預設使用RESTful路由模式, 提供方便的路由配置器
  • 提供DB輔助函式(MySQL, Sqlite, Pgsql), 人性化Query Builder
  • 遵循PHP PSR Standards, PHP Coding Standards
  • 提供強大的條件判斷機制(Asf_Ensure)
  • 框架結構簡單, PHP標準的擴充套件安裝方式。框架執行速度更快, 更少的記憶體、CPU使用
  • 框架無過度設計, 沒有超厚的幫助手冊, 也不用去學習一套新的程式設計語法

五、流程圖

新一代輕量級PHP擴充套件框架 Asf

六、效能

新一代輕量級PHP擴充套件框架 Asf

6.1 總結

6.1.1 壓測結論

沒有挑取漂亮的資料, 或者配置一個為了壓測的最優環境. 只是簡單地採用以大部分web機器使用的環境進行測評。

這裡只是給出了一種測試方法, 通過多次不同併發數測試結果得知, Asf 與原生 PHP 做比較, 效能消耗只有 6% ~ 15%

6.1.2 業務開發速度結論

採用 Asf 框架開發業務, 程式碼量能節約 20% ~ 25%。假如專案開發需要4天 x 8小時, 能節約出整整1天 x 8小時的工作時間。

七、安裝

7.1 環境要求

  • PHP 7.0 +
  • GCC 4.4.0+ (Recommended GCC 4.8+)

7.2 下載

git clone https://github.com/yulonghu/asf.git
複製程式碼

7.3 在Linux/Unix/Mac下編譯

$ /path/to/phpize
$ ./configure --with-php-config=/path/to/php-config
$ make && make install複製程式碼

7.4 文件

www.box3.cn/phpasf/inde…

八、開始使用

8.1 使用內建工具生成空專案

/php-bin-path/php /tools/asf_project.php /to-path/project_name
複製程式碼

8.1.1 目錄結構

+ public
  | - index.php
+ config
  | - config.php
+ library
+ modules
    | - Bootstrap.php
    | - Constants.php
  + api
    |+ services
	   |- Index.php  // Default service
    |+ logics
    |+ daos
複製程式碼

8.1.2 config/config.php

<?php
$configs = array(
    'asf' => array(
        'root_path' => realpath(dirname(__FILE__)),
    )
);

return $configs;複製程式碼

8.1.3 public/index.php

<?php
define('APP_PATH', dirname(__DIR__));

$app = new Asf_Application(APP_PATH . '/config/config.php');
$app->run();複製程式碼

8.1.4 Default service

<?php
class IndexService
{
    public function indexAction()
    {
        return 'Hello World';
    }
}複製程式碼

九、在Nginx/Apache/Lighttpd中執行

www.your-domain.com

9.1 輸出結果

{
    "errno": 0,
    "data": "Hello World"
}複製程式碼

十、License

Asf is open source software under the PHP License v3.01


相關文章