OpenGraph::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Novaway\Component\OpenGraph;
4
5
use Novaway\Component\OpenGraph\Model\OpenGraphMetadata;
6
7
class OpenGraph implements OpenGraphInterface
8
{
9
    /** @var OpenGraphTagInterface[] */
10
    private $tags;
11
12
    /** @var array */
13
    private $namespaces;
14
15
16
    /**
17
     * Constructor
18
     */
19
    public function __construct()
20
    {
21
        $this->tags       = [];
22
        $this->namespaces = [];
23
    }
24
25
    /**
26
     * {@inheritdoc}
27
     */
28
    public function getTags()
29
    {
30
        return $this->tags;
31
    }
32
33
    /**
34
     * {@inheritdoc}
35
     */
36
    public function getNamespaces()
37
    {
38
        return $this->namespaces;
39
    }
40
41
    /**
42
     * {@inheritdoc}
43
     */
44
    public function setTitle($title)
45
    {
46
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::TITLE, $title);
47
    }
48
49
    /**
50
     * {@inheritdoc}
51
     */
52
    public function setType($type)
53
    {
54
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::TYPE, $type);
55
    }
56
57
    /**
58
     * {@inheritdoc}
59
     */
60
    public function setUrl($url)
61
    {
62
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::URL, $url);
63
    }
64
65
    /**
66
     * {@inheritdoc}
67
     */
68
    public function setImage($image)
69
    {
70
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::IMAGE, $image);
71
    }
72
73
    /**
74
     * {@inheritdoc}
75
     */
76
    public function setAudio($url)
77
    {
78
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::AUDIO, $url);
79
    }
80
81
    /**
82
     * {@inheritdoc}
83
     */
84
    public function setDesription($description)
85
    {
86
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::DESCRIPTION, $description);
87
    }
88
89
    /**
90
     * {@inheritdoc}
91
     */
92
    public function setDeterminer($determiner)
93
    {
94
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::DETERMINER, $determiner);
95
    }
96
97
    /**
98
     * {@inheritdoc}
99
     */
100
    public function setLocale($locale)
101
    {
102
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::LOCALE, $locale);
103
    }
104
105
    /**
106
     * {@inheritdoc}
107
     */
108
    public function setLocaleAlternate($locale)
109
    {
110
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::LOCALE_ALTERNATE, $locale);
111
    }
112
113
    /**
114
     * {@inheritdoc}
115
     */
116
    public function setSiteName($sitename)
117
    {
118
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::SITE_NAME, $sitename);
119
    }
120
121
    /**
122
     * {@inheritdoc}
123
     */
124
    public function setVideo($url)
125
    {
126
        return $this->add(OpenGraphMetadata::NAMESPACE_TAG, OpenGraphMetadata::VIDEO, $url);
127
    }
128
129
    /**
130
     * {@inheritdoc}
131
     */
132
    public function add($namespace, $tag, $content)
133
    {
134
        if (is_array($content)) {
135
            foreach ($content as $data) {
136
                $this->add($namespace, $tag, $data);
137
            }
138
139
            return $this;
140
        }
141
142
        $this->tags[] = new OpenGraphTag($namespace, $tag, $content);
143
144
        return $this;
145
    }
146
147
    /**
148
     * {@inheritdoc}
149
     */
150
    public function addNamespace($prefix, $uri)
151
    {
152
        $this->namespaces[$prefix] = $uri;
153
154
        return $this;
155
    }
156
}
157