. */ /** * Doctrine_Resource_Request * * @package Doctrine * @subpackage Resource * @author Jonathan H. Wage * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version $Revision$ * @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('request' => Doctrine_Parser::dump($this->getAll(), $this->getFormat())); $header[0] = 'Accept: ' . $this->getFormat(); $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_HTTPHEADER, $header); 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->getFormat()); } if (isset($array['error'])) { throw new Doctrine_Resource_Exception($array['error']); } return $array; } public function getFormat() { return ($this->getConfig()->has('format') && $this->getConfig()->get('format')) ? $this->getConfig()->get('format'):Doctrine_Resource::FORMAT; } }