hn/typo3-environment

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

为typo3安装生成基础环境

安装: 111

依赖者: 0

建议者: 0

安全: 0

类型:composer-plugin

v1.0.0-RC12 2018-04-03 17:25 UTC

README

  • docker 17.06.0-ce 或更高版本
  • docker-compose(能够读取 v2 docker-compose 文件)
  • GNU make
  • rsync(用于部署或推送/拉取用户数据)

创建一个项目

创建一个类似的项目

  • composer init --no-interaction --name="$(basename $PWD)"
  • composer config platform.php 7.1.6(或任何其他 >= 7.0 的 PHP 版本)
  • composer config extra.typo3/cms.web-dir web(或除 "." 之外的任何其他 web 目录)
  • composer require hn/typo3-environment typo3/cms-core:8.7.*并回答所有问题
  • 运行make serve,你应该会进入一个正在运行的 typo3 项目
  • 如果你在后台,你可能想用生成的模板扩展中的 typoscript 替换 typo3 控制台的 typoscript
  • 此外,你可能会选择一个后台布局 ~ 模板扩展为你生成了一个

你可能想使用的 Make 命令

  • make serve将启动项目,打开默认浏览器并带你进入项目
  • make start仅启动服务器,没有浏览器部分
  • make stop停止本地服务器
  • make cc清除所有 typo3 缓存并将数据库更新到所有扩展所需的当前模式
  • make clean将本地安装重置为零。
  • make pull从远程安装克隆所有用户数据
  • make deploy安装项目并将所有非用户文件移动到 DEPLOY_HOSTDEPLOY_PATH

一件好事是你可以轻松地将 make 命令链接起来,如 make clean pull serve,以清理您的设置,重新安装所有依赖项,启动 web 服务器,从您的实时服务器拉取所有用户数据,并在您的网络浏览器中打开它。

配置部署

在 composer.json 中有一个名为 deployments 的选项。只需添加以下配置

{
    "deployments": {
        "master": {
            "path": "html/master",
            "php_cli": "php_cli",
            "branch": "master",
            "host": "p000000@p000000.mittwaldserver.info"
        }
    }
}

第一个部署将是默认目标。目前还没有实现多个部署目标。默认部署将添加到您的 Makefile。

在您的目标服务器上,您可能想定义一些环境变量。对于大多数主机,如 mittwald,最简单的方法是使用 php 定义环境。如果您的部署路径是 html/master,请添加一个名为 html/master/shared/config/AdditionalConfiguration.php 的文件。

<?php

putenv('MYSQL_HOST=localhost');
putenv('MYSQL_USERNAME=username');
putenv('MYSQL_PASSWORD=password');
putenv('MYSQL_DATABASE=database');

putenv('IMAGE_PROCESSOR=ImageMagick');
putenv('IMAGE_PROCESSOR_COLORSPACE=sRGB');
putenv('IMAGE_PROCESSOR_PATH=/usr/bin/');

