asinfotrack/yii2-webshell

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

安装: 451

依赖: 0

建议者: 0

安全: 0

星标: 4

关注者: 6

分支: 0

开放问题: 0

类型:yii2-extension

0.8.1 2019-06-06 12:37 UTC

This package is auto-updated.

Last update: 2024-09-07 00:12:19 UTC


README

Yii2-Webshell 允许您从网络界面执行任何 shell 命令。这对于从前端调用控制台命令特别有用。执行是通过 AJAX 和一个特殊的行为类(ShellAction)完成的。

shell 行为的输出将(逐行)实时显示。

安装

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

"asinfotrack/yii2-webshell": "0.8.*"

变更日志

了解最新改进

内容

组件

ShellAction

这是您可以通过其 actions()-方法将其附加到任何控制器中的行为。在这里,您定义谁可以访问此行为以及谁可以访问。当然,所有常规 RBAC 控制(角色基于访问控制)都是可用的。

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

class MyController extends \yii\web\Controller
{

	//...
	
	public function actions()
	{
		return [
			'my-shell-action'=>[
				'class'=>'asinfotrack\yii2\webshell\actions\ShellAction',
				'command'=>'php "c:\path\to\my_yii2_application\yii" my-console-command/index',
			],
		];
	}
	
	//...

}

小部件

ShellWidget

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

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

<?= 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 选项。

要查看小部件所有可能性的完整文档,请查看其代码中的文档。