PHP code example of zhortein / doctrine-lifecycle-bundle
1. Go to this page and download the library: Download zhortein/doctrine-lifecycle-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
zhortein / doctrine-lifecycle-bundle example snippets
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Zhortein\DoctrineLifecycleBundle\Contract\TimestampableInterface;
use Zhortein\DoctrineLifecycleBundle\Trait\TimestampableTrait;
#[ORM\Entity]
final class Destination implements TimestampableInterface
{
use TimestampableTrait;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private string $name;
public function __construct(string $name)
{
$this->name = $name;
}
}
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Zhortein\DoctrineLifecycleBundle\Contract\BlameableInterface;
use Zhortein\DoctrineLifecycleBundle\Trait\BlameableTrait;
#[ORM\Entity]
final class Article implements BlameableInterface
{
use BlameableTrait;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private string $title;
public function __construct(string $title)
{
$this->title = $title;
}
}
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Zhortein\DoctrineLifecycleBundle\Contract\BlameableInterface;
use Zhortein\DoctrineLifecycleBundle\Contract\TimestampableInterface;
use Zhortein\DoctrineLifecycleBundle\Trait\BlameableTrait;
use Zhortein\DoctrineLifecycleBundle\Trait\TimestampableTrait;
#[ORM\Entity]
final class ExpertProfile implements TimestampableInterface, BlameableInterface
{
use TimestampableTrait;
use BlameableTrait;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private string $displayName;
public function __construct(string $displayName)
{
$this->displayName = $displayName;
}
}
declare(strict_types=1);
namespace Zhortein\DoctrineLifecycleBundle\Resolver;
interface ActorResolverInterface
{
public function resolveActorIdentifier(): ?string;
}
declare(strict_types=1);
namespace App\Security;
use Symfony\Bundle\SecurityBundle\Security;
use Zhortein\DoctrineLifecycleBundle\Resolver\ActorResolverInterface;
final class SecurityActorResolver implements ActorResolverInterface
{
public function __construct(
private readonly Security $security,
) {
}
public function resolveActorIdentifier(): ?string
{
$user = $this->security->getUser();
if (null === $user) {
return null;
}
if (!method_exists($user, 'getUserIdentifier')) {
return null;
}
return $user->getUserIdentifier();
}
}