Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions | Protected Attributes
Zend_Json_Server_Smd_Service Class Reference

Public Member Functions

 __construct ($spec)
 
 setOptions (array $options)
 
 setName ($name)
 
 getName ()
 
 setTransport ($transport)
 
 getTransport ()
 
 setTarget ($target)
 
 getTarget ()
 
 setEnvelope ($envelopeType)
 
 getEnvelope ()
 
 addParam ($type, array $options=array(), $order=null)
 
 addParams (array $params)
 
 setParams (array $params)
 
 getParams ()
 
 setReturn ($type)
 
 getReturn ()
 
 toArray ()
 
 toJson ()
 
 __toString ()
 

Protected Member Functions

 _validateParamType ($type, $isReturn=false)
 

Protected Attributes

 $_envelope = Zend_Json_Server_Smd::ENV_JSONRPC_1
 
 $_name
 
 $_return
 
 $_target
 
 $_transport = 'POST'
 
 $_envelopeTypes
 
 $_nameRegex = '/^[a-z][a-z0-9._]+$/i'
 
 $_paramOptionTypes
 
 $_params = array()
 
 $_paramMap
 
 $_transportTypes
 

Detailed Description

Definition at line 35 of file Service.php.

Constructor & Destructor Documentation

◆ __construct()

__construct (   $spec)

Constructor

Parameters
string | array$spec
Returns
void
Exceptions
Zend_Json_Server_Exceptionif no name provided

Definition at line 124 of file Service.php.

