ErrorCollection.php

Same filename in other branches
  1. 9 core/modules/jsonapi/src/JsonApiResource/ErrorCollection.php
  2. 8.9.x core/modules/jsonapi/src/JsonApiResource/ErrorCollection.php
  3. 10 core/modules/jsonapi/src/JsonApiResource/ErrorCollection.php

Namespace

Drupal\jsonapi\JsonApiResource

File

core/modules/jsonapi/src/JsonApiResource/ErrorCollection.php

View source
<?php

namespace Drupal\jsonapi\JsonApiResource;

use Drupal\Component\Assertion\Inspector;
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;

/**
 * To be used when the primary data is `errors`.
 *
 * @internal JSON:API maintains no PHP API. The API is the HTTP API. This class
 *   may change at any time and could break any dependencies on it.
 *
 * @see https://www.drupal.org/project/drupal/issues/3032787
 * @see jsonapi.api.php
 *
 * (The spec says the top-level `data` and `errors` members MUST NOT coexist.)
 * @see http://jsonapi.org/format/#document-top-level
 *
 * @see http://jsonapi.org/format/#error-objects
 */
class ErrorCollection implements \IteratorAggregate {
    
    /**
     * The HTTP exceptions.
     *
     * @var \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface[]
     */
    protected $errors;
    
    /**
     * Instantiates an ErrorCollection object.
     *
     * @param \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface[] $errors
     *   The errors.
     */
    public function __construct(array $errors) {
        assert(Inspector::assertAll(function ($error) {
            return $error instanceof HttpExceptionInterface;
        }, $errors));
        $this->errors = $errors;
    }
    
    /**
     * Returns an iterator for errors.
     *
     * @return \ArrayIterator
     *   An \ArrayIterator instance
     */
    public function getIterator() : \ArrayIterator {
        return new \ArrayIterator($this->errors);
    }

}

Classes

Title Deprecated Summary
ErrorCollection To be used when the primary data is `errors`.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.