PHP 框架。

dev-master 2017-05-05 03:15 UTC

This package is auto-updated.

Last update: 2024-09-07 10:50:10 UTC


README

gugaio

Gugaiô - 框架

O Gugaiô é um framework PHP, desenvolvido com Silex e outros componentes, o mesmo já tem disponivel o ORM Eloquent, assim facilitando a manipulado de dados. O Gugaiô foi feito para facilitar o desenvolvimento de APIs, pois o mesmo já vem com autenticação JWT, assim aumentando a segunça a cada requisição.

关于

O Gugaiô foi desenvolvido com Silex na versão 2.0. Então você pode trabalhar tranquilamente com todas funcionalidades do mesmo no Gugaiô. O ORM utilizado no Gugaiô é o Eloquent, assim facilitando a manipulação de dados igual ao Laravel.

概要

  • 开始
  • 配置
  • 令牌
  • 电子邮件
  • 数据库
  • 路由
  • 模型
  • 控制器
  • 视图
  • gugaio 命令

开始

git clone https://github.com/jacsonsantos/gugaio.git
cd gugaio
composer install

配置

首先执行以下命令

php gugaio make:config

执行上述命令后,将生成以下文件 config.yml,现在我们可以配置应用程序了。
打开 config.yml

DEBUG: true

DEBUG 字段启用应用程序的调试。

VERSION: v1

API 版本

令牌

TOKEN:
    SECRET: 'yourSecret'
    ISS: ''
    JTI: '4f1g23a12aa'
    REMOTE: 'HMAC'
    EXPIRES: 3600

生成令牌的配置。默认已配置,只需在 SECRET 中提供安全密钥(签名)。
用于生成令牌的库为:lcobucci/jwt,版本为 3.2。更多信息请访问 lcobucci/jwt
用于生成令牌的提供者

//Gerar Token
$token = $app['jwt']->generateToken();
//Valida Token
$app['jwt']->validateToken($token);

电子邮件

为了处理电子邮件的发送和接收,请提供电子邮件的凭证。

USER:
    USERNAME: ''
    PASSWORD: ''

用于发送电子邮件的库为:swiftmailer/swiftmailer,版本为 5.4。更多信息请访问 swiftmailer/swiftmailer
注册电子邮件服务

php gugaio register:mailer

在启用 mailer 服务之前安装 SwiftMailer

composer require swiftmailer/swiftmailer


如何发送电子邮件

$message = \Swift_Message::newInstance();
$app['mailer']->send($message);

更多信息请访问 此处

用于接收电子邮件的库为:ddeboer/imap,版本为 0.5.2。更多信息请访问 ddeboer/imap。需要下载 ddeboer/imap,可以使用以下命令

composer require ddeboer/imap

然后注册

php gugaio register:imap

如何使用

$mailbox = $app['imap.connection']->getMailbox('INBOX');

更多信息请访问 此处

数据库

提供数据库所需的数据。

DB:
    DRIVE: 'mysql'
    HOST: 127.0.0.1
    DBNAME: ''
    PORT: 3306
    USERNAME: ''
    PASSWORD: ''
    CHARSET: 'utf8'
    COLLATION: 'utf8_unicode_ci'
    PREFIX: ''

如何使用连接提供者。

$prepare = $app['connection']->prepare($sql);
$prepare->execute();

使用 Eloquent ORM 的工作模式。
要创建新的模型,请使用

php gugaio make:model MyNewModel

更多信息请访问 此处

路由

所有路由都集中在前端目录 src/Router 中。
在 Router 目录中包含两个文件,RouterRouterAuth

Router

Router.php 文件包含所有无 Token 验证的路由。
如何添加新路由
示例 01. http://seuurl.com/v1/users

$router->get('/users', function () {
        return JSantos\Model\User::all();
    });

示例 02.http://seuurl.com/v1/users

$router->get('/users', 'user:index');

示例 03.http://seuurl.com/users/{id}

$app->mount('/users', function ($users) use ($app) {
    //exe01
    $users->get('/{id}', function ($id) {
        return JSantos\Model\User::find($id);
    });
    //exe02
    $users->get('/{id}', 'user:index');
});

RouterAuth

