jasonmccallister / laravel-preset
Laravel应用程序的预设,包括Docker、PHPCS、PHPUnit等。
Requires
- laravel/framework: ^5.8
- sixlive/dotenv-editor: ^1.2
This package is auto-updated.
Last update: 2024-09-16 01:30:55 UTC
README
此预设将安装并提示您安装Laravel官方包,如Horizon和Telescope。它还包括一个用于本地开发和持续集成的Makefile
。
总体目标是使用Docker、CI/CD和PHPUnit测试尽可能简化使用Laravel发布项目的流程。
Docker
结合了多年使用Docker发布PHP应用程序(Craft CMS和Laravel)的经验,这是一个将所学知识整合到一个包中的结果。
安装
您可以通过composer安装此包
composer require --dev jasonmccallister/laravel-preset
用法
php artisan preset jasonmccallister
按照提示选择要使用的数据库以及项目中的包。
现在剩下的就是运行以下命令
make up
Docker
运行预设命令(php artisan preset jasonmccallister
)将在项目上提示您将要使用的数据库类型。这将设置带有正确数据库依赖项的Dockerfile和docker-compose文件。
有一个.dockerignore
文件将排除vendor
和node_modules
,以从Docker构建上下文中排除它们。这有助于提高Docker的构建时间。
Dockerfile
目标是使用相同的Dockerfile
进行本地开发、CI/CD和部署生产镜像。默认情况下,仅安装"生产"操作系统包。
可以安装PHP扩展,如xdebug,但默认情况下不会启用,有一个
Makefile
命令来启用它!
docker-compose.yaml
为了使本地使用Docker的开发更容易,我们使用docker-compose.yaml
来创建数据库、队列和Redis实例。Docker Compose使您可以通过一条命令启动所有服务。
关于此文件的一些注意事项
- 卷被标记为
:cache
,以特别提高macOS上Docker的性能,但对其他操作系统没有影响。 - 如果未使用Laravel Passport,则有一些被注释掉的行。
- 未指定app和队列容器的镜像,这将默认为根文件夹名称。相反,文件将查看Dockerfile,如果找不到本地镜像,则构建镜像。
包
预设将提示您安装一些推荐的第三方包。
注意:如果您选择安装Horizon,则预设还将提示您使用horizon命令而不是
queue:work
。这仍然是可选的,但建议在使用Horizon时选择。
Makefile
预设还将安装一个包含许多有用命令的Makefile
。以下是可用的命令列表
make build
将构建镜像make composer
将在可丢弃的Docker容器内安装composer依赖,并将其复制到您的本地机器make down
将停止或关闭项目服务make horizon
将运行php artisan horizon:install
make logs
将显示所有服务日志,带有--follow
标志make migrate
将在Docker容器内运行php artisan migrate
make migrate:fresh
将在Docker容器内运行php artisan migrate
make phpcs
将在app
目录上应用.php_cs
修复make phpunit
在容器内运行 phpunit,适用于 CI/CD 环境make reports
在容器内运行 phpunit 并带有 HTML 代码覆盖率make scale
将您的队列容器扩展到 15 个容器。适用于在本地测试后台任务和队列的并发性make seed
在您的容器内运行db:seed
make ssh
将使用 bash shell “ssh” 连接到应用容器make ssh-queue
与ssh
命令相同,但会在队列容器中提供 bash shellmake tag
将标记您的 Docker 镜像make tinker
在应用容器内运行php artisan tinker
make telescope
将运行php artisan telescope:install
make testdox
使用--testdox
标志运行 phpunit 以实现更美观的输出make up
用于启动所有服务make xdebug
将在应用容器内安装 xdebug PHP 扩展
安全
如果您发现任何与安全相关的问题,请通过电子邮件 themccallister@gmail.com 联系我们,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件