Вход Регистрация
Файл: gapps/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php
Строк: 95
<?php

namespace FakerORMCakePHP;

class 
Populator
{

    protected 
$generator;
    protected 
$entities = [];
    protected 
$quantities = [];
    protected 
$guessers = [];

    
/**
     * @param FakerGenerator $generator
     */
    
public function __construct(FakerGenerator $generator)
    {
        
$this->generator $generator;
    }

    
/**
     * @return FakerGenerator
     */
    
public function getGenerator()
    {
        return 
$this->generator;
    }

    
/**
     * @return array
     */
    
public function getGuessers()
    {
        return 
$this->guessers;
    }

    
/**
     * @return $this
     */
    
public function removeGuesser($name)
    {
        if (
$this->guessers[$name]) {
            unset(
$this->guessers[$name]);
        }
        return 
$this;
    }

    
/**
     * @return $this
     * @throws Exception
     */
    
public function addGuesser($class)
    {
        if (!
is_object($class)) {
            
$class = new $class($this->generator);
        }

        if (!
method_exists($class'guessFormat')) {
            throw new 
Exception('Missing required custom guesser method: ' get_class($class) . '::guessFormat()');
        }

        
$this->guessers[get_class($class)] = $class;
        return 
$this;
    }

    
/**
     * @param array $customColumnFormatters
     * @param array $customModifiers
     * @return $this
     */
    
public function addEntity($entity$number$customColumnFormatters = [], $customModifiers = [])
    {
        if (!
$entity instanceof EntityPopulator) {
            
$entity = new EntityPopulator($entity);
        }

        
$entity->columnFormatters $entity->guessColumnFormatters($this);
        if (
$customColumnFormatters) {
            
$entity->mergeColumnFormattersWith($customColumnFormatters);
        }

        
$entity->modifiers $entity->guessModifiers($this);
        if (
$customModifiers) {
            
$entity->mergeModifiersWith($customModifiers);
        }

        
$class $entity->class;
        
$this->entities[$class] = $entity;
        
$this->quantities[$class] = $number;
        return 
$this;
    }

    
/**
     * @param array $options
     * @return array
     */
    
public function execute($options = [])
    {
        
$insertedEntities = [];

        foreach (
$this->quantities as $class => $number) {
            for (
$i 0$i $number$i++) {
                
$insertedEntities[$class][] = $this->entities[$class]->execute($class$insertedEntities$options);
            }
        }

        return 
$insertedEntities;
    }
}
Онлайн: 2
Реклама