X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fclass.api.php;h=88d9b2116596c52bb40f898c97552faea70bdf26;hb=ac90efeffda90f75bf2fe728614b1094be96dbe7;hp=2b378bc5074d7c62adfa9a75ed84ecc8b96952ff;hpb=87878ac8e6101fc5bed04f356c677b5f9ec54bc7;p=civicrm-core.git diff --git a/api/class.api.php b/api/class.api.php index 2b378bc507..88d9b21165 100644 --- a/api/class.api.php +++ b/api/class.api.php @@ -79,6 +79,8 @@ class civicrm_api3 { /** + * Class constructor. + * * @param array $config API configuration. */ public function __construct($config = NULL) { @@ -95,7 +97,6 @@ class civicrm_api3 { else { $this->uri .= '/sites/all/modules/civicrm/extern/rest.php'; } - $this->uri .= '?json=1'; if (isset($config['key'])) { $this->key = $config['key']; } @@ -111,7 +112,9 @@ class civicrm_api3 { return; } if (isset($config) && isset($config['conf_path'])) { - define('CIVICRM_SETTINGS_PATH', $config['conf_path'] . '/civicrm.settings.php'); + if (!defined('CIVICRM_SETTINGS_PATH')) { + define('CIVICRM_SETTINGS_PATH', $config['conf_path'] . '/civicrm.settings.php'); + } require_once CIVICRM_SETTINGS_PATH; require_once 'CRM/Core/ClassLoader.php'; require_once 'api/api.php'; @@ -126,6 +129,8 @@ class civicrm_api3 { } /** + * Convert to string. + * * @return string */ public function __toString() { @@ -133,9 +138,11 @@ class civicrm_api3 { } /** - * Perform action + * Perform action. + * * @param $action * @param $params + * * @return bool */ public function __call($action, $params) { @@ -149,34 +156,28 @@ class civicrm_api3 { } /** - * As of PHP 5.3.0 - * @param $name - * @param $arguments - */ - public static function __callStatic($name, $arguments) { - // Should we implement it ? - echo "Calling static method '$name' " . implode(', ', $arguments) . "\n"; - } - - /** - * Call via rest + * Call via rest. + * * @param $entity * @param $action * @param array $params + * * @return \stdClass */ - public function remoteCall($entity, $action, $params = array()) { - $fields = "key={$this->key}&api_key={$this->api_key}"; - $query = $this->uri . "&entity=$entity&action=$action"; - foreach ($params as $k => $v) { - $fields .= "&$k=" . urlencode($v); - } + private function remoteCall($entity, $action, $params = array()) { + $query = $this->uri . "?entity=$entity&action=$action"; + $fields = http_build_query(array( + 'key' => $this->key, + 'api_key' => $this->api_key, + 'json' => json_encode($params), + )); + if (function_exists('curl_init')) { // To facilitate debugging without leaking info, entity & action // are GET, other data is POST. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $query); - curl_setopt($ch, CURLOPT_POST, count($params) + 2); + curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); @@ -208,13 +209,15 @@ class civicrm_api3 { } /** + * Call api function. + * * @param $entity * @param string $action * @param array $params * * @return bool */ - public function call($entity, $action = 'Get', $params = array()) { + private function call($entity, $action = 'Get', $params = array()) { if (is_int($params)) { $params = array('id' => $params); } @@ -269,15 +272,18 @@ class civicrm_api3 { } /** - * Initialize + * Initialize. */ public function init() { CRM_Core_DAO::init($this->cfg->dsn); } /** + * Get attribute. + * * @param $name * @param null $value + * * @return $this */ public function attr($name, $value = NULL) { @@ -293,6 +299,8 @@ class civicrm_api3 { } /** + * Is this an error. + * * @return bool */ public function is_error() { @@ -300,7 +308,10 @@ class civicrm_api3 { } /** + * Check if var is set. + * * @param string $name + * * @return bool */ public function is_set($name) { @@ -308,7 +319,10 @@ class civicrm_api3 { } /** - * @param $name + * Get object. + * + * @param string $name + * * @return $this */ public function __get($name) { @@ -352,4 +366,5 @@ class civicrm_api3 { public function result() { return $this->lastResult; } + }