benjamincrozat/lumen-boilerplate

此包已被弃用且不再维护。未建议替代包。

以有见地的方式启动新的Lumen项目。


README

Build Status Latest Stable Version Total Downloads License

Lumen Boilerplate

以有见地的方式启动新的Lumen项目。

我还有一个有见地的Laravel Boilerplate仓库

摘要

为什么?

Lumen是Laravel的一个非常轻量级的版本。即使Taylor努力保留了大量的实际需求,但对于我来说仍然太轻。以下是我在项目中添加的一些有用的包列表

用法

Lumen Boilerplate自带Laravel HomesteadVessel支持,但您可以在任何您喜欢的环境中运行它。

如果您熟悉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,以便使模拟和团队合作更加顺畅。

许可证

MIT