geggleto / slimgateway
0.0.1
2016-04-21 19:17 UTC
Requires
- slim/slim: ^3.3
- vlucas/valitron: ^1.2
- zendframework/zend-db: ^2.8
Requires (Dev)
- phpunit/phpunit: 5.*
This package is auto-updated.
Last update: 2024-08-29 04:08:49 UTC
README
从你的日常工作中移除样板代码。需要简单的API将数据插入SQL表?这就是你需要的。
设置
- 修改
config/db.env.php
的内容以连接到你的数据库 - 为了定义你的资源
- 在
config/validators.php
中创建验证器 - 在
config/db.php
中创建网关和控制器条目 - 在
config/routes.php
中定义你的路由 - 运行用户迁移
composer migrate:users
- 在
安装
`php composer.phar create-project geggleto/slimgateway [my-app-name]`
验证
对于验证有一个注意事项。验证仅在初始数据集上执行,通过中间件添加的内容将不可用于验证。
迁移
- 在
/migrations/
文件夹中添加更多迁移 - 添加一个composer命令来简化它们的运行
- 确保在执行单元测试时也添加composer命令!
示例
在 config/db.php
$container['users.gateway'] = function ($c) { return new TableGateway('user', $c['adapter']); }; $container['user.controller'] = function ($c) { return new EntityController($c['users.gateway']); };
在 config/validators.php
$container['user.fetch.validator'] = function ($c) { /** @var $request \Slim\Http\Request */ $request = $c['request']; $validator = new \Valitron\Validator($request->getParsedBody()); $validator->rule('required', 'id'); new \SlimGateway\ValidationMiddleware($validator); }; $container['user.create.validator'] = function ($c) { /** @var $request \Slim\Http\Request */ $request = $c['request']; $validator = new \Valitron\Validator($request->getParsedBody()); $validator->rule('required', 'name'); $validator->rule('required', 'email'); $validator->rule('required', 'username'); $validator->rule('required', 'password'); new \SlimGateway\ValidationMiddleware($validator); }; $container['user.update.validator'] = function ($c) { /** @var $request \Slim\Http\Request */ $request = $c['request']; $validator = new \Valitron\Validator($request->getParsedBody()); $validator->rule('required', 'name'); $validator->rule('required', 'email'); $validator->rule('required', 'username'); new \SlimGateway\ValidationMiddleware($validator); }; $container['user.delete.validator'] = function ($c) { /** @var $request \Slim\Http\Request */ $request = $c['request']; $validator = new \Valitron\Validator($request->getParsedBody()); $validator->rule('required', 'id'); new \SlimGateway\ValidationMiddleware($validator); };
在 config/routes.php
$app->get('/users/{id}', 'user.controller:fetch')->add('user.fetch.validator'); $app->post('/users', 'user.controller:create')->add('user.create.validator'); $app->put('/users/{id}', 'user.controller:update')->add('user.update.validator'); $app->delete('/users/{id}', 'user.controller:remove')->add('user.delete.validator');
单元测试
composer test
从这里走向何方
这是一个纯后端解决方案。下一步的逻辑可能是尝试发送电子邮件或加密用户密码。这两个功能在使用此包时都将是中间件。
中间件是运行在数据持久化前后代码的完美位置。