125  {
126  if (is_string($spec)) {
127  $this->setName($spec);
128  } elseif (is_array($spec)) {
129  $this->setOptions($spec);
130  }
131 
132  if (null == $this->getName()) {
133  #require_once 'Zend/Json/Server/Exception.php';
134  throw new Zend_Json_Server_Exception('SMD service description requires a name; none provided');
135  }
136  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
setOptions(array $options)
Definition: Service.php:144

Member Function Documentation

◆ __toString()

__toString ( )

Cast to string

Returns
string

Definition at line 442 of file Service.php.

443  {
444  return $this->toJson();
445  }

◆ _validateParamType()

_validateParamType (   $type,
  $isReturn = false 
)
protected

Validate parameter type

Parameters
string$type
Returns
true
Exceptions
Zend_Json_Server_Exception

Definition at line 454 of file Service.php.

455  {
456  if (!is_string($type)) {
457  #require_once 'Zend/Json/Server/Exception.php';
458  throw new Zend_Json_Server_Exception('Invalid param type provided ("' . $type .'")');
459  }
460 
461  if (!array_key_exists($type, $this->_paramMap)) {
462  $type = 'object';
463  }
464 
465  $paramType = $this->_paramMap[$type];
466  if (!$isReturn && ('null' == $paramType)) {
467  #require_once 'Zend/Json/Server/Exception.php';
468  throw new Zend_Json_Server_Exception('Invalid param type provided ("' . $type . '")');
469  }
470 
471  return $paramType;
472  }
$type
Definition: item.phtml:13

◆ addParam()

addParam (   $type,
array  $options = array(),
  $order = null 
)

Add a parameter to the service

Parameters
string | array$type
array$options
int | null$order
Returns
Zend_Json_Server_Smd_Service

Definition at line 273 of file Service.php.

274  {
275  if (is_string($type)) {
276  $type = $this->_validateParamType($type);
277  } elseif (is_array($type)) {
278  foreach ($type as $key => $paramType) {
279  $type[$key] = $this->_validateParamType($paramType);
280  }
281  } else {
282  #require_once 'Zend/Json/Server/Exception.php';
283  throw new Zend_Json_Server_Exception('Invalid param type provided');
284  }
285 
286  $paramOptions = array(
287  'type' => $type,
288  );
289  foreach ($options as $key => $value) {
290  if (in_array($key, array_keys($this->_paramOptionTypes))) {
291  if (null !== ($callback = $this->_paramOptionTypes[$key])) {
292  if (!$callback($value)) {
293  continue;
294  }
295  }
296  $paramOptions[$key] = $value;
297  }
298  }
299 
300  $this->_params[] = array(
301  'param' => $paramOptions,
302  'order' => $order,
303  );
304 
305  return $this;
306  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$order
Definition: order.php:55
$type
Definition: item.phtml:13
$value
Definition: gender.phtml:16
_validateParamType($type, $isReturn=false)
Definition: Service.php:454

◆ addParams()

addParams ( array  $params)

Add params

Each param should be an array, and should include the key 'type'.

Parameters
array$params
Returns
Zend_Json_Server_Smd_Service

Definition at line 316 of file Service.php.

317  {
318  ksort($params);
319  foreach ($params as $options) {
320  if (!is_array($options)) {
321  continue;
322  }
323  if (!array_key_exists('type', $options)) {
324  continue;
325  }
326  $type = $options['type'];
327  $order = (array_key_exists('order', $options)) ? $options['order'] : null;
328  $this->addParam($type, $options, $order);
329  }
330  return $this;
331  }
$order
Definition: order.php:55
$type
Definition: item.phtml:13
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18
addParam($type, array $options=array(), $order=null)
Definition: Service.php:273

◆ getEnvelope()

getEnvelope ( )

Get envelope type

Returns
string

Definition at line 260 of file Service.php.

261  {
262  return $this->_envelope;
263  }

◆ getName()

getName ( )

Retrieve name

Returns
string

Definition at line 182 of file Service.php.

183  {
184  return $this->_name;
185  }

◆ getParams()

getParams ( )

Get all parameters

Returns all params in specified order.

Returns
array

Definition at line 352 of file Service.php.

353  {
354  $params = array();
355  $index = 0;
356  foreach ($this->_params as $param) {
357  if (null === $param['order']) {
358  if (array_search($index, array_keys($params), true)) {
359  ++$index;
360  }
361  $params[$index] = $param['param'];
362  ++$index;
363  } else {
364  $params[$param['order']] = $param['param'];
365  }
366  }
367  ksort($params);
368  return $params;
369  }
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18
$index
Definition: list.phtml:44

◆ getReturn()

getReturn ( )

Get return type

Returns
string|array

Definition at line 398 of file Service.php.

399  {
400  return $this->_return;
401  }

◆ getTarget()

getTarget ( )

Get service target

Returns
string

Definition at line 233 of file Service.php.

234  {
235  return $this->_target;
236  }

◆ getTransport()

getTransport ( )

Get transport

Returns
string

Definition at line 211 of file Service.php.

212  {
213  return $this->_transport;
214  }

◆ setEnvelope()

setEnvelope (   $envelopeType)

Set envelope type

Parameters
string$envelopeType
Returns
Zend_Json_Server_Smd_Service

Definition at line 244 of file Service.php.

245  {
246  if (!in_array($envelopeType, $this->_envelopeTypes)) {
247  #require_once 'Zend/Json/Server/Exception.php';
248  throw new Zend_Json_Server_Exception(sprintf('Invalid envelope type "%s"; please specify one of (%s)', $envelopeType, implode(', ', $this->_envelopeTypes)));
249  }
250 
251  $this->_envelope = $envelopeType;
252  return $this;
253  }

◆ setName()

setName (   $name)

Set service name

Parameters
string$name
Returns
Zend_Json_Server_Smd_Service
Exceptions
Zend_Json_Server_Exception

Definition at line 166 of file Service.php.

167  {
168  $name = (string) $name;
169  if (!preg_match($this->_nameRegex, $name)) {
170  #require_once 'Zend/Json/Server/Exception.php';
171  throw new Zend_Json_Server_Exception(sprintf('Invalid name "%s" provided for service; must follow PHP method naming conventions', $name));
172  }
173  $this->_name = $name;
174  return $this;
175  }
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ setOptions()

setOptions ( array  $options)

Set object state

Parameters
array$options
Returns
Zend_Json_Server_Smd_Service

Definition at line 144 of file Service.php.

145  {
146  $methods = get_class_methods($this);
147  foreach ($options as $key => $value) {
148  if ('options' == strtolower($key)) {
149  continue;
150  }
151  $method = 'set' . ucfirst($key);
152  if (in_array($method, $methods)) {
153  $this->$method($value);
154  }
155  }
156  return $this;
157  }
$methods
Definition: billing.phtml:71
$value
Definition: gender.phtml:16
$method
Definition: info.phtml:13

◆ setParams()

setParams ( array  $params)

Overwrite all parameters

Parameters
array$params
Returns
Zend_Json_Server_Smd_Service

Definition at line 339 of file Service.php.

340  {
341  $this->_params = array();
342  return $this->addParams($params);
343  }
addParams(array $params)
Definition: Service.php:316
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18

◆ setReturn()

setReturn (   $type)

Set return type

Parameters
string | array$type
Returns
Zend_Json_Server_Smd_Service

Definition at line 377 of file Service.php.

378  {
379  if (is_string($type)) {
380  $type = $this->_validateParamType($type, true);
381  } elseif (is_array($type)) {
382  foreach ($type as $key => $returnType) {
383  $type[$key] = $this->_validateParamType($returnType, true);
384  }
385  } else {
386  #require_once 'Zend/Json/Server/Exception.php';
387  throw new Zend_Json_Server_Exception('Invalid param type provided ("' . gettype($type) .'")');
388  }
389  $this->_return = $type;
390  return $this;
391  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$type
Definition: item.phtml:13
_validateParamType($type, $isReturn=false)
Definition: Service.php:454

◆ setTarget()

setTarget (   $target)

Set service target

Parameters
string$target
Returns
Zend_Json_Server_Smd_Service

Definition at line 222 of file Service.php.

223  {
224  $this->_target = (string) $target;
225  return $this;
226  }
$target
Definition: skip.phtml:8

◆ setTransport()

setTransport (   $transport)

Set Transport

Currently limited to POST

Parameters
string$transport
Returns
Zend_Json_Server_Smd_Service

Definition at line 195 of file Service.php.

196  {
197  if (!in_array($transport, $this->_transportTypes)) {
198  #require_once 'Zend/Json/Server/Exception.php';
199  throw new Zend_Json_Server_Exception(sprintf('Invalid transport "%s"; please select one of (%s)', $transport, implode(', ', $this->_transportTypes)));
200  }
201 
202  $this->_transport = $transport;
203  return $this;
204  }

◆ toArray()

toArray ( )

Cast service description to array

Returns
array

Definition at line 408 of file Service.php.

409  {
410  $name = $this->getName();
411  $envelope = $this->getEnvelope();
412  $target = $this->getTarget();
413  $transport = $this->getTransport();
414  $parameters = $this->getParams();
415  $returns = $this->getReturn();
416 
417  if (empty($target)) {
418  return compact('envelope', 'transport', 'parameters', 'returns');
419  }
420 
421  return $paramInfo = compact('envelope', 'target', 'transport', 'parameters', 'returns');
422  }
$target
Definition: skip.phtml:8
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ toJson()

toJson ( )

Return JSON encoding of service

Returns
string

Definition at line 429 of file Service.php.

430  {
431  $service = array($this->getName() => $this->toArray());
432 
433  #require_once 'Zend/Json.php';
434  return Zend_Json::encode($service);
435  }
static encode($valueToEncode, $cycleCheck=false, $options=array())
Definition: Json.php:130

Field Documentation

◆ $_envelope

$_envelope = Zend_Json_Server_Smd::ENV_JSONRPC_1
protected

Definition at line 41 of file Service.php.

◆ $_envelopeTypes

$_envelopeTypes
protected
Initial value:

Definition at line 52 of file Service.php.

◆ $_name

$_name
protected

Definition at line 42 of file Service.php.

◆ $_nameRegex

$_nameRegex = '/^[a-z][a-z0-9._]+$/i'
protected

Definition at line 61 of file Service.php.

◆ $_paramMap

$_paramMap
protected
Initial value:
= array(
'any' => 'any',
'arr' => 'array',
'array' => 'array',
'assoc' => 'object',
'bool' => 'boolean',
'boolean' => 'boolean',
'dbl' => 'float',
'double' => 'float',
'false' => 'boolean',
'float' => 'float',
'hash' => 'object',
'integer' => 'integer',
'int' => 'integer',
'mixed' => 'any',
'nil' => 'null',
'null' => 'null',
'object' => 'object',
'string' => 'string',
'str' => 'string',
'struct' => 'object',
'true' => 'boolean',
'void' => 'null',
)

Definition at line 84 of file Service.php.

◆ $_paramOptionTypes

$_paramOptionTypes
protected
Initial value:
= array(
'name' => 'is_string',
'optional' => 'is_bool',
'default' => null,
'description' => 'is_string',
)

Definition at line 67 of file Service.php.

◆ $_params

$_params = array()
protected

Definition at line 78 of file Service.php.

◆ $_return

$_return
protected

Definition at line 43 of file Service.php.

◆ $_target

$_target
protected

Definition at line 44 of file Service.php.

◆ $_transport

$_transport = 'POST'
protected

Definition at line 45 of file Service.php.

◆ $_transportTypes

$_transportTypes
protected
Initial value:
= array(
'POST',
)

Definition at line 113 of file Service.php.


The documentation for this class was generated from the following file: