heptaconnect/production

dev-main 2024-07-13 19:12 UTC

This package is auto-updated.

Last update: 2024-09-13 19:42:01 UTC


README

用于生产集成的仓库模板

此仓库旨在被分支并修改以适应您的特定用例。它为基于HEPTAconnect的独立应用程序项目提供快速入门。您可以在文档中了解更多关于HEPTAconnect的信息。了解更多

安装

  1. 分支此仓库。将您的分支克隆到本地机器,并在命令行界面中导航到仓库。
  2. 运行composer install
  3. 运行bin/console system:setup以生成您的.env文件。向导将提示您输入数据库凭据。
  4. 运行bin/console system:install
  5. 配置文档根目录(/public)以由Web服务器在专用的主机名下托管。
    1. 如果您使用的是macOS,我们推荐Laravel Valet
  6. 运行bin/console heptaconnect:config:base-url:set <your-hostname>,其中您将<your-hostname>替换为之前配置的主机名。

✅ 完成系统安装。

开发

  • 您可以通过composer安装额外的门户或门户扩展。
    • 运行composer require niemand-online/heptaconnect-portal-amiibo
    • 运行bin/console heptaconnect:portal-node:add 'NiemandOnline\HeptaConnect\Portal\Amiibo\AmiiboPortal' amiibo
  • 您可以通过在目录/src/Portal中添加它们来开发自定义门户或门户扩展。
    • 创建一个新的目录/src/Portal/HelloWorld
    • 在此新目录中创建一个类HeptaConnect\Production\Portal\HelloWorld\HelloWorldPortal,该类继承自Heptacom\HeptaConnect\Portal\Base\Portal\Contract\PortalContract
    • 运行bin/console cache:clear
    • 运行bin/console heptaconnect:portal-node:add 'HeptaConnect\Production\Portal\HelloWorld\HelloWorldPortal' hello-world
    • 在文档中了解更多关于门户开发的信息。
  • 您可以为获取可重复的数据库操作创建迁移,这些操作在每次安装时运行一次。
    • 运行bin/console database:create-migration以在/src/Integration/Migration中生成新的迁移文件。
    • \HeptaConnect\Production\Integration\Component\Migration\MigrationHelper类提供了像addPortalNodeaddRouteactivatePortalExtension这样的便捷方法。
    • 您可以通过$migrationHelper->getStorageFacade()使用\Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface。这将使您有权访问管理存储的每个存储操作。
    • 您可以通过$migrationHelper->getConnection()使用\Doctrine\DBAL\Connection。这将使您直接访问底层数据库。
    • 运行bin/console system:update:finish以应用所有新的迁移。
  • 您可以使用laravel/pint来规范化您的代码风格。

部署

您的部署策略将影响应用程序的可用性和在部署期间所需维护的数量。由于任何好的部署策略都是针对您的具体需求和情况量身定制的,因此没有通用的解决方案。因此,我们不是提供完整的部署脚本,而是提供推荐步骤的描述。

  • 建议使用某种类型的CI/CD管道进行您的部署。一些最知名的服务提供商包括
  • 在您的CI/CD管道中运行composer install --no-dev
    • 将您要部署的文件收集到一个工件中。
  • 停止目标服务器上的所有运行中的cron作业和消息消费者。
    • 如果您使用的是Supervisor,请运行supervisorctl stop all
    • 如果您使用的是Cron,请运行crontab -r
  • 将准备好的工件文件复制到目标服务器。
  • 同时记得删除目标服务器上自上次部署以来已删除或重命名的文件。
    • 如果您使用的是rsync,请使用选项--delete
    • ⚠️ 注意:仅对目录/src/vendor应用删除操作!其他目录包含针对其环境定制的文件,不属于您的版本控制系统(VCS)的一部分。
  • 在目标服务器上运行bin/console cache:clear以清除缓存。
  • 在目标服务器上运行bin/console system:update:finish以应用数据库迁移。
  • 最后,再次启动cron作业和消息消费者。