contao-community-alliance/composer-installer

此包已被废弃且不再维护。作者建议使用 contao-community-alliance/composer-plugin 包。

1.7.1 2013-11-26 19:34 UTC

This package is not auto-updated.

Last update: 2019-02-20 17:22:40 UTC


README

contao composer 安装器

符号链接

Contao 需要严格的模块结构。Composer 将所有依赖项安装到 vendor 目录,使用完整的仓库结构。这两者通常不匹配。

为了解决这个问题,而不创建大量的影子副本,contao-module 安装器创建符号链接。

用户提示:符号链接需要一个 良好的 服务器设置。要使用 Apache2,通常需要 FollowSymLinks 选项。

开发者提示:PHP 默认会跟随符号链接,但使用 __DIR____FILE__ 将返回实际路径。您将得到 composer/vendor/me/my-module/MyClass.php 而不是 system/modules/my-module/MyClass.php

Windows 用户提示:Windows 上的符号链接需要 PHP 5.3+,但这并不是真正的问题,因为 composer 需要 PHP 5.3+ ;-)

将仓库根目录安装为模块 my-module提示:这是隐式回退(system/modules/$packageName),如果未指定符号链接!

{
	"extra": {
		"symlinks": {
			"": "system/modules/my-module"
		}
	}
}

将仓库子路径 src/system/modules/my-module 安装为模块 my-module

{
	"extra": {
		"symlinks": {
			"src/system/modules/my-module": "system/modules/my-module"
		}
	}
}

用户文件

有时您需要提供用户文件((tl_)files 目录内的文件)。支持安装这些用户文件。通常这些文件可以由用户修改。为了保护用户更改,只有在用户文件不存在时才复制用户文件。安装器 永远不会 覆盖用户文件。

提示:用户文件安装到 $uploadPath 目录,而不是 TL_ROOT

{
	"extra": {
		"userfiles": {
			"src/system/modules/my-module/files/images": "my-module/images"
		}
	}
}

Runonces

将您的 runonce.php 放入模块的 config 目录与 composer 一起使用不是一个好主意。当 Contao 运行 runonce.php 后,它会将其删除。下次您进行更新时,composer 会抱怨这种修改。为了解决这个问题,您可以定义您的 runonce.php,是的,您是对的,您可以使用多个 runonce.php 文件。没有必要将它们命名为 runonce.php,您可以自由地使用任何其他名称。

{
	"extra": {
		"runonce": [
			"src/system/modules/my-module/runonce/init_update.php",
			"src/system/modules/my-module/runonce/do_db_update.php",
			"src/system/modules/my-module/runonce/refresh_entities.php"
		]
	}
}

提示:考虑了运行一次文件的正确顺序。

提示:不,安装器 不会 支持目录。这是为了保护意外的行为。