migrations/Version20260529000000.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. final class Version20260529000000 extends AbstractMigration
  7. {
  8.     public function getDescription(): string
  9.     {
  10.         return 'Add SEO Page entries for contact, mentions légales, plan du site and confidentialité';
  11.     }
  12.     public function up(Schema $schema): void
  13.     {
  14.         $pages = [
  15.             ['controller' => 'App\Controller\FrontController::contact',         'title' => 'Contact'],
  16.             ['controller' => 'App\Controller\FrontController::privacyPolicy',   'title' => 'Mentions légales'],
  17.             ['controller' => 'App\Controller\FrontController::sitemapLinks',    'title' => 'Plan du site'],
  18.             ['controller' => 'App\Controller\FrontController::confidentiality''title' => 'Confidentialité'],
  19.         ];
  20.         foreach ($pages as $page) {
  21.             $this->addSql(
  22.                 'INSERT INTO page (controller) VALUES (?)',
  23.                 [$page['controller']]
  24.             );
  25.             $this->addSql(
  26.                 'INSERT INTO page_translation (translatable_id, locale, title) VALUES (LAST_INSERT_ID(), ?, ?)',
  27.                 ['fr'$page['title']]
  28.             );
  29.         }
  30.     }
  31.     public function down(Schema $schema): void
  32.     {
  33.         $controllers = [
  34.             'App\Controller\FrontController::contact',
  35.             'App\Controller\FrontController::privacyPolicy',
  36.             'App\Controller\FrontController::sitemapLinks',
  37.             'App\Controller\FrontController::confidentiality',
  38.         ];
  39.         foreach ($controllers as $controller) {
  40.             $this->addSql(
  41.                 'DELETE pt FROM page_translation pt
  42.                  JOIN page p ON pt.translatable_id = p.id
  43.                  WHERE p.controller = ?',
  44.                 [$controller]
  45.             );
  46.             $this->addSql('DELETE FROM page WHERE controller = ?', [$controller]);
  47.         }
  48.     }
  49. }