/** * post persist callback method * * @param LifecycleEventArgs $event event args * * @return void */ public function postPersist(LifecycleEventArgs $event) { $object = $event->getObject(); if ($object instanceof Translatable) { $event = new TranslatablePersistEvent($object->getLocale(), $object->getDomain()); $this->dispatcher->dispatch(TranslatablePersistEvent::EVENT_NAME, $event); } }
function it_converts_metric_data_before_updating(LifecycleEventArgs $args, MetricInterface $metric, MeasureManager $manager, MeasureConverter $converter, DocumentManager $dm, ProductInterface $product, ProductValueInterface $productValue, UnitOfWork $uow, ClassMetadata $metadata) { $args->getObject()->willReturn($product); $product->getValues()->willReturn([$productValue]); $productValue->getData()->willReturn($metric); $metric->getId()->willReturn(12); $args->getObjectManager()->willReturn($dm); $dm->getUnitOfWork()->willReturn($uow); $uow->recomputeSingleDocumentChangeSet(Argument::type('Doctrine\\Common\\Persistence\\Mapping\\ClassMetadata'), $metric)->shouldBeCalled(); $metric->getUnit()->willReturn('cm'); $metric->getFamily()->willReturn('distance'); $metric->getData()->willReturn(100); $manager->getStandardUnitForFamily('distance')->willReturn('m'); $converter->setFamily('distance')->shouldBeCalled()->willReturn($converter); $converter->convertBaseToStandard('cm', 100)->willReturn(1); $metric->setBaseData(1)->shouldBeCalled()->willReturn($metric); $metric->setBaseUnit('m')->shouldBeCalled(); $dm->getClassMetadata(Argument::any())->willReturn($metadata); $dm->getUnitOfWork()->willReturn($uow); $uow->recomputeSingleDocumentChangeSet($metadata, $metric)->shouldBeCalled(); $this->preUpdate($args); }
/** * post persist callback method * * @param LifecycleEventArgs $event event args * * @return void */ public function postPersist(LifecycleEventArgs $event) { $object = $event->getObject(); if ($object instanceof Translatable) { $domain = $object->getDomain(); $locale = $object->getLocale(); $triggerFile = __DIR__ . '/../Resources/translations/' . $domain . '.' . $locale . '.odm'; $cacheDirMask = __DIR__ . '/../../../../app/cache/*/translations'; $fs = new Filesystem(); if (!$fs->exists($triggerFile)) { $fs->touch($triggerFile); } try { $finder = new Finder(); $finder->files()->in($cacheDirMask)->name('*.' . $locale . '.*'); foreach ($finder as $file) { $fs->remove($file->getRealPath()); } } catch (\InvalidArgumentException $e) { // InvalidArgumentException gets thrown if the translation cache dir doesn't exist. // we ignore it since it's normal under some circumstances (no cache warmup yet) } } }