jefhar / laravel-domain-oriented
Laravel 框架。
Requires
- php: ^7.2.5
- fideloper/proxy: ^4.2
- fruitcake/laravel-cors: ^1.0
- guzzlehttp/guzzle: ^6.3
- laravel/framework: ^7.0
- laravel/tinker: ^2.0
Requires (Dev)
- facade/ignition: ^2.0
- fzaninotto/faker: ^1.9.1
- mockery/mockery: ^1.3.1
- nunomaduro/collision: ^4.1
- phpunit/phpunit: ^8.5
- dev-master
- v7.6.0
- v7.3.0
- v7.0.0
- 6.x-dev
- v6.18.8
- v6.18.3
- v6.18.0
- v6.12.0
- v6.8.0
- v6.5.2
- v6.4.0
- v6.2.0
- v6.0.2
- v6.0.1
- v6.0.0
- 5.8.x-dev
- v5.8.35
- v5.8.17
- v5.8.16
- v5.8.3
- v5.8.0
- 5.7.x-dev
- v5.7.28
- v5.7.19
- v5.7.15
- v5.7.13
- v5.7.0
- 5.6.x-dev
- v5.6.33
- v5.6.21
- v5.6.12
- v5.6.7
- v5.6.0
- 5.5.x-dev
- v5.5.28
- v5.5.22
- v5.5.0
- 5.4.x-dev
- v5.4.30
- v5.4.23
- v5.4.21
- v5.4.19
- v5.4.16
- v5.4.15
- v5.4.9
- v5.4.3
- v5.4.0
- 5.3.x-dev
- v5.3.30
- v5.3.16
- v5.3.10
- v5.3.0
- 5.2.x-dev
- v5.2.31
- v5.2.29
- v5.2.27
- v5.2.24
- v5.2.23
- v5.2.15
- v5.2.0
- 5.1.x-dev
- v5.1.33
- v5.1.11
- v5.1.4
- v5.1.3
- v5.1.1
- v5.1.0
- 5.0.x-dev
- v5.0.22
- v5.0.16
- v5.0.1
- v5.0.0
- v4.2.11
- v4.2.0
- v4.1.27
- v4.1.18
- v4.1.0
- v4.0.9
- v4.0.8
- v4.0.7
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.0
- v4.0.0-BETA4
- v4.0.0-BETA3
- dev-dependabot/composer/composer/composer-2.0.13
- dev-dependabot/composer/laravel/framework-7.30.4
- dev-develop
This package is auto-updated.
Last update: 2021-07-30 00:33:50 UTC
README
关于 Laravel
Laravel 是一个具有表达性和优雅语法的 Web 应用程序框架。我们相信开发必须是一个愉快且富有创造性的体验,才能真正满足。Laravel 通过简化许多 Web 项目中的常用任务来减轻开发痛苦,例如
- 简单、快速的路由引擎.
- 强大的依赖注入容器.
- 多种后端用于会话和缓存存储。
- 表达性、直观的数据库 ORM。
- 数据库无关的迁移。
- 强大的后台作业处理.
- 实时事件广播.
Laravel 可访问、功能强大,并提供构建大型、强大应用程序所需的工具。
关于面向领域的 Laravel
首先,我并没有想出 Laravel 框架的这种重新设计。这是基于 Brent 的非常优秀的博客文章。Brent 博客的第一章步骤已经执行完毕。
保持您的应用程序层在 app/App
目录中。这里您可以找到 Console
、Exceptions
、Http
和 Providers
目录。它们与默认的 Laravel 应用程序工作方式相同,只是移动了一个目录,但仍位于 \App
命名空间。
将按领域关注组织域逻辑放置在 app/Domain
目录中,位于 \Domain
命名空间。支持逻辑应位于 app/Support
目录中,位于 \Support
命名空间。
注意事项
任何 php artisan make
命令都会将新创建的文件放置在默认 Laravel 预期的位置,而不是面向领域 Laravel 预期的位置。如果您需要 artisan
创建文件,则需要手动将其移动到正确的目录。默认位置对于数据库和测试文件是可接受的。
其他更改
Docker
这包含了一个用于单元测试和部署的具有偏见的 Docker 堆栈。预包装了 redis、mysql:8.0、nginx、php:7.4 和 mailhog,此堆栈可以轻松定制以满足您的需求。只需在 docker-compose 文件中添加或更改一个部分即可。Makefile 包含了用于别名常见 docker-compose exec
命令的命令。
用户权限
我已经将 spatie/data-transfer-object
和 spatie/laravel-permission
包添加到 composer 环境中。迁移和播种后,您将拥有三个示例用户;一个 superAdmin
,一个 employee
和一个 subscriber
,他们的密码都是 password
,电子邮件地址为 <username>@example.com
。
所有用户都有示例 角色和权限,这些角色和权限在 UserRoles 和 UserPermissions 类中定义为类常量。
根据需要修改/删除 迁移 和 播种 文件。如果您想更改密码、电子邮件或用户名,也可以在 .env
文件中添加变量。
** 注意,laravel/ui
composer 包尚未包含在内。
Composer
我已经将 nunomaduro/larastan
、sensiolabs/security-checker
和 squizlabs/php_codesniffer
添加到开发环境中。除非您完全依赖 IDE 来告诉您可能
命令 composer phpcs
将检查您的 app/
和 tests/
目录,以确保所有文件都符合 PSR-12。
composer phpcbf
将更正这些目录中它可以更正的任何文件,以确保它们遵循 PSR-12。
运行 composer pretest
将首先检查您的 composer.lock
文件,以在安全建议数据库中搜索任何 建议。如果您的包没有安全建议,它将确保 larastan 认可您的代码。如果一切正常,您的代码将被检查,以确保它符合 PSR-12 标准。
composer test
将运行您的单元测试和功能测试。
Gitlab CI
面向域的 Laravel 发行版还附带了一个用于 GitLab 的 CI 管道。默认情况下,它将安装 composer 和 npm 依赖项,并根据您的 gitlab 仓库和分支创建缓存。然后,它将并行运行您的单元测试、功能测试和 dusk 测试。
如果您已经通过 brew
或 GitLab 源本地安装了 gitlab-runner,则 make ci
将运行您最新的 git 提交以通过单元测试和功能测试。
当您将标记的提交推送到 GitLab 时,将运行部署阶段。在这样做之前,创建一个 Envoy.php 文件。还要在您的服务器上创建一个具有无密码登录功能的部署用户
ssh-keygen -o -a 100 -t ed25519 cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys cat ~/.ssh/id_ed25519
-
将部署用户的 私钥 复制到您的剪贴板。在您的 GitLab 项目中,转到 设置 > CI/CD 并展开 密钥变量。将 ssh_key 作为输入变量值粘贴,并将密钥设置为
SSH_PRIVATE_KEY
并保存变量。这允许 CD 系统打开到您的服务器的
ssh
连接。 -
将部署用户的公钥复制到您的剪贴板。在您的 Gitlab 项目中,前往 设置 > 仓库 并展开 部署密钥。在密钥字段中粘贴公钥,并给它起一个名字。记得要添加密钥。
这可以让 GitLab 识别您的用户,并提供从 GitLab 的拉取授权。
-
您可能需要为您的部署用户赋予
chmod
和chgrp
权限。这可能会通过Envoy.blade.php
文件使您的服务器面临攻击向量。
如果您希望在部署时收到 Slack 通知,也可以添加一个$LOG_SLACK_WEBHOOK_URL
变量。
安装
从您的命令行,composer create-project jefhar/laravel-domain-oriented
将下载并安装框架。从那里,make
将为您的开发环境构建一个基本的 Docker 容器。容器创建后,make docker
将创建完整开发环境所需的所有镜像。如果您现在不需要 MailHog 运行,make deploy
将启动除 MailHog 之外的所有容器。要安装 composer 依赖项,请使用make composerinstall
,要更新 composer 依赖项,请使用make composerupdate
。安装 npm 依赖项通过make yarninstall
。使用make yarnupgrade
升级 npm 依赖项。
当然,创建您的 CSS 和 JavaScript 资源也是通过make
命令完成的:使用make npmdev
、make npmprod
和make npmwatch
创建您的资源。类似地,存在用于phpcs
、phpcbf
和预测试的make
命令。
在 php-fpm 容器内部,使用make refresh
将删除数据库,迁移所有表,并播种示例用户。
更新您的.env
文件,并浏览到https://:8080
。
composer create-project jefhar/laravel-domain-oriented blog cd blog make make deploy make composerinstall make yarninstall make npmdev make pretest make test docker-compose exec php-fpm sh -c 'cd /application && make refresh'
学习 Laravel
Laravel 拥有所有现代 Web 应用程序框架中最全面和最详尽的文档和视频教程库,使得开始使用框架变得非常简单。
如果您不想阅读,Laracasts可以帮助您。Laracasts包含超过1500个视频教程,涵盖了包括Laravel、现代PHP、单元测试和JavaScript在内的各种主题。通过深入研究我们的全面视频库来提高您的技能。
Laravel 赞助商
我们想对以下资助 Laravel 开发的赞助商表示感谢。如果您有兴趣成为赞助商,请访问 Laravel 的Patreon 页面。
- Vehikl
- Tighten Co.
- Kirschbaum Development Group
- 64 Robots
- Cubet Techno Labs
- Cyber-Duck
- British Software Development
- Webdock,快速 VPS 托管
- DevSquad
- UserInsights
- Fragrantica
- SOFTonSOFA
- User10
- Soumettre.fr
- CodeBrisk
- 1Forge
- TECPRESSO
- Runtime Converter
- WebL'Agence
- Invoice Ninja
- iMi digital
- Earthlink
- Steadfast Collective
- We Are The Robots Inc.
- Understand.io
- Abdel Elrafa
- Hyper Host
- Appoly
- OP.GG
- 云软科技
贡献
感谢您考虑为Laravel框架做出贡献!贡献指南可在Laravel文档中找到。
行为准则
为了确保Laravel社区对所有成员都友好,请阅读并遵守行为准则。
安全漏洞
如果您在Laravel中发现安全漏洞,请通过taylor@laravel.com将邮件发送给Taylor Otwell。所有安全漏洞都将得到及时处理。
许可
Laravel框架是开源软件,许可协议为MIT许可证。