Skip to content

Latest commit

 

History

History
177 lines (145 loc) · 5.22 KB

README.md

File metadata and controls

177 lines (145 loc) · 5.22 KB

NB Framework

Latest Version Php Version Swoole Version NB Wiki NB Framework License

NB Framework 是一款深度兼容Swoole和FPM双模式运行,并且轻量,全功能,自由度高,无上手门槛的PHP开发框架!

优势:

  • 自由在swoole和php-fpm两种运行方式之间切换
  • 高度自由的自定义开发模式,打造你自己独特的项目风格
  • 独立的DEBUG调试页面,使多端合作开发简单方便
  • 简单而强大的配置方式

特性:

NB提供了WEB开发中几乎所有的基础功能,且依旧保持轻量。你可以很容易的从头到尾构建一个强大的网站应用。

  • 全局的依赖注入容器
  • 支持 Swoole 扩展
  • 可扩展的驱动式组件开发
  • 国际化(i18n)支持
  • 数据库 ORM
  • 强大的调试系统
  • 视图模版
  • 快速灵活的参数验证器
  • 多类型的缓存驱动
  • 多模块支持
  • 命令行运行模式
  • 高内聚低耦合
  • 内置协程 HTTP, TCP, WebSocket 网络服务器
  • 协程 Mysql, Redis 客户端
  • 强大的命令行工具
  • Composer管理

快速使用

一种最简单最快速的使用方式

1.在你的应用目录下新建如下结构:

/home/www/demo/                      项目根目录
├─application                        应用目录
│  ├─controller                      控制器目录
│  │  └─Index.php                    测试控制器
├─public                                
│  └─index.php                       入口文件
├─nb                                 框架系统目录
├─tmp                                缓存目录,需要可读写权限                                

框架系统目录就是克隆或下载framework到根目录,并改名为nb即可。

2.编写入口文件:

<?php
//项目的根路径
define('_APP_',__DIR__.'/..');

//加载初始化文件
include ('../nb/boot.php');

\nb\Config::register();

\nb\Dispatcher::run();

3.编写测试控制器

<?php
namespace controller;
class Index {

    public function index() {
        echo '<h1>Welcome to use NB Framework!</h1>';
    }
}

4.配置Nginx

server {
    listen 80;
    server_name demo.ol.cx;
    index index.php;
    root /home/www/demo/public/;

    location / {
        rewrite ".+" "/index.php" last;
    }

    location ~ .*\.php {
        fastcgi_pass   127.0.0.1:9100;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

    location ~ .*\.(svg|woff2|map|html|woff|ttf|ico|css|js|gif|jpg|jpeg|png|bmp|swf)$ {
        expires 90d;
    }
}

5.重启nginx,在浏览器访问demo.ol.cx,输出Welcome to use NB Framework则表示成功

使用Swoole启动应用,确保swoole已经安装成功!

1.再上面的目录下添加如下结构

/home/www/demo/                      项目根目录
├─application                        应用目录
│ ...
├─bin                                   
│  └─server                          服务启动文件
├─config.inc.php                     框架配置文件

2.编写服务启动文件

#!/usr/bin/env php
<?php
//项目的根路径
define('_APP_',__DIR__.'/..');

//加载初始化文件
include ('../nb/boot.php');

\nb\Config::register();
\nb\Console::run('server');

编写完成后,给其执行权限:chmod +x server

3.编写框架配置文件

<?php
return [
    'debug' => true,
    
    'server' => [
        'driver'=>'http',
        'host'=>'0.0.0.0',
        'port'=>9501,
        'max_request'=>100,//worker进程的最大任务数
        'worker_num'=>2,//设置启动的worker进程数。
        'dispatch_mode'=>2,//据包分发策略,默认为2
        'debug_mode'=>3,
        'enable_gzip'=>0,//是否启用压缩,0为不启用,1-9为压缩等级
        'log_file'=>__APP__.'tmp'.DS.'swoole-http.log',
        'enable_pid'=>__APP__.'tmp'.DS.'swoole-http.pid',
        'daemonize'=>false,
        //异步任务处理配置
        'task_worker_num'=>2,
    ]
];

4.运行

# 如果你的php命令已经加入系统环境里了,可以直接如下执行
./server start

# 如果没有再系统环境里,则需要使用完整的php命令路径来执行,如下,注意使用自己的路径
/usr/bin/php server start

5.看控制台输出,并浏览器访问127.0.0.1:9501,输出Welcome to use NB Framework则表示成功.

更多功能,可以查看开发手册

协议

NB Framework的开源协议为apache 2.0,详情参见LICENSE。

其他

欢迎各位老铁进群一起写代码。如果感兴趣,也请帮点个star吧!