diff --git a/readme.md b/readme.md index 010b763a..6d78ebc4 100644 --- a/readme.md +++ b/readme.md @@ -55,7 +55,7 @@ for ($i=0; $i < 10; $i++) { Each of the generator properties (like `name`, `address`, and `lorem`) are called "formatters". A faker generator has many of them, packaged in "providers". Here is a list of the bundled formatters in the default locale. -### `Faker\Provider\en_US\Name` +### `Faker\Provider\en_US\Person` prefix // 'Ms.' suffix // 'Jr.' diff --git a/src/Faker/Factory.php b/src/Faker/Factory.php index 0ba229ad..d04c08d2 100644 --- a/src/Faker/Factory.php +++ b/src/Faker/Factory.php @@ -8,7 +8,7 @@ class Factory { const DEFAULT_LOCALE = 'en_US'; - protected static $defaultProviders = array('Name', 'Address', 'PhoneNumber', 'Company', 'Lorem', 'Internet', 'DateTime', 'Miscellaneous'); + protected static $defaultProviders = array('Person', 'Address', 'PhoneNumber', 'Company', 'Lorem', 'Internet', 'DateTime', 'Miscellaneous'); public static function create($locale = self::DEFAULT_LOCALE) { diff --git a/src/Faker/Provider/Base.php b/src/Faker/Provider/Base.php index f70d7f7f..1ff81b63 100644 --- a/src/Faker/Provider/Base.php +++ b/src/Faker/Provider/Base.php @@ -50,7 +50,7 @@ class Base */ protected static function numerify($string) { - return preg_replace_callback('/\#/', get_called_class() . '::randomDigit', $string); + return preg_replace_callback('/\#/', 'static::randomDigit', $string); } /** @@ -61,7 +61,7 @@ class Base */ protected static function lexify($string) { - return preg_replace_callback('/\?/', get_called_class() . '::randomLetter', $string); + return preg_replace_callback('/\?/', 'static::randomLetter', $string); } /** diff --git a/src/Faker/Provider/DateTime.php b/src/Faker/Provider/DateTime.php index c3ad63c5..fac70ca8 100644 --- a/src/Faker/Provider/DateTime.php +++ b/src/Faker/Provider/DateTime.php @@ -9,6 +9,8 @@ class DateTime extends \Faker\Provider\Base protected static $century = array('I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII','XIII','XIV','XV','XVI','XVII','XVIII','XIX','XX','XX1'); /** + * Get a timestamp between January 1, 1970 and now + * * @example 1061306726 */ public static function unixTime() @@ -17,6 +19,8 @@ class DateTime extends \Faker\Provider\Base } /** + * Get a datetime object for a date between January 1, 1970 and now + * * @example DateTime('2005-08-16 20:39:21') * @return \DateTime */ @@ -24,6 +28,17 @@ class DateTime extends \Faker\Provider\Base { return new \DateTime('@' . static::unixTime()); } + + /** + * Get a datetime object for a date between January 1, 001 and now + * + * @example DateTime('1265-03-22 21:15:52') + * @return \DateTime + */ + public static function dateTimeAD() + { + return new \DateTime('@' . mt_rand(-62135597361, time())); + } /** * @example '2003-10-21T16:05:52+0000' @@ -34,6 +49,9 @@ class DateTime extends \Faker\Provider\Base } /** + * Get a date string between January 1, 1970 and now + * + * @param string $format * @example '2008-11-27' */ public static function date($format = 'Y-m-d') @@ -42,6 +60,9 @@ class DateTime extends \Faker\Provider\Base } /** + * Get a time string (24h format by default) + * + * @param string $format * @example '15:02:34' */ public static function time($format = 'H:i:s') @@ -50,6 +71,11 @@ class DateTime extends \Faker\Provider\Base } /** + * Get a DateTime object based on a random date between two given dates. + * Accepts date strings that can be recognized by strtotime(). + * + * @param string $startDate Defaults to 30 years ago + * @param string $endDate Defaults to "now" * @example DateTime('1999-02-02 11:42:52') * @return \DateTime */ diff --git a/src/Faker/Provider/Name.php b/src/Faker/Provider/Person.php similarity index 94% rename from src/Faker/Provider/Name.php rename to src/Faker/Provider/Person.php index 3bb5c219..22239178 100644 --- a/src/Faker/Provider/Name.php +++ b/src/Faker/Provider/Person.php @@ -4,7 +4,7 @@ namespace Faker\Provider; require_once __DIR__ . '/Base.php'; -class Name extends \Faker\Provider\Base +class Person extends \Faker\Provider\Base { protected static $formats = array( '{{firstName}} {{lastName}}', diff --git a/src/Faker/Provider/en_US/Name.php b/src/Faker/Provider/en_US/Person.php similarity index 99% rename from src/Faker/Provider/en_US/Name.php rename to src/Faker/Provider/en_US/Person.php index 14372cb4..81b1eadb 100644 --- a/src/Faker/Provider/en_US/Name.php +++ b/src/Faker/Provider/en_US/Person.php @@ -2,9 +2,9 @@ namespace Faker\Provider\en_US; -require_once __DIR__ . '/../Name.php'; +require_once __DIR__ . '/../Person.php'; -class Name extends \Faker\Provider\Name +class Person extends \Faker\Provider\Person { protected static $formats = array( '{{firstName}} {{lastName}}', diff --git a/src/Faker/Provider/fr_FR/Name.php b/src/Faker/Provider/fr_FR/Person.php similarity index 98% rename from src/Faker/Provider/fr_FR/Name.php rename to src/Faker/Provider/fr_FR/Person.php index f33e7fda..861fa050 100644 --- a/src/Faker/Provider/fr_FR/Name.php +++ b/src/Faker/Provider/fr_FR/Person.php @@ -2,9 +2,9 @@ namespace Faker\Provider\fr_FR; -require_once __DIR__ . '/../Name.php'; +require_once __DIR__ . '/../Person.php'; -class Name extends \Faker\Provider\Name +class Person extends \Faker\Provider\Person { protected static $formats = array( '{{firstName}} {{lastName}}',