meezaan / microservice-template
此包已被弃用且不再维护。未建议替代包。
最新版本(v0.1.2)的此包没有可用的许可证信息。
PHP 微服务模板
v0.1.2
2018-02-16 17:10 UTC
Requires
- php: >=7.1
- davidepastore/slim-validation: ^0.5.0
- doctrine/dbal: v2.5.13
- doctrine/orm: v2.5.14
- guzzlehttp/guzzle: ^6.1
- meezaan/microservice-helper: dev-master
- monolog/monolog: ~1.17
- slim/http-cache: 0.4.0
- slim/slim: ^3.9
- symfony/yaml: ^3.3
- tuupola/slim-basic-auth: ^2.2
- tuupola/slim-jwt-auth: ^2.2
Requires (Dev)
- behat/behat: ^3.4
- behat/mink-extension: ^2.3
- behat/mink-goutte-driver: ^1.2
- behat/mink-selenium2-driver: ^1.3
- mockery/mockery: ^1.0
- phploc/phploc: ^4.0
- phpmd/phpmd: @stable
- phpunit/phpunit: ^6.2
- sebastian/phpcpd: ^3.0
- squizlabs/php_codesniffer: ^3.0
- theseer/phpdox: ^0.11.0
This package is auto-updated.
Last update: 2020-08-15 18:48:51 UTC
README
简介
这是一个基于PHP 7的微服务模板,可以大大加快微服务的构建。
技术栈
- PHP 7.1
- MySQL 5.7 / PerconaDB 5.7
- Memcached
- Slim Framework v3
如何使用它
这是一个有效的启动模板。您可以在src和routes文件夹中进行更改,并在几分钟内(当然,取决于您要做什么)让您的微服务运行起来。
理解结构
模板使用多种composer包。列表可在composer.json中找到。其中许多是可选的 - 在src/Model中查看哪些可能被使用。
src文件夹
这从命名空间定义开始。示例有一个名为Book的命名空间。在我们的命名空间内,我们有
- 实体 - 这些是Doctrine实体 - 我们在这里使用Doctrine作为ORM,因此您可以使用它们创建和管理您的模式。
- 模型 - 这些包含任何需要应用于传入或传出数据的业务逻辑。
- 助手 - 任何有助于您做事情的通用类可以放在这里 - 如果您没有使用任何第三方composer包。
routes文件夹
这包含您的微服务路由。它包含版本化的文件夹,文件内容是自我解释的。我们故意没有控制器 - 它们使您像单体一样思考。一个路由文件可能会迫使您进入微服务思维模式。
使用此模板创建项目
运行
composer create-project --stability dev meezaan/microservice-template project-name
其他内容 - 以下文档尚未完成。请保持关注。
此模板包含几种不同的工具(通过composer)。使用所有这些是可选的。您可以选择使用它们或按需删除它们。您甚至可以添加自己的。以下是用于工具的一些有用命令和文档链接
- Doctrine (ORM和DBAL) - http://www.doctrine-project.org/projects/orm.html
- ApiGen (PHP文档) - https://github.com/ApiGen/ApiGen
- MicroService Helper - https://github.com/meezaan/microservice-helper
- PHP Unit - https://phpunit.de/
- Mockery for PHP Unit - http://docs.mockery.io/en/latest/
- Behat和Mink - http://behat.org/en/latest/ 和 http://mink.behat.org/en/latest/
- PHP CodeSiffer - https://github.com/squizlabs/PHP_CodeSniffer
- PHP Mess Detector - https://phpmd.org/
- Slim Basic Auth
- Slim JWT Auth
- Slim Validation
- ApiDocJS - 一个基于Javascript / nodejs的生成美观API文档的工具 - http://apidocjs.com/
查看composer.json以添加/删除所需的包。
Doctrine
生成实体(获取器和设置器) vendor/bin/doctrine orm:generate-entities src/
生成代理vendor/bin/doctrine orm:generate-proxies
更新 vendor/bin/doctrine orm:schema-tool:update
创建 vendor/bin/doctrine orm:schema-tool:create
Behat
vendor/bin/behat -dl
PHPUnit
vendor/bin/phpunit
PHP Mess Detector
运行以下命令以查看选项并运行报告
vendor/bin/phpmd src/
PHP Code Sinffer
查看问题
vendor/bin/phpcs src/
自动修复PSR-2
vendor/bin/phpcbf src/
生成PHP文档
vendor/bin/apigen generate src/ --destination docs/php
ApiDocJS API文档
这需要npm
。要安装
npm install apidoc -g
运行
apidoc -i routes/ -o docs/api/
待办事项
添加关于生成的文档的说明。
Feature Toggling / flagging