1
0
mirror of https://github.com/fzaninotto/Faker.git synced 2025-03-22 00:09:59 +01:00
This commit is contained in:
Francois Zaninotto 2011-11-28 17:08:31 +01:00
parent 1583909943
commit b2dcf4ddab
4 changed files with 291 additions and 291 deletions

View File

@ -1,60 +1,60 @@
<?php
namespace Faker\Guesser;
class Name
{
protected $generator;
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function guessFormat($name)
{
$name = strtolower($name);
$generator = $this->generator;
if (preg_match('/^is[_A-Z]/', $name)) {
return function() use ($generator) { return $generator->boolean; };
}
if (preg_match('/(_a|A)t$/', $name)) {
return function() use ($generator) { return $generator->dateTime; };
}
switch ($name) {
case 'first_name':
case 'firstname':
return function() use ($generator) { return $generator->firstName; };
case 'last_name':
case 'lastname':
return function() use ($generator) { return $generator->lastName; };
case 'username':
case 'login':
return function() use ($generator) { return $generator->userName; };
case 'email':
return function() use ($generator) { return $generator->email; };
case 'phone_number':
case 'phonenumber':
case 'phone':
return function() use ($generator) { return $generator->phoneNumber; };
case 'address':
return function() use ($generator) { return $generator->address; };
case 'city':
return function() use ($generator) { return $generator->city; };
case 'streetaddress':
return function() use ($generator) { return $generator->streetAddress; };
case 'postcode':
case 'zipcode':
return function() use ($generator) { return $generator->postcode; };
case 'state':
return function() use ($generator) { return $generator->state; };
case 'country':
return function() use ($generator) { return $generator->country; };
case 'title':
return function() use ($generator) { return $generator->sentence; };
case 'body':
case 'summary':
return function() use ($generator) { return $generator->text; };
}
}
<?php
namespace Faker\Guesser;
class Name
{
protected $generator;
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function guessFormat($name)
{
$name = strtolower($name);
$generator = $this->generator;
if (preg_match('/^is[_A-Z]/', $name)) {
return function() use ($generator) { return $generator->boolean; };
}
if (preg_match('/(_a|A)t$/', $name)) {
return function() use ($generator) { return $generator->dateTime; };
}
switch ($name) {
case 'first_name':
case 'firstname':
return function() use ($generator) { return $generator->firstName; };
case 'last_name':
case 'lastname':
return function() use ($generator) { return $generator->lastName; };
case 'username':
case 'login':
return function() use ($generator) { return $generator->userName; };
case 'email':
return function() use ($generator) { return $generator->email; };
case 'phone_number':
case 'phonenumber':
case 'phone':
return function() use ($generator) { return $generator->phoneNumber; };
case 'address':
return function() use ($generator) { return $generator->address; };
case 'city':
return function() use ($generator) { return $generator->city; };
case 'streetaddress':
return function() use ($generator) { return $generator->streetAddress; };
case 'postcode':
case 'zipcode':
return function() use ($generator) { return $generator->postcode; };
case 'state':
return function() use ($generator) { return $generator->state; };
case 'country':
return function() use ($generator) { return $generator->country; };
case 'title':
return function() use ($generator) { return $generator->sentence; };
case 'body':
case 'summary':
return function() use ($generator) { return $generator->text; };
}
}
}

View File

@ -1,104 +1,104 @@
<?php
namespace Faker\ORM\Doctrine;
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
/**
* Service class for populating a table through a Propel ActiveRecord class.
*/
class EntityPopulator
{
/**
* @var ClassMetadata
*/
protected $class;
/**
* @var array
*/
protected $columnFormatters = array();
/**
* Class constructor.
*
* @param ClassMetadata $class
*/
public function __construct(ClassMetadata $class)
{
$this->class = $class;
}
/**
* @return string
*/
public function getClass()
{
return $this->class->getName();
}
public function setColumnFormatters($columnFormatters)
{
$this->columnFormatters = $columnFormatters;
}
public function getColumnFormatters()
{
return $this->columnFormatters;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function guessColumnFormatters(\Faker\Generator $generator)
{
$formatters = array();
$class = $this->class;
$nameGuesser = new \Faker\Guesser\Name($generator);
$columnTypeGuesser = new ColumnTypeGuesser($generator);
foreach ($this->class->getFieldNames() AS $fieldName) {
if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) {
continue;
}
if ($formatter = $nameGuesser->guessFormat($fieldName)) {
$formatters[$fieldName] = $formatter;
continue;
}
if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) {
$formatters[$fieldName] = $formatter;
continue;
}
}
foreach ($this->class->getAssociationNames() AS $assocName) {
if (!$this->class->isIdentifier($assocName) || !$this->class->isCollectionValuedAssociation($assocName)) {
continue;
}
$relatedClass = $this->class->getAssociationTargetClass($assocName);
$formatters[$assocName] = function($inserted) use($relatedClass) { return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; };
}
return $formatters;
}
/**
* Insert one new record using the Entity class.
*/
public function execute($manager, $insertedEntities)
{
$class = $this->class->getName();
$obj = new $class;
foreach ($this->columnFormatters as $field => $format) {
if (null !== $field) {
$value = is_callable($format) ? $format($insertedEntities, $obj) : $format;
$this->class->reflFields[$field]->setValue($obj, $value);
}
}
$manager->persist($obj);
return $obj;
}
<?php
namespace Faker\ORM\Doctrine;
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
/**
* Service class for populating a table through a Propel ActiveRecord class.
*/
class EntityPopulator
{
/**
* @var ClassMetadata
*/
protected $class;
/**
* @var array
*/
protected $columnFormatters = array();
/**
* Class constructor.
*
* @param ClassMetadata $class
*/
public function __construct(ClassMetadata $class)
{
$this->class = $class;
}
/**
* @return string
*/
public function getClass()
{
return $this->class->getName();
}
public function setColumnFormatters($columnFormatters)
{
$this->columnFormatters = $columnFormatters;
}
public function getColumnFormatters()
{
return $this->columnFormatters;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function guessColumnFormatters(\Faker\Generator $generator)
{
$formatters = array();
$class = $this->class;
$nameGuesser = new \Faker\Guesser\Name($generator);
$columnTypeGuesser = new ColumnTypeGuesser($generator);
foreach ($this->class->getFieldNames() AS $fieldName) {
if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) {
continue;
}
if ($formatter = $nameGuesser->guessFormat($fieldName)) {
$formatters[$fieldName] = $formatter;
continue;
}
if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) {
$formatters[$fieldName] = $formatter;
continue;
}
}
foreach ($this->class->getAssociationNames() AS $assocName) {
if (!$this->class->isIdentifier($assocName) || !$this->class->isCollectionValuedAssociation($assocName)) {
continue;
}
$relatedClass = $this->class->getAssociationTargetClass($assocName);
$formatters[$assocName] = function($inserted) use($relatedClass) { return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; };
}
return $formatters;
}
/**
* Insert one new record using the Entity class.
*/
public function execute($manager, $insertedEntities)
{
$class = $this->class->getName();
$obj = new $class;
foreach ($this->columnFormatters as $field => $format) {
if (null !== $field) {
$value = is_callable($format) ? $format($insertedEntities, $obj) : $format;
$this->class->reflFields[$field]->setValue($obj, $value);
}
}
$manager->persist($obj);
return $obj;
}
}

