[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/vendor/tobscure/json-api/src/ -> AbstractSerializer.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of JSON-API.
   5   *
   6   * (c) Toby Zerner <[email protected]>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Tobscure\JsonApi;
  13  
  14  use LogicException;
  15  
  16  abstract class AbstractSerializer implements SerializerInterface
  17  {
  18      /**
  19       * The type.
  20       *
  21       * @var string
  22       */
  23      protected $type;
  24  
  25      /**
  26       * {@inheritdoc}
  27       */
  28      public function getType($model)
  29      {
  30          return $this->type;
  31      }
  32  
  33      /**
  34       * {@inheritdoc}
  35       */
  36      public function getId($model)
  37      {
  38          return $model->id;
  39      }
  40  
  41      /**
  42       * {@inheritdoc}
  43       */
  44      public function getAttributes($model, array $fields = null)
  45      {
  46          return [];
  47      }
  48  
  49      /**
  50       * {@inheritdoc}
  51       */
  52      public function getLinks($model)
  53      {
  54          return [];
  55      }
  56  
  57      /**
  58       * {@inheritdoc}
  59       */
  60      public function getMeta($model)
  61      {
  62          return [];
  63      }
  64  
  65      /**
  66       * {@inheritdoc}
  67       *
  68       * @throws \LogicException
  69       */
  70      public function getRelationship($model, $name)
  71      {
  72          $method = $this->getRelationshipMethodName($name);
  73  
  74          if (method_exists($this, $method)) {
  75              $relationship = $this->$method($model);
  76  
  77              if ($relationship !== null && ! ($relationship instanceof Relationship)) {
  78                  throw new LogicException('Relationship method must return null or an instance of Tobscure\JsonApi\Relationship');
  79              }
  80  
  81              return $relationship;
  82          }
  83      }
  84  
  85      /**
  86       * Get the serializer method name for the given relationship.
  87       *
  88       * snake_case and kebab-case are converted into camelCase.
  89       *
  90       * @param string $name
  91       *
  92       * @return string
  93       */
  94      private function getRelationshipMethodName($name)
  95      {
  96          if (stripos($name, '-')) {
  97              $name = lcfirst(implode('', array_map('ucfirst', explode('-', $name))));
  98          }
  99  
 100          if (stripos($name, '_')) {
 101              $name = lcfirst(implode('', array_map('ucfirst', explode('_', $name))));
 102          }
 103  
 104          return $name;
 105      }
 106  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer