concrete5 / cli
concrete5 CLI 工具
This package is auto-updated.
Last update: 2024-08-23 16:11:30 UTC
README
您可能还对官方 CLI 工具感兴趣,它可在以下网址找到 https://github.com/concrete5/console
concrete5 包装器
此存储库包含两个 shell 脚本(c5
用于 POSIX shell,c5.bat
用于 Windows),您可以将它们放置在路径中的目录中(例如 POSIX shell 的 /usr/local/bin
,或 Windows 的 C:\Windows\System32
)。
一旦完成,您就可以通过在 shell 中调用 c5
来运行 concrete5 CLI 命令。为了检测 concrete5 的位置,当前工作目录可以是以下任何一个:
- concrete5 网站根目录
- concrete5 网站根目录的任何子目录
- concrete5 网站根目录的父目录(假设 concrete5 网站根目录是一个名为
public
或web
的文件夹)
例如,如果 concrete5 安装在 /var/sites/example/public
,则 c5
会检测 concrete5,如果当前目录是以下任何一个位置:
/var/sites/example
/var/sites/example/public
/var/sites/example/public/packages
/var/sites/example/public/packages/my_package/blocks/my_block
(同样适用于 Windows)
POSIX 特定细节
以不同用户运行 concrete5
您可以使用 C5_SUDOAS
环境变量让 c5
以其他用户身份执行 concrete5 CLI 命令。它需要 sudo
命令可用。
例如
C5_SUDOAS=www-data c5 c5:info
源脚本
您可以将 c5
脚本复制到路径中的目录,也可以 源 它(即,预加载它),例如在您的 shell 初始化脚本中(bash 的 ~/.bashrc
)
. /path/to/c5
重新加载您的 shell 后,您将拥有 c5
函数。
Windows 特定细节
至少在 Windows 7 下,c5 脚本在 C:\Windows\System32
中被识别,但对于 composerpkg 脚本则不一定有效(有关 composerpkg 的详细信息,请参阅下文)
第一个问题是脚本可能被系统锁定。
单击 composerpkg 脚本并打开属性窗口。底部应有一个选项来解锁它(如果已锁定)。
一般来说,可能更好的是将两个脚本都放在自定义文件夹中,确保 composerpkg 或 c5 都未被系统锁定,并将您的自定义文件夹添加到路径中。
例如
- 将 c5、c5.bat、composerpkg 和 composerpkg.bat 添加到
C:\Dev\Util\Bin
中(创建该文件夹) - 然后将您的文件夹
C:\Dev\Util\Bin
添加到您的路径中。
您可以在以下页面找到如何将文件夹添加到路径的方法 https://www.java.com/en/download/help/path.xml(这是 Java 专属的,但任何文件夹的过程都相同)
包依赖项的 composer 包装器
当为 concrete5 编写包时,您可能需要 composer 库。当使用基于 composer 的 concrete5 安装时,这不是问题,因为 composer 会完美处理您的依赖关系,并为您创建自动加载器。
当您的包将不使用 composer 安装时,就会出现问题,您需要将 composer 库与您的包一起提供。
例如,假设您在包的 composer.json
文件中这些要求
{ "require": { "concrete5/core": "^8.5.1", "some_vendor/some_package": "1" } }
这是完全合法的:你正在告诉composer,你的包需要 concrete5 版本 8.5.1(或任何后来的 8.x 版本),并且你需要 some_vendor/some_package
包。顺便说一句,如果你因为要分发你的包而运行 composer install
,composer 将会下载 concrete5 并将其安装在你的 vendor 目录中,这当然不是你想要的。
当你的包需要(直接或间接地)一个已经包含在 concrete5 vendor 目录中的库时,另一个问题就出现了。这会导致需要运行同一库的两个副本(一个在 concrete5 vendor 目录中,一个在你的包 vendor 目录中)。这浪费了空间,并且实际使用的版本可能无法确定。
为了避免这些问题,你可以运行本存储库中包含的 composerpkg
命令(对于 Windows 用户,你还需要 composerpkg.bat
文件 - 应该与 composerpkg
文件保存在同一目录中)。composerpkg
接受与纯 composer
命令相同的参数,但在安装/更新依赖项时,你不会在你的 vendor 目录中有重复的内容。
默认情况下,composerpkg
通过调用 composer
命令来运行 Composer。如果你需要自定义它,可以使用 COMPOSERPKG_BIN
环境变量。例如
# On Linux & Mac COMPOSERPKG_BIN='/path/to/your/composer' composerpkg ... # or COMPOSERPKG_BIN='/path/to/your/composer' export COMPOSERPKG_BIN composerpkg ... # On Windows (with cmd.exe) set COMPOSERPKG_BIN="C:\path\to\your\composer" composerpkg ... # On Windows (with PowerShell) $Env:COMPOSERPKG_BIN='C:\path\to\your\composer' composerpkg ...
你可以通过将 COMPOSERPKG_VERBOSE
设置为 1
来使 composerpkg 详细输出。