Code Monkey home page Code Monkey logo

framework's Introduction

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吧!

framework's People

Contributors

nbcx avatar olcx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

framework's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.