PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / 2.8.6
Kubio AI Page Builder v2.8.6
2.9.0 2.8.6 2.8.5 2.8.4 2.8.3 2.8.2 2.8.1 trunk 1.0.0 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 2.0.0 2.1.1 2.1.2 2.1.3 2.2.0 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.5 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.6.1 2.6.2 2.6.3 2.6.5 2.6.6 2.6.7 2.7.0 2.7.1 2.7.2 2.7.3 2.8.0
kubio / vendor / fzaninotto / faker / src / Faker / ORM / Mandango / Populator.php
kubio / vendor / fzaninotto / faker / src / Faker / ORM / Mandango Last commit date
ColumnTypeGuesser.php 1 year ago EntityPopulator.php 1 year ago Populator.php 1 year ago
Populator.php
66 lines
1 <?php
2
3 namespace Faker\ORM\Mandango;
4
5 use Mandango\Mandango;
6
7 /**
8 * Service class for populating a database using Mandango.
9 * A Populator can populate several tables using ActiveRecord classes.
10 */
11 class Populator
12 {
13 protected $generator;
14 protected $mandango;
15 protected $entities = array();
16 protected $quantities = array();
17
18 /**
19 * @param \Faker\Generator $generator
20 * @param Mandango $mandango
21 */
22 public function __construct(\Faker\Generator $generator, Mandango $mandango)
23 {
24 $this->generator = $generator;
25 $this->mandango = $mandango;
26 }
27
28 /**
29 * Add an order for the generation of $number records for $entity.
30 *
31 * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance
32 * @param int $number The number of entities to populate
33 */
34 public function addEntity($entity, $number, $customColumnFormatters = array())
35 {
36 if (!$entity instanceof \Faker\ORM\Mandango\EntityPopulator) {
37 $entity = new \Faker\ORM\Mandango\EntityPopulator($entity);
38 }
39 $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator, $this->mandango));
40 if ($customColumnFormatters) {
41 $entity->mergeColumnFormattersWith($customColumnFormatters);
42 }
43 $class = $entity->getClass();
44 $this->entities[$class] = $entity;
45 $this->quantities[$class] = $number;
46 }
47
48 /**
49 * Populate the database using all the Entity classes previously added.
50 *
51 * @return array A list of the inserted entities.
52 */
53 public function execute()
54 {
55 $insertedEntities = array();
56 foreach ($this->quantities as $class => $number) {
57 for ($i=0; $i < $number; $i++) {
58 $insertedEntities[$class][]= $this->entities[$class]->execute($this->mandango, $insertedEntities);
59 }
60 }
61 $this->mandango->flush();
62
63 return $insertedEntities;
64 }
65 }
66