2014-09-05 57 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

這樣,你觸發了您的應用程序邏輯,而服務器環境而不再需要控制器。

相關問題