View File

@ -1,88 +1,88 @@
<?php
namespace Faker\ORM\Propel;
/**
* Service class for populating a table through a Propel ActiveRecord class.
*/
class EntityPopulator
{
protected $class;
protected $columnFormatters = array();
/**
* Class constructor.
*
* @param string $class A Propel ActiveRecord classname
*/
public function __construct($class)
{
$this->class = $class;
}
public function getClass()
{
return $this->class;
}
public function setColumnFormatters($columnFormatters)
{
$this->columnFormatters = $columnFormatters;
}
public function getColumnFormatters()
{
return $this->columnFormatters;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function guessColumnFormatters(\Faker\Generator $generator)
{
$formatters = array();
$class = $this->class;
$peerClass = $class::PEER;
$tableMap = $peerClass::getTableMap();
$nameGuesser = new \Faker\Guesser\Name($generator);
$columnTypeGuesser = new \Faker\ORM\Propel\ColumnTypeGuesser($generator);
foreach ($tableMap->getColumns() as $columnMap) {
if ($columnMap->isForeignKey()) {
$relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname();
$formatters[$columnMap->getPhpName()] = function($inserted) use($relatedClass) { return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; };
continue;
}
if ($columnMap->isPrimaryKey()) {
continue;
}
if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName())) {
$formatters[$columnMap->getPhpName()] = $formatter;
continue;
}
if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) {
$formatters[$columnMap->getPhpName()] = $formatter;
continue;
}
}
return $formatters;
}
/**
* Insert one new record using the Entity class.
*/
public function execute($con, $insertedEntities)
{
$obj = new $this->class();
foreach ($this->columnFormatters as $column => $format) {
if (null !== $column) {
$obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format);
}
}
$obj->save($con);
return $obj->getPrimaryKey();
}
<?php
namespace Faker\ORM\Propel;
/**
* Service class for populating a table through a Propel ActiveRecord class.
*/
class EntityPopulator
{
protected $class;
protected $columnFormatters = array();
/**
* Class constructor.
*
* @param string $class A Propel ActiveRecord classname
*/
public function __construct($class)
{
$this->class = $class;
}
public function getClass()
{
return $this->class;
}
public function setColumnFormatters($columnFormatters)
{
$this->columnFormatters = $columnFormatters;
}
public function getColumnFormatters()
{
return $this->columnFormatters;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function guessColumnFormatters(\Faker\Generator $generator)
{
$formatters = array();
$class = $this->class;
$peerClass = $class::PEER;
$tableMap = $peerClass::getTableMap();
$nameGuesser = new \Faker\Guesser\Name($generator);
$columnTypeGuesser = new \Faker\ORM\Propel\ColumnTypeGuesser($generator);
foreach ($tableMap->getColumns() as $columnMap) {
if ($columnMap->isForeignKey()) {
$relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname();
$formatters[$columnMap->getPhpName()] = function($inserted) use($relatedClass) { return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; };
continue;
}
if ($columnMap->isPrimaryKey()) {
continue;
}
if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName())) {
$formatters[$columnMap->getPhpName()] = $formatter;
continue;
}
if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) {
$formatters[$columnMap->getPhpName()] = $formatter;
continue;
}
}
return $formatters;
}
/**
* Insert one new record using the Entity class.
*/
public function execute($con, $insertedEntities)
{
$obj = new $this->class();
foreach ($this->columnFormatters as $column => $format) {
if (null !== $column) {
$obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format);
}
}
$obj->save($con);
return $obj->getPrimaryKey();
}
}

