net-tools/composer-interface

当主机上无法使用SSH时,PHP的Composer界面

1.0.16 2023-09-10 12:43 UTC

This package is auto-updated.

Last update: 2024-09-10 14:47:33 UTC


README

当主机上无法使用SSH时,PHP的Composer界面

该软件包包含一个辅助类,用于在您的宿主(或托管计划)不支持SSH(直接访问)时与Composer进行接口操作。

使用这个简单的PHP类,您可以通过shell调用执行composer命令,并获取命令的输出字符串。在demo/文件夹中也提供了一个简单的GUI界面。

安装说明

下载ZIP发行版,并将其内容上传到您的宿主。

由于您正在寻找Composer界面,我们假设您目前无法运行Composer(没有SSH访问),因此您必须手动下载库并将其上传到您的网站上。

如何使用?

为了使用PHP界面到Composer,并在您的宿主上上传ZIP发行版之后,您必须

  1. 创建一个JSON格式的客户端配置文件(或定义一个PHP关联数组);下面是必需的参数,
  2. 包含 src/autoload.php 文件(这是一个自定义的自动加载文件,由于Composer尚未安装,您没有其自动加载机制可用),
  3. 在PHP脚本中,使用配置对象和您的Composer项目路径创建一个 ComposerInterface 对象,
  4. 调用 ComposerInterface 对象的其中一个支持的Composer命令。

JSON客户端配置文件或关联配置数组 必须 定义以下值

然后创建一个配置实例并将其传递给 ComposerInterface 构造函数

// include script (you may point the inclusion to the right path to src/autoload.php)
include_once "autoload.php";

// create config object
$config = \Nettools\ComposerInterface\Config::fromJSON(__DIR__ . '/composer.config.json');
// OR
// $config = \Nettools\ComposerInterface\Config::fromArray(array('composer_phpbin'=>'usr/local/php7.0/bin/php', 'composer_home'=>$_SERVER['DOCUMENT_ROOT']));

// create interface and set the composer project to be in folder LIBCOMPOSER, directly placed under the web root folder
$composer = new ComposerInterface($config, rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/libcomposer');

例如,进行Composer的初始设置

$output = $composer->setup();
echo "<pre>$output</pre>";

然后要引入一个包

$output = $composer->package_require('net-tools/core');
echo "<pre>$output</pre>";

Composer命令已被分为3组

  • 全局命令
  • 应用于包的命令
  • 应用于存储库的命令

全局命令使用对应的方法名称调用(例如 $composer->diagnose())。包命令使用 package_ 前缀调用(例如 $composer->package_update('vendor/name'))。存储库命令更为具体

  • 添加存储库: $composer->repository_add('路径', 'http://url')
  • 删除存储库: $composer->repository_remove('http://url')

如果您想发送不被 ComposerInterface 支持的命令,可以使用 Command 方法: $composer->command('unsupportedcommand vendor/name arguments')

演示

在demo/子文件夹中提供了一个简单的GUI界面。

要运行演示,只需修改提供的客户端配置文件 composer.config.json(在demo文件夹中),使其指向您的宿主上的PHP二进制文件,然后打开浏览器到demo文件夹中的 gui_demo.php 文件。如果您不知道PHP二进制文件的路径,最好咨询您的宿主支持团队。

演示将在您的网站根目录上创建一个 libc-composerinterface 文件夹。如果您想使用另一个名称或路径,请修改demo文件顶部的 PROJECT 常量。

请注意,演示包含一个空的Composer项目和没有Composer包。Composer软件 必须 安装。为此,您必须在GUI上点击SETUP按钮(或在您的脚本中调用 ComposerInterfacesetup 方法)。这将下载Composer并运行安装脚本。将创建一个默认的composer.json文件。然后您可以尝试使用require、update等操作。