baagee / nknkn
PHP NkNkn framework
v0.4.0
2020-09-27 12:06 UTC
Requires
- php: >=7.1
- baagee/async-task: 0.*.*
- baagee/php-config: 0.*.*
- baagee/php-cookie: 0.*.*
- baagee/php-curl-request: 0.*.*
- baagee/php-debug-trace: 0.*.*
- baagee/php-event: 0.*.*
- baagee/php-log: 0.*.*
- baagee/php-mysql: 0.*.*
- baagee/php-onion: 0.*.*
- baagee/php-params-validator: 0.*.*
- baagee/php-router: 0.*.*
- baagee/php-session: 0.*.*
- baagee/php-template: 0.*.*
- baagee/wtf-error: 0.*.*
- psr/container: ^1.0
- dev-master
- v0.4.0
- v0.3.9
- v0.3.8
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.38
- v0.1.37
- 0.1.36
- 0.1.35
- 0.1.34
- 0.1.33
- 0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
This package is auto-updated.
Last update: 2024-12-27 21:36:43 UTC
README
将以下包组合成小框架,轻量+自定义组合各个模块,定制属于你的小框架
baagee/async-task: php process task library https://github.com/baagee/async-task.git
baagee/php-config: PHP Config library https://github.com/baagee/php-config.git
baagee/php-cookie: PHP Cookie library https://github.com/baagee/php-cookie.git
baagee/php-curl-request: PHP Curl Request library https://github.com/baagee/php-curl-request.git
baagee/php-debug-trace: PHP Debug Trace https://github.com/baagee/php-debugtrace.git
baagee/php-event: PHP event library https://github.com/baagee/php-event.git
baagee/php-log: PHP Log library https://github.com/baagee/php-log.git
baagee/php-mysql: PHP mysql library https://github.com/baagee/php-mysql.git
baagee/php-onion: PHP onion layer https://github.com/baagee/php-onion.git
baagee/php-params-validator: PHP Params Validator Library https://github.com/baagee/php-params-validator.git
baagee/php-router: PHP Router library https://github.com/baagee/php-router.git
baagee/php-session: PHP Session library https://github.com/baagee/php-session.git
baagee/php-template: PHP Template library https://github.com/baagee/php-template.git
baagee/wtf-error: What the fuck! PHP error handler https://github.com/baagee/wtf-error.git
psr/container: Common Container Interface (PHP FIG PSR-11) https://github.com/php-fig/container.git
快速开始
通过 php ./vendor/bin/creater composer.json_dir app_name
来快速在vendor同级目录创建app相关目录和示例代码
例如
$> php ./vendor/bin/creater ./ appName [11:05:52]
创建文件夹:app 成功
创建文件夹:app/Action 成功
创建文件夹:app/Controller 成功
创建文件夹:app/Event 成功
创建文件夹:app/Library 成功
创建文件夹:app/Middleware 成功
创建文件夹:app/Model 成功
创建文件夹:app/Script 成功
创建文件夹:app/View 成功
创建文件夹:config 成功
创建文件夹:runtime 成功
创建文件夹:public 成功
public/index.php 创建成功
composer.json 添加自动加载命名空间App
app/routes.php 创建成功
app/Middleware/ReturnJson.php 创建成功
app/Action/Test/Hello.php 创建成功
尝试访问一下 /api/hello
OVER
app目录结构
必须的目录在vendor同级别有
app// 项目具体代码 里面有控制器,中间件,模型等类
public // webroot目录 index.php所在目录
config // 配置文件所在目录
runtime // 运行时缓存等目录,要保证可写
vendor // composer安装文件夹
comspoer.json
至于目录下的子目录,自己自定义就行
详细参考结构请看示例 【sql-profiling】mysql sql语句性能分析平台
框架运行流程
app初始化
触发app初始化之后的事件
触发路由初始化之前事件
路由初始化
触发路由初始化之后事件
触发路由匹配之前事件
if 路由匹配成功
触发路由匹配之后事件
Cookie中间件开始
Session中间件开始
自定义中间件开始
Action执行业务逻辑
自定义中间件结束
Session中间件结束
Cookie中间件结束
else
http_response_code(404)
请求结束输出响应
支持自定义Log存储方式,默认文件
只需要继承并实现BaAGee\Log\Base\LogHandlerAbstract
,并在log.php配置文件指定handler类名即可
支持自定义Log格式
只需要继承并重写BaAGee\Log\Base\LogFormatter
的getLogString
方法即可,并在log.php配置文件指定formatter类名即可
支持中间件
框架默认中间件有Session,Cookie,并能根据有无对应配置文件判断是否开启,用户可自定义中间件,比如验证登陆,权限之类的
支持事件触发,框架内置的事件有
// app初始化后 \BaAGee\NkNkn\App::APP_AFTER_INIT_EVENT; // 路由初始化前 \BaAGee\NkNkn\Router::ROUTER_BEFORE_INIT_EVENT; // 路由初始化后 \BaAGee\NkNkn\Router::ROUTER_AFTER_INIT_EVENT; // 路由匹配执行前 \BaAGee\NkNkn\Router::ROUTER_BEFORE_DISPATCH_EVENT // 路由匹配执行后 \BaAGee\NkNkn\Router::ROUTER_AFTER_DISPATCH_EVENT
session支持file,memcache,redis储存
通过修改session.php配置文件的handler
类名来修改储存方式,为空表示file