View File

@ -1,43 +1,43 @@
<?php
namespace Faker\Provider;
class Miscellaneous extends \Faker\Provider\Base
{
/**
* Return a boolean, true or false
*
* @param integer $chanceOfGettingTrue Between 0 (always get false) and 100 (always get true).
* @example true
*/
public static function boolean($chanceOfGettingTrue = 50)
{
return mt_rand(0, 100) <= $chanceOfGettingTrue ? true: false;
}
/**
* @example 'cfcd208495d565ef66e7dff9f98764da'
*/
public static function md5()
{
return md5(mt_rand());
}
/**
* @example 'b5d86317c2a144cd04d0d7c03b2b02666fafadf2'
*/
public static function sha1()
{
return sha1(mt_rand());
}
/**
* @example '85086017559ccc40638fcde2fecaf295e0de7ca51b7517b6aebeaaf75b4d4654'
*/
public static function sha256()
{
return hash('sha256', mt_rand());
}
<?php
namespace Faker\Provider;
class Miscellaneous extends \Faker\Provider\Base
{
/**
* Return a boolean, true or false
*
* @param integer $chanceOfGettingTrue Between 0 (always get false) and 100 (always get true).
* @example true
*/
public static function boolean($chanceOfGettingTrue = 50)
{
return mt_rand(0, 100) <= $chanceOfGettingTrue ? true: false;
}
/**
* @example 'cfcd208495d565ef66e7dff9f98764da'
*/
public static function md5()
{
return md5(mt_rand());
}
/**
* @example 'b5d86317c2a144cd04d0d7c03b2b02666fafadf2'
*/
public static function sha1()
{
return sha1(mt_rand());
}
/**
* @example '85086017559ccc40638fcde2fecaf295e0de7ca51b7517b6aebeaaf75b4d4654'
*/
public static function sha256()
{
return hash('sha256', mt_rand());
}
}