127 lines
3.1 KiB
PHP
127 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace Faker\Provider;
|
|
|
|
class Person extends Base
|
|
{
|
|
const GENDER_MALE = 'male';
|
|
const GENDER_FEMALE = 'female';
|
|
|
|
protected static $titleFormat = array(
|
|
'{{titleMale}}',
|
|
'{{titleFemale}}',
|
|
);
|
|
|
|
protected static $firstNameFormat = array(
|
|
'{{firstNameMale}}',
|
|
'{{firstNameFemale}}',
|
|
);
|
|
|
|
protected static $maleNameFormats = array(
|
|
'{{firstNameMale}} {{lastName}}',
|
|
);
|
|
|
|
protected static $femaleNameFormats = array(
|
|
'{{firstNameFemale}} {{lastName}}',
|
|
);
|
|
|
|
protected static $firstNameMale = array(
|
|
'John',
|
|
);
|
|
|
|
protected static $firstNameFemale = array(
|
|
'Jane',
|
|
);
|
|
|
|
protected static $lastName = array('Doe');
|
|
|
|
protected static $titleMale = array('Mr.', 'Dr.', 'Prof.');
|
|
|
|
protected static $titleFemale = array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.');
|
|
|
|
/**
|
|
* @param string|null $gender 'male', 'female' or null for any
|
|
* @return string
|
|
* @example 'John Doe'
|
|
*/
|
|
public function name($gender = null)
|
|
{
|
|
if ($gender === static::GENDER_MALE) {
|
|
$format = static::randomElement(static::$maleNameFormats);
|
|
} elseif ($gender === static::GENDER_FEMALE) {
|
|
$format = static::randomElement(static::$femaleNameFormats);
|
|
} else {
|
|
$format = static::randomElement(array_merge(static::$maleNameFormats, static::$femaleNameFormats));
|
|
}
|
|
|
|
return $this->generator->parse($format);
|
|
}
|
|
|
|
/**
|
|
* @param string|null $gender 'male', 'female' or null for any
|
|
* @return string
|
|
* @example 'John'
|
|
*/
|
|
public function firstName($gender = null)
|
|
{
|
|
if ($gender === static::GENDER_MALE) {
|
|
return static::firstNameMale();
|
|
} elseif ($gender === static::GENDER_FEMALE) {
|
|
return static::firstNameFemale();
|
|
}
|
|
|
|
return $this->generator->parse(static::randomElement(static::$firstNameFormat));
|
|
}
|
|
|
|
public static function firstNameMale()
|
|
{
|
|
return static::randomElement(static::$firstNameMale);
|
|
}
|
|
|
|
public static function firstNameFemale()
|
|
{
|
|
return static::randomElement(static::$firstNameFemale);
|
|
}
|
|
|
|
/**
|
|
* @example 'Doe'
|
|
* @return string
|
|
*/
|
|
public function lastName()
|
|
{
|
|
return static::randomElement(static::$lastName);
|
|
}
|
|
|
|
/**
|
|
* @example 'Mrs.'
|
|
* @param string|null $gender 'male', 'female' or null for any
|
|
* @return string
|
|
*/
|
|
public function title($gender = null)
|
|
{
|
|
if ($gender === static::GENDER_MALE) {
|
|
return static::titleMale();
|
|
} elseif ($gender === static::GENDER_FEMALE) {
|
|
return static::titleFemale();
|
|
}
|
|
|
|
return $this->generator->parse(static::randomElement(static::$titleFormat));
|
|
}
|
|
|
|
/**
|
|
* @example 'Mr.'
|
|
*/
|
|
public static function titleMale()
|
|
{
|
|
return static::randomElement(static::$titleMale);
|
|
}
|
|
|
|
/**
|
|
* @example 'Mrs.'
|
|
*/
|
|
public static function titleFemale()
|
|
{
|
|
return static::randomElement(static::$titleFemale);
|
|
}
|
|
}
|