PHP code example of firerabbit / engine

1. Go to this page and download the library: Download firerabbit/engine library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

firerabbit / engine example snippets


server {
    listen 80;
    server_name firerabbit-engine.ht;

    location ~* \.(gif|jpg|jpeg|png|css|js|ico|ttf|woff|woff2|svg|map)$ {
        root /www/firerabbit-engine/public;
    }

    location / {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        
        if (!-e $request_filename){
            proxy_pass http://php-fpm74:9527; # 注意
        }
    }
}

 
return [];


/**
 * Created by PhpStorm
 * Author:FireRabbit
 * Date:2021/2/19
 * Time:12:39
 **/

namespace App\Http\Controller;

use FireRabbit\Engine\Controller\Controller;

class IndexController extends Controller
{
    public function index()
    {
        $this->showMessage('hello world!');
    }
}



$router = new \FireRabbit\Engine\Route\Router();

$router->setConfig([

    'namespace' => 'App\\Http\\Controller\\',

])->group(function () use ($router) {

    $router->get('/', 'IndexController@index');

});

return $router;



use FireRabbit\Engine\Http\HttpServer;

date_default_timezone_set("Asia/Shanghai");
define('ROOT_PATH', __DIR__);

worker_num' => 2,
]);

$router = middleware)
    ->loadRouter($router)
    ->start();

public function test()
{
    $value = Cache::driver()->remember('test', 5, function () {
        return 'aaa';
    });

    $this->showMessage(json_encode($value));
}

$token = Auth::encode([
            'test' => 123,
        ], 60);

var_dump($token, base64_decode($token));

$value = Auth::decode($token);

var_dump($value);



$router = new \FireRabbit\Engine\Route\Router();

$router->setConfig([

    'namespace' => 'App\\Http\\Controller\\Home\\',
    
    // 方法一,在分组配置里添加
    'middleware' => ['a'],

])->group(function () use ($router) {

    // 方法二,在单独的路由里添加
    $router->get('/test', 'IndexController@test')->middleware(['a']);

});

return $router;


/**
 * Created by PhpStorm
 * Author:FireRabbit
 * Date:2021/2/18
 * Time:21:46
 **/

namespace App\Http\Task;

use FireRabbit\Engine\Mail\Mailer;
use FireRabbit\Engine\Task\TaskInterface;

class MailTask implements TaskInterface
{
    public function handle($params)
    {
        var_dump('调用handle处理任务');

        $mailer = new Mailer();
        $mailer->subject('测试异步任务发送邮件')
            ->body('这是邮件内容')
            ->address($params['email'])
            ->send();

        return '发送成功';
    }

    public function finish($result)
    {
        var_dump($result);
    }
}


/**
 * Created by PhpStorm
 * Author:FireRabbit
 * Date:2/9/21
 * Time:1:17 PM
 **/

namespace App\Http\Controller\Home;

use App\Http\Task\MailTask;
use FireRabbit\Engine\Controller\Controller;

class IndexController extends Controller
{
    public function test()
    {
        $this->dispatch(MailTask::class, ['email' => '[email protected]']);
        $this->showMessage('ok');
    }
}