jeremieflahaut / laravel-api-starter-kit
基于 Laravel 框架的骨架应用程序。
0.0.4
2024-01-28 13:04 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.2
- laravel/framework: ^10.10
- laravel/sanctum: ^3.2
- laravel/tinker: ^2.8
Requires (Dev)
- fakerphp/faker: ^1.9.1
- laravel/pint: ^1.0
- laravel/sail: ^1.18
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^7.0
- pestphp/pest: ^2.18
- phpunit/phpunit: ^10.1
- spatie/laravel-ignition: ^2.0
README
安装
您可以通过 Composer create-project 命令创建一个新的 Laravel 项目
composer create-project jeremieflahaut/laravel-api-starter-kit <project name>
如果您使用 Docker,可以使用官方的 Composer 镜像
docker run --rm --interactive --tty --volume $PWD:/app --user $(id -u):$(id -g) \
composer create-project jeremieflahaut/laravel-api-starter-kit <project name>
迁移到数据库(默认为 sqlite,请查看您的 .env
文件)
cd <project name> && php artisan migrate
使用 Laravel 的 Artisan CLI serve 命令启动 Laravel 的本地开发服务器
php artisan serve
功能
laravel test 的 Github workflow
Laravel 测试在 Github runner 上运行。覆盖率徽章将被推送到 Badges 分支。为此,您必须提供对工作流程的读取和写入权限。
为此,请转到您的仓库设置 >> 操作 >> 通用 >> 工作流程权限。
使用 shouldBeStrict 强制开发中的严格行为
Model::shouldBeStrict(! $this->app->isProduction());
public static function shouldBeStrict(bool $shouldBeStrict = true) { static::preventLazyLoading($shouldBeStrict); static::preventSilentlyDiscardingAttributes($shouldBeStrict); static::preventAccessingMissingAttributes($shouldBeStrict); }
在我们的入门套件中,我们采用了 shouldBeStrict 方法来优化应用程序性能并强制执行更好的编码实践,特别是在生产环境中。此方法位于 app/Providers/AppServiceProvider.php 的 boot() 方法中,定义如下
- preventLazyLoading($shouldBeStrict)
- 功能:当设置为 true 时,此函数如果在 Eloquent 模型上尝试懒加载,则抛出异常。虽然懒加载在开发中很有用,但在生产环境中可能导致大量未优化的数据库查询,影响性能。
- 好处:鼓励使用预加载策略,从而减少数据库负载并提高应用程序效率。
- preventSilentlyDiscardingAttributes($shouldBeStrict)
- 功能:这确保了尝试设置不存在于模型上的属性将抛出异常。通常,Laravel 会静默地丢弃此类分配,这可能会掩盖打字错误或逻辑错误。
- 好处:通过避免静默失败并确保数据完整性来提高代码的健壮性。
- preventAccessingMissingAttributes($shouldBeStrict)
- 功能:当启用时,尝试访问模型上的未定义或不存在属性将导致异常。默认情况下,Laravel 对于未定义的属性返回 null,这可能导致微妙的错误。
- 好处:通过使属性访问更加明确并防止由于未定义属性而导致的未注意到错误来提高代码的安全性。
在 Production 中为所有生成的 url 强制使用 Https
我们在 app/Providers/AppServiceProvider.php 的 boot() 方法中的 url 生成器上强制使用 https。
if ($this->app->isProduction()) { URL::forceScheme('https'); }
laravel pint
我们在每次提交之前添加了一个 git 预钩子来运行将包含在提交中的 php 文件上的 laravel pint。为此,我们在 composer 脚本中执行此命令
[ -d .git ] && git config core.hooksPath .hooks || true
我们邀请您查看 .hooks/pre-commit
和 pint.json
文件来配置 laravel pint。
已安装的包
以下是安装 Laravel 10.x 后添加的依赖项
许可证
Laravel 框架是开源软件,根据 MIT 许可证 许可。