Entities & Database
Basic Entity
<?php
namespace Plugins\MyPlugin\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: MyEntityRepository::class)]
#[ORM\Table(name: 'plg_my_visit_log')]
#[ORM\Index(columns: ['created_at'], name: 'idx_created_at')]
class VisitLog
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private ?int $id = null;
#[ORM\Column(type: 'string', length: 255)]
private string $ipAddress;
#[ORM\Column(type: 'string', length: 500)]
private string $userAgent;
#[ORM\Column(type: 'datetime_immutable')]
private \DateTimeImmutable $createdAt;
public function __construct()
{
$this->createdAt = new \DateTimeImmutable();
}
// Getters and setters
public function getId(): ?int
{
return $this->id;
}
public function getIpAddress(): string
{
return $this->ipAddress;
}
public function setIpAddress(string $ipAddress): self
{
$this->ipAddress = $ipAddress;
return $this;
}
// ... more getters/setters
}Table Naming Convention
Entity Best Practices
Custom Repository
Using Entities in Controllers
Migrations
Creating a Migration
Migration Structure
Settings Initialization Migration
Migration Best Practices
Running Migrations
Related Guides
Last updated