jacsonsantos / gugaio
PHP 框架。
Requires
- illuminate/database: ^5.4
- illuminate/events: ^5.4
- jdesrosiers/silex-cors-provider: ^1.4
- jms/serializer: ^1.6
- lcobucci/jwt: ^3.2
- silex/silex: ^2.0
- symfony/console: ^3.2
- symfony/yaml: ^3.2
This package is auto-updated.
Last update: 2024-09-07 10:50:10 UTC
README
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 目录中包含两个文件,Router 和 RouterAuth。
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 服务以处理视图。