zzliujianbo / Fine

Fine是一款PHP脚手架框架

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fine

Fine是一款脚手架框架。提供了路由、视图等功能。路由理念参考了LaravelPythonbottle两个框架理念。支持bottlemount挂载方式。路由框架采用的是fast-route框架。视图使用的是原生的PHP页面。ORM框架采用的是 Eloquent ORM。

版本要求

  • PHP 5.3版本以上

目录说明

  • Fine框架主目录
  • public http服务器指向目录
  • src 代码存放位置
  • src\Common 项目的公用代码
  • src\Controllers controller目录
  • resources 一些资源文件
  • resources\views 视图存放位置
  • storage 存储目录
  • storage\cache 文件缓存的目录
  • storage\session session目录

配置文件

配置文件支持Dotenv方式。修改src/.env文件为你的配置。

APP_DEBUG=true      #是否开启DEBUG
APP_TIMEZONE=PRC    #时区

CACHE_DRIVER=file   #缓存存放文件

DB_HOST=127.0.0.1   #数据库服务器
DB_DATABASE=fine    #数据库名字
DB_USERNAME=fine    #数据库用户名
DB_PASSWORD=fine    #数据库密码

事件调用

修改src\event.php文件。

// 添加事件方法
// 可以添加多个名为route的事件方法
$app->bindEvent('route', function () {
    return 'route';
});

// 触发名为route的事件方法
// 可以在此做一些权限验证、一些中间件的方法调用
$responses = $app->triggerEvent('route');

Controller

首先在src\Controllers目录下新建一个controller文件,可以参考HomeController.php文件。

namespace App\Controllers;

use Fine\Controller;
use Fine\Request;
use Stringy\Stringy;

use App\Models\User;

class TestController extends Controller
{

    public static function routes()
    {
        $route = [
            ['method' => 'get', 'uri' => '/', 'action' => 'getIndex'],
        ];
        return $route;
    }

    public function getIndex()
    {
        return 'test';
    }
}

然后修改routes.php文件,将TestController加到主路由中。

$app->mount(TestController::class, '/test');

这个controller类中需要一个静态方法routes。作用是为了将本controller类中的action返回给fast-route框架,供路由框架进行分发。

public static function routes()
{
    $route = [
        [
            'method' => 'get',      //http method
            'uri' => '/',           //访问的URL
            'action' => 'getIndex'  //函数名字
        ],
    ];
    return $route;
}

其中访问的URL路由是由mounturl+数组中的uri联合组成。

部署

部署时请将文档目录指向到public目录。

About

Fine是一款PHP脚手架框架

License:Apache License 2.0


Languages

Language:PHP 99.7%Language:Shell 0.2%Language:Blade 0.1%