zend-blog-3-backend

Форк
0
/
Commentator.php 
321 строка · 5.5 Кб
1
<?php
2

3
namespace App\Entity;
4

5
use App\Entity\Traits\Gravatar;
6
use DateTime;
7
use Doctrine\Common\Collections\ArrayCollection;
8
use Doctrine\Common\Collections\Collection;
9
use Doctrine\ORM\Mapping as ORM;
10

11
/**
12
 * @ORM\Table(name="commentators", uniqueConstraints={
13
 *   @ORM\UniqueConstraint(columns={"name", "mail", "website"})
14
 * })
15
 * @ORM\Entity(repositoryClass="App\Repository\CommentatorRepository")
16
 */
17
class Commentator implements CommentatorInterface
18
{
19
    use Gravatar;
20

21
    /**
22
     * @var int
23
     *
24
     * @ORM\Id
25
     * @ORM\Column(type="integer")
26
     * @ORM\GeneratedValue(strategy="AUTO")
27
     */
28
    private $id;
29

30
    /**
31
     * @var string
32
     *
33
     * @ORM\Column(type="string", length=80)
34
     */
35
    private $name;
36

37
    /**
38
     * @var string|null
39
     *
40
     * @ORM\Column(name="mail", type="string", length=80, nullable=true)
41
     */
42
    private $email;
43

44
    /**
45
     * @var bool|null
46
     *
47
     * @ORM\Column(type="boolean", nullable=true)
48
     */
49
    private $fakeEmail;
50

51
    /**
52
     * @var DateTime|null
53
     *
54
     * @ORM\Column(type="datetime", nullable=true)
55
     */
56
    private $emailCheck;
57

58
    /**
59
     * @var string
60
     *
61
     * @ORM\Column(type="string", length=160, nullable=true)
62
     */
63
    private $website;
64

65
    /**
66
     * @var Collection
67
     *
68
     * @ORM\OneToMany(targetEntity="Comment", mappedBy="commentator")
69
     */
70
    private $comments;
71

72
    /**
73
     * @var int
74
     *
75
     * @ORM\Column(type="smallint", options={"default": 1, "comment":"1: male, 2: female"})
76
     */
77
    private $gender = User::MALE;
78

79
    /**
80
     * @var bool
81
     *
82
     * @ORM\Column(type="boolean", options={"default": false})
83
     */
84
    private $rottenLink = false;
85

86
    /**
87
     * @var DateTime|null
88
     *
89
     * @ORM\Column(type="datetime", nullable=true)
90
     */
91
    private $rottenCheck;
92

93
    public function __construct()
94
    {
95
        $this->comments = new ArrayCollection();
96
    }
97

98
    /**
99
     * Get id
100
     *
101
     * @return int|null
102
     */
103
    public function getId(): ?int
104
    {
105
        return $this->id;
106
    }
107

108
    /**
109
     * @return bool
110
     */
111
    public function isValidEmail(): bool
112
    {
113
        return $this->getEmail() && !is_null($this->isFakeEmail()) && !$this->isFakeEmail();
114
    }
115

116
    /**
117
     * Set name
118
     *
119
     * @param string $name
120
     *
121
     * @return Commentator
122
     */
123
    public function setName($name)
124
    {
125
        $this->name = $name;
126

127
        return $this;
128
    }
129

130
    /**
131
     * Get name
132
     *
133
     * @return string
134
     */
135
    public function getName(): string
136
    {
137
        return $this->name;
138
    }
139

140
    /**
141
     * Set email
142
     *
143
     * @param string $email
144
     *
145
     * @return Commentator
146
     */
147
    public function setEmail($email)
148
    {
149
        $this->email = $email;
150

151
        return $this;
152
    }
153

154
    /**
155
     * Get email
156
     *
157
     * @return string|null
158
     */
159
    public function getEmail(): ?string
160
    {
161
        return $this->email;
162
    }
163

164
    /**
165
     * Set website
166
     *
167
     * @param string $website
168
     *
169
     * @return Commentator
170
     */
171
    public function setWebsite($website)
172
    {
173
        $this->website = $website;
174

175
        return $this;
176
    }
177

178
    /**
179
     * Get website
180
     *
181
     * @return string|null
182
     */
183
    public function getWebsite(): ?string
184
    {
185
        return $this->website;
186
    }
187

188
    /**
189
     * Add comments
190
     *
191
     * @param Comment $comments
192
     *
193
     * @return Commentator
194
     */
195
    public function addComment(Comment $comments)
196
    {
197
        $this->comments[] = $comments;
198

199
        return $this;
200
    }
201

202
    /**
203
     * Remove comments
204
     *
205
     * @param Comment $comments
206
     */
207
    public function removeComment(Comment $comments)
208
    {
209
        $this->comments->removeElement($comments);
210
    }
211

212
    /**
213
     * Get comments
214
     *
215
     * @return Collection
216
     */
217
    public function getComments()
218
    {
219
        return $this->comments;
220
    }
221

222
    /**
223
     * @return int
224
     */
225
    public function getGender(): int
226
    {
227
        return $this->gender;
228
    }
229

230
    /**
231
     * @param int $gender
232
     *
233
     * @return Commentator
234
     */
235
    public function setGender(int $gender): self
236
    {
237
        $this->gender = $gender;
238

239
        return $this;
240
    }
241

242
    /**
243
     * @return bool|null
244
     */
245
    public function isFakeEmail(): ?bool
246
    {
247
        return $this->fakeEmail;
248
    }
249

250
    /**
251
     * @param bool|null $fakeEmail
252
     *
253
     * @return Commentator
254
     */
255
    public function setFakeEmail(?bool $fakeEmail): self
256
    {
257
        $this->fakeEmail = $fakeEmail;
258

259
        return $this;
260
    }
261

262
    /**
263
     * @return DateTime|null
264
     */
265
    public function getEmailCheck(): ?DateTime
266
    {
267
        return $this->emailCheck;
268
    }
269

270
    /**
271
     * @param DateTime|null $emailCheck
272
     *
273
     * @return Commentator
274
     */
275
    public function setEmailCheck(?DateTime $emailCheck): self
276
    {
277
        $this->emailCheck = $emailCheck;
278

279
        return $this;
280
    }
281

282
    /**
283
     * @return bool
284
     */
285
    public function isRottenLink(): bool
286
    {
287
        return $this->rottenLink;
288
    }
289

290
    /**
291
     * @param bool $rottenLink
292
     *
293
     * @return Commentator
294
     */
295
    public function setRottenLink(bool $rottenLink): self
296
    {
297
        $this->rottenLink = $rottenLink;
298

299
        return $this;
300
    }
301

302
    /**
303
     * @return DateTime|null
304
     */
305
    public function getRottenCheck(): ?DateTime
306
    {
307
        return $this->rottenCheck;
308
    }
309

310
    /**
311
     * @param DateTime|null $rottenCheck
312
     *
313
     * @return Commentator
314
     */
315
    public function setRottenCheck(?DateTime $rottenCheck): self
316
    {
317
        $this->rottenCheck = $rottenCheck;
318

319
        return $this;
320
    }
321
}
322

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.