RouterAuth.php 文件包含所有需要 Token 验证的路由。
如何添加新路由
示例 01.
GET - http://seuurl.com/v1/api/users

$auth->get('/users', function () {
        return JSantos\Model\User::all();
    });

示例 02.
POST - http://seuurl.com/v1/api/users

$auth->get('/users', 'user:read');
$auth->post('/users', 'user:create');
$auth->put('/users', 'user:update');
$auth->delete('/users', 'user:delete');

通过命令创建路由

使用 make:router,您可以为一组 Controller 服务创建路由。
--service 接收已注册给 Controller 的服务名称。

示例

php gugaio make:router product --service=product

结果
在:/src/Router/Router.php

$app->mount($app['api_version'], function ($router) use ($app) {
	$router->get('/product', 'product:read');
	$router->get('/product/{id}', 'product:get');
	$router->post('/product', 'product:create');
	$router->put('/product', 'product:update');
	$router->delete('/product/{id}', 'product:delete');
});

您也可以使用 --group 传递路由组名称。

php gugaio make:router product --service=product --group=products

结果
在:/src/Router/Router.php

$app->mount($app['api_version'].'/products', function ($products) use ($app) {
    $products->get('/product', 'product:read');
    $products->get('/product/{id}', 'product:get');
    $products->post('/product', 'product:create');
    $products->put('/product', 'product:update');
    $products->delete('/product/{id}', 'product:delete');
});

要创建一个简单的单一路由和 HTTP 方法,使用

php gugaio make:router product --method=get

结果
在 /src/Router/Router.php

$app->get($app['api_version'].'/product', function() use ($app) {
 
});

要创建需要 JWT 认证的路线,使用 --auth=true

php gugaio make:router product --service=product --auth=true

结果
在:/src/Router/RouterAuth.php

    $auth->get('/product', 'product:read');
    $auth->get('/product/{id}', 'product:get');
    $auth->post('/product', 'product:create');
    $auth->put('/product', 'product:update');
    $auth->delete('/product/{id}', 'product:delete');

JWT 的简单路由

php gugaio make:router product --method=post --auth=true

结果
在:/src/Router/RouterAuth.php

    $auth->post($app['api_version'].'/product', function() use ($app) {
    
    });

模型

在 Gugaiô 中与 Model 一起工作非常简单,它也拥有 Eloquent ORM。
要创建新的模型,请使用

php gugaio make:model MyNewModel

更多信息请访问 此处
如果您不喜欢使用 ORM,可以使用服务 $app['connection'],它将为您提供 PDO 实例。
您也可以通过扩展 Repository 类或使用

php gugaio make:repo MyRepository

控制器

要创建一个 Controller,使用

php gugaio make:controller MyController

结果
src/Controller/MyController.php

<?php
namespace JSantos\Controller;
 
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
 
class MyController extends Controller
{
    
}

您可以将 Controller 当作服务使用,但首先需要注册它。
注册 Controller 为服务

php gugaio register:controller MyController --name=my

如果未指定选项 --name,服务将使用 Controller 的名称(小写字母)。

视图

您还可以在 Gugaiô 中使用视图,默认配置为使用 Twig。如何在 Gugaiô 中使用视图

php gugaio make:view

src 文件夹中创建 Views 目录。现在使用

php gugaio register:twig

在注册 Twig 服务后,将需要下载它。

composer require twig/twig

完成!您现在可以开始创建视图了,了解更多信息 这里

gugaio 命令

make

  • php gugaio make:config - 创建应用的主配置文件。
  • php gugaio make:controller - 创建一个新的 Controller
  • php gugaio make:model - 创建一个新的 Model
  • php gugaio make:repo - 创建一个带有 CRUD 的新 File Repository
  • php gugaio make:view - 在 src 中创建 Views 目录以使用 Twig 视图。
  • php gugaio make:router - 为您的应用创建路由,带或不带 JWT Auth。

register

  • php gugaio register:controller - 将 Controller 注册为服务,使用 --name 来定义服务名称。
  • php gugaio register:imap - 注册服务以接收电子邮件。
  • php gugaio register:mailer - 注册服务以发送电子邮件。
  • php gugaio register:twig - 注册 Twig 服务以处理视图。