50 lines
1,023 B
PHP
50 lines
1,023 B
PHP
<?php declare(strict_types = 1);
|
|
|
|
namespace MailPoet\Entities;
|
|
|
|
if (!defined('ABSPATH')) exit;
|
|
|
|
|
|
use MailPoet\RuntimeException;
|
|
use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
|
|
|
|
/**
|
|
* @ORM\Entity(readOnly=true)
|
|
* @ORM\Table(name="posts")
|
|
*/
|
|
class WpPostEntity {
|
|
/**
|
|
* @ORM\Column(type="integer", name="ID")
|
|
* @ORM\Id
|
|
* @ORM\GeneratedValue
|
|
* @var int
|
|
*/
|
|
private $id;
|
|
|
|
/**
|
|
* @ORM\Column(type="string", name="post_title")
|
|
* @var string
|
|
*/
|
|
private $postTitle;
|
|
|
|
public function __construct() {
|
|
throw new RuntimeException('WpPostEntity is read only and cannot be instantiated.');
|
|
}
|
|
|
|
public function getId(): int {
|
|
return $this->id;
|
|
}
|
|
|
|
public function getPostTitle(): string {
|
|
return $this->postTitle;
|
|
}
|
|
|
|
/**
|
|
* We don't use typehint for now because doctrine cache generator would fail as it doesn't know the class.
|
|
* @return \WP_Post|null
|
|
*/
|
|
public function getWpPostInstance() {
|
|
$post = \WP_Post::get_instance($this->id);
|
|
return $post ?: null;
|
|
}
|
|
}
|