2014-09-05 55 views
1

我正在创建一个脚本,它将从CRON自动完成一些任务,这些任务现在从后端完成(手动管理)。我怎样才能调用Magento扩展的控制器,它的方法和从代码传递必要的参数?如何从代码中调用Magento中的管理控制器及其方法?

我想过使用卷曲使用管理员登录并提出必要的请求。但是我想知道是否有一种简单的方法可以在不卷曲的情况下完成这个任务,并且只是简单地包含一些文件并调用必要的类和方法,或者如果有方法扩展扩展的类并直接使用它们。

例如,

require "Mage.php"; 
$testcontroller = New TestController(); 
$testcontroller->method(); 

回答

2

我能够实现一个解决方案,它工作正常,像我需要的。感谢link,并感谢其他发布答案的人。

以下代码位于外部脚本上。参数值将通过我的自定义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(); 
0

为了Magento的/ Zend的放在一起都喜欢请求/响应正确的对象,你需要像$ _ POST服务器环境变量,$ _ GET,$ _ COOKIE等等,所以不要这样做。

您的控制器操作应该只是在某些模型上进行操作并调用其方法。它不应该包含应用程序逻辑本身,而只是充当“控制器”。在这种情况下,你应该在你的模块的etc目录打开config.xml文件,并创建一个cron任务:

http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job

这样,你触发了您的应用程序逻辑,而服务器环境而不再需要控制器。

相关问题