これを行う方法は次のとおりです。
file_get_contents('http://url.com/[...]/controller/action/');
できた!:)
または、リクエストをオーバーライドして(リクエストがそのアクションに対するものであるように見える)、次にを呼び出すだけMage::run()
です。
より深刻な注意として、そのアクションで実際に何をしているのかに大きく依存します。Magentoをインスタンス化する必要がありますか、リクエストフロー全体が必要ですか。
リクエストフローなどが必要ない場合は、次のようにできます。
Mage::app();
require_once 'path/to/controller.php';
$my_controller = new YourController;
$my_controller->doSomething();
さらに必要な場合は、Mage::run()
機能を調べて掘り始めることができます。もう1つの良い出発点はapi.php
、Magentoの軽量バージョンをインスタンス化する方法を確認できるところです。次に、要求フローに従ってください。
Alanのコメントを見てください:コントローラーがのインスタンスである場合Mage_Core_Controller_Varien_Action
(そしてMagentoコントローラーがそうである必要がある場合)、要求オブジェクトと応答オブジェクトをコンストラクターに送信する必要があります。
public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array())
{
$this->_request = $request;
$this->_response= $response;
Mage::app()->getFrontController()->setAction($this);
$this->_construct();
}