KanaPHP框架介紹

eccozhou發表於2017-01-16

關於

KanaPHP是一個輕量級快速開發框架。框架提供了一致的API介面,使得使用介面儘可能流暢;由於框架本身不依賴其他庫,這使得框架本身執行速度非常快;框架希望使用最簡單的方式make thing done,減少開發者的開發成本。

安裝

0.環境要求

  • PHP >= 5.4.0
  • PDO擴充套件
  • OpenSSL擴充套件
  • MbString擴充套件

1.安裝

下載release包安裝

開啟下面其中一個release包下載頁面,選擇最新release包下載:

https://github.com/kanaphp/kanaphp-release/releases
https://coding.net/u/eccozhou/p/kanaphp/git/tags

解壓zip包,進入專案根目錄(下文未特殊註明,目錄起始位置均為此根目錄)

cd kanaphp-xxx #進入專案根目錄

2.配置

建立app.ini配置檔案

按如下操作複製app.ini.example來新建app.ini,然後編輯app.ini以適配當前環境;

cd config
cp app.ini.example app.ini

修改runtime資料夾許可權

chmod -R 777 runtime/

3.執行

使用PHP內建Server啟動App

cd public
php -S localhost:9090

4.驗證

在瀏覽器開啟http://localhost:9090驗證頁面是否出現使用者登錄檔單頁面,點選表單提交是否出現錯誤資訊顯示;如均能顯示則表示安裝成功。

目錄結構

app                             # App名稱空間目錄
    Console                     # 包含命令列Action
        Blog/DailyUpdate.php    # ./kana blog:dailyUpdate
    Exception                   # 包含使用者自定義異常
    Http                        # 包含Http Action
        Home/Index.php          # http://localhost/home/index
    Middleware                  # 中介軟體資料夾
    Model                       # 存放業務Model
    view                        # 包含普通檢視和佈局檢視
bootstrap                       # bootstrap
    app.php                     # app.php
config                          # 包含應用配置資訊
    app.ini                     # 配置對映檔案
    app.php                     # app配置檔案
    database.php                # 資料庫配置檔案
    middleware.php              # 中介軟體配置檔案
    redis.php                   # Redis配置檔案
    route.php                   # 路由配置檔案
    session.php                 # Session配置檔案
public                          # 應用web root, 包含公開訪問的內容
    index.php                   # 應用http入口
runtime                         # runtime目錄,包含程式執行期間生成的檔案
    compiled                    # 編譯檔案目錄
    log                         # 日誌目錄
    session                     # 檔案session目錄
vendor                          # composer vender

程式碼生成工具

為了減少新建類時程式碼複製等重複工作,KanaPHP使用命令列簡化建立Model、中介軟體、Action的工作;

# 建立User Model
./kana make:model User

# 建立CheckToken中介軟體
./kana make:middleware CheckToken

# 建立介面為order/info的HTTP介面
./kana make:http order/info

# 建立order:dailyUpdate定時任務
./kana make:console order:dailyUpdate

介面預覽

雖然KanaPHP將名稱空間儘量簡化,使用一個類時還是需要知道類位於哪個名稱空間。因此引入應用component,將常用功能封裝成一個個的元件,然後通過app()作為入口訪問,常用元件及API如下:

# log
app()->log->info(`some thing hanppen`, $extraInfo);
app()->log->notice();
app()->log->warning();
app()->log->error();
app()->log->data(`event_name`, $data); # 業務日誌打點

# cookie
app()->cookie->set(); # 預設加密,防止客戶端修改
app()->cookie->get();

# session
app()->session->set();
app()->session->get();

# 資料庫
app()->db->table(`user`)->where(`id`, 1)->first();
app()->db->table(`order`)->where(`type`, `=` 1)->all();

# 加密
app()->encrypter->encrypt($data);
app()->encrypter->decrypt($data);

# Redis
app()->redis->set();
app()->redis->get();

# 驗證
$post = $request->post();
$rules = [
    `title` => `required|string|between:5,50|name:標題`,
    `content` => `required|string|name:內容`,
    `mobile` => `required|mobile|name:手機號碼`,
    `email` => `required|email|name:郵箱地址`,
];
app()->validator->validate($post, $rules);

文件

詳細文件編寫中

貢獻

https://github.com/kanaphp/kanaphp
https://github.com/kanaphp/framework


相關文章