PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.33.4
GiveWP – Donation Plugin and Fundraising Platform v2.33.4
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 / Propel / Populator.php
give / vendor / fakerphp / faker / src / Faker / ORM / Propel Last commit date
ColumnTypeGuesser.php 5 years ago EntityPopulator.php 5 years ago Populator.php 5 years ago
Populator.php
90 lines
1 <?php
2
3 namespace Faker\ORM\Propel;
4
5 /**
6 * Service class for populating a database using the Propel ORM.
7 * A Populator can populate several tables using ActiveRecord classes.
8 */
9 class Populator
10 {
11 protected $generator;
12 protected $entities = array();
13 protected $quantities = array();
14
15 /**
16 * @param \Faker\Generator $generator
17 */
18 public function __construct(\Faker\Generator $generator)
19 {
20 $this->generator = $generator;
21 }
22
23 /**
24 * Add an order for the generation of $number records for $entity.
25 *
26 * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance
27 * @param int $number The number of entities to populate
28 */
29 public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array())
30 {
31 if (!$entity instanceof \Faker\ORM\Propel\EntityPopulator) {
32 $entity = new \Faker\ORM\Propel\EntityPopulator($entity);
33 }
34 $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
35 if ($customColumnFormatters) {
36 $entity->mergeColumnFormattersWith($customColumnFormatters);
37 }
38 $entity->setModifiers($entity->guessModifiers($this->generator));
39 if ($customModifiers) {
40 $entity->mergeModifiersWith($customModifiers);
41 }
42 $class = $entity->getClass();
43 $this->entities[$class] = $entity;
44 $this->quantities[$class] = $number;
45 }
46
47 /**
48 * Populate the database using all the Entity classes previously added.
49 *
50 * @param PropelPDO $con A Propel connection object
51 *
52 * @return array A list of the inserted PKs
53 */
54 public function execute($con = null)
55 {
56 if (null === $con) {
57 $con = $this->getConnection();
58 }
59 $isInstancePoolingEnabled = \Propel::isInstancePoolingEnabled();
60 \Propel::disableInstancePooling();
61 $insertedEntities = array();
62 $con->beginTransaction();
63 foreach ($this->quantities as $class => $number) {
64 for ($i=0; $i < $number; $i++) {
65 $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities);
66 }
67 }
68 $con->commit();
69 if ($isInstancePoolingEnabled) {
70 \Propel::enableInstancePooling();
71 }
72
73 return $insertedEntities;
74 }
75
76 protected function getConnection()
77 {
78 // use the first connection available
79 $class = key($this->entities);
80
81 if (!$class) {
82 throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?');
83 }
84
85 $peer = $class::PEER;
86
87 return \Propel::getConnection($peer::DATABASE_NAME, \Propel::CONNECTION_WRITE);
88 }
89 }
90