benjamincrozat / lumen-boilerplate
此包已被弃用且不再维护。未建议替代包。
以有见地的方式启动新的Lumen项目。
0.10.1
2018-09-12 07:55 UTC
Requires
- php: >=7.1
- illuminate/redis: 5.6.*
- illuminate/routing: 5.6.*
- laravel/lumen-framework: 5.6.*
- laravel/tinker: ^1.0
- predis/predis: ^1.1
- ramsey/uuid: ^3.7
- spatie/laravel-cors: ^1.0
- vlucas/phpdotenv: ~2.2
Requires (Dev)
- codedungeon/phpunit-result-printer: 0.*
- doctrine/dbal: ^2.7
- fzaninotto/faker: ~1.4
- itsgoingd/clockwork: ^3.0
- laravel/homestead: ^7.0
- mockery/mockery: ~1.0
- nunomaduro/collision: ^2.0
- phpunit/phpunit: ^7.0
- shipping-docker/vessel: ^3.0
- symfony/var-dumper: ^4.0
This package is auto-updated.
Last update: 2020-01-22 12:37:40 UTC
README
Lumen Boilerplate
以有见地的方式启动新的Lumen项目。
我还有一个有见地的Laravel Boilerplate仓库。
摘要
为什么?
Lumen是Laravel的一个非常轻量级的版本。即使Taylor努力保留了大量的实际需求,但对于我来说仍然太轻。以下是我在项目中添加的一些有用的包列表
- codedungeon/phpunit-result-printer和nunomaduro/collision,以使测试更加愉快;
- illuminate/redis和predis/predis,用于基于Redis的缓存和队列(尽管我推荐安装原生PHP扩展而不是predis/predis);
- illuminate/routing,用于请求节流。不要担心,只有中间件被加载(您甚至可以选择基于Redis的节流);
- itsgoingd/clockwork,用于轻松调试;
- laravel/tinker;
- spatie/laravel-cors;
- symfony/var-dumper用于
dump()
辅助函数。
用法
Lumen Boilerplate自带Laravel Homestead和Vessel支持,但您可以在任何您喜欢的环境中运行它。
如果您熟悉Lumen,让我们通过Composer创建一个新项目(如果不熟悉,请阅读文档)
composer create-project benjamincrozat/lumen-boilerplate example
设置您的.env
文件。Lumen中没有php artisan key:generate
命令,但您可以这样做:
php artisan tinker Psy Shell >>> 'base64:' . base64_encode(Illuminate\Encryption\Encrypter::generateKey(config('app.cipher'))) => "base64:6D+I2mFMJHdw0VRDamdcy0XrgUGdHiv7ALd1+aKDmhc="
然后,运行您的迁移。您甚至可以为用户添加一些假数据
php artisan migrate --seed
您还可以使用Tinker快速获取API令牌...
php artisan tinker Psy Shell >>> App\User::first()->api_token => "fIj2rTFTWbB2UO2ZrVhEdHhLMV1XNLgHGzIMZk5FlRqww4tP2y0yyWCktTfg"
...并发送您的第一个GET请求到http://example.test/api/v1/user
curl --request GET http://example.test/api/v1/user?api_token=fIj2rTFTWbB2UO2ZrVhEdHhLMV1XNLgHGzIMZk5FlRqww4tP2y0yyWCktTfg { "data": { "id": 1, "name": "Mr. Kamron Toy", "email": "fkoelpin@example.org" } }
示例代码
Lumen Boilerplate集成了基本CRUD操作用于博客文章、集成测试和示例文件,可以快速复制和更改以适应您要构建的内容。代码对IDE友好,尽可能干净和全面。请注意,仅在需要时使用类型提示,因为它会添加运行时检查。
测试
测试您的代码可能是个好主意。Lumen Boilerplate自带测试以展示方法。
# Run all tests. php vendor/bin/phpunit # Run only unit tests. php vendor/bin/phpunit --testsuite Unit # Run only integration tests. php vendor/bin/phpunit --testsuite Integration # Run only tests within a given file. php vendor/bin/phpunit tests/Integration/UserControllerTest.php # Run only a given test method. php vendor/bin/phpunit --filter user_can_read_his_own_data # You can also do both. php vendor/bin/phpunit tests/Integration/UserControllerTest.php --filter user_can_read_his_own_data
以下是我对测试的一些想法
- 单元测试不能保证API的正常工作。良好的集成测试可以使您的API更加可靠,您无需在代码和HTTP客户端之间来回切换;
- 要全面。测试您的验证规则、权限、JSON结构等。
- 我建议在测试中使用Facades,以便使模拟和团队合作更加顺畅。