gpt4 book ai didi

command-line - Lithium:如何通过命令行访问操作?

转载 作者:行者123 更新时间:2023-12-02 22:14:31 24 4
gpt4 key购买 nike

我正在尝试通过 CLI 运行操作。操作是 UsersController::test()

所以,我运行这个:php libraries/lithium/console/lithium.php\\app\\controllers\\UsersController 测试

但我一直遇到这个错误:PHP fatal error :调用/var/www/example.com/libraries/lithium/action/Controller.php 中的未定义方法 lithium\console\Request::get() 第 154 行

我做错了什么?

最佳答案

参见 http://li3.me/docs/lithium/console供引用。

据我所知,直接从命令行调用 Controller 是不可能的。尽管从您的错误来看,它似乎正在尝试做某事。

相反,创建一个从 \lithium\console\Command 扩展的类,并将其放置在 namespace app\extensions\command 中。例如,将该类命名为 Users。在该类中,创建一个名为 test() 的方法,该方法将在您通过 cli 调用命令时运行。

现在,当您运行 li3(或 lithium.php)时,它应该会打印出所有可用的命令,并且您应该会在列表中看到您的命令。您将调用 li3 users test,如果您已将 lithium/console/li3 添加到您的 bin 路径,则应该运行它。或者您可以调用 php -f path/to/lithium.php -- users test 应该做同样的事情。如果您遗漏了 test,它将在您的 app\extensions\console\Users 类中查找名为 run() 的方法并调用它。

您可能会创建 Controller 的实例并调用 test() 方法,但如您所见,从 Web 浏览器运行时可用的 Request 类与从命令行运行时的 Request 类不同.最好在 Controller 方法中获取业务逻辑并将其移动到另一个类,然后将请求参数从 Controller 传递给该方法。然后从控制台命令类中,您将类似地调用相同的集中方法。

关于command-line - Lithium:如何通过命令行访问操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14719158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com