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许可证。