有没有办法调出像 'rails console' 这样的 Yii 控制台?
Is there a way to bring up a Yii console like 'rails console'?
有没有办法在命令行上使用像 rails console
这样的控制台与 Yii 交互?我想测试数据库和 ActiveRecord 调用。
您可以安装 yii-shell。它是由 Yii 团队制作的。它的工作方式类似于 rails console
编辑:
抱歉,我是根据 yii-shell 的文档工作的,在撰写本文时,这是一个承诺。
这就是在 Yii 2 中获得合适的 REPL 的方法。
首先,我们需要获取 Psysh。您可以全局安装它来使用它,但我建议将以下行添加到您的 composer.json
require-dev: {
// ... some other packages ...
"psy/psysh": "0.7.2"
}
运行 composer update
安装这个包。
现在我们需要将其添加到控制器中。从控制器调用断点的方法是eval(\Psy\sh());
.
请注意,这将调用控制台进行调试。因此,如果您的应用程序由 Apache、Nginx 或任何其他未绑定到交互式控制台的服务器提供,这毫无意义
为了让它工作,我使用 PHP 的内置服务器和 Yii 的包装器为应用程序提供服务。
在 Yii 基本应用程序模板中...
cd /path/to/application
./yii serve localhost:12345
在任何控制器中,...说 controllers/SiteController.php
public function actionIndex()
{
eval(\Psy\sh()); // <-- debugger point
return $this->render('index');
}
当您通过 URL 访问此操作时,它会挂在您的浏览器上。如果您在控制台中返回查看,您会看到一个交互式 shell,它应该像 rails c
一样工作。查看 Psysh Documentation 了解更多详情。要退出此交互式控制台,请键入 exit
;这应该 return 控制回 PHP 的内置服务器。 不要使用 Ctrl-C
退出交互式控制台,因为这也会关闭 PHP 的内置服务器。
在 Yii 高级应用程序模板中...
目前无法为应用程序提供服务,因为它默认为不存在的 console/web
提供内容。我已经用 Yii 提出了 issue;感兴趣的可以关注
但是,如果您有控制台控制器,则可以执行我们为基本应用所做的相同操作。当您 运行 控制台命令时,您应该会看到相同的交互式调试控制台。
1) 安装https://github.com/yiisoft/yii2-shell
composer require yiisoft/yii2-shell
2) ./yii shell
有没有办法在命令行上使用像 rails console
这样的控制台与 Yii 交互?我想测试数据库和 ActiveRecord 调用。
您可以安装 yii-shell。它是由 Yii 团队制作的。它的工作方式类似于 rails console
编辑:
抱歉,我是根据 yii-shell 的文档工作的,在撰写本文时,这是一个承诺。
这就是在 Yii 2 中获得合适的 REPL 的方法。
首先,我们需要获取 Psysh。您可以全局安装它来使用它,但我建议将以下行添加到您的 composer.json
require-dev: {
// ... some other packages ...
"psy/psysh": "0.7.2"
}
运行 composer update
安装这个包。
现在我们需要将其添加到控制器中。从控制器调用断点的方法是eval(\Psy\sh());
.
请注意,这将调用控制台进行调试。因此,如果您的应用程序由 Apache、Nginx 或任何其他未绑定到交互式控制台的服务器提供,这毫无意义
为了让它工作,我使用 PHP 的内置服务器和 Yii 的包装器为应用程序提供服务。
在 Yii 基本应用程序模板中...
cd /path/to/application
./yii serve localhost:12345
在任何控制器中,...说 controllers/SiteController.php
public function actionIndex()
{
eval(\Psy\sh()); // <-- debugger point
return $this->render('index');
}
当您通过 URL 访问此操作时,它会挂在您的浏览器上。如果您在控制台中返回查看,您会看到一个交互式 shell,它应该像 rails c
一样工作。查看 Psysh Documentation 了解更多详情。要退出此交互式控制台,请键入 exit
;这应该 return 控制回 PHP 的内置服务器。 不要使用 Ctrl-C
退出交互式控制台,因为这也会关闭 PHP 的内置服务器。
在 Yii 高级应用程序模板中...
目前无法为应用程序提供服务,因为它默认为不存在的 console/web
提供内容。我已经用 Yii 提出了 issue;感兴趣的可以关注
但是,如果您有控制台控制器,则可以执行我们为基本应用所做的相同操作。当您 运行 控制台命令时,您应该会看到相同的交互式调试控制台。
1) 安装https://github.com/yiisoft/yii2-shell
composer require yiisoft/yii2-shell
2) ./yii shell