【问题标题】:TYPO3 CMS automation gotchasTYPO3 CMS 自动化陷阱
【发布时间】:2018-04-13 05:35:07
【问题描述】:

我们正在使用gitcomposer,目前正在实施DDEV 以实现自动TYPO3 CMS 部署。但是有些手动过程我不知道如何自动化?

  1. 我们如何自动添加或删除“包含静态(来自扩展)”?目前这是在主 TS 模板的“包含”选项卡下的手动过程。
  2. 我们如何处理扩展的激活/停用? PackageStates.php 是 TYPO3 跟踪安装了哪些扩展的地方,所以应该在 git 中跟踪 PackageStates.php 还是应该在 git 中跟踪所有扩展安装extsysext 文件夹并完全删除那些我们不想要的Helmut Hummel was suggesting he's already doing
  3. 我们如何自动化每个扩展程序的自定义配置设置,这些设置通常通过转到 TYPO3 CMS 后端中的 Extensions 然后选择特定扩展程序来设置?

【问题讨论】:

    标签: git automation composer-php typo3 ddev


    【解决方案1】:

    以下是一些建议:

    1. 您至少可以通过 INCLUDE_TYPOSCRIPT 将所需的联系人/设置文件添加到您的站点扩展中,至少可以避免通过 TYPO3 后端的往返。它不是自动化的,但可以确保原子更改和轻松删除,而无需单击周围。当然,您需要在后端模板记录的 contants 和 setup 字段中有一个 INCLUDE_TYPOSCRIPT 指向您的站点扩展。
    2. 我强烈推荐 Helmut 在这里建立的方法:只需 require 您真正需要的软件包。如果将TYPO3 Console 命令install:generatepackagestates 添加为post-autoload-dump script,则可以自动更新PackageStates.php。大多数情况下,如果您在部署时也执行此步骤,您甚至不需要再将此文件添加到您的存储库中。
    3. 这些配置设置最终以$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'] 为序列化字符串,因此您可以根据需要简单地设置它,如有必要,在之前取消序列化现有配置。您可以在您的 AdditionalConfiguration.php 中执行此操作,以保留配置更改的代码。请注意,$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']deprecated with TYPO3v9 并替换为普通数组和适当的 API。

    【讨论】:

      【解决方案2】:
      1. 要“包含静态”,您始终必须在数据库中执行更改。添加的模板保存在 sys_template 表中。因此,您可以创建一个 sh 脚本,以便在每次部署时仅导入此表。

      2. 如果您不使用 composer 安装扩展,您可以在 git 中添加 PackageStates。当我不使用作曲家进行扩展时,我就是这样做的。

      3. 请查看此链接https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/ConfigurationOptions/Index.html

      【讨论】:

        【解决方案3】:

        关于 1.) 您可以使用挂钩 `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['Core/TypoScript/TemplateService']['runThroughTemplatesPostProcessing']。举个例子,看看https://github.com/CMSExperts/bolt/blob/master/Classes/TypoScript/TemplateService.php

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-22
          • 1970-01-01
          • 2013-02-26
          相关资源
          最近更新 更多