PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.18.0
GiveWP – Donation Plugin and Fundraising Platform v2.18.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / fakerphp / faker / src / Faker / ORM / Propel2 / Populator.php
give / vendor / fakerphp / faker / src / Faker / ORM / Propel2 Last commit date
ColumnTypeGuesser.php 5 years ago EntityPopulator.php 5 years ago Populator.php 5 years ago
Populator.php
93 lines
1 <?php
2
3 namespace Faker\ORM\Propel2;
4
5 use Propel\Runtime\Propel;
6 use Propel\Runtime\ServiceContainer\ServiceContainerInterface;
7
8 /**
9 * Service class for populating a database using the Propel ORM.
10 * A Populator can populate several tables using ActiveRecord classes.
11 */
12 class Populator
13 {
14 protected $generator;
15 protected $entities = array();
16 protected $quantities = array();
17
18 /**
19 * @param \Faker\Generator $generator
20 */
21 public function __construct(\Faker\Generator $generator)
22 {
23 $this->generator = $generator;
24 }
25
26 /**
27 * Add an order for the generation of $number records for $entity.
28 *
29 * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel2\EntityPopulator instance
30 * @param int $number The number of entities to populate
31 */
32 public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array())
33 {
34 if (!$entity instanceof \Faker\ORM\Propel2\EntityPopulator) {
35 $entity = new \Faker\ORM\Propel2\EntityPopulator($entity);
36 }
37 $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
38 if ($customColumnFormatters) {
39 $entity->mergeColumnFormattersWith($customColumnFormatters);
40 }
41 $entity->setModifiers($entity->guessModifiers($this->generator));
42 if ($customModifiers) {
43 $entity->mergeModifiersWith($customModifiers);
44 }
45 $class = $entity->getClass();
46 $this->entities[$class] = $entity;
47 $this->quantities[$class] = $number;
48 }
49
50 /**
51 * Populate the database using all the Entity classes previously added.
52 *
53 * @param PropelPDO $con A Propel connection object
54 *
55 * @return array A list of the inserted PKs
56 */
57 public function execute($con = null)
58 {
59 if (null === $con) {
60 $con = $this->getConnection();
61 }
62 $isInstancePoolingEnabled = Propel::isInstancePoolingEnabled();
63 Propel::disableInstancePooling();
64 $insertedEntities = array();
65 $con->beginTransaction();
66 foreach ($this->quantities as $class => $number) {
67 for ($i=0; $i < $number; $i++) {
68 $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities);
69 }
70 }
71 $con->commit();
72 if ($isInstancePoolingEnabled) {
73 Propel::enableInstancePooling();
74 }
75
76 return $insertedEntities;
77 }
78
79 protected function getConnection()
80 {
81 // use the first connection available
82 $class = key($this->entities);
83
84 if (!$class) {
85 throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?');
86 }
87
88 $peer = $class::TABLE_MAP;
89
90 return Propel::getConnection($peer::DATABASE_NAME, ServiceContainerInterface::CONNECTION_WRITE);
91 }
92 }
93