mael / symfony-api-template
基于 Symfony 框架预配置的模板,用于创建 API
Requires
- php: ^7.2.5
- ext-ctype: *
- ext-iconv: *
- ext-json: *
- api-platform/api-pack: ^1.2
- gesdinet/jwt-refresh-token-bundle: ^0.9.1
- lexik/jwt-authentication-bundle: ^2.8
- sensio/framework-extra-bundle: ^5.1
- symfony/asset: 5.1.*
- symfony/console: 5.1.*
- symfony/dotenv: 5.1.*
- symfony/expression-language: 5.1.*
- symfony/flex: ^1.3.1
- symfony/form: 5.1.*
- symfony/framework-bundle: 5.1.*
- symfony/http-client: 5.1.*
- symfony/intl: 5.1.*
- symfony/mailer: 5.1.*
- symfony/mime: 5.1.*
- symfony/monolog-bundle: ^3.1
- symfony/notifier: 5.1.*
- symfony/orm-pack: *
- symfony/process: 5.1.*
- symfony/security-bundle: 5.1.*
- symfony/serializer-pack: *
- symfony/string: 5.1.*
- symfony/translation: 5.1.*
- symfony/twig-pack: *
- symfony/validator: 5.1.*
- symfony/web-link: 5.1.*
- symfony/yaml: 5.1.*
Requires (Dev)
- doctrine/doctrine-fixtures-bundle: ^3.3
- fzaninotto/faker: ^1.9
- liip/test-fixtures-bundle: ^1.9
- nelmio/alice: ^3.7
- phpstan/phpstan: ^0.12.32
- phpstan/phpstan-doctrine: ^0.12.17
- phpstan/phpstan-mockery: ^0.12.5
- phpstan/phpstan-phpunit: ^0.12.11
- spatie/phpunit-watcher: ^1.22
- symfony/debug-pack: *
- symfony/maker-bundle: ^1.0
- symfony/profiler-pack: *
- symfony/test-pack: *
- theofidry/alice-data-fixtures: ^1.2
Suggests
- mael/intervention-image-bundle: Simple intervention/image integration for symfony projects. This bundle allows you to manipulate images (crop, resize, and many other features).
- mael/recaptcha-bundle: Google Recaptcha integration for Symfony and Twig (easy integration with Symfony Form)
Conflicts
This package is auto-updated.
Last update: 2024-09-08 22:27:36 UTC
README
- Synfony 版本 : 5.1.2
目录
- 入门
- 配置
- Doctrine
- 单元测试
- PHPStan
- JWT 配置
- 第一次功能测试
- 贡献
- 许可
入门
要求
PHP 7.2.5
ext-ctype
ext-iconv
ext-json
首先使用 composer 创建一个新项目
$ composer create-project mael/symfony-api-template
在 composer.json 文件中,更改项目的名称、描述和许可证。
配置
在开始项目之前,您需要进行一些基本配置
Doctrine
在 .env 文件中,通过填写您的标识符来修改 DATABASE_URL(请参阅 Symfony 文档)
单元测试
我们的模板为您提供许多单元测试工具,您需要配置一些项目特定的内容
首先,在文件 WebTestCase.php 和 ApiTestCase.php 中,您需要修改用于登录用户的登录信息。
您需要填写以下变量 $username
、$password
和 $route
例:
public function login(string $username = 'test', string $password = 'test', string $route = '/api/login')
PHPStan
我们还添加了 PHPStan,它允许您检测代码中的错误,您可以在 phpstan.neon 文件中更改检测级别。
您可以通过此链接找到 PHPStan 的文档 https://phpstan.org/
JWT 配置
我们假设您的 API 将使用 LexikJWTAuthenticationBundle。您可以在 config/packages 中找到配置。
首先,在 .env 文件中,通过您选择的字符串修改 JWT_PASSPHRASE。
在执行以下两个命令时,系统将要求您输入先前选择的密码短语
为了使 JWT 身份验证工作,您需要生成两个
$ openssl genpkey -out config/jwt/private.pem -aes256 -algorithm rsa -pkeyopt rsa_keygen_bits:4096 $ openssl pkey -in config/jwt/private.pem -out config/jwt/public.pem -pubout
我们还添加了一个用于刷新 JWT 令牌的捆绑包,您可以在以下链接中找到文档 https://github.com/markitosgv/JWTRefreshTokenBundle#readme
您还可以在 config/route.yaml 文件中配置路由。
请注意,您必须通过 JWT 在 security.yaml 文件中自行配置身份验证系统(请参阅捆绑包文档 https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Resources/doc/index.md)。
第一次功能测试
在进行第一次功能测试期间,您需要使用以下命令生成 sqlite 数据库
$ php bin/console doctrine:database:create --env test
贡献
如果您想为模板的改进做出贡献,您可以
- 在此存储库上进行分支
- 进行您的更改
- 创建拉取请求
许可
此存储库受 MIT 许可证约束