net-tools / composer-interface
当主机上无法使用SSH时,PHP的Composer界面
Requires
- php: >= 5.4.0
README
当主机上无法使用SSH时,PHP的Composer界面
该软件包包含一个辅助类,用于在您的宿主(或托管计划)不支持SSH(直接访问)时与Composer进行接口操作。
使用这个简单的PHP类,您可以通过shell调用执行composer命令,并获取命令的输出字符串。在demo/文件夹中也提供了一个简单的GUI界面。
安装说明
下载ZIP发行版,并将其内容上传到您的宿主。
由于您正在寻找Composer界面,我们假设您目前无法运行Composer(没有SSH访问),因此您必须手动下载库并将其上传到您的网站上。
如何使用?
为了使用PHP界面到Composer,并在您的宿主上上传ZIP发行版之后,您必须
- 创建一个JSON格式的客户端配置文件(或定义一个PHP关联数组);下面是必需的参数,
- 包含
src/autoload.php
文件(这是一个自定义的自动加载文件,由于Composer尚未安装,您没有其自动加载机制可用), - 在PHP脚本中,使用配置对象和您的Composer项目路径创建一个
ComposerInterface
对象, - 调用
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按钮(或在您的脚本中调用 ComposerInterface
的 setup
方法)。这将下载Composer并运行安装脚本。将创建一个默认的composer.json文件。然后您可以尝试使用require、update等操作。