contao-community-alliance / composer-installer
Requires
- contao/core: >=2.11,<3.3
Conflicts
- contao-community-alliance/composer: <0.7.10
- contao/core: 3.0.*
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"
]
}
}
提示:考虑了运行一次文件的正确顺序。
提示:不,安装器 不会 支持目录。这是为了保护意外的行为。