heptaconnect / production
dev-main
2024-07-13 19:12 UTC
Requires
- php: ^8.2
- composer-runtime-api: ^2.0
- ext-pdo: *
- heptacom/heptaconnect-bridge-shopware-platform: ^0.9.8
- heptacom/heptaconnect-core: ^0.9
- heptacom/heptaconnect-dataset-base: ^0.9
- heptacom/heptaconnect-portal-base: ^0.9
- heptacom/heptaconnect-storage-base: ^0.9
- heptacom/heptaconnect-storage-shopware-dal: ^0.9
- shopware/core: ~v6.4.20
- symfony/framework-bundle: ^5.4
- symfony/runtime: ^6.4
Requires (Dev)
- laravel/pint: ^1.13
This package is auto-updated.
Last update: 2024-09-13 19:42:01 UTC
README
用于生产集成的仓库模板
此仓库旨在被分支并修改以适应您的特定用例。它为基于HEPTAconnect的独立应用程序项目提供快速入门。您可以在文档中了解更多关于HEPTAconnect的信息。了解更多
安装
- 分支此仓库。将您的分支克隆到本地机器,并在命令行界面中导航到仓库。
- 运行
composer install
。 - 运行
bin/console system:setup
以生成您的.env
文件。向导将提示您输入数据库凭据。 - 运行
bin/console system:install
。 - 配置文档根目录(
/public
)以由Web服务器在专用的主机名下托管。- 如果您使用的是macOS,我们推荐Laravel Valet。
- 运行
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
类提供了像addPortalNode
、addRoute
和activatePortalExtension
这样的便捷方法。- 您可以通过
$migrationHelper->getStorageFacade()
使用\Heptacom\HeptaConnect\Storage\Base\Bridge\Contract\StorageFacadeInterface
。这将使您有权访问管理存储的每个存储操作。 - 您可以通过
$migrationHelper->getConnection()
使用\Doctrine\DBAL\Connection
。这将使您直接访问底层数据库。 - 运行
bin/console system:update:finish
以应用所有新的迁移。
- 运行
- 您可以使用
laravel/pint
来规范化您的代码风格。- 编辑
pint.json
以自定义您定义的规则。 - 运行
composer cs:lint
以检查您的代码是否符合您定义的规则。 - 运行
composer cs:fix
以自动将您定义的规则应用于您的代码。
- 编辑
部署
您的部署策略将影响应用程序的可用性和在部署期间所需维护的数量。由于任何好的部署策略都是针对您的具体需求和情况量身定制的,因此没有通用的解决方案。因此,我们不是提供完整的部署脚本,而是提供推荐步骤的描述。
- 建议使用某种类型的CI/CD管道进行您的部署。一些最知名的服务提供商包括
- 在您的CI/CD管道中运行
composer install --no-dev
。- 将您要部署的文件收集到一个工件中。
- 停止目标服务器上的所有运行中的cron作业和消息消费者。
- 如果您使用的是Supervisor,请运行
supervisorctl stop all
。 - 如果您使用的是Cron,请运行
crontab -r
。
- 如果您使用的是Supervisor,请运行
- 将准备好的工件文件复制到目标服务器。
- 同时记得删除目标服务器上自上次部署以来已删除或重命名的文件。
- 如果您使用的是rsync,请使用选项
--delete
。 - ⚠️ 注意:仅对目录
/src
和/vendor
应用删除操作!其他目录包含针对其环境定制的文件,不属于您的版本控制系统(VCS)的一部分。
- 如果您使用的是rsync,请使用选项
- 在目标服务器上运行
bin/console cache:clear
以清除缓存。 - 在目标服务器上运行
bin/console system:update:finish
以应用数据库迁移。 - 最后,再次启动cron作业和消息消费者。