Server IP : 162.213.251.212 / Your IP : 18.218.67.239 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/allssztx/www/easybuyer/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ |
Upload File : |
<?php namespace Faker\ORM\Propel2; use Propel\Runtime\Propel; use Propel\Runtime\ServiceContainer\ServiceContainerInterface; /** * Service class for populating a database using the Propel ORM. * A Populator can populate several tables using ActiveRecord classes. */ class Populator { protected $generator; protected $entities = array(); protected $quantities = array(); /** * @param \Faker\Generator $generator */ public function __construct(\Faker\Generator $generator) { $this->generator = $generator; } /** * Add an order for the generation of $number records for $entity. * * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel2\EntityPopulator instance * @param int $number The number of entities to populate */ public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array()) { if (!$entity instanceof \Faker\ORM\Propel2\EntityPopulator) { $entity = new \Faker\ORM\Propel2\EntityPopulator($entity); } $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); if ($customColumnFormatters) { $entity->mergeColumnFormattersWith($customColumnFormatters); } $entity->setModifiers($entity->guessModifiers($this->generator)); if ($customModifiers) { $entity->mergeModifiersWith($customModifiers); } $class = $entity->getClass(); $this->entities[$class] = $entity; $this->quantities[$class] = $number; } /** * Populate the database using all the Entity classes previously added. * * @param PropelPDO $con A Propel connection object * * @return array A list of the inserted PKs */ public function execute($con = null) { if (null === $con) { $con = $this->getConnection(); } $isInstancePoolingEnabled = Propel::isInstancePoolingEnabled(); Propel::disableInstancePooling(); $insertedEntities = array(); $con->beginTransaction(); foreach ($this->quantities as $class => $number) { for ($i=0; $i < $number; $i++) { $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities); } } $con->commit(); if ($isInstancePoolingEnabled) { Propel::enableInstancePooling(); } return $insertedEntities; } protected function getConnection() { // use the first connection available $class = key($this->entities); if (!$class) { throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?'); } $peer = $class::TABLE_MAP; return Propel::getConnection($peer::DATABASE_NAME, ServiceContainerInterface::CONNECTION_WRITE); } }