concrete5 CLI 工具

安装: 11

依赖: 0

建议者: 0

安全: 0

星标: 5

关注者: 5

分支: 4

开放问题: 4

类型:项目

v0.1 2020-06-01 21:56 UTC

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 网站根目录是一个名为 publicweb 的文件夹)

例如,如果 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 详细输出。