loveorigami/yii2-webshell

Yii2-Webshell 允许您从Web界面执行任何shell命令。

安装: 233

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 1

类型:yii2-extension

dev-master 2019-06-07 06:45 UTC

This package is auto-updated.

Last update: 2024-09-07 19:16:21 UTC


README

这是一个 [从] (https://github.com/asinfotrack/yii2-webshell) 的分支

Yii2-Webshell 允许您从Web界面执行任何shell命令。这特别适用于从前端调用控制台命令。执行是通过AJAX和特殊动作类(ShellAction)完成的。

shell动作的输出 实时显示(逐行显示)。

安装

安装此扩展的首选方式是通过 composer

"loveorigami/yii2-webshell": "*"
ShellAction

这是您可以将其附加到任何控制器的方法(actions()方法)的动作。在这里,您定义谁可以访问该动作。当然,所有常规的RBAC控制都可用。

以下是在Windows下调用yii控制台命令的配置示例

class MyController extends \yii\web\Controller
{

	//...
	
	public function actions()
	{
		return [
			'my-shell-action'=>[
				'class'=>'lo\wshell\actions\ShellAction',
				'command'=>'my-console-command/index',
				'yiiScript'=>'@app/yii',
			],
		];
	}
	
	//...

}

小部件

ShellWidget

此小部件允许您在视图中创建类似控制台的内容容器,它与上面文档中所述的 ShellAction 进行通信。以下是一个完整的配置示例

echo Button::widget([
	'label'=>'Run', 
	'options'=>[
		'data-shell-widget-run'=>'my-shell-widget',
	],
]) 

echo ShellWidget::widget([
	'id'=>'my-shell-widget',
	'route'=>['my-controller/my-shell-action'],
	'autorun'=>false,
	'initialContent'=>Yii::t('app', 'Ready and waiting...'),
	'clientOptions'=>[
        //custom client options here
	],
]) 

如您所见,控制台可以是自动运行或非自动运行。在任何情况下,您都可以创建按钮来触发动作。为此,请简单地使用属性 data-shell-widget-run 并填写 ShellWidget 的id。您可以使用小部件的 clientOptions 属性自定义所有js选项(包括属性名称)。

有关小部件功能的完整文档,请查看其代码中的文档。