Пример #1
0
 public function load(ObjectManager $manager)
 {
     $t1 = new Type();
     $t1->setName('Feature Film');
     $t2 = new Type();
     $t2->setName('Documentary');
     $g1 = new Genre();
     $g1->setName('thriller');
     $g2 = new Genre();
     $g2->setName('fantasy');
     $g3 = new Genre();
     $g3->setName('drama');
     $m1 = new Movie();
     $m1->setTitle('Elephant man');
     $m1->setType($t1);
     $m1->getGenres()->add($g2);
     $manager->persist($m1);
     $m2 = new Movie();
     $m2->setTitle('Ice age');
     $m2->setYear(2002);
     $m2->setReleaseDate(new \DateTime('2012-03-12'));
     $m2->setType($t2);
     $m2->getGenres()->add($g1);
     $m2->getGenres()->add($g3);
     $manager->persist($m2);
     $m3 = new Movie();
     $m3->setTitle('Deadpool');
     $m3->setType($t1);
     $m3->getGenres()->add($g1);
     $manager->persist($m3);
     $manager->flush();
 }
Пример #2
0
 /**
  * To string
  *
  * @return string
  */
 public function __toString()
 {
     $result = 'New GroupGenre';
     if (null !== $this->group && null !== $this->genre) {
         $result = $this->group->getName() . ' - ' . $this->genre->getName();
     }
     return $result;
 }
Пример #3
0
 /**
  * @Route("/{_locale}/{page}", name="app_index", requirements={"page": "\d+", "_locale": "%locales%"}, defaults={"page": 1, "_locale": "%locale%"})
  * @Route("/{_locale}/by/genre/{genre}/{page}", name="app_index_genre", requirements={"page": "\d+", "_locale": "%locales%"}, defaults={"page": 1, "_locale": "%locale%"})
  * @Method("GET")
  * @ParamConverter("genre", class="AppBundle:Genre", options={
  *    "repository_method" = "findOneBySlug",
  *    "mapping": {"genre": "slug", "_locale": "locale"},
  *    "map_method_signature" = true
  * })
  * @Template("AppBundle:Index:index.html.twig")
  * @param null|Genre $genre
  * @param int $page
  * @return array
  */
 public function popularAction(Genre $genre = null, $page = 1, $_route)
 {
     if ($_route === 'app_index_genre' && $genre === null) {
         throw $this->createNotFoundException('Genre does not exist');
     }
     /** @var \ArrayIterator $audios */
     $audios = $this->get('vk')->getPopularAudios($genre ? $genre->getId() : null);
     return ['current_page' => $page, 'genre' => $genre, 'audios_on_page' => self::AUDIOS_ON_PAGE, 'page_count' => round($audios->count() / self::AUDIOS_ON_PAGE), 'audios' => new \LimitIterator($audios, ($page - 1) * self::AUDIOS_ON_PAGE, self::AUDIOS_ON_PAGE)];
 }
Пример #4
0
 public function importArray(array $data)
 {
     // Turning off doctrine default logs queries for saving memory
     $this->em->getConnection()->getConfiguration()->setSQLLogger(null);
     // Process items 20 by 20
     $batchSize = 100;
     $i = 1;
     // Processing on each row of data
     foreach ($data as $row) {
         // $movieImporter->importCSVRow();
         $movie = $this->em->getRepository('AppBundle:Movie')->findOneBy(array('title' => $row['Title']));
         // If the movie does not exist we create one
         if (!is_object($movie)) {
             $movie = new Movie();
             $movie->setTitle($row['Title']);
         }
         // Updating info
         $movie->setYear($row['Year']);
         $movie->setRating($row['IMDb Rating']);
         $type = $this->em->getRepository('AppBundle:Type')->findOneBy(array('name' => $row['Title type']));
         if (!is_object($type)) {
             $type = new Type();
             $type->setName($row['Title type']);
             $this->em->persist($type);
             $this->em->flush();
         }
         $movie->setType($type);
         $genres = explode(', ', $row['Genres']);
         $movie->getGenres()->clear();
         foreach ($genres as $genre) {
             $g = $this->em->getRepository('AppBundle:Genre')->findOneBy(array('name' => $genre));
             if (!is_object($g)) {
                 $g = new Genre();
                 $g->setName($genre);
                 $this->em->persist($g);
                 $this->em->flush();
                 // Important: without flush, object not written in DB, so not found with findOneBy, and we endup with duplicates
             }
             $movie->getGenres()->add($g);
         }
         // TODO handle other fields here
         // Persisting the current object
         $this->em->persist($movie);
         // Each 20 objects persisted we flush everything
         if ($i % $batchSize === 0) {
             $this->em->flush();
             // Detaches all objects from Doctrine for memory save
             $this->em->clear();
             // Notify progress
             $this->ed->dispatch('movie_importer.progress', new GenericEvent('progress', array('advance' => $batchSize)));
         }
         $i++;
     }
     // Flushing and clear data on queue
     $this->em->flush();
     $this->em->clear();
 }
Пример #5
0
 /**
  * Test an empty Genre entity
  */
 public function testEmptyGenre()
 {
     $genre = new Genre();
     $this->assertNull($genre->getId());
     $this->assertNull($genre->getName());
     $this->assertNull($genre->getCreatedBy());
     $this->assertNull($genre->getUpdatedBy());
     $this->assertNull($genre->getSlug());
 }
Пример #6
0
 /**
  * Creates a form to delete a Genre entity.
  *
  * @param Genre $genre The Genre entity
  *
  * @return \Symfony\Component\Form\Form The form
  */
 private function createDeleteForm(Genre $genre)
 {
     return $this->createFormBuilder()->setAction($this->generateUrl('genre_delete', array('id' => $genre->getId())))->setMethod('DELETE')->getForm();
 }
Пример #7
0
 /**
  * Remove genres
  *
  * @param Genre $genres
  */
 public function removeGenre(Genre $genres)
 {
     $this->genres->removeElement($genres);
 }