. */ /** * Doctrine_Resource_Request * * @author Konsta Vesterinen * @author Jonathan H. Wage * @package Doctrine * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version $Revision$ * @category Object Relational Mapping * @link www.phpdoctrine.com * @since 1.0 */ class Doctrine_Resource_Request extends Doctrine_Resource_Params { protected $_params = null; public function getConfig($key = null) { return Doctrine_Resource_Client::getInstance()->getConfig($key); } public function execute() { $url = $this->getConfig()->get('url'); $request = array('xml' => Doctrine_Parser::dump($this->getAll(), 'xml')); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); $response = curl_exec($ch); if (curl_errno($ch)) { throw new Doctrine_Resource_Exception('Request failed'); } curl_close($ch); $array = array(); if ($response) { $array = Doctrine_Parser::load($response, $this->getConfig()->get('format')); } if (isset($array['error'])) { throw new Doctrine_Resource_Exception($array['error']); } return $array; } }