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" ] } }
提示:考虑了运行一次文件的正确顺序。
提示:不,安装器 不会 支持目录。这是为了保护意外的行为。