From cc2c46725e1a6fad37c6ece41225df12b58d0ab2 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Tue, 10 Dec 2024 15:54:59 +0100 Subject: [PATCH 01/13] #19 add demo.doctrine.database tasks --- ....yaml => demo.doctrine.database.read.yaml} | 6 ++--- .../demo.doctrine.database.update.yaml | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) rename config/packages/process/{demo.doctrine.read.yaml => demo.doctrine.database.read.yaml} (90%) create mode 100644 config/packages/process/demo.doctrine.database.update.yaml diff --git a/config/packages/process/demo.doctrine.read.yaml b/config/packages/process/demo.doctrine.database.read.yaml similarity index 90% rename from config/packages/process/demo.doctrine.read.yaml rename to config/packages/process/demo.doctrine.database.read.yaml index f5c4f09..20adc09 100644 --- a/config/packages/process/demo.doctrine.read.yaml +++ b/config/packages/process/demo.doctrine.database.read.yaml @@ -1,10 +1,10 @@ clever_age_process: configurations: - demo.doctrine.read: + demo.doctrine.database.read: description: > A simple process to use DoctrineProcessBundle as database reader help: > - Ex: bin/console cleverage:process:execute demo.doctrine.read + Ex: bin/console cleverage:process:execute demo.doctrine.database.read options: ui: source: Bar @@ -17,4 +17,4 @@ clever_age_process: outputs: [debug] debug: - service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' \ No newline at end of file diff --git a/config/packages/process/demo.doctrine.database.update.yaml b/config/packages/process/demo.doctrine.database.update.yaml new file mode 100644 index 0000000..2c7a8fd --- /dev/null +++ b/config/packages/process/demo.doctrine.database.update.yaml @@ -0,0 +1,24 @@ +clever_age_process: + configurations: + demo.doctrine.database.update: + description: > + A simple process to use DoctrineProcessBundle as database updater + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.database.update + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\DoctrineProcessBundle\Task\Database\DatabaseUpdaterTask' + options: + sql: 'update process_user set firstname = :firstname, lastname = :lastname' + input_as_params: false + params: + firstname: Paul + lastname: Durand + outputs: [debug] + + debug: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' \ No newline at end of file From c16d14fc6f7d5741ee20d7dfc6fda71e660105b0 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Tue, 10 Dec 2024 16:12:49 +0100 Subject: [PATCH 02/13] #19 add demo.doctrine.update context values --- .../process/demo.doctrine.database.update.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/config/packages/process/demo.doctrine.database.update.yaml b/config/packages/process/demo.doctrine.database.update.yaml index 2c7a8fd..c9958bd 100644 --- a/config/packages/process/demo.doctrine.database.update.yaml +++ b/config/packages/process/demo.doctrine.database.update.yaml @@ -9,6 +9,13 @@ clever_age_process: ui: source: Bar target: Foo + entrypoint_type: text + default: + context: + - key: firstname + value: Paul + - key: lastname + value: Durand tasks: entry: service: '@CleverAge\DoctrineProcessBundle\Task\Database\DatabaseUpdaterTask' @@ -16,8 +23,8 @@ clever_age_process: sql: 'update process_user set firstname = :firstname, lastname = :lastname' input_as_params: false params: - firstname: Paul - lastname: Durand + firstname: '{{ firstname }}' + lastname: '{{ lastname }}' outputs: [debug] debug: From 473c0b68dffdfe4c1caccae2a4172db5c5595449 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Tue, 10 Dec 2024 19:36:20 +0100 Subject: [PATCH 03/13] #19 add demo.doctrine.entitymanager.reader --- .../process/demo.doctrine.database.read.yaml | 2 +- .../demo.doctrine.database.update.yaml | 8 +- .../demo.doctrine.entitymanager.reader.yaml | 24 +++++ migrations/Version20241210154810.php | 35 +++++++ src/DataFixtures/DemoFixtures.php | 60 ++++++++++++ src/Entity/Author.php | 93 +++++++++++++++++++ src/Entity/Book.php | 60 ++++++++++++ src/Repository/AuthorRepository.php | 43 +++++++++ src/Repository/BookRepository.php | 52 +++++++++++ 9 files changed, 372 insertions(+), 5 deletions(-) create mode 100644 config/packages/process/demo.doctrine.entitymanager.reader.yaml create mode 100644 migrations/Version20241210154810.php create mode 100644 src/DataFixtures/DemoFixtures.php create mode 100644 src/Entity/Author.php create mode 100644 src/Entity/Book.php create mode 100644 src/Repository/AuthorRepository.php create mode 100644 src/Repository/BookRepository.php diff --git a/config/packages/process/demo.doctrine.database.read.yaml b/config/packages/process/demo.doctrine.database.read.yaml index 20adc09..40085c7 100644 --- a/config/packages/process/demo.doctrine.database.read.yaml +++ b/config/packages/process/demo.doctrine.database.read.yaml @@ -13,7 +13,7 @@ clever_age_process: entry: service: '@CleverAge\DoctrineProcessBundle\Task\Database\DatabaseReaderTask' options: - table: 'process_user' + table: 'book' outputs: [debug] debug: diff --git a/config/packages/process/demo.doctrine.database.update.yaml b/config/packages/process/demo.doctrine.database.update.yaml index c9958bd..c751e2a 100644 --- a/config/packages/process/demo.doctrine.database.update.yaml +++ b/config/packages/process/demo.doctrine.database.update.yaml @@ -4,7 +4,7 @@ clever_age_process: description: > A simple process to use DoctrineProcessBundle as database updater help: > - Ex: bin/console cleverage:process:execute demo.doctrine.database.update + Ex: bin/console cleverage:process:execute demo.doctrine.database.update -c firstname:Paul -c lastname:Durant options: ui: source: Bar @@ -13,14 +13,14 @@ clever_age_process: default: context: - key: firstname - value: Paul + value: Steven - key: lastname - value: Durand + value: King tasks: entry: service: '@CleverAge\DoctrineProcessBundle\Task\Database\DatabaseUpdaterTask' options: - sql: 'update process_user set firstname = :firstname, lastname = :lastname' + sql: 'update author set firstname = :firstname, lastname = :lastname' input_as_params: false params: firstname: '{{ firstname }}' diff --git a/config/packages/process/demo.doctrine.entitymanager.reader.yaml b/config/packages/process/demo.doctrine.entitymanager.reader.yaml new file mode 100644 index 0000000..6ccfe75 --- /dev/null +++ b/config/packages/process/demo.doctrine.entitymanager.reader.yaml @@ -0,0 +1,24 @@ +clever_age_process: + configurations: + demo.doctrine.entitymanager.reader: + description: > + A simple process to use DoctrineProcessBundle as entity reader + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Author' + criteria: + lastname: 'King' + order_by: + lastname: 'asc' + outputs: [debug] + + debug: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' \ No newline at end of file diff --git a/migrations/Version20241210154810.php b/migrations/Version20241210154810.php new file mode 100644 index 0000000..a630451 --- /dev/null +++ b/migrations/Version20241210154810.php @@ -0,0 +1,35 @@ +addSql('CREATE TABLE author (id INT AUTO_INCREMENT NOT NULL, firstname VARCHAR(255) NOT NULL, lastname VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB'); + $this->addSql('CREATE TABLE book (id INT AUTO_INCREMENT NOT NULL, author_id INT NOT NULL, title VARCHAR(255) NOT NULL, INDEX IDX_CBE5A331F675F31B (author_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB'); + $this->addSql('ALTER TABLE book ADD CONSTRAINT FK_CBE5A331F675F31B FOREIGN KEY (author_id) REFERENCES author (id)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE book DROP FOREIGN KEY FK_CBE5A331F675F31B'); + $this->addSql('DROP TABLE author'); + $this->addSql('DROP TABLE book'); + } +} diff --git a/src/DataFixtures/DemoFixtures.php b/src/DataFixtures/DemoFixtures.php new file mode 100644 index 0000000..18c2636 --- /dev/null +++ b/src/DataFixtures/DemoFixtures.php @@ -0,0 +1,60 @@ +setFirstName('Stephen'); + $author1->setLastname('King'); + $manager->persist($author1); + + $book1 = new Book(); + $book1->setAuthor($author1); + $book1->setTitle('It'); + $manager->persist($book1); + + $book2 = new Book(); + $book2->setAuthor($author1); + $book2->setTitle('Salem'); + $manager->persist($book2); + + $author2 = new Author(); + $author2->setFirstName('Ray'); + $author2->setLastname('Bradbury'); + $manager->persist($author2); + + $book3 = new Book(); + $book3->setAuthor($author2); + $book3->setTitle('Fahrenheit 451'); + $manager->persist($book3); + + $author3 = new Author(); + $author3->setFirstName('Bram'); + $author3->setLastname('Stoker'); + $manager->persist($author3); + + $book4 = new Book(); + $book4->setAuthor($author3); + $book4->setTitle('Dracula'); + $manager->persist($book4); + + $manager->flush(); + } +} diff --git a/src/Entity/Author.php b/src/Entity/Author.php new file mode 100644 index 0000000..faf1e48 --- /dev/null +++ b/src/Entity/Author.php @@ -0,0 +1,93 @@ + + */ + #[ORM\OneToMany(targetEntity: Book::class, mappedBy: 'author', orphanRemoval: true)] + private Collection $books; + + public function __construct() + { + $this->books = new ArrayCollection(); + } + + public function getId(): ?int + { + return $this->id; + } + + public function getFirstname(): ?string + { + return $this->firstname; + } + + public function setFirstname(string $firstname): static + { + $this->firstname = $firstname; + + return $this; + } + + public function getLastname(): ?string + { + return $this->lastname; + } + + public function setLastname(string $lastname): static + { + $this->lastname = $lastname; + + return $this; + } + + /** + * @return Collection + */ + public function getBooks(): Collection + { + return $this->books; + } + + public function addBook(Book $book): static + { + if (!$this->books->contains($book)) { + $this->books->add($book); + $book->setAuthor($this); + } + + return $this; + } + + public function removeBook(Book $book): static + { + if ($this->books->removeElement($book)) { + // set the owning side to null (unless already changed) + if ($book->getAuthor() === $this) { + $book->setAuthor(null); + } + } + + return $this; + } +} diff --git a/src/Entity/Book.php b/src/Entity/Book.php new file mode 100644 index 0000000..97ba717 --- /dev/null +++ b/src/Entity/Book.php @@ -0,0 +1,60 @@ +id; + } + + public function getTitle(): ?string + { + return $this->title; + } + + public function setTitle(string $title): static + { + $this->title = $title; + + return $this; + } + + public function getAuthor(): ?Author + { + return $this->author; + } + + public function setAuthor(?Author $author): static + { + $this->author = $author; + + return $this; + } +} diff --git a/src/Repository/AuthorRepository.php b/src/Repository/AuthorRepository.php new file mode 100644 index 0000000..81eaeb3 --- /dev/null +++ b/src/Repository/AuthorRepository.php @@ -0,0 +1,43 @@ + + */ +class AuthorRepository extends ServiceEntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Author::class); + } + +// /** +// * @return Author[] Returns an array of Author objects +// */ +// public function findByExampleField($value): array +// { +// return $this->createQueryBuilder('a') +// ->andWhere('a.exampleField = :val') +// ->setParameter('val', $value) +// ->orderBy('a.id', 'ASC') +// ->setMaxResults(10) +// ->getQuery() +// ->getResult() +// ; +// } + +// public function findOneBySomeField($value): ?Author +// { +// return $this->createQueryBuilder('a') +// ->andWhere('a.exampleField = :val') +// ->setParameter('val', $value) +// ->getQuery() +// ->getOneOrNullResult() +// ; +// } +} diff --git a/src/Repository/BookRepository.php b/src/Repository/BookRepository.php new file mode 100644 index 0000000..c6c4114 --- /dev/null +++ b/src/Repository/BookRepository.php @@ -0,0 +1,52 @@ + + */ +class BookRepository extends ServiceEntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Book::class); + } + + // /** + // * @return Book[] Returns an array of Book objects + // */ + // public function findByExampleField($value): array + // { + // return $this->createQueryBuilder('b') + // ->andWhere('b.exampleField = :val') + // ->setParameter('val', $value) + // ->orderBy('b.id', 'ASC') + // ->setMaxResults(10) + // ->getQuery() + // ->getResult() + // ; + // } + + // public function findOneBySomeField($value): ?Book + // { + // return $this->createQueryBuilder('b') + // ->andWhere('b.exampleField = :val') + // ->setParameter('val', $value) + // ->getQuery() + // ->getOneOrNullResult() + // ; + // } +} From e15aa6623456ef5af58a75dd1c522d111f98a5d1 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Tue, 10 Dec 2024 20:15:16 +0100 Subject: [PATCH 04/13] #19 quality --- src/Entity/Author.php | 35 ++++++------------ src/Entity/Book.php | 6 ++-- src/Repository/AuthorRepository.php | 55 +++++++++++++++++------------ 3 files changed, 46 insertions(+), 50 deletions(-) diff --git a/src/Entity/Author.php b/src/Entity/Author.php index faf1e48..a4af45f 100644 --- a/src/Entity/Author.php +++ b/src/Entity/Author.php @@ -1,5 +1,14 @@ @@ -68,26 +77,4 @@ public function getBooks(): Collection { return $this->books; } - - public function addBook(Book $book): static - { - if (!$this->books->contains($book)) { - $this->books->add($book); - $book->setAuthor($this); - } - - return $this; - } - - public function removeBook(Book $book): static - { - if ($this->books->removeElement($book)) { - // set the owning side to null (unless already changed) - if ($book->getAuthor() === $this) { - $book->setAuthor(null); - } - } - - return $this; - } } diff --git a/src/Entity/Book.php b/src/Entity/Book.php index 97ba717..e559638 100644 --- a/src/Entity/Book.php +++ b/src/Entity/Book.php @@ -23,11 +23,11 @@ class Book private ?int $id = null; #[ORM\Column(length: 255)] - private ?string $title = null; + private string $title; #[ORM\ManyToOne(inversedBy: 'books')] #[ORM\JoinColumn(nullable: false)] - private ?Author $author = null; + private Author $author; public function getId(): ?int { @@ -51,7 +51,7 @@ public function getAuthor(): ?Author return $this->author; } - public function setAuthor(?Author $author): static + public function setAuthor(Author $author): static { $this->author = $author; diff --git a/src/Repository/AuthorRepository.php b/src/Repository/AuthorRepository.php index 81eaeb3..110d668 100644 --- a/src/Repository/AuthorRepository.php +++ b/src/Repository/AuthorRepository.php @@ -1,5 +1,14 @@ createQueryBuilder('a') -// ->andWhere('a.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('a.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } + // /** + // * @return Author[] Returns an array of Author objects + // */ + // public function findByExampleField($value): array + // { + // return $this->createQueryBuilder('a') + // ->andWhere('a.exampleField = :val') + // ->setParameter('val', $value) + // ->orderBy('a.id', 'ASC') + // ->setMaxResults(10) + // ->getQuery() + // ->getResult() + // ; + // } -// public function findOneBySomeField($value): ?Author -// { -// return $this->createQueryBuilder('a') -// ->andWhere('a.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } + // public function findOneBySomeField($value): ?Author + // { + // return $this->createQueryBuilder('a') + // ->andWhere('a.exampleField = :val') + // ->setParameter('val', $value) + // ->getQuery() + // ->getOneOrNullResult() + // ; + // } } From ac1b02d74cbe8af17f759418d8aec6708ac94006 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Wed, 11 Dec 2024 18:35:03 +0100 Subject: [PATCH 05/13] #19 add DoctrineCleanerTask in demo.doctrine.entitymanager.reader --- .../process/demo.doctrine.entitymanager.reader.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/config/packages/process/demo.doctrine.entitymanager.reader.yaml b/config/packages/process/demo.doctrine.entitymanager.reader.yaml index 6ccfe75..0a867a7 100644 --- a/config/packages/process/demo.doctrine.entitymanager.reader.yaml +++ b/config/packages/process/demo.doctrine.entitymanager.reader.yaml @@ -2,7 +2,7 @@ clever_age_process: configurations: demo.doctrine.entitymanager.reader: description: > - A simple process to use DoctrineProcessBundle as entity reader + A simple process to use DoctrineProcessBundle as entity reader (then clear the entitymanager) help: > Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader options: @@ -18,7 +18,11 @@ clever_age_process: lastname: 'King' order_by: lastname: 'asc' - outputs: [debug] + outputs: [dump] - debug: - service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' \ No newline at end of file + dump: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + outputs: [clear] + + clear: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineCleanerTask' From 6c0018d81dc5b62edd92965a326403936035a5b2 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Wed, 11 Dec 2024 19:25:54 +0100 Subject: [PATCH 06/13] #19 add DoctrineDetacherTask in demo.doctrine.entitymanager.reader_detacher --- ...octrine.entitymanager.reader_cleaner.yaml} | 6 ++-- ...octrine.entitymanager.reader_detacher.yaml | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) rename config/packages/process/{demo.doctrine.entitymanager.reader.yaml => demo.doctrine.entitymanager.reader_cleaner.yaml} (88%) create mode 100644 config/packages/process/demo.doctrine.entitymanager.reader_detacher.yaml diff --git a/config/packages/process/demo.doctrine.entitymanager.reader.yaml b/config/packages/process/demo.doctrine.entitymanager.reader_cleaner.yaml similarity index 88% rename from config/packages/process/demo.doctrine.entitymanager.reader.yaml rename to config/packages/process/demo.doctrine.entitymanager.reader_cleaner.yaml index 0a867a7..eb02323 100644 --- a/config/packages/process/demo.doctrine.entitymanager.reader.yaml +++ b/config/packages/process/demo.doctrine.entitymanager.reader_cleaner.yaml @@ -1,10 +1,10 @@ clever_age_process: configurations: - demo.doctrine.entitymanager.reader: + demo.doctrine.entitymanager.reader_cleaner: description: > - A simple process to use DoctrineProcessBundle as entity reader (then clear the entitymanager) + A simple process to use DoctrineProcessBundle as entity reader (then clean the entitymanager) help: > - Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader_cleaner options: ui: source: Bar diff --git a/config/packages/process/demo.doctrine.entitymanager.reader_detacher.yaml b/config/packages/process/demo.doctrine.entitymanager.reader_detacher.yaml new file mode 100644 index 0000000..b82ea12 --- /dev/null +++ b/config/packages/process/demo.doctrine.entitymanager.reader_detacher.yaml @@ -0,0 +1,28 @@ +clever_age_process: + configurations: + demo.doctrine.entitymanager.reader_detacher: + description: > + A simple process to use DoctrineProcessBundle as entity reader then detach the entity + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader_detacher + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Author' + criteria: + lastname: 'King' + order_by: + lastname: 'asc' + outputs: [dump] + + dump: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + outputs: [detach] + + detach: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineDetacherTask' From b3247faa6e78f8168850c6a567329b55fcfff079 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Wed, 11 Dec 2024 19:34:45 +0100 Subject: [PATCH 07/13] #19 add ClearEntityManagerTask in demo.doctrine.entitymanager.reader_clearer --- ...doctrine.entitymanager.reader_cleaner.yaml | 4 +-- ...doctrine.entitymanager.reader_clearer.yaml | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 config/packages/process/demo.doctrine.entitymanager.reader_clearer.yaml diff --git a/config/packages/process/demo.doctrine.entitymanager.reader_cleaner.yaml b/config/packages/process/demo.doctrine.entitymanager.reader_cleaner.yaml index eb02323..fe135bd 100644 --- a/config/packages/process/demo.doctrine.entitymanager.reader_cleaner.yaml +++ b/config/packages/process/demo.doctrine.entitymanager.reader_cleaner.yaml @@ -22,7 +22,7 @@ clever_age_process: dump: service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' - outputs: [clear] + outputs: [clean] - clear: + clean: service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineCleanerTask' diff --git a/config/packages/process/demo.doctrine.entitymanager.reader_clearer.yaml b/config/packages/process/demo.doctrine.entitymanager.reader_clearer.yaml new file mode 100644 index 0000000..1d4e4df --- /dev/null +++ b/config/packages/process/demo.doctrine.entitymanager.reader_clearer.yaml @@ -0,0 +1,28 @@ +clever_age_process: + configurations: + demo.doctrine.entitymanager.reader_clearer: + description: > + A simple process to use DoctrineProcessBundle as entity reader (then clear the entitymanager) + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader_clear + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Author' + criteria: + lastname: 'King' + order_by: + lastname: 'asc' + outputs: [dump] + + dump: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + outputs: [clear] + + clear: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\ClearEntityManagerTask' From 91ab9daddba66fde8117e3bafed3402664c08cce Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Wed, 11 Dec 2024 19:55:21 +0100 Subject: [PATCH 08/13] #19 add DoctrineRemoverTask in demo.doctrine.entitymanager.reader_remover --- ...doctrine.entitymanager.reader_remover.yaml | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 config/packages/process/demo.doctrine.entitymanager.reader_remover.yaml diff --git a/config/packages/process/demo.doctrine.entitymanager.reader_remover.yaml b/config/packages/process/demo.doctrine.entitymanager.reader_remover.yaml new file mode 100644 index 0000000..f8d1205 --- /dev/null +++ b/config/packages/process/demo.doctrine.entitymanager.reader_remover.yaml @@ -0,0 +1,38 @@ +clever_age_process: + configurations: + demo.doctrine.entitymanager.reader_remover: + description: > + A simple process to use DoctrineProcessBundle as entity reader (remove the entity and tries to fetch the same entity) + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader_remover + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Book' + criteria: + title: 'Dracula' + outputs: [dump] + + dump: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + outputs: [remover] + + remover: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineRemoverTask' + outputs: [refetch] + + refetch: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Book' + criteria: + title: 'Dracula' + outputs: [dumpnullid] + + dumpnullid: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' From d2c3e268473cf2c3948ac154872ec4f9d583fe17 Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Wed, 11 Dec 2024 20:13:47 +0100 Subject: [PATCH 09/13] #19 add DoctrineWriterTask in demo.doctrine.entitymanager.writer --- .../demo.doctrine.entitymanager.writer.yaml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 config/packages/process/demo.doctrine.entitymanager.writer.yaml diff --git a/config/packages/process/demo.doctrine.entitymanager.writer.yaml b/config/packages/process/demo.doctrine.entitymanager.writer.yaml new file mode 100644 index 0000000..ab9b121 --- /dev/null +++ b/config/packages/process/demo.doctrine.entitymanager.writer.yaml @@ -0,0 +1,36 @@ +clever_age_process: + configurations: + demo.doctrine.entitymanager.writer: + description: > + A simple process to use DoctrineProcessBundle as entity writer + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.writer + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\ProcessBundle\Task\ConstantOutputTask' + options: + output: + firstname: Isaac + lastname: Asimov + outputs: [denormalize] + denormalize: + service: '@CleverAge\ProcessBundle\Task\Serialization\DenormalizerTask' + options: + class: App\Entity\Author + outputs: [save] + save: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineWriterTask' + outputs: [fetch] + fetch: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Author' + criteria: + lastname: 'Asimov' + outputs: [dump] + dump: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' \ No newline at end of file From 93501598972965f6a4b6d06c75313617f8002b9a Mon Sep 17 00:00:00 2001 From: xmarchegay Date: Wed, 11 Dec 2024 20:46:54 +0100 Subject: [PATCH 10/13] #19 add DoctrineWriterTask in demo.doctrine.entitymanager.batch_writer --- ...o.doctrine.entitymanager.batch_writer.yaml | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml diff --git a/config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml b/config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml new file mode 100644 index 0000000..cc62b50 --- /dev/null +++ b/config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml @@ -0,0 +1,51 @@ +clever_age_process: + configurations: + demo.doctrine.entitymanager.batch_writer: + description: > + A simple process to use DoctrineProcessBundle as entity batch_writer + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.batch_writer + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\ProcessBundle\Task\ConstantIterableOutputTask' + options: + output: + - author1: + firstname: Firstname 1 + lastname: Lastname + - author2: + firstname: Firstname 2 + lastname: Lastname + - author3: + firstname: Firstname 3 + lastname: Lastname + outputs: [iterate] + iterate: + service: '@CleverAge\ProcessBundle\Task\InputIteratorTask' + outputs: [denormalizer] + denormalizer: + service: '@CleverAge\ProcessBundle\Task\Serialization\DenormalizerTask' + options: + class: App\Entity\Author + outputs: [batch_write] + batch_write: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineBatchWriterTask' + options: + batch_count: 2 + outputs: [fetch] + fetch: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Author' + criteria: + lastname: 'Lastname' + outputs: [agregate] + agregate: + service: '@CleverAge\ProcessBundle\Task\AggregateIterableTask' + outputs: [dump] + dump: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' \ No newline at end of file From 4dbbcbd4807c97695b91f53d41a31df76d27347e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tonon=20Gr=C3=A9gory?= Date: Thu, 12 Dec 2024 09:40:20 +0100 Subject: [PATCH 11/13] #19 update process demo.doctrine.entitymanager.batch_writer --- .../process/demo.doctrine.entitymanager.batch_writer.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml b/config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml index cc62b50..2855ca8 100644 --- a/config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml +++ b/config/packages/process/demo.doctrine.entitymanager.batch_writer.yaml @@ -34,8 +34,11 @@ clever_age_process: outputs: [batch_write] batch_write: service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineBatchWriterTask' + outputs: [aggregate_write] options: batch_count: 2 + aggregate_write: + service: '@CleverAge\ProcessBundle\Task\AggregateIterableTask' outputs: [fetch] fetch: service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' @@ -43,8 +46,8 @@ clever_age_process: class_name: 'App\Entity\Author' criteria: lastname: 'Lastname' - outputs: [agregate] - agregate: + outputs: [agregate_fetch] + agregate_fetch: service: '@CleverAge\ProcessBundle\Task\AggregateIterableTask' outputs: [dump] dump: From 0ffb3f9e1930a36d4fce075c18080f99ff1067e1 Mon Sep 17 00:00:00 2001 From: Xavier Marchegay Date: Mon, 16 Dec 2024 14:23:13 +0100 Subject: [PATCH 12/13] #19 add description to the doctrine migration --- migrations/Version20241210154810.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/Version20241210154810.php b/migrations/Version20241210154810.php index a630451..a05a0a4 100644 --- a/migrations/Version20241210154810.php +++ b/migrations/Version20241210154810.php @@ -14,7 +14,7 @@ final class Version20241210154810 extends AbstractMigration { public function getDescription(): string { - return ''; + return 'Add author and book entities to demonstrate the clever/doctrine-process-bundle package - https://github.com/cleverage/process-bundle-demo/issues/19'; } public function up(Schema $schema): void From dfb02a225365507682011ab55ea7b9a056aea09d Mon Sep 17 00:00:00 2001 From: Xavier Marchegay Date: Mon, 16 Dec 2024 14:42:54 +0100 Subject: [PATCH 13/13] #19 add DoctrineRefresherTask demo --- ...ctrine.entitymanager.reader_refresher.yaml | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 config/packages/process/demo.doctrine.entitymanager.reader_refresher.yaml diff --git a/config/packages/process/demo.doctrine.entitymanager.reader_refresher.yaml b/config/packages/process/demo.doctrine.entitymanager.reader_refresher.yaml new file mode 100644 index 0000000..59f2f29 --- /dev/null +++ b/config/packages/process/demo.doctrine.entitymanager.reader_refresher.yaml @@ -0,0 +1,43 @@ +clever_age_process: + configurations: + demo.doctrine.entitymanager.reader_refresher: + description: > + A simple process to use DoctrineProcessBundle as entity reader, modify the entity then refresh it + help: > + Ex: bin/console cleverage:process:execute demo.doctrine.entitymanager.reader_refresher + options: + ui: + source: Bar + target: Foo + tasks: + entry: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineReaderTask' + options: + class_name: 'App\Entity\Author' + criteria: + lastname: 'King' + order_by: + lastname: 'asc' + outputs: [dump] + + dump: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + outputs: [modify] + + modify: + service: '@CleverAge\ProcessBundle\Task\PropertySetterTask' + options: + values: + firstname: Gérard + outputs: [dump_modified] + + dump_modified: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask' + outputs: [refresh] + + refresh: + service: '@CleverAge\DoctrineProcessBundle\Task\EntityManager\DoctrineRefresherTask' + outputs: [dump_refreshed] + + dump_refreshed: + service: '@CleverAge\ProcessBundle\Task\Debug\DebugTask'