本文整理汇总了PHP中JMS\Serializer\SerializerInterface类的典型用法代码示例。如果您正苦于以下问题:PHP SerializerInterface类的具体用法?PHP SerializerInterface怎么用?PHP SerializerInterface使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SerializerInterface类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: deserializeData
public function deserializeData(SerializerInterface $serializer, $getModel)
{
foreach ($this->data as $objectArray) {
$obj = $serializer->deserialize($objectArray, $getModel, 'array');
$this->objects[] = $obj;
}
}
示例2: call
/**
* @param $id
* @return Result
*/
protected function call($method, $resource, $body = null, $acceptedCodes = array(200))
{
try {
$response = $this->client->request($method, $resource, array('body' => $body));
$responseBody = (string) $response->getBody();
if ($responseBody) {
/** @var Result $result */
$result = $this->serializer->deserialize($responseBody, $this->getResultClass(), 'json');
$result->deserializeData($this->serializer, $this->getModel());
} else {
$result = new Result();
}
$result->setSuccess(in_array($response->getStatusCode(), $acceptedCodes))->setMessage($response->getReasonPhrase());
return $result;
} catch (GuzzleException $ge) {
if ($ge->getCode() == \Symfony\Component\HttpFoundation\Response::HTTP_TOO_MANY_REQUESTS && php_sapi_name() == "cli") {
sleep(5);
return $this->call($method, $resource, $body, $acceptedCodes);
} else {
$result = new Result();
$result->setSuccess(false)->setMessage(sprintf("Client error: %s", $ge->getMessage()));
return $result;
}
} catch (\Exception $e) {
$result = new Result();
$result->setSuccess(false)->setMessage(sprintf("General error: %s", $e->getMessage()));
return $result;
}
}
示例3: createResponse
/**
* @param array $data
* @param string|null|array $serializationLevel
* @return Response
*/
public function createResponse(array $data, $serializationLevel = null)
{
$responseData = [static::KEY_STATUS => static::STATUS_SUCCESS, static::KEY_DATA => $data];
$serializedData = $this->serializer->serialize($responseData, self::STANDARD_RESPONSE_FORMAT, $serializationLevel ? SerializationContext::create()->setGroups($serializationLevel) : SerializationContext::create());
$response = $this->getJsonResponse($serializedData);
return $response;
}
示例4: notifyCallback
/**
* {@inheritdoc}
*/
public function notifyCallback($callbackUrl, $statusResponse)
{
$requestBody = $this->serializer->serialize($statusResponse, 'json');
$request = new \cURL\Request($callbackUrl);
$request->getOptions()->set(CURLOPT_FILE, fopen('/dev/null', 'w'))->set(CURLOPT_TIMEOUT, 5)->set(CURLOPT_RETURNTRANSFER, false)->set(CURLOPT_CUSTOMREQUEST, 'POST')->set(CURLOPT_POSTFIELDS, $requestBody)->set(CURLOPT_HTTPHEADER, array('Content-Type: application/json', sprintf('Content-Length: %d', strlen($requestBody))));
$request->send();
}
示例5: success
/**
* @param $data
* @param int $status
* @param array $headers
* @return \Symfony\Component\HttpFoundation\Response|static
*/
protected function success($data, $status = 200, $headers = [])
{
$serialized_data = $this->serializer->serialize($data, 'json');
$response = $this->jsonResponse;
$response->setContent($serialized_data)->setStatusCode($status)->headers->add($headers);
return $response;
}
示例6: deserialize
/**
* @param string|array $serialized
* @param int $format
*
* @return GameInterface
*/
public function deserialize($serialized, $format)
{
if ($format === self::FORMAT_ARRAY) {
$serialized = json_encode($serialized, true);
}
return $this->serializer->deserialize($serialized, Game::class, self::FORMAT_JSON, $this->deserializationContext);
}
示例7: testSerializationToJson
public function testSerializationToJson()
{
$subject = new Message('to', 'from', 'subject', 'message');
$data = $this->serializer->serialize($subject, 'json');
$object = $this->serializer->deserialize($data, get_class($subject), 'json');
$this->assertEquals($subject, $object);
}
示例8: getTrackOperationHistory
/**
* @param $track
* @param $debug
*
* @throws RussianPostApiException
* @throws InvalidTrackException
*
* @return OperationHistoryData
*/
public function getTrackOperationHistory($track, &$debug, $language = "RUS")
{
if (!TrackValidator::validateTrack($track)) {
throw new InvalidTrackException();
}
$track = TrackValidator::filterTrack($track);
$client = $this->initClient();
$AuthorizationHeader = self::createAuthorizationHeader($this->login, $this->password);
$historyRequest = self::createOperationHistoryRequest($track, 0, $language);
$parameters = ["AuthorizationHeader" => $this->serializer->serialize($AuthorizationHeader, 'array'), "historyRequest" => $this->serializer->serialize($historyRequest, 'array')];
//($operation, $params=array(), $namespace='http://tempuri.org', $soapAction='', $headers=false, $rpcParams=null, $style='rpc', $use='encoded')
$result = $client->call('GetOperationHistory', $parameters, 'http://russianpost.org/operationhistory');
$debug = array("Request" => $client->request, "Response" => $client->response, "Debug" => $client->debug_str);
if ($client->fault) {
throw new RussianPostApiException(print_r($result, true));
} else {
$err = $client->getError();
if ($err) {
throw new RussianPostApiException($err);
} else {
/** @var OperationHistoryData $object */
$object = $this->serializer->deserialize($result, 'a3mg\\RussianPostBundle\\Model\\OperationHistoryData', 'array');
return $object;
}
}
}
示例9: publish
/**
* {@inheritdoc}
*/
public function publish(Event $event)
{
try {
$this->client->post(self::PUBLISH_URL, ['body' => $this->serializer->serialize($event, 'json')]);
} catch (BadResponseException $exception) {
throw new PublishException($exception->getMessage());
}
}
示例10: testSerializationToJson
public function testSerializationToJson()
{
$exception = new \Exception('foobar', 100);
$subject = new ExceptionResponse($exception);
$data = $this->serializer->serialize($subject, 'json');
$object = $this->serializer->deserialize($data, ExceptionResponse::class, 'json');
$this->assertEquals($subject, $object);
}
示例11: deserialize
/**
* Deserialize XML into a BaseResponse
*
* @param $xml
* @return BaseResponse
* @throws SerializationException
*/
public function deserialize($xml)
{
try {
return $this->serializer->deserialize($xml, 'SMH\\Enom\\Response\\BaseResponse', 'xml');
} catch (\RuntimeException $ex) {
throw new SerializationException($ex->getMessage(), null, $ex);
}
}
示例12: jsonResponse
protected function jsonResponse($data)
{
$context = new SerializationContext();
$context->setSerializeNull(true);
$content = $this->serializer->serialize($data, 'json', $context);
$this->response->setContent($content);
return $this->response;
}
示例13: post
/**
* {@inheritdoc}
*/
public function post($uri, $data = null, array $options = array())
{
if (is_array($data)) {
$options = array_merge($data, $options);
$data = new \StdClass();
}
$this->request('post', $uri, array('body' => $this->serializer->serialize($data, 'json', SerializationContext::create()->setAttribute('options', $options))));
}
示例14: createCampaignSuppressionImport
/**
* {@inheritdoc}
*/
public function createCampaignSuppressionImport($campaignId, $source, $location, $data)
{
try {
return $this->client->getCommand('createCampaignSuppressionImport', array('campaignId' => $campaignId, 'suppression_import' => array('source' => $source, 'location' => $location, 'data' => $data)))->execute();
} catch (ClientErrorResponseException $e) {
return $this->serializer->deserialize($e->getResponse()->getBody(), 'EBC\\AdvertiserClient\\Campaign\\InvalidImportResponse', 'json');
}
}
示例15: toSymfonyResponse
/**
* @param ApiResponse $apiResponse to convert to a Symfony Response.
* @param Request $request that needs this Response.
*
* @return Response
*/
public function toSymfonyResponse(ApiResponse $apiResponse, Request $request)
{
$format = $request->getRequestFormat($this->defaultResponseFormat);
$serialized = $this->serializer->serialize($apiResponse->getData(), $format);
$response = new Response($serialized, $apiResponse->getStatusCode(), $apiResponse->getHeaders());
$response->headers->set('Content-Type', $request->getMimeType($format));
return $response;
}