KanaPHP
關(guān)于
KanaPHP是一個(gè)輕量級(jí)快速開(kāi)發(fā)框架⊥首樱框架提供了一致的API接口量淌,使得使用接口盡可能流暢;由于框架本身不依賴其他庫(kù)嫌褪,這使得框架本身運(yùn)行速度非逞绞啵快;框架希望使用最簡(jiǎn)單的方式make thing done笼痛,減少開(kāi)發(fā)者的開(kāi)發(fā)成本裙秋。
安裝
0.環(huán)境要求
- PHP >= 5.4.0
- PDO擴(kuò)展
- OpenSSL擴(kuò)展
- MbString擴(kuò)展
1.安裝
下載release包安裝
打開(kāi)下面其中一個(gè)release包下載頁(yè)面,選擇最新release包下載:
https://github.com/kanaphp/kanaphp-release/releases
https://coding.net/u/eccozhou/p/kanaphp/git/tags
解壓zip包缨伊,進(jìn)入項(xiàng)目根目錄(下文未特殊注明摘刑,目錄起始位置均為此根目錄)
cd kanaphp-xxx #進(jìn)入項(xiàng)目根目錄
2.配置
建立app.ini配置文件
按如下操作復(fù)制app.ini.example來(lái)新建app.ini,然后編輯app.ini以適配當(dāng)前環(huán)境刻坊;
cd config
cp app.ini.example app.ini
修改runtime文件夾權(quán)限
chmod -R 777 runtime/
3.運(yùn)行
使用PHP內(nèi)置Server啟動(dòng)App
cd public
php -S localhost:9090
4.驗(yàn)證
在瀏覽器打開(kāi)http://localhost:9090
驗(yàn)證頁(yè)面是否出現(xiàn)用戶注冊(cè)表單頁(yè)面枷恕,點(diǎn)擊表單提交是否出現(xiàn)錯(cuò)誤信息顯示;如均能顯示則表示安裝成功谭胚。
目錄結(jié)構(gòu)
app # App命名空間目錄
Console # 包含命令行Action
Blog/DailyUpdate.php # ./kana blog:dailyUpdate
Exception # 包含用戶自定義異常
Http # 包含Http Action
Home/Index.php # http://localhost/home/index
Middleware # 中間件文件夾
Model # 存放業(yè)務(wù)Model
view # 包含普通視圖和布局視圖
bootstrap # bootstrap
app.php # app.php
config # 包含應(yīng)用配置信息
app.ini # 配置映射文件
app.php # app配置文件
database.php # 數(shù)據(jù)庫(kù)配置文件
middleware.php # 中間件配置文件
redis.php # Redis配置文件
route.php # 路由配置文件
session.php # Session配置文件
public # 應(yīng)用web root, 包含公開(kāi)訪問(wèn)的內(nèi)容
index.php # 應(yīng)用http入口
runtime # runtime目錄徐块,包含程序運(yùn)行期間生成的文件
compiled # 編譯文件目錄
log # 日志目錄
session # 文件session目錄
vendor # composer vender
代碼生成工具
為了減少新建類時(shí)代碼復(fù)制等重復(fù)工作,KanaPHP使用命令行簡(jiǎn)化創(chuàng)建Model灾而、中間件胡控、Action的工作;
# 創(chuàng)建User Model
./kana make:model User
# 創(chuàng)建CheckToken中間件
./kana make:middleware CheckToken
# 創(chuàng)建接口為order/info的HTTP接口
./kana make:http order/info
# 創(chuàng)建order:dailyUpdate定時(shí)任務(wù)
./kana make:console order:dailyUpdate
接口預(yù)覽
雖然KanaPHP將命名空間盡量簡(jiǎn)化旁趟,使用一個(gè)類時(shí)還是需要知道類位于哪個(gè)命名空間昼激。因此引入應(yīng)用component,將常用功能封裝成一個(gè)個(gè)的組件锡搜,然后通過(guò)app()
作為入口訪問(wèn)癣猾,常用組件及API如下:
# log
app()->log->info('some thing hanppen', $extraInfo);
app()->log->notice();
app()->log->warning();
app()->log->error();
app()->log->data('event_name', $data); # 業(yè)務(wù)日志打點(diǎn)
# cookie
app()->cookie->set(); # 默認(rèn)加密,防止客戶端修改
app()->cookie->get();
# session
app()->session->set();
app()->session->get();
# 數(shù)據(jù)庫(kù)
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();
# 驗(yàn)證
$post = $request->post();
$rules = [
'title' => 'required|string|between:5,50|name:標(biāo)題',
'content' => 'required|string|name:內(nèi)容',
'mobile' => 'required|mobile|name:手機(jī)號(hào)碼',
'email' => 'required|email|name:郵箱地址',
];
app()->validator->validate($post, $rules);
文檔
詳細(xì)文檔編寫(xiě)中
貢獻(xiàn)
https://github.com/kanaphp/kanaphp
https://github.com/kanaphp/framework