asinfotrack / yii2-webshell
Yii2-Webshell 允许您从网络界面执行任何 shell 命令。
0.8.1
2019-06-06 12:37 UTC
Requires
- php: >=5.4.0
- symfony/process: 3.1.*
- yiisoft/yii2: 2.0.*
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 选项。
要查看小部件所有可能性的完整文档,请查看其代码中的文档。