diff --git a/src/Faker/Guesser/Name.php b/src/Faker/Guesser/Name.php index 39f2a065..6552e32d 100644 --- a/src/Faker/Guesser/Name.php +++ b/src/Faker/Guesser/Name.php @@ -13,7 +13,7 @@ class Name public function guessFormat($name) { - $name = strtolower($name); + $name = static::toLower($name); $generator = $this->generator; if (preg_match('/^is[_A-Z]/', $name)) { return function() use ($generator) { return $generator->boolean; }; diff --git a/src/Faker/ORM/Propel/EntityPopulator.php b/src/Faker/ORM/Propel/EntityPopulator.php index 20df3fae..0dd2f59d 100644 --- a/src/Faker/ORM/Propel/EntityPopulator.php +++ b/src/Faker/ORM/Propel/EntityPopulator.php @@ -77,7 +77,7 @@ class EntityPopulator protected function isColumnBehavior($columnMap) { foreach ($columnMap->getTable()->getBehaviors() as $name => $params) { - $columnName = strtolower($columnMap->getName()); + $columnName = static::toLower($columnMap->getName()); switch ($name) { case 'nested_set': $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']); diff --git a/src/Faker/Provider/Address.php b/src/Faker/Provider/Address.php index 68488fce..49a382cb 100644 --- a/src/Faker/Provider/Address.php +++ b/src/Faker/Provider/Address.php @@ -79,7 +79,7 @@ class Address extends \Faker\Provider\Base */ public static function postcode() { - return strtoupper(static::bothify(static::randomElement(static::$postcode))); + return static::toUpper(static::bothify(static::randomElement(static::$postcode))); } /** diff --git a/src/Faker/Provider/Base.php b/src/Faker/Provider/Base.php index 74526059..4430e618 100644 --- a/src/Faker/Provider/Base.php +++ b/src/Faker/Provider/Base.php @@ -126,4 +126,24 @@ class Base { return static::lexify(static::numerify($string)); } -} \ No newline at end of file + + /** + * Converts string to lowercase. + * Uses mb_string extension if available + * @param string $string String that should be converted to lowercase + * @return string + */ + public static function toLower($string) { + return extension_loaded('mbstring') ? mb_strtolower($string) : strtolower($string); + } + + /** + * Converts string to uppercase. + * Uses mb_string extension if available + * @param string $string String that should be converted to uppercase + * @return string + */ + public static function toUpper($string) { + return extension_loaded('mbstring') ? mb_strtoupper($string) : strtoupper($string); + } +} diff --git a/src/Faker/Provider/Internet.php b/src/Faker/Provider/Internet.php index 08a5293c..7f8284ed 100644 --- a/src/Faker/Provider/Internet.php +++ b/src/Faker/Provider/Internet.php @@ -70,7 +70,7 @@ class Internet extends \Faker\Provider\Base public function userName() { $format = static::randomElement(static::$userNameFormats); - return strtolower(static::bothify($this->generator->parse($format))); + return static::toLower(static::bothify($this->generator->parse($format))); } /** @@ -91,7 +91,7 @@ class Internet extends \Faker\Provider\Base $company = $companyElements[0]; $company = preg_replace('/\W/', '', $company); - return strtolower($company); + return static::toLower($company); } /** diff --git a/src/Faker/Provider/Lorem.php b/src/Faker/Provider/Lorem.php index 5cc599bc..db67189e 100644 --- a/src/Faker/Provider/Lorem.php +++ b/src/Faker/Provider/Lorem.php @@ -74,7 +74,7 @@ class Lorem extends \Faker\Provider\Base * * @example 'Lorem ipsum dolor sit amet.' * @param integer $nbWords around how many words the sentence should contain - * @param boolean $variableNbWords set to false if you want exactly $nbWords returned, + * @param boolean $variableNbWords set to false if you want exactly $nbWords returned, * otherwise $nbWords may vary by +/-40% with a minimum of 1 * @return string */ @@ -115,7 +115,7 @@ class Lorem extends \Faker\Provider\Base * * @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.' * @param integer $nbSentences around how many sentences the paragraph should contain - * @param boolean $variableNbSentences set to false if you want exactly $nbSentences returned, + * @param boolean $variableNbSentences set to false if you want exactly $nbSentences returned, * otherwise $nbSentences may vary by +/-40% with a minimum of 1 * @return string */ @@ -173,7 +173,7 @@ class Lorem extends \Faker\Provider\Base } array_pop($text); } - $text[0][0] = strtoupper($text[0][0]); + $text[0][0] = static::toUpper($text[0][0]); $text[count($text) - 1] .= '.'; } else if ($maxNbChars < 100) { // join sentences diff --git a/src/Faker/Provider/da_DK/Address.php b/src/Faker/Provider/da_DK/Address.php index 1742875b..9f0f3782 100644 --- a/src/Faker/Provider/da_DK/Address.php +++ b/src/Faker/Provider/da_DK/Address.php @@ -235,9 +235,14 @@ class Address extends \Faker\Provider\Address return static::randomElement(static::$streetSuffixWord); } + /** + * Randomly return a building number. + * + * @return string + */ public static function buildingNumber() { - return strtoupper(static::bothify(static::randomElement(static::$buildingNumber))); + return static::toUpper(static::bothify(static::randomElement(static::$buildingNumber))); } /** diff --git a/src/Faker/Provider/da_DK/Internet.php b/src/Faker/Provider/da_DK/Internet.php index 4052a758..f851871e 100644 --- a/src/Faker/Provider/da_DK/Internet.php +++ b/src/Faker/Provider/da_DK/Internet.php @@ -48,7 +48,7 @@ class Internet extends \Faker\Provider\Internet public function userName() { $format = static::randomElement(static::$userNameFormats); - return strtolower(static::toAscii(static::bothify($this->generator->parse($format)))); + return static::toLower(static::toAscii(static::bothify($this->generator->parse($format)))); } /** @@ -62,6 +62,6 @@ class Internet extends \Faker\Provider\Internet $company = $companyElements[0]; $company = preg_replace('/\W/', '', $company); - return strtolower(static::toAscii($company)); + return static::toLower(static::toAscii($company)); } } diff --git a/src/Faker/Provider/de_DE/Internet.php b/src/Faker/Provider/de_DE/Internet.php index 70d7d033..c3f0349a 100644 --- a/src/Faker/Provider/de_DE/Internet.php +++ b/src/Faker/Provider/de_DE/Internet.php @@ -27,7 +27,7 @@ class Internet extends \Faker\Provider\Internet public function userName() { $format = static::randomElement(static::$userNameFormats); - return strtolower(static::toAscii(static::bothify($this->generator->parse($format)))); + return static::toLower(static::toAscii(static::bothify($this->generator->parse($format)))); } /** @@ -40,6 +40,6 @@ class Internet extends \Faker\Provider\Internet $company = $companyElements[0]; $company = preg_replace('/\W/', '', $company); - return strtolower(static::toAscii($company)); + return static::toLower(static::toAscii($company)); } } diff --git a/src/Faker/Provider/fr_FR/Internet.php b/src/Faker/Provider/fr_FR/Internet.php index f26529d6..d5c69c91 100644 --- a/src/Faker/Provider/fr_FR/Internet.php +++ b/src/Faker/Provider/fr_FR/Internet.php @@ -27,7 +27,7 @@ class Internet extends \Faker\Provider\Internet public function userName() { $format = static::randomElement(static::$userNameFormats); - return strtolower(static::toAscii(static::bothify($this->generator->parse($format)))); + return static::toLower(static::toAscii(static::bothify($this->generator->parse($format)))); } /** @@ -40,6 +40,6 @@ class Internet extends \Faker\Provider\Internet $company = $companyElements[0]; $company = preg_replace('/\W/', '', $company); - return strtolower(static::toAscii($company)); + return static::toLower(static::toAscii($company)); } } diff --git a/src/Faker/Provider/ru_RU/Address.php b/src/Faker/Provider/ru_RU/Address.php index 97d9351b..23116e31 100644 --- a/src/Faker/Provider/ru_RU/Address.php +++ b/src/Faker/Provider/ru_RU/Address.php @@ -115,7 +115,7 @@ class Address extends \Faker\Provider\Base public static function postcode() { - return strtoupper(static::bothify(static::randomElement(static::$postcode))); + return static::toUpper(static::bothify(static::randomElement(static::$postcode))); } public static function regionSuffix()