Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 11 |
CRAP | |
0.00% |
0 / 17 |
Comment | |
0.00% |
0 / 1 |
|
0.00% |
0 / 11 |
240 | |
0.00% |
0 / 17 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
isLegitComment | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getId | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
getContent | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
setContent | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getPublishedAt | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
setPublishedAt | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getAuthor | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
setAuthor | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getPost | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
setPost | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
<?php | |
/* | |
* This file is part of the Symfony package. | |
* | |
* (c) Fabien Potencier <fabien@symfony.com> | |
* | |
* For the full copyright and license information, please view the LICENSE | |
* file that was distributed with this source code. | |
*/ | |
namespace Smalldb\StateMachine\Test\SymfonyDemo\Entity; | |
use Doctrine\ORM\Mapping as ORM; | |
use Symfony\Component\Validator\Constraints as Assert; | |
/** | |
* @ORM\Entity | |
* @ORM\Table(name="symfony_demo_comment") | |
* | |
* Defines the properties of the Comment entity to represent the blog comments. | |
* See https://symfony.com/doc/current/book/doctrine.html#creating-an-entity-class | |
* | |
* Tip: if you have an existing database, you can generate these entity class automatically. | |
* See https://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html | |
* | |
* @author Ryan Weaver <weaverryan@gmail.com> | |
* @author Javier Eguiluz <javier.eguiluz@gmail.com> | |
*/ | |
class Comment | |
{ | |
/** | |
* @var int | |
* | |
* @ORM\Id | |
* @ORM\GeneratedValue | |
* @ORM\Column(type="integer") | |
*/ | |
private $id; | |
/** | |
* @var Post | |
* | |
* @ORM\ManyToOne(targetEntity="Post", inversedBy="comments") | |
* @ORM\JoinColumn(nullable=false) | |
*/ | |
private $post; | |
/** | |
* @var string | |
* | |
* @ORM\Column(type="text") | |
* @Assert\NotBlank(message="comment.blank") | |
* @Assert\Length( | |
* min=5, | |
* minMessage="comment.too_short", | |
* max=10000, | |
* maxMessage="comment.too_long" | |
* ) | |
*/ | |
private $content; | |
/** | |
* @var \DateTime | |
* | |
* @ORM\Column(type="datetime") | |
*/ | |
private $publishedAt; | |
/** | |
* @var User | |
* | |
* @ORM\ManyToOne(targetEntity="Smalldb\StateMachine\Test\SymfonyDemo\Entity\User") | |
* @ORM\JoinColumn(nullable=false) | |
*/ | |
private $author; | |
public function __construct() | |
{ | |
$this->publishedAt = new \DateTime(); | |
} | |
/** | |
* @Assert\IsTrue(message="comment.is_spam") | |
*/ | |
public function isLegitComment(): bool | |
{ | |
$containsInvalidCharacters = false !== mb_strpos($this->content, '@'); | |
return !$containsInvalidCharacters; | |
} | |
public function getId(): ?int | |
{ | |
return $this->id; | |
} | |
public function getContent(): ?string | |
{ | |
return $this->content; | |
} | |
public function setContent(string $content): void | |
{ | |
$this->content = $content; | |
} | |
public function getPublishedAt(): \DateTime | |
{ | |
return $this->publishedAt; | |
} | |
public function setPublishedAt(\DateTime $publishedAt): void | |
{ | |
$this->publishedAt = $publishedAt; | |
} | |
public function getAuthor(): ?User | |
{ | |
return $this->author; | |
} | |
public function setAuthor(User $author): void | |
{ | |
$this->author = $author; | |
} | |
public function getPost(): ?Post | |
{ | |
return $this->post; | |
} | |
public function setPost(Post $post): void | |
{ | |
$this->post = $post; | |
} | |
} |