Php 如何从代码调用Magento中的管理控制器及其方法?
我正在创建一个脚本,它将从CRON自动完成一些任务,这些任务现在是从后端完成的(手动管理)。如何调用Magento extensions的控制器及其方法并从代码中传递必要的参数 我考虑过使用curl,使用admin登录,并提出必要的请求。但是我想知道是否有一种不使用curl的简单方法来实现这一点,是否只是简单地包含一些文件并调用必要的类和方法,或者是否有一种方法来扩展扩展的类并直接使用它们 比如说,Php 如何从代码调用Magento中的管理控制器及其方法?,php,magento,Php,Magento,我正在创建一个脚本,它将从CRON自动完成一些任务,这些任务现在是从后端完成的(手动管理)。如何调用Magento extensions的控制器及其方法并从代码中传递必要的参数 我考虑过使用curl,使用admin登录,并提出必要的请求。但是我想知道是否有一种不使用curl的简单方法来实现这一点,是否只是简单地包含一些文件并调用必要的类和方法,或者是否有一种方法来扩展扩展的类并直接使用它们 比如说, require "Mage.php"; $testcontroller = New TestCo
require "Mage.php";
$testcontroller = New TestController();
$testcontroller->method();
为了让Magento/Zend将所有正确的对象(如请求/响应)放在一起,您需要服务器环境变量,如$\u POST、$\u GET、$\u COOKIE等,所以不要这样做 您的控制器操作应该只作用于某些模型并调用它们的方法。它不应包含应用程序逻辑本身,而应充当“控制器”。在这种情况下,您应该在模块的etc目录中打开config.xml并创建一个cron任务:
通过这种方式,您可以在没有服务器环境的情况下触发应用程序逻辑,并且不再需要控制器。我能够实现一个解决方案,它可以像我需要的那样正常工作。感谢这一点,也感谢其他发布答案的人 以下代码位于外部脚本上。参数值将通过我的自定义SQL脚本提供
require "Mage.php";
require "PATH TO YOUR MAGENTO EXTENSION CONTROLLER.php";
umask ( 0 );
Mage::app ( 'admin' );
Mage::app()->getRequest()->setParam('TEST','123');
$testcontroller = New TestController(Mage::app()->getRequest());
$testcontroller->method();