X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/372d8b766a4870ee718907cfe38ba5beef866fbf..a260fe7b849a7d64ee977012b28ddbb738727010:/DataFixtures/AirFixtures.php diff --git a/DataFixtures/AirFixtures.php b/DataFixtures/AirFixtures.php index 7b3e3a3..89593f0 100644 --- a/DataFixtures/AirFixtures.php +++ b/DataFixtures/AirFixtures.php @@ -1,10 +1,18 @@ - + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ namespace Rapsys\AirBundle\DataFixtures; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; -use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; @@ -14,20 +22,14 @@ use Rapsys\AirBundle\Entity\User; use Rapsys\AirBundle\Entity\Location; use Rapsys\AirBundle\Entity\Slot; -class AirFixtures extends Fixture implements ContainerAwareInterface { - /** - * @var ContainerInterface - */ - private $container; - +/** + * {@inheritdoc} + */ +class AirFixtures extends Fixture { /** - * @var UserPasswordHasherInterface + * Air fixtures constructor */ - private $hasher; - - public function setContainer(ContainerInterface $container = null) { - $this->container = $container; - $this->hasher = $this->container->get('security.password_hasher_factory'); + public function __construct(protected ContainerInterface $container, protected UserPasswordHasherInterface $hasher) { } /** @@ -35,19 +37,16 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { */ public function load(ObjectManager $manager) { //Civility tree - $civilityTree = array( + $civilityTree = [ 'Mister', 'Madam', 'Miss' - ); + ]; //Create titles - $civilitys = array(); + $civilitys = []; foreach($civilityTree as $civilityData) { - $civility = new Civility(); - $civility->setTitle($civilityData); - $civility->setCreated(new \DateTime('now')); - $civility->setUpdated(new \DateTime('now')); + $civility = new Civility($civilityData); $manager->persist($civility); $civilitys[$civilityData] = $civility; unset($civility); @@ -58,19 +57,17 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { #insert into countries (code, alpha, title, created, updated) select countryCode, isoAlpha3, countryName, NOW(), NOW() FROM apps_countries_detailed ORDER BY countryCode ASC, isoAlpha3 ASC; //Dance tree - $danceTree = array( + $danceTree = [ 'Argentine Tango' => [ 'Milonga', 'Class and milonga', 'Public class', 'Private class' ] - ); + ]; //Create titles - $dances = array(); + $dances = []; foreach($danceTree as $danceTitle => $danceData) { foreach($danceData as $danceType) { $dance = new Dance($danceTitle, $danceType); - $dance->setCreated(new \DateTime('now')); - $dance->setUpdated(new \DateTime('now')); $manager->persist($dance); unset($dance); } @@ -78,20 +75,18 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { //Group tree //XXX: ROLE_XXX is required by - $groupTree = array( + $groupTree = [ 'User', 'Guest', 'Regular', 'Senior', 'Admin' - ); + ]; //Create groups - $groups = array(); + $groups = []; foreach($groupTree as $groupData) { $group = new Group($groupData); - $group->setCreated(new \DateTime('now')); - $group->setUpdated(new \DateTime('now')); $manager->persist($group); $groups[$groupData] = $group; unset($group); @@ -101,8 +96,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { $manager->flush(); //User tree - $userTree = array( - array( + $userTree = [ + [ 'short' => 'Mr.', 'group' => 'Admin', 'mail' => 'tango@rapsys.eu', @@ -111,8 +106,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'surname' => 'Gertz', 'phone' => '+33677952829', 'password' => 'test' - ), - /*array( + ], + /*[ 'short' => 'Mr.', 'group' => 'Senior', 'mail' => 'denis.courvoisier@wanadoo.fr', @@ -121,8 +116,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'surname' => 'Courvoisier', 'phone' => '+33600000000', 'password' => 'test' - ),*/ - array( + ],*/ + [ 'short' => 'Mr.', 'group' => 'Senior', 'mail' => 'rannou402@orange.fr', @@ -131,8 +126,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'surname' => 'Rannou', 'phone' => '+33600000000', 'password' => 'test' - ), - /*array( + ], + /*[ 'short' => 'Ms.', 'group' => 'Regular', 'mail' => 'roxmaps@gmail.com', @@ -141,22 +136,18 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'surname' => 'Prado', 'phone' => '+33600000000', 'password' => 'test' - ),*/ - ); + ],*/ + ]; //Create users - $users = array(); + $users = []; foreach($userTree as $userData) { - $user = new User($userData['mail']); + $user = new User($userData['mail'], $userData['password'], $civilitys[$userData['short']], $userData['forename'], $userData['surname']); + #TODO: check that password is hashed correctly !!! + #$user->setPassword($this->hasher->hashPassword($user, $userData['password'])); $user->setPseudonym($userData['pseudonym']); - $user->setForename($userData['forename']); - $user->setSurname($userData['surname']); $user->setPhone($userData['phone']); - $user->setPassword($this->hasher->hashPassword($user, $userData['password'])); - $user->setCivility($civilitys[$userData['short']]); $user->addGroup($groups[$userData['group']]); - $user->setCreated(new \DateTime('now')); - $user->setUpdated(new \DateTime('now')); $manager->persist($user); $users[] = $user; unset($user); @@ -167,6 +158,7 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { //Location tree //XXX: adding a new zipcode here requires matching accuweather uris in Command/WeatherCommand.php + //TODO: add descriptions as well $locationTree = [ [ 'title' => 'Garnier opera', @@ -176,7 +168,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.871268, 'longitude' => 2.331832, - 'hotspot' => true + 'hotspot' => true, + 'indoor' => false ], [ 'title' => 'Tino-Rossi garden', @@ -186,7 +179,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.847736, 'longitude' => 2.360953, - 'hotspot' => true + 'hotspot' => true, + 'indoor' => false ], [ 'title' => 'Trocadero esplanade', @@ -197,7 +191,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.861888, 'longitude' => 2.288853, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Colette place', @@ -207,7 +202,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.863219, 'longitude' => 2.335847, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Swan island', @@ -217,7 +213,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.849976, #48.849976 'longitude' => 2.279603, #2.2796029, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Jussieu esplanade', @@ -227,7 +224,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.847955, #48.8479548 'longitude' => 2.353291, #2.3532907, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Orleans gallery', @@ -237,7 +235,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.863885, 'longitude' => 2.337387, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Orsay museum', @@ -247,7 +246,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.860418, 'longitude' => 2.325815, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Saint-Honore market', @@ -257,7 +257,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.866992, 'longitude' => 2.331752, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Igor Stravinsky place', @@ -267,7 +268,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.859244, 'longitude' => 2.351289, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Tokyo palace', @@ -277,7 +279,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.863827, 'longitude' => 2.297339, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Drawings\' garden', @@ -287,7 +290,8 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.892503, 'longitude' => 2.389300, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Louvre palace', @@ -297,34 +301,25 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { 'city' => 'Paris', 'latitude' => 48.860386, 'longitude' => 2.332611, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ], [ 'title' => 'Monde garden', - 'short' => 'Monde', 'address' => '63 avenue Pierre Mendès-France', 'zipcode' => '75013', 'city' => 'Paris', 'latitude' => 48.840451, 'longitude' => 2.367638, - 'hotspot' => false + 'hotspot' => false, + 'indoor' => false ] ]; //Create locations - $locations = array(); + $locations = []; foreach($locationTree as $locationData) { - $location = new Location(); - $location->setTitle($locationData['title']); - $location->setShort($locationData['short']); - $location->setAddress($locationData['address']); - $location->setZipcode($locationData['zipcode']); - $location->setCity($locationData['city']); - $location->setLatitude($locationData['latitude']); - $location->setLongitude($locationData['longitude']); - $location->setHotspot($locationData['hotspot']); - $location->setCreated(new \DateTime('now')); - $location->setUpdated(new \DateTime('now')); + $location = new Location($locationData['title'], $locationData['address'], $locationData['zipcode'], $locationData['city'], $locationData['latitude'], $locationData['longitude'], $locationData['hotspot'], $locationData['indoor']); $manager->persist($location); $locations[$locationData['title']] = $location; unset($location); @@ -342,12 +337,9 @@ class AirFixtures extends Fixture implements ContainerAwareInterface { ]; //Create slots - $slots = array(); + $slots = []; foreach($slotTree as $slotData) { - $slot = new Slot(); - $slot->setTitle($slotData); - $slot->setCreated(new \DateTime('now')); - $slot->setUpdated(new \DateTime('now')); + $slot = new Slot($slotData); $manager->persist($slot); $slots[$slot->getId()] = $slot; unset($slot);