KanaPHP框架介绍

KanaPHP

关于

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,409评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,590评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • 说比较容易,做到却比较困难。年少时我们有很多梦想,长大了以后发现好多都很难实现,有的已经消失不见,有的还在苦苦挣扎...
    墨高订阅号阅读 561评论 0 1
  • S小妖阅读 395评论 0 0