jefhar/laravel-domain-oriented

此包已废弃,不再维护。未建议替代包。

Laravel 框架。

安装: 5

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

Forks: 21 260

类型:项目


README

68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f6474666276766b79702f696d6167652f75706c6f61642f76313536363333313337372f6c61726176656c2d6c6f676f6c6f636b75702d636d796b2d7265642e737667

Build Status Total Downloads Latest Stable Version License

关于 Laravel

Laravel 是一个具有表达性和优雅语法的 Web 应用程序框架。我们相信开发必须是一个愉快且富有创造性的体验,才能真正满足。Laravel 通过简化许多 Web 项目中的常用任务来减轻开发痛苦,例如

Laravel 可访问、功能强大,并提供构建大型、强大应用程序所需的工具。

关于面向领域的 Laravel

首先,我并没有想出 Laravel 框架的这种重新设计。这是基于 Brent 的非常优秀的博客文章。Brent 博客的第一章步骤已经执行完毕。

保持您的应用程序层在 app/App 目录中。这里您可以找到 ConsoleExceptionsHttpProviders 目录。它们与默认的 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-objectspatie/laravel-permission 包添加到 composer 环境中。迁移和播种后,您将拥有三个示例用户;一个 superAdmin,一个 employee 和一个 subscriber,他们的密码都是 password,电子邮件地址为 <username>@example.com

所有用户都有示例 角色和权限,这些角色和权限在 UserRolesUserPermissions 类中定义为类常量。

根据需要修改/删除 迁移播种 文件。如果您想更改密码、电子邮件或用户名,也可以在 .env 文件中添加变量。

** 注意,laravel/ui composer 包尚未包含在内。

Composer

我已经将 nunomaduro/larastansensiolabs/security-checkersquizlabs/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 的拉取授权。

  • 您可能需要为您的部署用户赋予chmodchgrp权限。这可能会通过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 npmdevmake npmprodmake npmwatch创建您的资源。类似地,存在用于phpcsphpcbf和预测试的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 页面

贡献

感谢您考虑为Laravel框架做出贡献!贡献指南可在Laravel文档中找到。

行为准则

为了确保Laravel社区对所有成员都友好,请阅读并遵守行为准则

安全漏洞

如果您在Laravel中发现安全漏洞,请通过taylor@laravel.com将邮件发送给Taylor Otwell。所有安全漏洞都将得到及时处理。

许可

Laravel框架是开源软件,许可协议为MIT许可证