assets
bin
config
migrations
public
src
Controller
Entity
EntityListener
BlogEntityListener.php
Form
Repository
Security
Kernel.php
templates
translations
.env
.gitignore
README.md
bootstrap.js
composer.json
composer.lock
controllers.json
docker-compose.override.yml
docker-compose.yml
package.json
symfony.lock
webpack.config.js
yarn.lock
43 lines
928 B
PHP
43 lines
928 B
PHP
<?php
|
|
|
|
namespace App\EntityListener;
|
|
|
|
use App\Entity\Blog;
|
|
use Doctrine\ORM\Event\LifecycleEventArgs;
|
|
use JetBrains\PhpStorm\NoReturn;
|
|
use Symfony\Component\String\Slugger\SluggerInterface;
|
|
|
|
/**
|
|
* Class BlogEntityListener
|
|
* @package App\EntityListener
|
|
*/
|
|
class BlogEntityListener
|
|
{
|
|
private SluggerInterface $slugger;
|
|
|
|
public function __construct(SluggerInterface $slugger)
|
|
{
|
|
$this->slugger = $slugger;
|
|
}
|
|
|
|
/**
|
|
* @param \App\Entity\Blog $blog
|
|
* @param \Doctrine\ORM\Event\LifecycleEventArgs $title
|
|
*/
|
|
#[NoReturn]
|
|
public function prePersist(Blog $blog, LifecycleEventArgs $title)
|
|
{
|
|
$blog->computeSlug($this->slugger);
|
|
}
|
|
|
|
/**
|
|
* @param \App\Entity\Blog $blog
|
|
* @param \Doctrine\ORM\Event\LifecycleEventArgs $title
|
|
*/
|
|
#[NoReturn]
|
|
public function preUpdate(Blog $blog, LifecycleEventArgs $title)
|
|
{
|
|
//dd($title);
|
|
$blog->computeSlug($this->slugger);
|
|
}
|
|
} |