dof-dss/maestro-hosting

Maestro托管资源


README

Maestro的托管提供商和资产。

目录结构

└─ resources/ ## Root resources directory.
├─── unity/ ## Resources for hosting providers operating on Unity Projects. 
├─ src/ ## Root code directory.
├─── provider/ ## Hosting providers which perform the build operations. 
├─── Hosting.php ## Base class for writing a hosting provider.
├─ composer.json ## PHP packages for this project.
├─ composer.lock ## Record of package versions defined in composer.json
├─ vendor/ ## Installed packages from composer.

更新托管配置

在resources/<项目类型>目录下,你可以找到每个托管提供商的资源。每个资源目录通常包含一个'files'和一个'templates'目录。

  • 文件在构建过程中会复制,无需更改。
  • 模板是在构建过程中修改并在添加到项目之前生成的文件。

对files目录中内容的更改可以添加并作为新版本发布。
如果你需要修改模板,你应该进行修改,但也要查看托管提供商类以检查对文件的更改。

更新托管构建步骤

如果你需要更改托管提供商构建整体托管设置的方式,你需要更改提供商类构建函数中的步骤。

添加新的托管提供商

要添加新的托管提供商,创建一个新的类,该类继承自Hosting基类。将各种设置步骤添加到构建函数中,并将任何资源添加到resources/<项目类型>/<提供商名称>。确保提供商名称目录与提供商类的名称匹配(包括大小写)。

注入的服务

每个提供商的构建方法都注入了3个服务

  • StyleInterface $io,
  • FilesystemInterface $fs,
  • ProjectInterface $project

StyleInterface

StyleInterface提供将用户消息传达给Maestro shell的方法。

详情见:https://github.com/symfony/console/blob/4.2/Style/StyleInterface.php

FilesystemInterface

FilesystemInterface提供与文件系统IO交互的方法,并与Symfony Filesystem类的功能类似,但提供以下附加功能

  • 以正斜杠开头路径将是相对于当前目录的相对路径。
  • 以两个正斜杠开头路径将被视为绝对路径。
  • Read方法将根据文件扩展名自动解析给定的文件路径。
  • Write方法将根据文件扩展名自动将内容参数编译为正确的格式。

详情见:https://github.com/dof-dss/maestro-core/blob/main/src/FilesystemInterface.php

ProjectInterface

ProjectInterface提供管理Maestro项目的方法。
你通常会在构建()函数中调用并迭代sites()方法,为每个站点设置托管环境。

详情见:https://github.com/symfony/console/blob/4.2/Style/StyleInterface.php

启用托管提供商

每个分叉的项目仓库必须包含一个maestro.yml文件,其中包含所需的托管提供商条目。当maestro shell的project:build命令运行时,它将遍历这些提供商并运行它们的构建方法。
条目必须有一个服务名称(这不是强制性的),提供商类的完全限定名(FQN)和标签'tag:maestro.hosting'。
请参阅下面的示例。

services:
  hosting.platformSH:
    class: 'Maestro\Hosting\Provider\PlatformSH'
    tags:
      - { name: maestro.hosting }
  hosting.lando:
    class: 'Maestro\Hosting\Provider\Lando'
    tags:
      - { name: maestro.hosting }