它做什么

  • 创建一个 docker 环境
    • 准备一个带有 mod php 的 apache 容器,具有可配置的版本(尽管没有用低于 7.0 的 php 进行测试)
    • 准备一个带有可配置版本的 mysql 容器(5.5 - 5.7)
    • 将 typo3temp 放入 tmpfs,以解决 docker for mac 上弱文件系统性能的问题
  • 使用以下内容创建一个 AdditionalConfiguration
    • 允许使用环境定义 mysql 访问
    • 允许通过环境定义邮件发送器配置
    • 基于环境定义图像处理
    • 将 mysql 时区设置为 php 时区
    • 配置一些具有不良默认配置的扩展
    • 在开发环境中启用调试配置
    • 使用 apcu(如果可用)和文件系统(如果不适用)进行更节省的缓存配置
    • 在开发环境中禁用大量缓存,以便不需要频繁清除缓存
  • 创建一个 .gitignore 文件
    • 忽略默认的 typo3 文件夹
    • 根据您安装的 composer 库忽略 typo3conf 中的扩展
  • 创建一个 .htaccess(用于 apache 2.4+)
    • 为大多数基本文本文件提供有用的 deflate 配置
    • 针对非PHP生成的任何内容,使用有用的缓存头
    • 设置安全头X-Content-Type-Options和X-Xss-Protection
    • 设置X-Frame-Options SAMEORIGIN以防止点击劫持攻击
    • 设置X-UA-Compatible头,用于旧版IE浏览器
    • 根据请求使用的域名设置TYPO3_CONTEXT
    • 将index.php配置为FallbackResource,允许使用realurl(虽然很糟糕,但在typo3 9.3之前是必要的)
  • 创建一个makefile以方便使用
    • 包括安装、启动和停止命令,以简化本地开发环境的启动和停止
    • 包括cc(缓存清除)命令,以避免在安装工具中令人烦恼的遍历
    • 包括部署命令,以轻松创建带有版本号的远程版本
      • 创建日期版本的部署,以便于回滚
      • 从所有composer库中排除所有测试资源
      • 配置rsync重用上次部署的文件,以实现非常快的部署
      • 根据composer.json中的配置创建共享目录(该配置也反映在gitignore中)
      • 更新数据库架构并运行升级向导
      • 清理旧版本
    • 包括一个pull命令,以同步远程userdata与本地版本
      • 同步所有共享文件
      • 同步数据库,但排除一些特定的表,如缓存表或会话表
  • 创建phpstorm元信息~以使extbase开发不那么令人烦恼
  • 创建一个基础扩展,直接开始编码,其中包含
    • 一个基本的typoscript模板
      • 配置typolink使用绝对URL,并设置外部链接的目标为"_blank"
      • 配置rel="noopener"属性到所有链接以防止hyjacking并提高Chrome性能
      • 默认启用realurl(如果可用)
      • 配置typo3缓存在午夜过期以保持网站一致性
      • 将默认语言设置为英语,并启用所有覆盖选项,以便快速跳转到多语言typo3实例
      • 当typo3上下文为开发时禁用所有缓存
      • 当typo3上下文为生产时启用所有缓存和CSS/JS压缩
      • 创建一个页面对象,它使用后端布局来找到正确的FluidTemplate
    • 创建tsconfig
      • 带有基本的后端布局
      • 禁用大多数基本内容元素,以便在需要时启用
    • 创建一个主页面模板,以便立即开始模板设计
  • 使用makefile添加部署
    • 生产就绪的依赖项安装
    • 排除测试文件
    • 优化rsync以实现快速传输且不触发opcache
    • 在版本之间共享用户文件(如fileadmin)(可以使用生成器配置额外的文件夹)
  • 将bower添加到项目中(可选)
    • 配置.bowerrc以指向web目录
    • 配置.htaccess以缓存bower组件一段时间

我也想补充说,大多数功能都是可配置的。您不需要模板扩展?没问题。要了解哪些是可配置的,请在要求环境后检查composer.json文件。在第一次安装期间也会询问一些问题。

初始设置后的操作

是的,此插件将监视您的依赖项,并在初始设置后提供一些技巧来帮助您。

  • 如果您安装任何扩展,它将询问您是否想要一个本地修改扩展(例如,对于新闻,它将询问您是否应该生成hn_news扩展),这将已经配置为覆盖原始扩展的模板。
  • 如果您安装它,请调整gitignore和realurl的扩展配置
  • 将库和扩展添加到gitignore中,以便您可以与它们共享typo3conf/ext文件夹
  • 持续支持,因为此插件可以更新您的配置文件,所以您的typo3配置可以通过简单的composer update随着时间的推移而改进。

以后要添加的其他事项

  • 允许在项目中或其他扩展中添加自己的生成器(如插件内的生成器)
  • 直接支持使用共享的l10n文件夹支持翻译-locallang扩展
  • 生成bitbucket流水线以实现自动部署 ~ 但如果需要可以手动添加
  • 如果安装了新闻扩展,则创建本地新闻扩展
  • 如果安装了solr扩展,则创建本地solr扩展
  • 为静态文件缓存创建服务器配置
  • 如果需要,添加https重定向配置
  • 添加服务器配置以阻止对像favicon.ico这样的文件进行php访问,以提升性能
  • 使用make命令轻松创建更多本地扩展
  • 生成lint命令以强制执行良好的编程习惯 ~ 与bitbucket流水线配合使用很棒
  • 甚至可能自动生成基本测试框架