Blame view

vendor/yiisoft/yii2/web/Link.php 2.02 KB
abf1649b   andryeyev   Чистая установка ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
  <?php
  /**
   * @link http://www.yiiframework.com/
   * @copyright Copyright (c) 2008 Yii Software LLC
   * @license http://www.yiiframework.com/license/
   */
  
  namespace yii\web;
  
  use yii\base\Object;
  
  /**
   * Link represents a link object as defined in [JSON Hypermedia API Language](https://tools.ietf.org/html/draft-kelly-json-hal-03).
   *
   * @author Qiang Xue <qiang.xue@gmail.com>
   * @since 2.0
   */
  class Link extends Object
  {
      /**
       * The self link.
       */
      const REL_SELF = 'self';
  
      /**
       * @var string a URI [RFC3986](https://tools.ietf.org/html/rfc3986) or
       * URI template [RFC6570](https://tools.ietf.org/html/rfc6570). This property is required.
       */
      public $href;
      /**
       * @var string a secondary key for selecting Link Objects which share the same relation type
       */
      public $name;
      /**
       * @var string a hint to indicate the media type expected when dereferencing the target resource
       */
      public $type;
      /**
       * @var boolean a value indicating whether [[href]] refers to a URI or URI template.
       */
      public $templated = false;
      /**
       * @var string a URI that hints about the profile of the target resource.
       */
      public $profile;
      /**
       * @var string a label describing the link
       */
      public $title;
      /**
       * @var string the language of the target resource
       */
      public $hreflang;
  
  
      /**
       * Serializes a list of links into proper array format.
       * @param array $links the links to be serialized
       * @return array the proper array representation of the links.
       */
      public static function serialize(array $links)
      {
          foreach ($links as $rel => $link) {
              if (is_array($link)) {
                  foreach ($link as $i => $l) {
                      $link[$i] = $l instanceof self ? array_filter((array) $l) : ['href' => $l];
                  }
                  $links[$rel] = $link;
              } elseif (!$link instanceof self) {
                  $links[$rel] = ['href' => $link];
              }
          }
  
          return $links;
      }
  }