Đây là một cách để làm điều đó:
file_get_contents('http://url.com/[...]/controller/action/');
Làm xong! :)
Hoặc bạn có thể ghi đè yêu cầu (vì vậy có vẻ như yêu cầu đó là hành động đó) và sau đó chỉ cần gọi Mage::run()
.
Trên một lưu ý nghiêm trọng hơn, phụ thuộc rất nhiều vào những gì bạn đang thực sự làm trong hành động đó. Bạn có cần Magento khởi tạo không, bạn có cần toàn bộ luồng yêu cầu hay không.
Nếu bạn không cần luồng yêu cầu, v.v., bạn có thể làm:
Mage::app();
require_once 'path/to/controller.php';
$my_controller = new YourController;
$my_controller->doSomething();
Nếu bạn cần nhiều hơn, bạn có thể bắt đầu đào bằng cách xem Mage::run()
chức năng. Một điểm khởi đầu tốt khác là api.php
, nơi bạn có thể thấy cách khởi tạo một phiên bản nhẹ của Magento. Sau đó chỉ cần làm theo dòng yêu cầu.
Nhìn vào nhận xét của Alan: Nếu bộ điều khiển của bạn là một thể hiện của Mage_Core_Controller_Varien_Action
(và bộ điều khiển Magento của bạn phải), bạn cần gửi một đối tượng yêu cầu và một đối tượng phản hồi đến bộ điều khiển:
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();
}