loveorigami / yii2-webshell
Yii2-Webshell 允许您从Web界面执行任何shell命令。
dev-master
2019-06-07 06:45 UTC
Requires
- php: >=5.4.0
- symfony/process: ^4.0
- yiisoft/yii2: 2.0.*
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选项(包括属性名称)。
有关小部件功能的完整文档,请查看其代码中的文档。