此包已废弃且不再维护。作者建议使用 symbiote/silverstripe-build 包。

为使用 silverstripe-base 安装过程的项目提供 Phing 构建辅助工具。


README

  • Phing
  • php cli
  • PEAR (支持 silverstripe 的 phpunit 版本)

安装

  • 编辑 scripts/build.xml 并将 name 属性更改为
  • 将 scripts/build.properties.sample 复制到 scripts/build.properties
  • 编辑 build.properties 并更改数据库配置和 rewrite.base 设置。
  • 运行 phing -f scripts/build.xml 以确保一切安装正常
  • 如果您需要额外的模块,请将它们添加到 scripts/dependent-modules 文件中,然后运行 phing -f scripts/build.xml update_modules
  • 运行 phing -f scripts/build.xml test 以确保一切按预期工作

Phing 目标

常用目标

  • build
  • test
  • package

有助于开发

  • pak - 在 mysite/build/site.sspak 中构建 .sspak 文件。对 CI 有用。
  • phpstan - 如果通过 Composer 安装,运行 PHPStan + PHPStan for SilverStripe。用于静态分析 PHP 代码。
    • 在 build.xml 文件中将以下内容放在 <project> 标签下以定义要扫描的文件夹。
      • <property name="phpstan.dir" value="mysite/src mysite/tests" />

Composer 脚本

如果您的主题使用基于 yarn 的依赖项,您可以将以下 post-install 脚本添加到由 composer 调用的脚本中,以确保正确安装 node_modules

    "scripts": {
		"post-update-cmd": [		
	            "Symbiote\\Build\\ThemeBuilder::run"
		],
		"post-install-cmd": [
	            "Symbiote\\Build\\ThemeBuilder::run"
		]
	},

可选脚本

有三种脚本可用于您的项目,可以使用以下命令执行。

sh build/scripts/cache

这将清除所有项目缓存文件(针对所有项目),基本上是强制执行对网站中所有内容的 ?flush 的等效操作。

sh ~/path/to/permissions

这需要您更新 "{user}",因此需要将其复制到您选择的某个位置,并将适当的所有者和权限应用于缓存和存储库。

sh build/scripts/recursive-status

这将递归触发对在存储库中找到的每个模块目录的 "git status",主要是为了检查可能已在未包含在存储库代码库中的模块中做出的更改。

sh build/scripts/recursive-status assume-unchanged-listing

当您有补丁文件(在递归状态显示为已修改时),您可以使用git update-index --assume-unchanged {文件名},并使用带有参数的此脚本。这不仅会列出已假定未更改的文件,还会强制文件反映上游。这确保了您不会意外地本地更改,但它也会移除任何已实施的补丁。因此,您可以运行此命令,然后执行phing以确保补丁保持不变。

从包中排除文件

创建一个{root}/.pkgignore文件,其中包含要从构建的包文件中排除的路径集合。

vendor/un-used/module/
themes/mytheme/node_modules/
mysite/cypress/