KanaPHP框架介紹

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末余爆,一起剝皮案震驚了整個(gè)濱河市纷宇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛾方,老刑警劉巖像捶,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件上陕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拓春,警方通過(guò)查閱死者的電腦和手機(jī)释簿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)硼莽,“玉大人庶溶,你說(shuō)我怎么就攤上這事《遥” “怎么了偏螺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)匆光。 經(jīng)常有香客問(wèn)我套像,道長(zhǎng),這世上最難降的妖魔是什么终息? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任夺巩,我火速辦了婚禮,結(jié)果婚禮上周崭,老公的妹妹穿的比我還像新娘柳譬。我一直安慰自己,他們只是感情好续镇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布征绎。 她就那樣靜靜地躺著,像睡著了一般磨取。 火紅的嫁衣襯著肌膚如雪人柿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天忙厌,我揣著相機(jī)與錄音凫岖,去河邊找鬼。 笑死逢净,一個(gè)胖子當(dāng)著我的面吹牛哥放,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播爹土,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼甥雕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了胀茵?” 一聲冷哼從身側(cè)響起社露,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琼娘,沒(méi)想到半個(gè)月后峭弟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體附鸽,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年瞒瘸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坷备。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡情臭,死狀恐怖省撑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俯在,我是刑警寧澤竟秫,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站朝巫,受9級(jí)特大地震影響鸿摇,放射性物質(zhì)發(fā)生泄漏石景。R本人自食惡果不足惜劈猿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潮孽。 院中可真熱鬧揪荣,春花似錦、人聲如沸往史。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)椎例。三九已至挨决,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間订歪,已是汗流浹背脖祈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刷晋,地道東北人盖高。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像眼虱,于是被迫代替她去往敵國(guó)和親喻奥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,104評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理捏悬,服務(wù)發(fā)現(xiàn)撞蚕,斷路器,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)过牙、插件诈豌、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,102評(píng)論 4 62
  • 說(shuō)比較容易矫渔,做到卻比較困難彤蔽。年少時(shí)我們有很多夢(mèng)想,長(zhǎng)大了以后發(fā)現(xiàn)好多都很難實(shí)現(xiàn)庙洼,有的已經(jīng)消失不見(jiàn)顿痪,有的還在苦苦掙扎...
    墨高訂閱號(hào)閱讀 582評(píng)論 0 1
  • S小妖閱讀 399評(píng)論 0 0