1 <?php
2 
3 /**
4  * SimplePie
5  *
6  * A PHP-Based RSS and Atom Feed Framework.
7  * Takes the hard work out of managing a complete RSS/Atom solution.
8  *
9  * Copyright (c) 2004-2022, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
10  * All rights reserved.
11  *
12  * Redistribution and use in source and binary forms, with or without modification, are
13  * permitted provided that the following conditions are met:
14  *
15  * 	* Redistributions of source code must retain the above copyright notice, this list of
16  * 	  conditions and the following disclaimer.
17  *
18  * 	* Redistributions in binary form must reproduce the above copyright notice, this list
19  * 	  of conditions and the following disclaimer in the documentation and/or other materials
20  * 	  provided with the distribution.
21  *
22  * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
23  * 	  to endorse or promote products derived from this software without specific prior
24  * 	  written permission.
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
27  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
28  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
29  * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
33  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  * POSSIBILITY OF SUCH DAMAGE.
35  *
36  * @package SimplePie
37  * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
38  * @author Ryan Parman
39  * @author Sam Sneddon
40  * @author Ryan McCue
41  * @link http://simplepie.org/ SimplePie
42  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
43  */
44 
45 namespace SimplePie;
46 
47 /**
48  * Manages all author-related data
49  *
50  * Used by {@see Item::get_author()} and {@see SimplePie::get_authors()}
51  *
52  * This class can be overloaded with {@see SimplePie::set_author_class()}
53  *
54  * @package SimplePie
55  * @subpackage API
56  */
57 class Author
58 {
59     /**
60      * Author's name
61      *
62      * @var string
63      * @see get_name()
64      */
65     public $name;
66 
67     /**
68      * Author's link
69      *
70      * @var string
71      * @see get_link()
72      */
73     public $link;
74 
75     /**
76      * Author's email address
77      *
78      * @var string
79      * @see get_email()
80      */
81     public $email;
82 
83     /**
84      * Constructor, used to input the data
85      *
86      * @param string $name
87      * @param string $link
88      * @param string $email
89      */
90     public function __construct($name = null, $link = null, $email = null)
91     {
92         $this->name = $name;
93         $this->link = $link;
94         $this->email = $email;
95     }
96 
97     /**
98      * String-ified version
99      *
100      * @return string
101      */
102     public function __toString()
103     {
104         // There is no $this->data here
105         return md5(serialize($this));
106     }
107 
108     /**
109      * Author's name
110      *
111      * @return string|null
112      */
113     public function get_name()
114     {
115         if ($this->name !== null) {
116             return $this->name;
117         }
118 
119         return null;
120     }
121 
122     /**
123      * Author's link
124      *
125      * @return string|null
126      */
127     public function get_link()
128     {
129         if ($this->link !== null) {
130             return $this->link;
131         }
132 
133         return null;
134     }
135 
136     /**
137      * Author's email address
138      *
139      * @return string|null
140      */
141     public function get_email()
142     {
143         if ($this->email !== null) {
144             return $this->email;
145         }
146 
147         return null;
148     }
149 }
150 
151 class_alias('SimplePie\Author', 'SimplePie_Author');
152