From 5e9fc857e3b16bd71cf9dfa329262a6d66f47764 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 13 Jul 2024 12:09:15 +0200 Subject: [PATCH 01/46] Translated using Weblate (Irish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ga/ [ci skip] Co-authored-by: Aindriú Mac Giolla Eoin --- lang/ga.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/lang/ga.json b/lang/ga.json index 0967ef4..0d92296 100644 --- a/lang/ga.json +++ b/lang/ga.json @@ -1 +1,25 @@ -{} +{ + "VisitorGenerator": { + "AreYouSure": "Gin cuairteanna bréige?", + "AutomaticReprocess": "An chéad uair eile a thugann tú cuairt ar thuairiscí Matomo déanfar iad a athphróiseáil. Seans go dtógfaidh sé seo cúpla nóiméad.", + "ChoiceYes": "Tá", + "CliToolUsage": "Ní hamháin gur féidir le huirlis %1$sMatomo CLI%2$s níos mó cuairteanna a ghiniúint, ach is féidir le húsáideoirí, suíomhanna Gréasáin agus spriocanna freisin.", + "ConfirmVisitorGeneration": "Cuir tic sa bhosca le do thoil chun gineadh cuairteoirí a dhearbhú", + "CustomMatomoUrl": "URL saincheaptha Matomo", + "DaysToCompute": "Laethanta a ríomh", + "GenerateFakeActions": "Ginfidh sé seo ar a laghad %d gníomh bréige ar an suíomh seo gach lá.", + "GeneratedVisitsFor": "Gineadh cuairteanna le %1$s agus le %2$s lá anuas", + "LogImporterNote": "Tá eolas ag %1$sREADME%2$s ar uirlis níos tapúla a iompórtálann sonraí tástála móra i Matomo.", + "NbRequestsPerSec": "Iarratais in aghaidh an tsoicind", + "NotReversible": "Ní bheidh %1$s %2$s in ann na cuairteanna seo a scriosadh go héasca ó logaí Matomo.", + "NumberOfGeneratedActions": "Líon na ngníomhartha ginte", + "OverwriteLogFiles": "Forscríobh na logchomhaid \"matomo.php\" chun cuairteanna bréige a chruthú san fhormáid \"loga comhcheangailte Apache\" (athraigh nó cuir comhaid i %s). Cuireann forbróirí breiseán a gcomhaid loga féin isteach mar chomhaid '*.log' i bhfillteán 'sonraí' dá mbreiseán.", + "PleaseBePatient": "Féadfaidh cúpla nóiméad a ghlacadh chun cuairteanna agus gníomhartha a ghiniúint.", + "PluginDescription": "Cruthaigh cuairteanna agus gníomhartha falsa i Matomo. Gin sonraí falsa chun tuarascálacha Matomo a líonadh.", + "ReRunArchiveScript": "Rith an t-ordú crontab './console core:archive' arís chun na tuairiscí a athnuachan, de réir %1$s\"Conas cartlannú uathoibríoch do thuairiscí a shocrú\"%2$s", + "SelectWebsite": "Roghnaigh suíomh Gréasáin", + "Submit": "Cuir isteach", + "VisitorGenerator": "Gineadóir Cuairteoirí", + "Warning": "Tá tú ar tí cuairteanna bréige a ghiniúint do do bhunachar sonraí Matomo." + } +} From 8081d24bcf95dba15579da8621add34c76017797 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 18 Aug 2024 23:02:16 +0200 Subject: [PATCH 02/46] Translated using Weblate (Czech) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/cs/ [ci skip] Co-authored-by: Jiří Podhorecký --- lang/cs.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/cs.json b/lang/cs.json index 271285b..d97cd6d 100644 --- a/lang/cs.json +++ b/lang/cs.json @@ -2,22 +2,22 @@ "VisitorGenerator": { "AreYouSure": "Opravdu vygenerovat falešné návštěvy?", "AutomaticReprocess": "Hlášení budou znovu zpracována při příští návštěvě hlášení Matoma. Může to chvíli trvat.", - "ChoiceYes": "Ano, jsem si jistý", + "ChoiceYes": "Ano", "CliToolUsage": "%1$sCLI nástroj Matoma%2$s může nejen vygenerovat ještě více návštěv, ale i uživatelů, stránek a cílů.", - "ConfirmVisitorGeneration": "Potvrďte prosím generování návštěvníků zaškrtnutím pole", + "ConfirmVisitorGeneration": "Zaškrtněte prosím políčko pro potvrzení generování návštěvníků", "CustomMatomoUrl": "Vlastní URL Matoma", "DaysToCompute": "Dní na výpočet", "GenerateFakeActions": "Toto vygeneruje alespoň %d smyšlených akcí pro každý den.", "GeneratedVisitsFor": "Generované návštěvy pro %1$s a za %2$s posledních dnů", - "LogImporterNote": "Existuje i rychlejší nástroj, který importuje velké testovací sady, podívejte se na %1$sčti mě%2$s.", + "LogImporterNote": "V %1$sREADME%2$s najdete informace o rychlejším nástroji, který importuje rozsáhlá testovací data do systému Matomo.", "NbRequestsPerSec": "Požadavků za sekundu", "NotReversible": "Tyto návštěvy %1$s nebude%2$s možné ze záznamů Matoma jednoduše vymazat.", "NumberOfGeneratedActions": "Počet generovaných akcí", - "OverwriteLogFiles": "Můžete přepsat log soubory, které jsou použity pro generování smyšlených návštěv (změňte nebo přidejte soubory v adresáři %s). Zde jsou log soubory požadavků na matomo.php ve formátu kombinovaného Apache logu. Vývojáři zásuvných modulů mohou poskytnout vlastní log soubory, když umístí *.log soubory do podadresáře data svého zásuvného modulu.", + "OverwriteLogFiles": "Přepište soubory protokolu \"matomo.php\" a vytvořte falešné návštěvy ve formátu \"Apache combined log\" (změňte nebo přidejte soubory v %s). Vývojáři zásuvných modulů přidávají své vlastní soubory protokolu jako soubory \"*.log\" do složky \"data\" svého zásuvného modulu.", "PleaseBePatient": "Generování návštěv a akcí může pár minut trvat.", "PluginDescription": "Vytvořte v Matomu falešné návštěvy a akce, která naplní hlášení daty.", "ReRunArchiveScript": "Pro obnovení hlášení znovu spusťte příkaz cronu './console core:archive', jak popisují %1$sinformace o automatickém archivování%2$s", - "SelectWebsite": "Zvolte web", + "SelectWebsite": "Vyberte webové stránky", "Submit": "Odeslat", "VisitorGenerator": "Generátor návštěv", "Warning": "Chystáte se vygenerovat falešné návštěvy, které budou zaznamenány do databáze Matoma." From f11a46c3c5eaf0dc44632b820c696ba39c793453 Mon Sep 17 00:00:00 2001 From: Marc Neudert Date: Mon, 2 Sep 2024 16:37:48 +0200 Subject: [PATCH 03/46] Use Symfony/Process from core (#151) * Replace Symfony\Process with Piwik\Process * Update required core version --- Commands/GenerateVisitsDb.php | 14 +- composer.json | 3 +- composer.lock | 144 +- plugin.json | 2 +- vendor/composer/InstalledVersions.php | 4 +- vendor/composer/LICENSE | 2 - vendor/composer/autoload_classmap.php | 5 - vendor/composer/autoload_files.php | 10 - vendor/composer/autoload_psr4.php | 2 - vendor/composer/autoload_real.php | 12 - vendor/composer/autoload_static.php | 22 - vendor/composer/installed.json | 148 -- vendor/composer/installed.php | 22 +- vendor/composer/platform_check.php | 4 +- vendor/symfony/polyfill-php80/LICENSE | 19 - vendor/symfony/polyfill-php80/Php80.php | 115 -- vendor/symfony/polyfill-php80/PhpToken.php | 103 - vendor/symfony/polyfill-php80/README.md | 25 - .../Resources/stubs/Attribute.php | 31 - .../Resources/stubs/PhpToken.php | 16 - .../Resources/stubs/Stringable.php | 20 - .../Resources/stubs/UnhandledMatchError.php | 16 - .../Resources/stubs/ValueError.php | 16 - vendor/symfony/polyfill-php80/bootstrap.php | 42 - vendor/symfony/polyfill-php80/composer.json | 37 - vendor/symfony/process/CHANGELOG.md | 116 -- .../process/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../process/Exception/LogicException.php | 21 - .../Exception/ProcessFailedException.php | 54 - .../Exception/ProcessSignaledException.php | 41 - .../Exception/ProcessTimedOutException.php | 69 - .../process/Exception/RuntimeException.php | 21 - vendor/symfony/process/ExecutableFinder.php | 86 - vendor/symfony/process/InputStream.php | 96 - vendor/symfony/process/LICENSE | 19 - .../symfony/process/PhpExecutableFinder.php | 103 - vendor/symfony/process/PhpProcess.php | 72 - .../symfony/process/Pipes/AbstractPipes.php | 180 -- .../symfony/process/Pipes/PipesInterface.php | 61 - vendor/symfony/process/Pipes/UnixPipes.php | 163 -- vendor/symfony/process/Pipes/WindowsPipes.php | 204 -- vendor/symfony/process/Process.php | 1652 ----------------- vendor/symfony/process/ProcessUtils.php | 69 - vendor/symfony/process/README.md | 28 - vendor/symfony/process/composer.json | 29 - 46 files changed, 16 insertions(+), 3944 deletions(-) delete mode 100644 vendor/composer/autoload_files.php delete mode 100644 vendor/symfony/polyfill-php80/LICENSE delete mode 100644 vendor/symfony/polyfill-php80/Php80.php delete mode 100644 vendor/symfony/polyfill-php80/PhpToken.php delete mode 100644 vendor/symfony/polyfill-php80/README.md delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php delete mode 100644 vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php delete mode 100644 vendor/symfony/polyfill-php80/bootstrap.php delete mode 100644 vendor/symfony/polyfill-php80/composer.json delete mode 100644 vendor/symfony/process/CHANGELOG.md delete mode 100644 vendor/symfony/process/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/process/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/process/Exception/LogicException.php delete mode 100644 vendor/symfony/process/Exception/ProcessFailedException.php delete mode 100644 vendor/symfony/process/Exception/ProcessSignaledException.php delete mode 100644 vendor/symfony/process/Exception/ProcessTimedOutException.php delete mode 100644 vendor/symfony/process/Exception/RuntimeException.php delete mode 100644 vendor/symfony/process/ExecutableFinder.php delete mode 100644 vendor/symfony/process/InputStream.php delete mode 100644 vendor/symfony/process/LICENSE delete mode 100644 vendor/symfony/process/PhpExecutableFinder.php delete mode 100644 vendor/symfony/process/PhpProcess.php delete mode 100644 vendor/symfony/process/Pipes/AbstractPipes.php delete mode 100644 vendor/symfony/process/Pipes/PipesInterface.php delete mode 100644 vendor/symfony/process/Pipes/UnixPipes.php delete mode 100644 vendor/symfony/process/Pipes/WindowsPipes.php delete mode 100644 vendor/symfony/process/Process.php delete mode 100644 vendor/symfony/process/ProcessUtils.php delete mode 100644 vendor/symfony/process/README.md delete mode 100644 vendor/symfony/process/composer.json diff --git a/Commands/GenerateVisitsDb.php b/Commands/GenerateVisitsDb.php index 487b9e3..6c68222 100644 --- a/Commands/GenerateVisitsDb.php +++ b/Commands/GenerateVisitsDb.php @@ -10,18 +10,18 @@ namespace Piwik\Plugins\VisitorGenerator\Commands; use PDO; +use Piwik\CliMulti\CliPhp; use Piwik\Common; +use Piwik\Config; use Piwik\Container\StaticContainer; use Piwik\Date; -use Piwik\Timer; -use Piwik\Config; -use Piwik\CliMulti\CliPhp; -use Piwik\Plugins\VisitorGenerator\Generator\VisitFakeQuery; -use Piwik\NumberFormatter; use Piwik\Metrics\Formatter; +use Piwik\NumberFormatter; +use Piwik\Plugins\VisitorGenerator\Generator\VisitFakeQuery; +use Piwik\Process; +use Piwik\Timer; use Symfony\Component\Console\Input\Input; use Symfony\Component\Console\Output\Output; -use Symfony\Component\Process\Process as SymponyProcess; class GenerateVisitsDb extends GenerateVisits { @@ -185,7 +185,7 @@ private function doThreadedRun(Input $input, Output $output, int $idSite, int $d $this->log(implode(' ', $command), 2); - $process = new SymponyProcess($command); + $process = new Process($command); $processList[$t] = $process; $process->start(function ($type, $buffer) use ($threadsComplete, $output, &$grandSummary) { diff --git a/composer.json b/composer.json index 2055169..e758405 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,5 @@ { "require": { - "fzaninotto/faker": "dev-master", - "symfony/process": "^5.4.0" + "fzaninotto/faker": "dev-master" } } diff --git a/composer.lock b/composer.lock index 4ce2ce7..3c3520e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "22538307019d190687815bc225fcf5b5", + "content-hash": "e64b5a418d8b4de4bc5878e9606f6d5e", "packages": [ { "name": "fzaninotto/faker", @@ -61,148 +61,6 @@ }, "abandoned": true, "time": "2020-12-11T09:59:14+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.29.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-01-29T20:11:03+00:00" - }, - { - "name": "symfony/process", - "version": "v5.4.35", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/cbc28e34015ad50166fc2f9c8962d28d0fe861eb", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v5.4.35" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-01-23T13:51:25+00:00" } ], "packages-dev": [], diff --git a/plugin.json b/plugin.json index 81b9389..bb8607c 100644 --- a/plugin.json +++ b/plugin.json @@ -6,7 +6,7 @@ "license": "GPL v3+", "homepage": "https://matomo.org", "require": { - "matomo": ">=5.0.0-rc5,<6.0.0-b1" + "matomo": ">=5.2.0-b1,<6.0.0-b1" }, "support": { "issues": "https://github.com/matomo-org/plugin-VisitorGenerator/issues", diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php index 51e734a..39e55ea 100644 --- a/vendor/composer/InstalledVersions.php +++ b/vendor/composer/InstalledVersions.php @@ -266,7 +266,7 @@ public static function getRawData() if (null === self::$installed) { // only require the installed.php file if this file is loaded from its dumped location, // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { + if (substr(__DIR__, -8, 1) !== 'C' && is_file(__DIR__ . '/installed.php')) { self::$installed = include __DIR__ . '/installed.php'; } else { self::$installed = array(); @@ -341,7 +341,7 @@ private static function getInstalled() if (null === self::$installed) { // only require the installed.php file if this file is loaded from its dumped location, // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { + if (substr(__DIR__, -8, 1) !== 'C' && is_file(__DIR__ . '/installed.php')) { /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ $required = require __DIR__ . '/installed.php'; self::$installed = $required; diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE index f27399a..62ecfd8 100644 --- a/vendor/composer/LICENSE +++ b/vendor/composer/LICENSE @@ -1,4 +1,3 @@ - Copyright (c) Nils Adermann, Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy @@ -18,4 +17,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 5490b88..0fb0a2c 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -6,10 +6,5 @@ $baseDir = dirname($vendorDir); return array( - 'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', - 'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', - 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', - 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', - 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', ); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php deleted file mode 100644 index 5b61514..0000000 --- a/vendor/composer/autoload_files.php +++ /dev/null @@ -1,10 +0,0 @@ - $vendorDir . '/symfony/polyfill-php80/bootstrap.php', -); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index a9de887..70412e0 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,7 +6,5 @@ $baseDir = dirname($vendorDir); return array( - 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), - 'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), 'Faker\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'), ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 1c197cc..b245b72 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -33,18 +33,6 @@ public static function getLoader() $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit150f3641fba2aa7f9c7e1c8d776f657c::$files; - $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - - require $file; - } - }, null, null); - foreach ($filesToLoad as $fileIdentifier => $file) { - $requireFile($fileIdentifier, $file); - } - return $loader; } } diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 40624b3..08c05cc 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -6,16 +6,7 @@ class ComposerStaticInit150f3641fba2aa7f9c7e1c8d776f657c { - public static $files = array ( - 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', - ); - public static $prefixLengthsPsr4 = array ( - 'S' => - array ( - 'Symfony\\Polyfill\\Php80\\' => 23, - 'Symfony\\Component\\Process\\' => 26, - ), 'F' => array ( 'Faker\\' => 6, @@ -23,14 +14,6 @@ class ComposerStaticInit150f3641fba2aa7f9c7e1c8d776f657c ); public static $prefixDirsPsr4 = array ( - 'Symfony\\Polyfill\\Php80\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php80', - ), - 'Symfony\\Component\\Process\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/process', - ), 'Faker\\' => array ( 0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker', @@ -38,12 +21,7 @@ class ComposerStaticInit150f3641fba2aa7f9c7e1c8d776f657c ); public static $classMap = array ( - 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', - 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', - 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', - 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', ); public static function getInitializer(ClassLoader $loader) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 26f6a00..fd8035d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -58,154 +58,6 @@ }, "abandoned": true, "install-path": "../fzaninotto/faker" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.29.0", - "version_normalized": "1.29.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "time": "2024-01-29T20:11:03+00:00", - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-php80" - }, - { - "name": "symfony/process", - "version": "v5.4.35", - "version_normalized": "5.4.35.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/cbc28e34015ad50166fc2f9c8962d28d0fe861eb", - "reference": "cbc28e34015ad50166fc2f9c8962d28d0fe861eb", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "time": "2024-01-23T13:51:25+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v5.4.35" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/process" } ], "dev": true, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 3c5a2b2..99f5674 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => '21b80241bd631b1c7eb401666493e9378463417c', + 'reference' => '0d8b6b4873a354a377c2259553b67abf338eb001', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => '21b80241bd631b1c7eb401666493e9378463417c', + 'reference' => '0d8b6b4873a354a377c2259553b67abf338eb001', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -30,23 +30,5 @@ ), 'dev_requirement' => false, ), - 'symfony/polyfill-php80' => array( - 'pretty_version' => 'v1.29.0', - 'version' => '1.29.0.0', - 'reference' => '87b68208d5c1188808dd7839ee1e6c8ec3b02f1b', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-php80', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'symfony/process' => array( - 'pretty_version' => 'v5.4.35', - 'version' => '5.4.35.0', - 'reference' => 'cbc28e34015ad50166fc2f9c8962d28d0fe861eb', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/process', - 'aliases' => array(), - 'dev_requirement' => false, - ), ), ); diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index a8b98d5..7f0d16c 100644 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 70205)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.5". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 50303)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.3". You are running ' . PHP_VERSION . '.'; } if ($issues) { diff --git a/vendor/symfony/polyfill-php80/LICENSE b/vendor/symfony/polyfill-php80/LICENSE deleted file mode 100644 index 0ed3a24..0000000 --- a/vendor/symfony/polyfill-php80/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2020-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/symfony/polyfill-php80/Php80.php b/vendor/symfony/polyfill-php80/Php80.php deleted file mode 100644 index 362dd1a..0000000 --- a/vendor/symfony/polyfill-php80/Php80.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Php80; - -/** - * @author Ion Bazan - * @author Nico Oelgart - * @author Nicolas Grekas - * - * @internal - */ -final class Php80 -{ - public static function fdiv(float $dividend, float $divisor): float - { - return @($dividend / $divisor); - } - - public static function get_debug_type($value): string - { - switch (true) { - case null === $value: return 'null'; - case \is_bool($value): return 'bool'; - case \is_string($value): return 'string'; - case \is_array($value): return 'array'; - case \is_int($value): return 'int'; - case \is_float($value): return 'float'; - case \is_object($value): break; - case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class'; - default: - if (null === $type = @get_resource_type($value)) { - return 'unknown'; - } - - if ('Unknown' === $type) { - $type = 'closed'; - } - - return "resource ($type)"; - } - - $class = \get_class($value); - - if (false === strpos($class, '@')) { - return $class; - } - - return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous'; - } - - public static function get_resource_id($res): int - { - if (!\is_resource($res) && null === @get_resource_type($res)) { - throw new \TypeError(sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res))); - } - - return (int) $res; - } - - public static function preg_last_error_msg(): string - { - switch (preg_last_error()) { - case \PREG_INTERNAL_ERROR: - return 'Internal error'; - case \PREG_BAD_UTF8_ERROR: - return 'Malformed UTF-8 characters, possibly incorrectly encoded'; - case \PREG_BAD_UTF8_OFFSET_ERROR: - return 'The offset did not correspond to the beginning of a valid UTF-8 code point'; - case \PREG_BACKTRACK_LIMIT_ERROR: - return 'Backtrack limit exhausted'; - case \PREG_RECURSION_LIMIT_ERROR: - return 'Recursion limit exhausted'; - case \PREG_JIT_STACKLIMIT_ERROR: - return 'JIT stack limit exhausted'; - case \PREG_NO_ERROR: - return 'No error'; - default: - return 'Unknown error'; - } - } - - public static function str_contains(string $haystack, string $needle): bool - { - return '' === $needle || false !== strpos($haystack, $needle); - } - - public static function str_starts_with(string $haystack, string $needle): bool - { - return 0 === strncmp($haystack, $needle, \strlen($needle)); - } - - public static function str_ends_with(string $haystack, string $needle): bool - { - if ('' === $needle || $needle === $haystack) { - return true; - } - - if ('' === $haystack) { - return false; - } - - $needleLength = \strlen($needle); - - return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength); - } -} diff --git a/vendor/symfony/polyfill-php80/PhpToken.php b/vendor/symfony/polyfill-php80/PhpToken.php deleted file mode 100644 index fe6e691..0000000 --- a/vendor/symfony/polyfill-php80/PhpToken.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Php80; - -/** - * @author Fedonyuk Anton - * - * @internal - */ -class PhpToken implements \Stringable -{ - /** - * @var int - */ - public $id; - - /** - * @var string - */ - public $text; - - /** - * @var int - */ - public $line; - - /** - * @var int - */ - public $pos; - - public function __construct(int $id, string $text, int $line = -1, int $position = -1) - { - $this->id = $id; - $this->text = $text; - $this->line = $line; - $this->pos = $position; - } - - public function getTokenName(): ?string - { - if ('UNKNOWN' === $name = token_name($this->id)) { - $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text; - } - - return $name; - } - - /** - * @param int|string|array $kind - */ - public function is($kind): bool - { - foreach ((array) $kind as $value) { - if (\in_array($value, [$this->id, $this->text], true)) { - return true; - } - } - - return false; - } - - public function isIgnorable(): bool - { - return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true); - } - - public function __toString(): string - { - return (string) $this->text; - } - - /** - * @return static[] - */ - public static function tokenize(string $code, int $flags = 0): array - { - $line = 1; - $position = 0; - $tokens = token_get_all($code, $flags); - foreach ($tokens as $index => $token) { - if (\is_string($token)) { - $id = \ord($token); - $text = $token; - } else { - [$id, $text, $line] = $token; - } - $tokens[$index] = new static($id, $text, $line, $position); - $position += \strlen($text); - } - - return $tokens; - } -} diff --git a/vendor/symfony/polyfill-php80/README.md b/vendor/symfony/polyfill-php80/README.md deleted file mode 100644 index 3816c55..0000000 --- a/vendor/symfony/polyfill-php80/README.md +++ /dev/null @@ -1,25 +0,0 @@ -Symfony Polyfill / Php80 -======================== - -This component provides features added to PHP 8.0 core: - -- [`Stringable`](https://php.net/stringable) interface -- [`fdiv`](https://php.net/fdiv) -- [`ValueError`](https://php.net/valueerror) class -- [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class -- `FILTER_VALIDATE_BOOL` constant -- [`get_debug_type`](https://php.net/get_debug_type) -- [`PhpToken`](https://php.net/phptoken) class -- [`preg_last_error_msg`](https://php.net/preg_last_error_msg) -- [`str_contains`](https://php.net/str_contains) -- [`str_starts_with`](https://php.net/str_starts_with) -- [`str_ends_with`](https://php.net/str_ends_with) -- [`get_resource_id`](https://php.net/get_resource_id) - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php b/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php deleted file mode 100644 index 2b95542..0000000 --- a/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -#[Attribute(Attribute::TARGET_CLASS)] -final class Attribute -{ - public const TARGET_CLASS = 1; - public const TARGET_FUNCTION = 2; - public const TARGET_METHOD = 4; - public const TARGET_PROPERTY = 8; - public const TARGET_CLASS_CONSTANT = 16; - public const TARGET_PARAMETER = 32; - public const TARGET_ALL = 63; - public const IS_REPEATABLE = 64; - - /** @var int */ - public $flags; - - public function __construct(int $flags = self::TARGET_ALL) - { - $this->flags = $flags; - } -} diff --git a/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php b/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php deleted file mode 100644 index bd1212f..0000000 --- a/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) { - class PhpToken extends Symfony\Polyfill\Php80\PhpToken - { - } -} diff --git a/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php b/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php deleted file mode 100644 index 7c62d75..0000000 --- a/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80000) { - interface Stringable - { - /** - * @return string - */ - public function __toString(); - } -} diff --git a/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php b/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php deleted file mode 100644 index 01c6c6c..0000000 --- a/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80000) { - class UnhandledMatchError extends Error - { - } -} diff --git a/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php b/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php deleted file mode 100644 index 783dbc2..0000000 --- a/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80000) { - class ValueError extends Error - { - } -} diff --git a/vendor/symfony/polyfill-php80/bootstrap.php b/vendor/symfony/polyfill-php80/bootstrap.php deleted file mode 100644 index e5f7dbc..0000000 --- a/vendor/symfony/polyfill-php80/bootstrap.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php80 as p; - -if (\PHP_VERSION_ID >= 80000) { - return; -} - -if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) { - define('FILTER_VALIDATE_BOOL', \FILTER_VALIDATE_BOOLEAN); -} - -if (!function_exists('fdiv')) { - function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); } -} -if (!function_exists('preg_last_error_msg')) { - function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); } -} -if (!function_exists('str_contains')) { - function str_contains(?string $haystack, ?string $needle): bool { return p\Php80::str_contains($haystack ?? '', $needle ?? ''); } -} -if (!function_exists('str_starts_with')) { - function str_starts_with(?string $haystack, ?string $needle): bool { return p\Php80::str_starts_with($haystack ?? '', $needle ?? ''); } -} -if (!function_exists('str_ends_with')) { - function str_ends_with(?string $haystack, ?string $needle): bool { return p\Php80::str_ends_with($haystack ?? '', $needle ?? ''); } -} -if (!function_exists('get_debug_type')) { - function get_debug_type($value): string { return p\Php80::get_debug_type($value); } -} -if (!function_exists('get_resource_id')) { - function get_resource_id($resource): int { return p\Php80::get_resource_id($resource); } -} diff --git a/vendor/symfony/polyfill-php80/composer.json b/vendor/symfony/polyfill-php80/composer.json deleted file mode 100644 index 46ccde2..0000000 --- a/vendor/symfony/polyfill-php80/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "symfony/polyfill-php80", - "type": "library", - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "keywords": ["polyfill", "shim", "compatibility", "portable"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=7.1" - }, - "autoload": { - "psr-4": { "Symfony\\Polyfill\\Php80\\": "" }, - "files": [ "bootstrap.php" ], - "classmap": [ "Resources/stubs" ] - }, - "minimum-stability": "dev", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - } -} diff --git a/vendor/symfony/process/CHANGELOG.md b/vendor/symfony/process/CHANGELOG.md deleted file mode 100644 index 31b9ee6..0000000 --- a/vendor/symfony/process/CHANGELOG.md +++ /dev/null @@ -1,116 +0,0 @@ -CHANGELOG -========= - -5.2.0 ------ - - * added `Process::setOptions()` to set `Process` specific options - * added option `create_new_console` to allow a subprocess to continue - to run after the main script exited, both on Linux and on Windows - -5.1.0 ------ - - * added `Process::getStartTime()` to retrieve the start time of the process as float - -5.0.0 ------ - - * removed `Process::inheritEnvironmentVariables()` - * removed `PhpProcess::setPhpBinary()` - * `Process` must be instantiated with a command array, use `Process::fromShellCommandline()` when the command should be parsed by the shell - * removed `Process::setCommandLine()` - -4.4.0 ------ - - * deprecated `Process::inheritEnvironmentVariables()`: env variables are always inherited. - * added `Process::getLastOutputTime()` method - -4.2.0 ------ - - * added the `Process::fromShellCommandline()` to run commands in a shell wrapper - * deprecated passing a command as string when creating a `Process` instance - * deprecated the `Process::setCommandline()` and the `PhpProcess::setPhpBinary()` methods - * added the `Process::waitUntil()` method to wait for the process only for a - specific output, then continue the normal execution of your application - -4.1.0 ------ - - * added the `Process::isTtySupported()` method that allows to check for TTY support - * made `PhpExecutableFinder` look for the `PHP_BINARY` env var when searching the php binary - * added the `ProcessSignaledException` class to properly catch signaled process errors - -4.0.0 ------ - - * environment variables will always be inherited - * added a second `array $env = []` argument to the `start()`, `run()`, - `mustRun()`, and `restart()` methods of the `Process` class - * added a second `array $env = []` argument to the `start()` method of the - `PhpProcess` class - * the `ProcessUtils::escapeArgument()` method has been removed - * the `areEnvironmentVariablesInherited()`, `getOptions()`, and `setOptions()` - methods of the `Process` class have been removed - * support for passing `proc_open()` options has been removed - * removed the `ProcessBuilder` class, use the `Process` class instead - * removed the `getEnhanceWindowsCompatibility()` and `setEnhanceWindowsCompatibility()` methods of the `Process` class - * passing a not existing working directory to the constructor of the `Symfony\Component\Process\Process` class is not - supported anymore - -3.4.0 ------ - - * deprecated the ProcessBuilder class - * deprecated calling `Process::start()` without setting a valid working directory beforehand (via `setWorkingDirectory()` or constructor) - -3.3.0 ------ - - * added command line arrays in the `Process` class - * added `$env` argument to `Process::start()`, `run()`, `mustRun()` and `restart()` methods - * deprecated the `ProcessUtils::escapeArgument()` method - * deprecated not inheriting environment variables - * deprecated configuring `proc_open()` options - * deprecated configuring enhanced Windows compatibility - * deprecated configuring enhanced sigchild compatibility - -2.5.0 ------ - - * added support for PTY mode - * added the convenience method "mustRun" - * deprecation: Process::setStdin() is deprecated in favor of Process::setInput() - * deprecation: Process::getStdin() is deprecated in favor of Process::getInput() - * deprecation: Process::setInput() and ProcessBuilder::setInput() do not accept non-scalar types - -2.4.0 ------ - - * added the ability to define an idle timeout - -2.3.0 ------ - - * added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows - * added Process::signal() - * added Process::getPid() - * added support for a TTY mode - -2.2.0 ------ - - * added ProcessBuilder::setArguments() to reset the arguments on a builder - * added a way to retrieve the standard and error output incrementally - * added Process:restart() - -2.1.0 ------ - - * added support for non-blocking processes (start(), wait(), isRunning(), stop()) - * enhanced Windows compatibility - * added Process::getExitCodeText() that returns a string representation for - the exit code returned by the process - * added ProcessBuilder diff --git a/vendor/symfony/process/Exception/ExceptionInterface.php b/vendor/symfony/process/Exception/ExceptionInterface.php deleted file mode 100644 index bd4a604..0000000 --- a/vendor/symfony/process/Exception/ExceptionInterface.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Exception; - -/** - * Marker Interface for the Process Component. - * - * @author Johannes M. Schmitt - */ -interface ExceptionInterface extends \Throwable -{ -} diff --git a/vendor/symfony/process/Exception/InvalidArgumentException.php b/vendor/symfony/process/Exception/InvalidArgumentException.php deleted file mode 100644 index 926ee21..0000000 --- a/vendor/symfony/process/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Exception; - -/** - * InvalidArgumentException for the Process Component. - * - * @author Romain Neutron - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/process/Exception/LogicException.php b/vendor/symfony/process/Exception/LogicException.php deleted file mode 100644 index be3d490..0000000 --- a/vendor/symfony/process/Exception/LogicException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Exception; - -/** - * LogicException for the Process Component. - * - * @author Romain Neutron - */ -class LogicException extends \LogicException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/process/Exception/ProcessFailedException.php b/vendor/symfony/process/Exception/ProcessFailedException.php deleted file mode 100644 index 328acfd..0000000 --- a/vendor/symfony/process/Exception/ProcessFailedException.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Exception; - -use Symfony\Component\Process\Process; - -/** - * Exception for failed processes. - * - * @author Johannes M. Schmitt - */ -class ProcessFailedException extends RuntimeException -{ - private $process; - - public function __construct(Process $process) - { - if ($process->isSuccessful()) { - throw new InvalidArgumentException('Expected a failed process, but the given process was successful.'); - } - - $error = sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s", - $process->getCommandLine(), - $process->getExitCode(), - $process->getExitCodeText(), - $process->getWorkingDirectory() - ); - - if (!$process->isOutputDisabled()) { - $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", - $process->getOutput(), - $process->getErrorOutput() - ); - } - - parent::__construct($error); - - $this->process = $process; - } - - public function getProcess() - { - return $this->process; - } -} diff --git a/vendor/symfony/process/Exception/ProcessSignaledException.php b/vendor/symfony/process/Exception/ProcessSignaledException.php deleted file mode 100644 index d4d3227..0000000 --- a/vendor/symfony/process/Exception/ProcessSignaledException.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Exception; - -use Symfony\Component\Process\Process; - -/** - * Exception that is thrown when a process has been signaled. - * - * @author Sullivan Senechal - */ -final class ProcessSignaledException extends RuntimeException -{ - private $process; - - public function __construct(Process $process) - { - $this->process = $process; - - parent::__construct(sprintf('The process has been signaled with signal "%s".', $process->getTermSignal())); - } - - public function getProcess(): Process - { - return $this->process; - } - - public function getSignal(): int - { - return $this->getProcess()->getTermSignal(); - } -} diff --git a/vendor/symfony/process/Exception/ProcessTimedOutException.php b/vendor/symfony/process/Exception/ProcessTimedOutException.php deleted file mode 100644 index 94391a4..0000000 --- a/vendor/symfony/process/Exception/ProcessTimedOutException.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Exception; - -use Symfony\Component\Process\Process; - -/** - * Exception that is thrown when a process times out. - * - * @author Johannes M. Schmitt - */ -class ProcessTimedOutException extends RuntimeException -{ - public const TYPE_GENERAL = 1; - public const TYPE_IDLE = 2; - - private $process; - private $timeoutType; - - public function __construct(Process $process, int $timeoutType) - { - $this->process = $process; - $this->timeoutType = $timeoutType; - - parent::__construct(sprintf( - 'The process "%s" exceeded the timeout of %s seconds.', - $process->getCommandLine(), - $this->getExceededTimeout() - )); - } - - public function getProcess() - { - return $this->process; - } - - public function isGeneralTimeout() - { - return self::TYPE_GENERAL === $this->timeoutType; - } - - public function isIdleTimeout() - { - return self::TYPE_IDLE === $this->timeoutType; - } - - public function getExceededTimeout() - { - switch ($this->timeoutType) { - case self::TYPE_GENERAL: - return $this->process->getTimeout(); - - case self::TYPE_IDLE: - return $this->process->getIdleTimeout(); - - default: - throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType)); - } - } -} diff --git a/vendor/symfony/process/Exception/RuntimeException.php b/vendor/symfony/process/Exception/RuntimeException.php deleted file mode 100644 index adead25..0000000 --- a/vendor/symfony/process/Exception/RuntimeException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Exception; - -/** - * RuntimeException for the Process Component. - * - * @author Johannes M. Schmitt - */ -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/vendor/symfony/process/ExecutableFinder.php b/vendor/symfony/process/ExecutableFinder.php deleted file mode 100644 index f392c96..0000000 --- a/vendor/symfony/process/ExecutableFinder.php +++ /dev/null @@ -1,86 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process; - -/** - * Generic executable finder. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class ExecutableFinder -{ - private $suffixes = ['.exe', '.bat', '.cmd', '.com']; - - /** - * Replaces default suffixes of executable. - */ - public function setSuffixes(array $suffixes) - { - $this->suffixes = $suffixes; - } - - /** - * Adds new possible suffix to check for executable. - */ - public function addSuffix(string $suffix) - { - $this->suffixes[] = $suffix; - } - - /** - * Finds an executable by name. - * - * @param string $name The executable name (without the extension) - * @param string|null $default The default to return if no executable is found - * @param array $extraDirs Additional dirs to check into - * - * @return string|null - */ - public function find(string $name, ?string $default = null, array $extraDirs = []) - { - if (\ini_get('open_basedir')) { - $searchPath = array_merge(explode(\PATH_SEPARATOR, \ini_get('open_basedir')), $extraDirs); - $dirs = []; - foreach ($searchPath as $path) { - // Silencing against https://bugs.php.net/69240 - if (@is_dir($path)) { - $dirs[] = $path; - } else { - if (basename($path) == $name && @is_executable($path)) { - return $path; - } - } - } - } else { - $dirs = array_merge( - explode(\PATH_SEPARATOR, getenv('PATH') ?: getenv('Path')), - $extraDirs - ); - } - - $suffixes = ['']; - if ('\\' === \DIRECTORY_SEPARATOR) { - $pathExt = getenv('PATHEXT'); - $suffixes = array_merge($pathExt ? explode(\PATH_SEPARATOR, $pathExt) : $this->suffixes, $suffixes); - } - foreach ($suffixes as $suffix) { - foreach ($dirs as $dir) { - if (@is_file($file = $dir.\DIRECTORY_SEPARATOR.$name.$suffix) && ('\\' === \DIRECTORY_SEPARATOR || @is_executable($file))) { - return $file; - } - } - } - - return $default; - } -} diff --git a/vendor/symfony/process/InputStream.php b/vendor/symfony/process/InputStream.php deleted file mode 100644 index 0c45b52..0000000 --- a/vendor/symfony/process/InputStream.php +++ /dev/null @@ -1,96 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process; - -use Symfony\Component\Process\Exception\RuntimeException; - -/** - * Provides a way to continuously write to the input of a Process until the InputStream is closed. - * - * @author Nicolas Grekas - * - * @implements \IteratorAggregate - */ -class InputStream implements \IteratorAggregate -{ - /** @var callable|null */ - private $onEmpty = null; - private $input = []; - private $open = true; - - /** - * Sets a callback that is called when the write buffer becomes empty. - */ - public function onEmpty(?callable $onEmpty = null) - { - $this->onEmpty = $onEmpty; - } - - /** - * Appends an input to the write buffer. - * - * @param resource|string|int|float|bool|\Traversable|null $input The input to append as scalar, - * stream resource or \Traversable - */ - public function write($input) - { - if (null === $input) { - return; - } - if ($this->isClosed()) { - throw new RuntimeException(sprintf('"%s" is closed.', static::class)); - } - $this->input[] = ProcessUtils::validateInput(__METHOD__, $input); - } - - /** - * Closes the write buffer. - */ - public function close() - { - $this->open = false; - } - - /** - * Tells whether the write buffer is closed or not. - */ - public function isClosed() - { - return !$this->open; - } - - /** - * @return \Traversable - */ - #[\ReturnTypeWillChange] - public function getIterator() - { - $this->open = true; - - while ($this->open || $this->input) { - if (!$this->input) { - yield ''; - continue; - } - $current = array_shift($this->input); - - if ($current instanceof \Iterator) { - yield from $current; - } else { - yield $current; - } - if (!$this->input && $this->open && null !== $onEmpty = $this->onEmpty) { - $this->write($onEmpty($this)); - } - } - } -} diff --git a/vendor/symfony/process/LICENSE b/vendor/symfony/process/LICENSE deleted file mode 100644 index 0138f8f..0000000 --- a/vendor/symfony/process/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/symfony/process/PhpExecutableFinder.php b/vendor/symfony/process/PhpExecutableFinder.php deleted file mode 100644 index 45dbcca..0000000 --- a/vendor/symfony/process/PhpExecutableFinder.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process; - -/** - * An executable finder specifically designed for the PHP executable. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class PhpExecutableFinder -{ - private $executableFinder; - - public function __construct() - { - $this->executableFinder = new ExecutableFinder(); - } - - /** - * Finds The PHP executable. - * - * @return string|false - */ - public function find(bool $includeArgs = true) - { - if ($php = getenv('PHP_BINARY')) { - if (!is_executable($php)) { - $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v --'; - if ($php = strtok(exec($command.' '.escapeshellarg($php)), \PHP_EOL)) { - if (!is_executable($php)) { - return false; - } - } else { - return false; - } - } - - if (@is_dir($php)) { - return false; - } - - return $php; - } - - $args = $this->findArguments(); - $args = $includeArgs && $args ? ' '.implode(' ', $args) : ''; - - // PHP_BINARY return the current sapi executable - if (\PHP_BINARY && \in_array(\PHP_SAPI, ['cli', 'cli-server', 'phpdbg'], true)) { - return \PHP_BINARY.$args; - } - - if ($php = getenv('PHP_PATH')) { - if (!@is_executable($php) || @is_dir($php)) { - return false; - } - - return $php; - } - - if ($php = getenv('PHP_PEAR_PHP_BIN')) { - if (@is_executable($php) && !@is_dir($php)) { - return $php; - } - } - - if (@is_executable($php = \PHP_BINDIR.('\\' === \DIRECTORY_SEPARATOR ? '\\php.exe' : '/php')) && !@is_dir($php)) { - return $php; - } - - $dirs = [\PHP_BINDIR]; - if ('\\' === \DIRECTORY_SEPARATOR) { - $dirs[] = 'C:\xampp\php\\'; - } - - return $this->executableFinder->find('php', false, $dirs); - } - - /** - * Finds the PHP executable arguments. - * - * @return array - */ - public function findArguments() - { - $arguments = []; - if ('phpdbg' === \PHP_SAPI) { - $arguments[] = '-qrr'; - } - - return $arguments; - } -} diff --git a/vendor/symfony/process/PhpProcess.php b/vendor/symfony/process/PhpProcess.php deleted file mode 100644 index 3a1d147..0000000 --- a/vendor/symfony/process/PhpProcess.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process; - -use Symfony\Component\Process\Exception\LogicException; -use Symfony\Component\Process\Exception\RuntimeException; - -/** - * PhpProcess runs a PHP script in an independent process. - * - * $p = new PhpProcess(''); - * $p->run(); - * print $p->getOutput()."\n"; - * - * @author Fabien Potencier - */ -class PhpProcess extends Process -{ - /** - * @param string $script The PHP script to run (as a string) - * @param string|null $cwd The working directory or null to use the working dir of the current PHP process - * @param array|null $env The environment variables or null to use the same environment as the current PHP process - * @param int $timeout The timeout in seconds - * @param array|null $php Path to the PHP binary to use with any additional arguments - */ - public function __construct(string $script, ?string $cwd = null, ?array $env = null, int $timeout = 60, ?array $php = null) - { - if (null === $php) { - $executableFinder = new PhpExecutableFinder(); - $php = $executableFinder->find(false); - $php = false === $php ? null : array_merge([$php], $executableFinder->findArguments()); - } - if ('phpdbg' === \PHP_SAPI) { - $file = tempnam(sys_get_temp_dir(), 'dbg'); - file_put_contents($file, $script); - register_shutdown_function('unlink', $file); - $php[] = $file; - $script = null; - } - - parent::__construct($php, $cwd, $env, $script, $timeout); - } - - /** - * {@inheritdoc} - */ - public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) - { - throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); - } - - /** - * {@inheritdoc} - */ - public function start(?callable $callback = null, array $env = []) - { - if (null === $this->getCommandLine()) { - throw new RuntimeException('Unable to find the PHP executable.'); - } - - parent::start($callback, $env); - } -} diff --git a/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/symfony/process/Pipes/AbstractPipes.php deleted file mode 100644 index 656dc03..0000000 --- a/vendor/symfony/process/Pipes/AbstractPipes.php +++ /dev/null @@ -1,180 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Pipes; - -use Symfony\Component\Process\Exception\InvalidArgumentException; - -/** - * @author Romain Neutron - * - * @internal - */ -abstract class AbstractPipes implements PipesInterface -{ - public $pipes = []; - - private $inputBuffer = ''; - private $input; - private $blocked = true; - private $lastError; - - /** - * @param resource|string|int|float|bool|\Iterator|null $input - */ - public function __construct($input) - { - if (\is_resource($input) || $input instanceof \Iterator) { - $this->input = $input; - } elseif (\is_string($input)) { - $this->inputBuffer = $input; - } else { - $this->inputBuffer = (string) $input; - } - } - - /** - * {@inheritdoc} - */ - public function close() - { - foreach ($this->pipes as $pipe) { - if (\is_resource($pipe)) { - fclose($pipe); - } - } - $this->pipes = []; - } - - /** - * Returns true if a system call has been interrupted. - */ - protected function hasSystemCallBeenInterrupted(): bool - { - $lastError = $this->lastError; - $this->lastError = null; - - // stream_select returns false when the `select` system call is interrupted by an incoming signal - return null !== $lastError && false !== stripos($lastError, 'interrupted system call'); - } - - /** - * Unblocks streams. - */ - protected function unblock() - { - if (!$this->blocked) { - return; - } - - foreach ($this->pipes as $pipe) { - stream_set_blocking($pipe, 0); - } - if (\is_resource($this->input)) { - stream_set_blocking($this->input, 0); - } - - $this->blocked = false; - } - - /** - * Writes input to stdin. - * - * @throws InvalidArgumentException When an input iterator yields a non supported value - */ - protected function write(): ?array - { - if (!isset($this->pipes[0])) { - return null; - } - $input = $this->input; - - if ($input instanceof \Iterator) { - if (!$input->valid()) { - $input = null; - } elseif (\is_resource($input = $input->current())) { - stream_set_blocking($input, 0); - } elseif (!isset($this->inputBuffer[0])) { - if (!\is_string($input)) { - if (!\is_scalar($input)) { - throw new InvalidArgumentException(sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input))); - } - $input = (string) $input; - } - $this->inputBuffer = $input; - $this->input->next(); - $input = null; - } else { - $input = null; - } - } - - $r = $e = []; - $w = [$this->pipes[0]]; - - // let's have a look if something changed in streams - if (false === @stream_select($r, $w, $e, 0, 0)) { - return null; - } - - foreach ($w as $stdin) { - if (isset($this->inputBuffer[0])) { - $written = fwrite($stdin, $this->inputBuffer); - $this->inputBuffer = substr($this->inputBuffer, $written); - if (isset($this->inputBuffer[0])) { - return [$this->pipes[0]]; - } - } - - if ($input) { - while (true) { - $data = fread($input, self::CHUNK_SIZE); - if (!isset($data[0])) { - break; - } - $written = fwrite($stdin, $data); - $data = substr($data, $written); - if (isset($data[0])) { - $this->inputBuffer = $data; - - return [$this->pipes[0]]; - } - } - if (feof($input)) { - if ($this->input instanceof \Iterator) { - $this->input->next(); - } else { - $this->input = null; - } - } - } - } - - // no input to read on resource, buffer is empty - if (!isset($this->inputBuffer[0]) && !($this->input instanceof \Iterator ? $this->input->valid() : $this->input)) { - $this->input = null; - fclose($this->pipes[0]); - unset($this->pipes[0]); - } elseif (!$w) { - return [$this->pipes[0]]; - } - - return null; - } - - /** - * @internal - */ - public function handleError(int $type, string $msg) - { - $this->lastError = $msg; - } -} diff --git a/vendor/symfony/process/Pipes/PipesInterface.php b/vendor/symfony/process/Pipes/PipesInterface.php deleted file mode 100644 index 50eb5c4..0000000 --- a/vendor/symfony/process/Pipes/PipesInterface.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Pipes; - -/** - * PipesInterface manages descriptors and pipes for the use of proc_open. - * - * @author Romain Neutron - * - * @internal - */ -interface PipesInterface -{ - public const CHUNK_SIZE = 16384; - - /** - * Returns an array of descriptors for the use of proc_open. - */ - public function getDescriptors(): array; - - /** - * Returns an array of filenames indexed by their related stream in case these pipes use temporary files. - * - * @return string[] - */ - public function getFiles(): array; - - /** - * Reads data in file handles and pipes. - * - * @param bool $blocking Whether to use blocking calls or not - * @param bool $close Whether to close pipes if they've reached EOF - * - * @return string[] An array of read data indexed by their fd - */ - public function readAndWrite(bool $blocking, bool $close = false): array; - - /** - * Returns if the current state has open file handles or pipes. - */ - public function areOpen(): bool; - - /** - * Returns if pipes are able to read output. - */ - public function haveReadSupport(): bool; - - /** - * Closes file handles and pipes. - */ - public function close(); -} diff --git a/vendor/symfony/process/Pipes/UnixPipes.php b/vendor/symfony/process/Pipes/UnixPipes.php deleted file mode 100644 index 5a0e9d4..0000000 --- a/vendor/symfony/process/Pipes/UnixPipes.php +++ /dev/null @@ -1,163 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Pipes; - -use Symfony\Component\Process\Process; - -/** - * UnixPipes implementation uses unix pipes as handles. - * - * @author Romain Neutron - * - * @internal - */ -class UnixPipes extends AbstractPipes -{ - private $ttyMode; - private $ptyMode; - private $haveReadSupport; - - public function __construct(?bool $ttyMode, bool $ptyMode, $input, bool $haveReadSupport) - { - $this->ttyMode = $ttyMode; - $this->ptyMode = $ptyMode; - $this->haveReadSupport = $haveReadSupport; - - parent::__construct($input); - } - - public function __sleep(): array - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - $this->close(); - } - - /** - * {@inheritdoc} - */ - public function getDescriptors(): array - { - if (!$this->haveReadSupport) { - $nullstream = fopen('/dev/null', 'c'); - - return [ - ['pipe', 'r'], - $nullstream, - $nullstream, - ]; - } - - if ($this->ttyMode) { - return [ - ['file', '/dev/tty', 'r'], - ['file', '/dev/tty', 'w'], - ['file', '/dev/tty', 'w'], - ]; - } - - if ($this->ptyMode && Process::isPtySupported()) { - return [ - ['pty'], - ['pty'], - ['pty'], - ]; - } - - return [ - ['pipe', 'r'], - ['pipe', 'w'], // stdout - ['pipe', 'w'], // stderr - ]; - } - - /** - * {@inheritdoc} - */ - public function getFiles(): array - { - return []; - } - - /** - * {@inheritdoc} - */ - public function readAndWrite(bool $blocking, bool $close = false): array - { - $this->unblock(); - $w = $this->write(); - - $read = $e = []; - $r = $this->pipes; - unset($r[0]); - - // let's have a look if something changed in streams - set_error_handler([$this, 'handleError']); - if (($r || $w) && false === stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) { - restore_error_handler(); - // if a system call has been interrupted, forget about it, let's try again - // otherwise, an error occurred, let's reset pipes - if (!$this->hasSystemCallBeenInterrupted()) { - $this->pipes = []; - } - - return $read; - } - restore_error_handler(); - - foreach ($r as $pipe) { - // prior PHP 5.4 the array passed to stream_select is modified and - // lose key association, we have to find back the key - $read[$type = array_search($pipe, $this->pipes, true)] = ''; - - do { - $data = @fread($pipe, self::CHUNK_SIZE); - $read[$type] .= $data; - } while (isset($data[0]) && ($close || isset($data[self::CHUNK_SIZE - 1]))); - - if (!isset($read[$type][0])) { - unset($read[$type]); - } - - if ($close && feof($pipe)) { - fclose($pipe); - unset($this->pipes[$type]); - } - } - - return $read; - } - - /** - * {@inheritdoc} - */ - public function haveReadSupport(): bool - { - return $this->haveReadSupport; - } - - /** - * {@inheritdoc} - */ - public function areOpen(): bool - { - return (bool) $this->pipes; - } -} diff --git a/vendor/symfony/process/Pipes/WindowsPipes.php b/vendor/symfony/process/Pipes/WindowsPipes.php deleted file mode 100644 index 968dd02..0000000 --- a/vendor/symfony/process/Pipes/WindowsPipes.php +++ /dev/null @@ -1,204 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process\Pipes; - -use Symfony\Component\Process\Exception\RuntimeException; -use Symfony\Component\Process\Process; - -/** - * WindowsPipes implementation uses temporary files as handles. - * - * @see https://bugs.php.net/51800 - * @see https://bugs.php.net/65650 - * - * @author Romain Neutron - * - * @internal - */ -class WindowsPipes extends AbstractPipes -{ - private $files = []; - private $fileHandles = []; - private $lockHandles = []; - private $readBytes = [ - Process::STDOUT => 0, - Process::STDERR => 0, - ]; - private $haveReadSupport; - - public function __construct($input, bool $haveReadSupport) - { - $this->haveReadSupport = $haveReadSupport; - - if ($this->haveReadSupport) { - // Fix for PHP bug #51800: reading from STDOUT pipe hangs forever on Windows if the output is too big. - // Workaround for this problem is to use temporary files instead of pipes on Windows platform. - // - // @see https://bugs.php.net/51800 - $pipes = [ - Process::STDOUT => Process::OUT, - Process::STDERR => Process::ERR, - ]; - $tmpDir = sys_get_temp_dir(); - $lastError = 'unknown reason'; - set_error_handler(function ($type, $msg) use (&$lastError) { $lastError = $msg; }); - for ($i = 0;; ++$i) { - foreach ($pipes as $pipe => $name) { - $file = sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name); - - if (!$h = fopen($file.'.lock', 'w')) { - if (file_exists($file.'.lock')) { - continue 2; - } - restore_error_handler(); - throw new RuntimeException('A temporary file could not be opened to write the process output: '.$lastError); - } - if (!flock($h, \LOCK_EX | \LOCK_NB)) { - continue 2; - } - if (isset($this->lockHandles[$pipe])) { - flock($this->lockHandles[$pipe], \LOCK_UN); - fclose($this->lockHandles[$pipe]); - } - $this->lockHandles[$pipe] = $h; - - if (!($h = fopen($file, 'w')) || !fclose($h) || !$h = fopen($file, 'r')) { - flock($this->lockHandles[$pipe], \LOCK_UN); - fclose($this->lockHandles[$pipe]); - unset($this->lockHandles[$pipe]); - continue 2; - } - $this->fileHandles[$pipe] = $h; - $this->files[$pipe] = $file; - } - break; - } - restore_error_handler(); - } - - parent::__construct($input); - } - - public function __sleep(): array - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - $this->close(); - } - - /** - * {@inheritdoc} - */ - public function getDescriptors(): array - { - if (!$this->haveReadSupport) { - $nullstream = fopen('NUL', 'c'); - - return [ - ['pipe', 'r'], - $nullstream, - $nullstream, - ]; - } - - // We're not using pipe on Windows platform as it hangs (https://bugs.php.net/51800) - // We're not using file handles as it can produce corrupted output https://bugs.php.net/65650 - // So we redirect output within the commandline and pass the nul device to the process - return [ - ['pipe', 'r'], - ['file', 'NUL', 'w'], - ['file', 'NUL', 'w'], - ]; - } - - /** - * {@inheritdoc} - */ - public function getFiles(): array - { - return $this->files; - } - - /** - * {@inheritdoc} - */ - public function readAndWrite(bool $blocking, bool $close = false): array - { - $this->unblock(); - $w = $this->write(); - $read = $r = $e = []; - - if ($blocking) { - if ($w) { - @stream_select($r, $w, $e, 0, Process::TIMEOUT_PRECISION * 1E6); - } elseif ($this->fileHandles) { - usleep((int) (Process::TIMEOUT_PRECISION * 1E6)); - } - } - foreach ($this->fileHandles as $type => $fileHandle) { - $data = stream_get_contents($fileHandle, -1, $this->readBytes[$type]); - - if (isset($data[0])) { - $this->readBytes[$type] += \strlen($data); - $read[$type] = $data; - } - if ($close) { - ftruncate($fileHandle, 0); - fclose($fileHandle); - flock($this->lockHandles[$type], \LOCK_UN); - fclose($this->lockHandles[$type]); - unset($this->fileHandles[$type], $this->lockHandles[$type]); - } - } - - return $read; - } - - /** - * {@inheritdoc} - */ - public function haveReadSupport(): bool - { - return $this->haveReadSupport; - } - - /** - * {@inheritdoc} - */ - public function areOpen(): bool - { - return $this->pipes && $this->fileHandles; - } - - /** - * {@inheritdoc} - */ - public function close() - { - parent::close(); - foreach ($this->fileHandles as $type => $handle) { - ftruncate($handle, 0); - fclose($handle); - flock($this->lockHandles[$type], \LOCK_UN); - fclose($this->lockHandles[$type]); - } - $this->fileHandles = $this->lockHandles = []; - } -} diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php deleted file mode 100644 index 2b6ed9e..0000000 --- a/vendor/symfony/process/Process.php +++ /dev/null @@ -1,1652 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process; - -use Symfony\Component\Process\Exception\InvalidArgumentException; -use Symfony\Component\Process\Exception\LogicException; -use Symfony\Component\Process\Exception\ProcessFailedException; -use Symfony\Component\Process\Exception\ProcessSignaledException; -use Symfony\Component\Process\Exception\ProcessTimedOutException; -use Symfony\Component\Process\Exception\RuntimeException; -use Symfony\Component\Process\Pipes\PipesInterface; -use Symfony\Component\Process\Pipes\UnixPipes; -use Symfony\Component\Process\Pipes\WindowsPipes; - -/** - * Process is a thin wrapper around proc_* functions to easily - * start independent PHP processes. - * - * @author Fabien Potencier - * @author Romain Neutron - * - * @implements \IteratorAggregate - */ -class Process implements \IteratorAggregate -{ - public const ERR = 'err'; - public const OUT = 'out'; - - public const STATUS_READY = 'ready'; - public const STATUS_STARTED = 'started'; - public const STATUS_TERMINATED = 'terminated'; - - public const STDIN = 0; - public const STDOUT = 1; - public const STDERR = 2; - - // Timeout Precision in seconds. - public const TIMEOUT_PRECISION = 0.2; - - public const ITER_NON_BLOCKING = 1; // By default, iterating over outputs is a blocking call, use this flag to make it non-blocking - public const ITER_KEEP_OUTPUT = 2; // By default, outputs are cleared while iterating, use this flag to keep them in memory - public const ITER_SKIP_OUT = 4; // Use this flag to skip STDOUT while iterating - public const ITER_SKIP_ERR = 8; // Use this flag to skip STDERR while iterating - - private $callback; - private $hasCallback = false; - private $commandline; - private $cwd; - private $env = []; - private $input; - private $starttime; - private $lastOutputTime; - private $timeout; - private $idleTimeout; - private $exitcode; - private $fallbackStatus = []; - private $processInformation; - private $outputDisabled = false; - private $stdout; - private $stderr; - private $process; - private $status = self::STATUS_READY; - private $incrementalOutputOffset = 0; - private $incrementalErrorOutputOffset = 0; - private $tty = false; - private $pty; - private $options = ['suppress_errors' => true, 'bypass_shell' => true]; - - private $useFileHandles = false; - /** @var PipesInterface */ - private $processPipes; - - private $latestSignal; - - private static $sigchild; - - /** - * Exit codes translation table. - * - * User-defined errors must use exit codes in the 64-113 range. - */ - public static $exitCodes = [ - 0 => 'OK', - 1 => 'General error', - 2 => 'Misuse of shell builtins', - - 126 => 'Invoked command cannot execute', - 127 => 'Command not found', - 128 => 'Invalid exit argument', - - // signals - 129 => 'Hangup', - 130 => 'Interrupt', - 131 => 'Quit and dump core', - 132 => 'Illegal instruction', - 133 => 'Trace/breakpoint trap', - 134 => 'Process aborted', - 135 => 'Bus error: "access to undefined portion of memory object"', - 136 => 'Floating point exception: "erroneous arithmetic operation"', - 137 => 'Kill (terminate immediately)', - 138 => 'User-defined 1', - 139 => 'Segmentation violation', - 140 => 'User-defined 2', - 141 => 'Write to pipe with no one reading', - 142 => 'Signal raised by alarm', - 143 => 'Termination (request to terminate)', - // 144 - not defined - 145 => 'Child process terminated, stopped (or continued*)', - 146 => 'Continue if stopped', - 147 => 'Stop executing temporarily', - 148 => 'Terminal stop signal', - 149 => 'Background process attempting to read from tty ("in")', - 150 => 'Background process attempting to write to tty ("out")', - 151 => 'Urgent data available on socket', - 152 => 'CPU time limit exceeded', - 153 => 'File size limit exceeded', - 154 => 'Signal raised by timer counting virtual time: "virtual timer expired"', - 155 => 'Profiling timer expired', - // 156 - not defined - 157 => 'Pollable event', - // 158 - not defined - 159 => 'Bad syscall', - ]; - - /** - * @param array $command The command to run and its arguments listed as separate entries - * @param string|null $cwd The working directory or null to use the working dir of the current PHP process - * @param array|null $env The environment variables or null to use the same environment as the current PHP process - * @param mixed $input The input as stream resource, scalar or \Traversable, or null for no input - * @param int|float|null $timeout The timeout in seconds or null to disable - * - * @throws LogicException When proc_open is not installed - */ - public function __construct(array $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) - { - if (!\function_exists('proc_open')) { - throw new LogicException('The Process class relies on proc_open, which is not available on your PHP installation.'); - } - - $this->commandline = $command; - $this->cwd = $cwd; - - // on Windows, if the cwd changed via chdir(), proc_open defaults to the dir where PHP was started - // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected - // @see : https://bugs.php.net/51800 - // @see : https://bugs.php.net/50524 - if (null === $this->cwd && (\defined('ZEND_THREAD_SAFE') || '\\' === \DIRECTORY_SEPARATOR)) { - $this->cwd = getcwd(); - } - if (null !== $env) { - $this->setEnv($env); - } - - $this->setInput($input); - $this->setTimeout($timeout); - $this->useFileHandles = '\\' === \DIRECTORY_SEPARATOR; - $this->pty = false; - } - - /** - * Creates a Process instance as a command-line to be run in a shell wrapper. - * - * Command-lines are parsed by the shell of your OS (/bin/sh on Unix-like, cmd.exe on Windows.) - * This allows using e.g. pipes or conditional execution. In this mode, signals are sent to the - * shell wrapper and not to your commands. - * - * In order to inject dynamic values into command-lines, we strongly recommend using placeholders. - * This will save escaping values, which is not portable nor secure anyway: - * - * $process = Process::fromShellCommandline('my_command "${:MY_VAR}"'); - * $process->run(null, ['MY_VAR' => $theValue]); - * - * @param string $command The command line to pass to the shell of the OS - * @param string|null $cwd The working directory or null to use the working dir of the current PHP process - * @param array|null $env The environment variables or null to use the same environment as the current PHP process - * @param mixed $input The input as stream resource, scalar or \Traversable, or null for no input - * @param int|float|null $timeout The timeout in seconds or null to disable - * - * @return static - * - * @throws LogicException When proc_open is not installed - */ - public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) - { - $process = new static([], $cwd, $env, $input, $timeout); - $process->commandline = $command; - - return $process; - } - - /** - * @return array - */ - public function __sleep() - { - throw new \BadMethodCallException('Cannot serialize '.__CLASS__); - } - - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); - } - - public function __destruct() - { - if ($this->options['create_new_console'] ?? false) { - $this->processPipes->close(); - } else { - $this->stop(0); - } - } - - public function __clone() - { - $this->resetProcessData(); - } - - /** - * Runs the process. - * - * The callback receives the type of output (out or err) and - * some bytes from the output in real-time. It allows to have feedback - * from the independent process during execution. - * - * The STDOUT and STDERR are also available after the process is finished - * via the getOutput() and getErrorOutput() methods. - * - * @param callable|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * - * @return int The exit status code - * - * @throws RuntimeException When process can't be launched - * @throws RuntimeException When process is already running - * @throws ProcessTimedOutException When process timed out - * @throws ProcessSignaledException When process stopped after receiving signal - * @throws LogicException In case a callback is provided and output has been disabled - * - * @final - */ - public function run(?callable $callback = null, array $env = []): int - { - $this->start($callback, $env); - - return $this->wait(); - } - - /** - * Runs the process. - * - * This is identical to run() except that an exception is thrown if the process - * exits with a non-zero exit code. - * - * @return $this - * - * @throws ProcessFailedException if the process didn't terminate successfully - * - * @final - */ - public function mustRun(?callable $callback = null, array $env = []): self - { - if (0 !== $this->run($callback, $env)) { - throw new ProcessFailedException($this); - } - - return $this; - } - - /** - * Starts the process and returns after writing the input to STDIN. - * - * This method blocks until all STDIN data is sent to the process then it - * returns while the process runs in the background. - * - * The termination of the process can be awaited with wait(). - * - * The callback receives the type of output (out or err) and some bytes from - * the output in real-time while writing the standard input to the process. - * It allows to have feedback from the independent process during execution. - * - * @param callable|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * - * @throws RuntimeException When process can't be launched - * @throws RuntimeException When process is already running - * @throws LogicException In case a callback is provided and output has been disabled - */ - public function start(?callable $callback = null, array $env = []) - { - if ($this->isRunning()) { - throw new RuntimeException('Process is already running.'); - } - - $this->resetProcessData(); - $this->starttime = $this->lastOutputTime = microtime(true); - $this->callback = $this->buildCallback($callback); - $this->hasCallback = null !== $callback; - $descriptors = $this->getDescriptors(); - - if ($this->env) { - $env += '\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($this->env, $env, 'strcasecmp') : $this->env; - } - - $env += '\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($this->getDefaultEnv(), $env, 'strcasecmp') : $this->getDefaultEnv(); - - if (\is_array($commandline = $this->commandline)) { - $commandline = implode(' ', array_map([$this, 'escapeArgument'], $commandline)); - - if ('\\' !== \DIRECTORY_SEPARATOR) { - // exec is mandatory to deal with sending a signal to the process - $commandline = 'exec '.$commandline; - } - } else { - $commandline = $this->replacePlaceholders($commandline, $env); - } - - if ('\\' === \DIRECTORY_SEPARATOR) { - $commandline = $this->prepareWindowsCommandLine($commandline, $env); - } elseif (!$this->useFileHandles && $this->isSigchildEnabled()) { - // last exit code is output on the fourth pipe and caught to work around --enable-sigchild - $descriptors[3] = ['pipe', 'w']; - - // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input - $commandline = '{ ('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;'; - $commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'; - - // Workaround for the bug, when PTS functionality is enabled. - // @see : https://bugs.php.net/69442 - $ptsWorkaround = fopen(__FILE__, 'r'); - } - - $envPairs = []; - foreach ($env as $k => $v) { - if (false !== $v && false === \in_array($k, ['argc', 'argv', 'ARGC', 'ARGV'], true)) { - $envPairs[] = $k.'='.$v; - } - } - - if (!is_dir($this->cwd)) { - throw new RuntimeException(sprintf('The provided cwd "%s" does not exist.', $this->cwd)); - } - - $this->process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); - - if (!\is_resource($this->process)) { - throw new RuntimeException('Unable to launch a new process.'); - } - $this->status = self::STATUS_STARTED; - - if (isset($descriptors[3])) { - $this->fallbackStatus['pid'] = (int) fgets($this->processPipes->pipes[3]); - } - - if ($this->tty) { - return; - } - - $this->updateStatus(false); - $this->checkTimeout(); - } - - /** - * Restarts the process. - * - * Be warned that the process is cloned before being started. - * - * @param callable|null $callback A PHP callback to run whenever there is some - * output available on STDOUT or STDERR - * - * @return static - * - * @throws RuntimeException When process can't be launched - * @throws RuntimeException When process is already running - * - * @see start() - * - * @final - */ - public function restart(?callable $callback = null, array $env = []): self - { - if ($this->isRunning()) { - throw new RuntimeException('Process is already running.'); - } - - $process = clone $this; - $process->start($callback, $env); - - return $process; - } - - /** - * Waits for the process to terminate. - * - * The callback receives the type of output (out or err) and some bytes - * from the output in real-time while writing the standard input to the process. - * It allows to have feedback from the independent process during execution. - * - * @param callable|null $callback A valid PHP callback - * - * @return int The exitcode of the process - * - * @throws ProcessTimedOutException When process timed out - * @throws ProcessSignaledException When process stopped after receiving signal - * @throws LogicException When process is not yet started - */ - public function wait(?callable $callback = null) - { - $this->requireProcessIsStarted(__FUNCTION__); - - $this->updateStatus(false); - - if (null !== $callback) { - if (!$this->processPipes->haveReadSupport()) { - $this->stop(0); - throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::wait".'); - } - $this->callback = $this->buildCallback($callback); - } - - do { - $this->checkTimeout(); - $running = $this->isRunning() && ('\\' === \DIRECTORY_SEPARATOR || $this->processPipes->areOpen()); - $this->readPipes($running, '\\' !== \DIRECTORY_SEPARATOR || !$running); - } while ($running); - - while ($this->isRunning()) { - $this->checkTimeout(); - usleep(1000); - } - - if ($this->processInformation['signaled'] && $this->processInformation['termsig'] !== $this->latestSignal) { - throw new ProcessSignaledException($this); - } - - return $this->exitcode; - } - - /** - * Waits until the callback returns true. - * - * The callback receives the type of output (out or err) and some bytes - * from the output in real-time while writing the standard input to the process. - * It allows to have feedback from the independent process during execution. - * - * @throws RuntimeException When process timed out - * @throws LogicException When process is not yet started - * @throws ProcessTimedOutException In case the timeout was reached - */ - public function waitUntil(callable $callback): bool - { - $this->requireProcessIsStarted(__FUNCTION__); - $this->updateStatus(false); - - if (!$this->processPipes->haveReadSupport()) { - $this->stop(0); - throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::waitUntil".'); - } - $callback = $this->buildCallback($callback); - - $ready = false; - while (true) { - $this->checkTimeout(); - $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen(); - $output = $this->processPipes->readAndWrite($running, '\\' !== \DIRECTORY_SEPARATOR || !$running); - - foreach ($output as $type => $data) { - if (3 !== $type) { - $ready = $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data) || $ready; - } elseif (!isset($this->fallbackStatus['signaled'])) { - $this->fallbackStatus['exitcode'] = (int) $data; - } - } - if ($ready) { - return true; - } - if (!$running) { - return false; - } - - usleep(1000); - } - } - - /** - * Returns the Pid (process identifier), if applicable. - * - * @return int|null The process id if running, null otherwise - */ - public function getPid() - { - return $this->isRunning() ? $this->processInformation['pid'] : null; - } - - /** - * Sends a POSIX signal to the process. - * - * @param int $signal A valid POSIX signal (see https://php.net/pcntl.constants) - * - * @return $this - * - * @throws LogicException In case the process is not running - * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed - * @throws RuntimeException In case of failure - */ - public function signal(int $signal) - { - $this->doSignal($signal, true); - - return $this; - } - - /** - * Disables fetching output and error output from the underlying process. - * - * @return $this - * - * @throws RuntimeException In case the process is already running - * @throws LogicException if an idle timeout is set - */ - public function disableOutput() - { - if ($this->isRunning()) { - throw new RuntimeException('Disabling output while the process is running is not possible.'); - } - if (null !== $this->idleTimeout) { - throw new LogicException('Output cannot be disabled while an idle timeout is set.'); - } - - $this->outputDisabled = true; - - return $this; - } - - /** - * Enables fetching output and error output from the underlying process. - * - * @return $this - * - * @throws RuntimeException In case the process is already running - */ - public function enableOutput() - { - if ($this->isRunning()) { - throw new RuntimeException('Enabling output while the process is running is not possible.'); - } - - $this->outputDisabled = false; - - return $this; - } - - /** - * Returns true in case the output is disabled, false otherwise. - * - * @return bool - */ - public function isOutputDisabled() - { - return $this->outputDisabled; - } - - /** - * Returns the current output of the process (STDOUT). - * - * @return string - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getOutput() - { - $this->readPipesForOutput(__FUNCTION__); - - if (false === $ret = stream_get_contents($this->stdout, -1, 0)) { - return ''; - } - - return $ret; - } - - /** - * Returns the output incrementally. - * - * In comparison with the getOutput method which always return the whole - * output, this one returns the new output since the last call. - * - * @return string - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getIncrementalOutput() - { - $this->readPipesForOutput(__FUNCTION__); - - $latest = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset); - $this->incrementalOutputOffset = ftell($this->stdout); - - if (false === $latest) { - return ''; - } - - return $latest; - } - - /** - * Returns an iterator to the output of the process, with the output type as keys (Process::OUT/ERR). - * - * @param int $flags A bit field of Process::ITER_* flags - * - * @return \Generator - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - #[\ReturnTypeWillChange] - public function getIterator(int $flags = 0) - { - $this->readPipesForOutput(__FUNCTION__, false); - - $clearOutput = !(self::ITER_KEEP_OUTPUT & $flags); - $blocking = !(self::ITER_NON_BLOCKING & $flags); - $yieldOut = !(self::ITER_SKIP_OUT & $flags); - $yieldErr = !(self::ITER_SKIP_ERR & $flags); - - while (null !== $this->callback || ($yieldOut && !feof($this->stdout)) || ($yieldErr && !feof($this->stderr))) { - if ($yieldOut) { - $out = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset); - - if (isset($out[0])) { - if ($clearOutput) { - $this->clearOutput(); - } else { - $this->incrementalOutputOffset = ftell($this->stdout); - } - - yield self::OUT => $out; - } - } - - if ($yieldErr) { - $err = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset); - - if (isset($err[0])) { - if ($clearOutput) { - $this->clearErrorOutput(); - } else { - $this->incrementalErrorOutputOffset = ftell($this->stderr); - } - - yield self::ERR => $err; - } - } - - if (!$blocking && !isset($out[0]) && !isset($err[0])) { - yield self::OUT => ''; - } - - $this->checkTimeout(); - $this->readPipesForOutput(__FUNCTION__, $blocking); - } - } - - /** - * Clears the process output. - * - * @return $this - */ - public function clearOutput() - { - ftruncate($this->stdout, 0); - fseek($this->stdout, 0); - $this->incrementalOutputOffset = 0; - - return $this; - } - - /** - * Returns the current error output of the process (STDERR). - * - * @return string - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getErrorOutput() - { - $this->readPipesForOutput(__FUNCTION__); - - if (false === $ret = stream_get_contents($this->stderr, -1, 0)) { - return ''; - } - - return $ret; - } - - /** - * Returns the errorOutput incrementally. - * - * In comparison with the getErrorOutput method which always return the - * whole error output, this one returns the new error output since the last - * call. - * - * @return string - * - * @throws LogicException in case the output has been disabled - * @throws LogicException In case the process is not started - */ - public function getIncrementalErrorOutput() - { - $this->readPipesForOutput(__FUNCTION__); - - $latest = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset); - $this->incrementalErrorOutputOffset = ftell($this->stderr); - - if (false === $latest) { - return ''; - } - - return $latest; - } - - /** - * Clears the process output. - * - * @return $this - */ - public function clearErrorOutput() - { - ftruncate($this->stderr, 0); - fseek($this->stderr, 0); - $this->incrementalErrorOutputOffset = 0; - - return $this; - } - - /** - * Returns the exit code returned by the process. - * - * @return int|null The exit status code, null if the Process is not terminated - */ - public function getExitCode() - { - $this->updateStatus(false); - - return $this->exitcode; - } - - /** - * Returns a string representation for the exit code returned by the process. - * - * This method relies on the Unix exit code status standardization - * and might not be relevant for other operating systems. - * - * @return string|null A string representation for the exit status code, null if the Process is not terminated - * - * @see http://tldp.org/LDP/abs/html/exitcodes.html - * @see http://en.wikipedia.org/wiki/Unix_signal - */ - public function getExitCodeText() - { - if (null === $exitcode = $this->getExitCode()) { - return null; - } - - return self::$exitCodes[$exitcode] ?? 'Unknown error'; - } - - /** - * Checks if the process ended successfully. - * - * @return bool - */ - public function isSuccessful() - { - return 0 === $this->getExitCode(); - } - - /** - * Returns true if the child process has been terminated by an uncaught signal. - * - * It always returns false on Windows. - * - * @return bool - * - * @throws LogicException In case the process is not terminated - */ - public function hasBeenSignaled() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - return $this->processInformation['signaled']; - } - - /** - * Returns the number of the signal that caused the child process to terminate its execution. - * - * It is only meaningful if hasBeenSignaled() returns true. - * - * @return int - * - * @throws RuntimeException In case --enable-sigchild is activated - * @throws LogicException In case the process is not terminated - */ - public function getTermSignal() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - if ($this->isSigchildEnabled() && -1 === $this->processInformation['termsig']) { - throw new RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal cannot be retrieved.'); - } - - return $this->processInformation['termsig']; - } - - /** - * Returns true if the child process has been stopped by a signal. - * - * It always returns false on Windows. - * - * @return bool - * - * @throws LogicException In case the process is not terminated - */ - public function hasBeenStopped() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - return $this->processInformation['stopped']; - } - - /** - * Returns the number of the signal that caused the child process to stop its execution. - * - * It is only meaningful if hasBeenStopped() returns true. - * - * @return int - * - * @throws LogicException In case the process is not terminated - */ - public function getStopSignal() - { - $this->requireProcessIsTerminated(__FUNCTION__); - - return $this->processInformation['stopsig']; - } - - /** - * Checks if the process is currently running. - * - * @return bool - */ - public function isRunning() - { - if (self::STATUS_STARTED !== $this->status) { - return false; - } - - $this->updateStatus(false); - - return $this->processInformation['running']; - } - - /** - * Checks if the process has been started with no regard to the current state. - * - * @return bool - */ - public function isStarted() - { - return self::STATUS_READY != $this->status; - } - - /** - * Checks if the process is terminated. - * - * @return bool - */ - public function isTerminated() - { - $this->updateStatus(false); - - return self::STATUS_TERMINATED == $this->status; - } - - /** - * Gets the process status. - * - * The status is one of: ready, started, terminated. - * - * @return string - */ - public function getStatus() - { - $this->updateStatus(false); - - return $this->status; - } - - /** - * Stops the process. - * - * @param int|float $timeout The timeout in seconds - * @param int|null $signal A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9) - * - * @return int|null The exit-code of the process or null if it's not running - */ - public function stop(float $timeout = 10, ?int $signal = null) - { - $timeoutMicro = microtime(true) + $timeout; - if ($this->isRunning()) { - // given SIGTERM may not be defined and that "proc_terminate" uses the constant value and not the constant itself, we use the same here - $this->doSignal(15, false); - do { - usleep(1000); - } while ($this->isRunning() && microtime(true) < $timeoutMicro); - - if ($this->isRunning()) { - // Avoid exception here: process is supposed to be running, but it might have stopped just - // after this line. In any case, let's silently discard the error, we cannot do anything. - $this->doSignal($signal ?: 9, false); - } - } - - if ($this->isRunning()) { - if (isset($this->fallbackStatus['pid'])) { - unset($this->fallbackStatus['pid']); - - return $this->stop(0, $signal); - } - $this->close(); - } - - return $this->exitcode; - } - - /** - * Adds a line to the STDOUT stream. - * - * @internal - */ - public function addOutput(string $line) - { - $this->lastOutputTime = microtime(true); - - fseek($this->stdout, 0, \SEEK_END); - fwrite($this->stdout, $line); - fseek($this->stdout, $this->incrementalOutputOffset); - } - - /** - * Adds a line to the STDERR stream. - * - * @internal - */ - public function addErrorOutput(string $line) - { - $this->lastOutputTime = microtime(true); - - fseek($this->stderr, 0, \SEEK_END); - fwrite($this->stderr, $line); - fseek($this->stderr, $this->incrementalErrorOutputOffset); - } - - /** - * Gets the last output time in seconds. - */ - public function getLastOutputTime(): ?float - { - return $this->lastOutputTime; - } - - /** - * Gets the command line to be executed. - * - * @return string - */ - public function getCommandLine() - { - return \is_array($this->commandline) ? implode(' ', array_map([$this, 'escapeArgument'], $this->commandline)) : $this->commandline; - } - - /** - * Gets the process timeout in seconds (max. runtime). - * - * @return float|null - */ - public function getTimeout() - { - return $this->timeout; - } - - /** - * Gets the process idle timeout in seconds (max. time since last output). - * - * @return float|null - */ - public function getIdleTimeout() - { - return $this->idleTimeout; - } - - /** - * Sets the process timeout (max. runtime) in seconds. - * - * To disable the timeout, set this value to null. - * - * @return $this - * - * @throws InvalidArgumentException if the timeout is negative - */ - public function setTimeout(?float $timeout) - { - $this->timeout = $this->validateTimeout($timeout); - - return $this; - } - - /** - * Sets the process idle timeout (max. time since last output) in seconds. - * - * To disable the timeout, set this value to null. - * - * @return $this - * - * @throws LogicException if the output is disabled - * @throws InvalidArgumentException if the timeout is negative - */ - public function setIdleTimeout(?float $timeout) - { - if (null !== $timeout && $this->outputDisabled) { - throw new LogicException('Idle timeout cannot be set while the output is disabled.'); - } - - $this->idleTimeout = $this->validateTimeout($timeout); - - return $this; - } - - /** - * Enables or disables the TTY mode. - * - * @return $this - * - * @throws RuntimeException In case the TTY mode is not supported - */ - public function setTty(bool $tty) - { - if ('\\' === \DIRECTORY_SEPARATOR && $tty) { - throw new RuntimeException('TTY mode is not supported on Windows platform.'); - } - - if ($tty && !self::isTtySupported()) { - throw new RuntimeException('TTY mode requires /dev/tty to be read/writable.'); - } - - $this->tty = $tty; - - return $this; - } - - /** - * Checks if the TTY mode is enabled. - * - * @return bool - */ - public function isTty() - { - return $this->tty; - } - - /** - * Sets PTY mode. - * - * @return $this - */ - public function setPty(bool $bool) - { - $this->pty = $bool; - - return $this; - } - - /** - * Returns PTY state. - * - * @return bool - */ - public function isPty() - { - return $this->pty; - } - - /** - * Gets the working directory. - * - * @return string|null - */ - public function getWorkingDirectory() - { - if (null === $this->cwd) { - // getcwd() will return false if any one of the parent directories does not have - // the readable or search mode set, even if the current directory does - return getcwd() ?: null; - } - - return $this->cwd; - } - - /** - * Sets the current working directory. - * - * @return $this - */ - public function setWorkingDirectory(string $cwd) - { - $this->cwd = $cwd; - - return $this; - } - - /** - * Gets the environment variables. - * - * @return array - */ - public function getEnv() - { - return $this->env; - } - - /** - * Sets the environment variables. - * - * @param array $env The new environment variables - * - * @return $this - */ - public function setEnv(array $env) - { - $this->env = $env; - - return $this; - } - - /** - * Gets the Process input. - * - * @return resource|string|\Iterator|null - */ - public function getInput() - { - return $this->input; - } - - /** - * Sets the input. - * - * This content will be passed to the underlying process standard input. - * - * @param string|int|float|bool|resource|\Traversable|null $input The content - * - * @return $this - * - * @throws LogicException In case the process is running - */ - public function setInput($input) - { - if ($this->isRunning()) { - throw new LogicException('Input cannot be set while the process is running.'); - } - - $this->input = ProcessUtils::validateInput(__METHOD__, $input); - - return $this; - } - - /** - * Performs a check between the timeout definition and the time the process started. - * - * In case you run a background process (with the start method), you should - * trigger this method regularly to ensure the process timeout - * - * @throws ProcessTimedOutException In case the timeout was reached - */ - public function checkTimeout() - { - if (self::STATUS_STARTED !== $this->status) { - return; - } - - if (null !== $this->timeout && $this->timeout < microtime(true) - $this->starttime) { - $this->stop(0); - - throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_GENERAL); - } - - if (null !== $this->idleTimeout && $this->idleTimeout < microtime(true) - $this->lastOutputTime) { - $this->stop(0); - - throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_IDLE); - } - } - - /** - * @throws LogicException in case process is not started - */ - public function getStartTime(): float - { - if (!$this->isStarted()) { - throw new LogicException('Start time is only available after process start.'); - } - - return $this->starttime; - } - - /** - * Defines options to pass to the underlying proc_open(). - * - * @see https://php.net/proc_open for the options supported by PHP. - * - * Enabling the "create_new_console" option allows a subprocess to continue - * to run after the main process exited, on both Windows and *nix - */ - public function setOptions(array $options) - { - if ($this->isRunning()) { - throw new RuntimeException('Setting options while the process is running is not possible.'); - } - - $defaultOptions = $this->options; - $existingOptions = ['blocking_pipes', 'create_process_group', 'create_new_console']; - - foreach ($options as $key => $value) { - if (!\in_array($key, $existingOptions)) { - $this->options = $defaultOptions; - throw new LogicException(sprintf('Invalid option "%s" passed to "%s()". Supported options are "%s".', $key, __METHOD__, implode('", "', $existingOptions))); - } - $this->options[$key] = $value; - } - } - - /** - * Returns whether TTY is supported on the current operating system. - */ - public static function isTtySupported(): bool - { - static $isTtySupported; - - if (null === $isTtySupported) { - $isTtySupported = (bool) @proc_open('echo 1 >/dev/null', [['file', '/dev/tty', 'r'], ['file', '/dev/tty', 'w'], ['file', '/dev/tty', 'w']], $pipes); - } - - return $isTtySupported; - } - - /** - * Returns whether PTY is supported on the current operating system. - * - * @return bool - */ - public static function isPtySupported() - { - static $result; - - if (null !== $result) { - return $result; - } - - if ('\\' === \DIRECTORY_SEPARATOR) { - return $result = false; - } - - return $result = (bool) @proc_open('echo 1 >/dev/null', [['pty'], ['pty'], ['pty']], $pipes); - } - - /** - * Creates the descriptors needed by the proc_open. - */ - private function getDescriptors(): array - { - if ($this->input instanceof \Iterator) { - $this->input->rewind(); - } - if ('\\' === \DIRECTORY_SEPARATOR) { - $this->processPipes = new WindowsPipes($this->input, !$this->outputDisabled || $this->hasCallback); - } else { - $this->processPipes = new UnixPipes($this->isTty(), $this->isPty(), $this->input, !$this->outputDisabled || $this->hasCallback); - } - - return $this->processPipes->getDescriptors(); - } - - /** - * Builds up the callback used by wait(). - * - * The callbacks adds all occurred output to the specific buffer and calls - * the user callback (if present) with the received output. - * - * @param callable|null $callback The user defined PHP callback - * - * @return \Closure - */ - protected function buildCallback(?callable $callback = null) - { - if ($this->outputDisabled) { - return function ($type, $data) use ($callback): bool { - return null !== $callback && $callback($type, $data); - }; - } - - $out = self::OUT; - - return function ($type, $data) use ($callback, $out): bool { - if ($out == $type) { - $this->addOutput($data); - } else { - $this->addErrorOutput($data); - } - - return null !== $callback && $callback($type, $data); - }; - } - - /** - * Updates the status of the process, reads pipes. - * - * @param bool $blocking Whether to use a blocking read call - */ - protected function updateStatus(bool $blocking) - { - if (self::STATUS_STARTED !== $this->status) { - return; - } - - $this->processInformation = proc_get_status($this->process); - $running = $this->processInformation['running']; - - $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running); - - if ($this->fallbackStatus && $this->isSigchildEnabled()) { - $this->processInformation = $this->fallbackStatus + $this->processInformation; - } - - if (!$running) { - $this->close(); - } - } - - /** - * Returns whether PHP has been compiled with the '--enable-sigchild' option or not. - * - * @return bool - */ - protected function isSigchildEnabled() - { - if (null !== self::$sigchild) { - return self::$sigchild; - } - - if (!\function_exists('phpinfo')) { - return self::$sigchild = false; - } - - ob_start(); - phpinfo(\INFO_GENERAL); - - return self::$sigchild = str_contains(ob_get_clean(), '--enable-sigchild'); - } - - /** - * Reads pipes for the freshest output. - * - * @param string $caller The name of the method that needs fresh outputs - * @param bool $blocking Whether to use blocking calls or not - * - * @throws LogicException in case output has been disabled or process is not started - */ - private function readPipesForOutput(string $caller, bool $blocking = false) - { - if ($this->outputDisabled) { - throw new LogicException('Output has been disabled.'); - } - - $this->requireProcessIsStarted($caller); - - $this->updateStatus($blocking); - } - - /** - * Validates and returns the filtered timeout. - * - * @throws InvalidArgumentException if the given timeout is a negative number - */ - private function validateTimeout(?float $timeout): ?float - { - $timeout = (float) $timeout; - - if (0.0 === $timeout) { - $timeout = null; - } elseif ($timeout < 0) { - throw new InvalidArgumentException('The timeout value must be a valid positive integer or float number.'); - } - - return $timeout; - } - - /** - * Reads pipes, executes callback. - * - * @param bool $blocking Whether to use blocking calls or not - * @param bool $close Whether to close file handles or not - */ - private function readPipes(bool $blocking, bool $close) - { - $result = $this->processPipes->readAndWrite($blocking, $close); - - $callback = $this->callback; - foreach ($result as $type => $data) { - if (3 !== $type) { - $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data); - } elseif (!isset($this->fallbackStatus['signaled'])) { - $this->fallbackStatus['exitcode'] = (int) $data; - } - } - } - - /** - * Closes process resource, closes file handles, sets the exitcode. - * - * @return int The exitcode - */ - private function close(): int - { - $this->processPipes->close(); - if (\is_resource($this->process)) { - proc_close($this->process); - } - $this->exitcode = $this->processInformation['exitcode']; - $this->status = self::STATUS_TERMINATED; - - if (-1 === $this->exitcode) { - if ($this->processInformation['signaled'] && 0 < $this->processInformation['termsig']) { - // if process has been signaled, no exitcode but a valid termsig, apply Unix convention - $this->exitcode = 128 + $this->processInformation['termsig']; - } elseif ($this->isSigchildEnabled()) { - $this->processInformation['signaled'] = true; - $this->processInformation['termsig'] = -1; - } - } - - // Free memory from self-reference callback created by buildCallback - // Doing so in other contexts like __destruct or by garbage collector is ineffective - // Now pipes are closed, so the callback is no longer necessary - $this->callback = null; - - return $this->exitcode; - } - - /** - * Resets data related to the latest run of the process. - */ - private function resetProcessData() - { - $this->starttime = null; - $this->callback = null; - $this->exitcode = null; - $this->fallbackStatus = []; - $this->processInformation = null; - $this->stdout = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+'); - $this->stderr = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+'); - $this->process = null; - $this->latestSignal = null; - $this->status = self::STATUS_READY; - $this->incrementalOutputOffset = 0; - $this->incrementalErrorOutputOffset = 0; - } - - /** - * Sends a POSIX signal to the process. - * - * @param int $signal A valid POSIX signal (see https://php.net/pcntl.constants) - * @param bool $throwException Whether to throw exception in case signal failed - * - * @throws LogicException In case the process is not running - * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed - * @throws RuntimeException In case of failure - */ - private function doSignal(int $signal, bool $throwException): bool - { - if (null === $pid = $this->getPid()) { - if ($throwException) { - throw new LogicException('Cannot send signal on a non running process.'); - } - - return false; - } - - if ('\\' === \DIRECTORY_SEPARATOR) { - exec(sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode); - if ($exitCode && $this->isRunning()) { - if ($throwException) { - throw new RuntimeException(sprintf('Unable to kill the process (%s).', implode(' ', $output))); - } - - return false; - } - } else { - if (!$this->isSigchildEnabled()) { - $ok = @proc_terminate($this->process, $signal); - } elseif (\function_exists('posix_kill')) { - $ok = @posix_kill($pid, $signal); - } elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) { - $ok = false === fgets($pipes[2]); - } - if (!$ok) { - if ($throwException) { - throw new RuntimeException(sprintf('Error while sending signal "%s".', $signal)); - } - - return false; - } - } - - $this->latestSignal = $signal; - $this->fallbackStatus['signaled'] = true; - $this->fallbackStatus['exitcode'] = -1; - $this->fallbackStatus['termsig'] = $this->latestSignal; - - return true; - } - - private function prepareWindowsCommandLine(string $cmd, array &$env): string - { - $uid = uniqid('', true); - $varCount = 0; - $varCache = []; - $cmd = preg_replace_callback( - '/"(?:( - [^"%!^]*+ - (?: - (?: !LF! | "(?:\^[%!^])?+" ) - [^"%!^]*+ - )++ - ) | [^"]*+ )"/x', - function ($m) use (&$env, &$varCache, &$varCount, $uid) { - if (!isset($m[1])) { - return $m[0]; - } - if (isset($varCache[$m[0]])) { - return $varCache[$m[0]]; - } - if (str_contains($value = $m[1], "\0")) { - $value = str_replace("\0", '?', $value); - } - if (false === strpbrk($value, "\"%!\n")) { - return '"'.$value.'"'; - } - - $value = str_replace(['!LF!', '"^!"', '"^%"', '"^^"', '""'], ["\n", '!', '%', '^', '"'], $value); - $value = '"'.preg_replace('/(\\\\*)"/', '$1$1\\"', $value).'"'; - $var = $uid.++$varCount; - - $env[$var] = $value; - - return $varCache[$m[0]] = '!'.$var.'!'; - }, - $cmd - ); - - $cmd = 'cmd /V:ON /E:ON /D /C ('.str_replace("\n", ' ', $cmd).')'; - foreach ($this->processPipes->getFiles() as $offset => $filename) { - $cmd .= ' '.$offset.'>"'.$filename.'"'; - } - - return $cmd; - } - - /** - * Ensures the process is running or terminated, throws a LogicException if the process has a not started. - * - * @throws LogicException if the process has not run - */ - private function requireProcessIsStarted(string $functionName) - { - if (!$this->isStarted()) { - throw new LogicException(sprintf('Process must be started before calling "%s()".', $functionName)); - } - } - - /** - * Ensures the process is terminated, throws a LogicException if the process has a status different than "terminated". - * - * @throws LogicException if the process is not yet terminated - */ - private function requireProcessIsTerminated(string $functionName) - { - if (!$this->isTerminated()) { - throw new LogicException(sprintf('Process must be terminated before calling "%s()".', $functionName)); - } - } - - /** - * Escapes a string to be used as a shell argument. - */ - private function escapeArgument(?string $argument): string - { - if ('' === $argument || null === $argument) { - return '""'; - } - if ('\\' !== \DIRECTORY_SEPARATOR) { - return "'".str_replace("'", "'\\''", $argument)."'"; - } - if (str_contains($argument, "\0")) { - $argument = str_replace("\0", '?', $argument); - } - if (!preg_match('/[\/()%!^"<>&|\s]/', $argument)) { - return $argument; - } - $argument = preg_replace('/(\\\\+)$/', '$1$1', $argument); - - return '"'.str_replace(['"', '^', '%', '!', "\n"], ['""', '"^^"', '"^%"', '"^!"', '!LF!'], $argument).'"'; - } - - private function replacePlaceholders(string $commandline, array $env) - { - return preg_replace_callback('/"\$\{:([_a-zA-Z]++[_a-zA-Z0-9]*+)\}"/', function ($matches) use ($commandline, $env) { - if (!isset($env[$matches[1]]) || false === $env[$matches[1]]) { - throw new InvalidArgumentException(sprintf('Command line is missing a value for parameter "%s": ', $matches[1]).$commandline); - } - - return $this->escapeArgument($env[$matches[1]]); - }, $commandline); - } - - private function getDefaultEnv(): array - { - $env = getenv(); - $env = ('\\' === \DIRECTORY_SEPARATOR ? array_intersect_ukey($env, $_SERVER, 'strcasecmp') : array_intersect_key($env, $_SERVER)) ?: $env; - - return $_ENV + ('\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($env, $_ENV, 'strcasecmp') : $env); - } -} diff --git a/vendor/symfony/process/ProcessUtils.php b/vendor/symfony/process/ProcessUtils.php deleted file mode 100644 index 2a7aff7..0000000 --- a/vendor/symfony/process/ProcessUtils.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Process; - -use Symfony\Component\Process\Exception\InvalidArgumentException; - -/** - * ProcessUtils is a bunch of utility methods. - * - * This class contains static methods only and is not meant to be instantiated. - * - * @author Martin Hasoň - */ -class ProcessUtils -{ - /** - * This class should not be instantiated. - */ - private function __construct() - { - } - - /** - * Validates and normalizes a Process input. - * - * @param string $caller The name of method call that validates the input - * @param mixed $input The input to validate - * - * @return mixed - * - * @throws InvalidArgumentException In case the input is not valid - */ - public static function validateInput(string $caller, $input) - { - if (null !== $input) { - if (\is_resource($input)) { - return $input; - } - if (\is_string($input)) { - return $input; - } - if (\is_scalar($input)) { - return (string) $input; - } - if ($input instanceof Process) { - return $input->getIterator($input::ITER_SKIP_ERR); - } - if ($input instanceof \Iterator) { - return $input; - } - if ($input instanceof \Traversable) { - return new \IteratorIterator($input); - } - - throw new InvalidArgumentException(sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller)); - } - - return $input; - } -} diff --git a/vendor/symfony/process/README.md b/vendor/symfony/process/README.md deleted file mode 100644 index 8777de4..0000000 --- a/vendor/symfony/process/README.md +++ /dev/null @@ -1,28 +0,0 @@ -Process Component -================= - -The Process component executes commands in sub-processes. - -Sponsor -------- - -The Process component for Symfony 5.4/6.0 is [backed][1] by [SensioLabs][2]. - -As the creator of Symfony, SensioLabs supports companies using Symfony, with an -offering encompassing consultancy, expertise, services, training, and technical -assistance to ensure the success of web application development projects. - -Help Symfony by [sponsoring][3] its development! - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/process.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) - -[1]: https://symfony.com/backers -[2]: https://sensiolabs.com -[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/process/composer.json b/vendor/symfony/process/composer.json deleted file mode 100644 index 1669eba..0000000 --- a/vendor/symfony/process/composer.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "symfony/process", - "type": "library", - "description": "Executes commands in sub-processes", - "keywords": [], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "autoload": { - "psr-4": { "Symfony\\Component\\Process\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "minimum-stability": "dev" -} From cae677f8999fc5948427a953b9d00f3345d9b6e3 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Mon, 9 Sep 2024 08:31:02 +0530 Subject: [PATCH 04/46] Bumped version to 5.1.0 --- CHANGELOG.md | 2 ++ plugin.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f83893d..031fa52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,3 +57,5 @@ * Updated README url in UI - 5.0.3 * Added plugin category for Marketplace +- 5.1.0 - 2024-09-09 + * Replaced Symfony\Process with Piwik\Process diff --git a/plugin.json b/plugin.json index bb8607c..b522634 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "VisitorGenerator", - "version": "5.0.3", + "version": "5.1.0", "description": "Developer tool that lets you generate fake visits. Useful if you are working with plugins or themes or if you use the Matomo API.", "keywords": ["development", "tools"], "license": "GPL v3+", From 3c600bac45c847c6f9aa34743bb1af46e38449d0 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Fri, 11 Oct 2024 21:34:00 +0530 Subject: [PATCH 05/46] Adds test for PHPCS --- .github/workflows/phpcs.yml | 42 +++++++++++++++++++++++++++++++++++++ phpcs.xml | 36 +++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 .github/workflows/phpcs.yml create mode 100644 phpcs.xml diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml new file mode 100644 index 0000000..114f8b5 --- /dev/null +++ b/.github/workflows/phpcs.yml @@ -0,0 +1,42 @@ +name: PHPCS check + +on: pull_request + +permissions: + actions: read + checks: read + contents: read + deployments: none + issues: read + packages: none + pull-requests: read + repository-projects: none + security-events: none + statuses: read + +jobs: + phpcs: + name: PHPCS + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + lfs: false + persist-credentials: false + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '7.4' + tools: cs2pr + - name: Install dependencies + run: + composer --no-plugins config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true -n; + composer config repositories.matomo-coding-standards vcs https://github.com/matomo-org/matomo-coding-standards -n; + composer require matomo-org/matomo-coding-standards:dev-master; + composer install --dev --prefer-dist --no-progress --no-suggest + - name: Check PHP code styles + id: phpcs + run: ./vendor/bin/phpcs --report-full --standard=phpcs.xml --report-checkstyle=./phpcs-report.xml + - name: Show PHPCS results in PR + if: ${{ always() && steps.phpcs.outcome == 'failure' }} + run: cs2pr ./phpcs-report.xml --prepend-filename diff --git a/phpcs.xml b/phpcs.xml new file mode 100644 index 0000000..5bfa061 --- /dev/null +++ b/phpcs.xml @@ -0,0 +1,36 @@ + + + + Matomo Coding Standard for VisitorGenerator plugin + + + + . + + tests/javascript/* + */vendor/* + + + + + + + + tests/* + + + + + Updates/* + + + + + tests/* + + + + + tests/* + + \ No newline at end of file From 1f02a321ff853bf8a691c0aa2ec4a922ecd74445 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Thu, 17 Oct 2024 07:38:00 +0530 Subject: [PATCH 06/46] Updated screenshot --- screenshots/Visitor_Generator.png | Bin 119915 -> 58362 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/Visitor_Generator.png b/screenshots/Visitor_Generator.png index 3d52a0fe00b2a474dee0cf344f7948c96880da1f..be9d630c055f1ea45db6fb6b001232c34bf82c45 100644 GIT binary patch literal 58362 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 Lj?g0O(^vlrST)`l literal 119915 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

    4xO@8e32Hrg02c@)dB8W7+ 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 From aed1d06f1c81adf3c28d433af82d2f81cde40a88 Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 21 Oct 2024 10:49:10 +1300 Subject: [PATCH 07/46] Making PHPCS changes --- Commands/AnonymizeLog.php | 3 +- Commands/GenerateAnnotation.php | 2 +- Commands/GenerateGoals.php | 2 +- Commands/GenerateLiveVisits.php | 31 +++++-- Commands/GenerateUsers.php | 2 +- Commands/GenerateVisits.php | 4 +- Commands/GenerateVisitsDb.php | 58 +++++++----- Commands/GenerateWebsites.php | 2 +- Commands/ShortenLog.php | 1 + Controller.php | 6 +- Faker/Request.php | 13 ++- Generator.php | 9 +- Generator/Annotations.php | 3 +- Generator/Goals.php | 2 + Generator/LiveVisitsFromLog.php | 6 +- Generator/Users.php | 2 + Generator/VisitFakeQuery.php | 92 ++++++++++--------- Generator/VisitsFake.php | 17 +++- Generator/VisitsFromLogs.php | 4 +- Generator/Websites.php | 2 + Iterator/TransformIterator.php | 3 +- LogParser.php | 2 + Menu.php | 2 + VisitorGenerator.php | 1 + tests/Integration/LogParserTest.php | 3 +- .../CheckDirectDependencyUseCommandTest.php | 3 +- tests/System/GenerateLogsTest.php | 3 +- 27 files changed, 170 insertions(+), 108 deletions(-) diff --git a/Commands/AnonymizeLog.php b/Commands/AnonymizeLog.php index a1a4397..de54fae 100644 --- a/Commands/AnonymizeLog.php +++ b/Commands/AnonymizeLog.php @@ -1,4 +1,5 @@ setDescription('Continuously generates visits from a single log file to make it seem like there is real time traffic.'); $this->addRequiredValueOption('idsite', null, '(required) The ID of the site to track to.'); $this->addRequiredValueOption('stop-after', null, 'If supplied, the command will exit after this many seconds.'); - $this->addRequiredValueOption('log-file', null, - '(required) The log file to track visits from. This file MUST have visits in order of time.'); - $this->addRequiredValueOption('day-of-month', null, + $this->addRequiredValueOption( + 'log-file', + null, + '(required) The log file to track visits from. This file MUST have visits in order of time.' + ); + $this->addRequiredValueOption( + 'day-of-month', + null, 'By default this command starts with visits for the current day of the month. Use this option to force an override. ' . 'Specify 0 to ignore day of the month and use every log.', - Date::now()->toString('j')); - $this->addRequiredValueOption('time-of-day', null, + Date::now()->toString('j') + ); + $this->addRequiredValueOption( + 'time-of-day', + null, 'The time of day to start replaying logs for. Defaults to now, specify a value here to override.', - time() % LiveVisitsFromLog::SECONDS_IN_DAY); + time() % LiveVisitsFromLog::SECONDS_IN_DAY + ); $this->addRequiredValueOption('custom-matomo-url', null, 'Custom Matomo URL to track to.'); $this->addRequiredValueOption('timeout', null, "Sets how long, in seconds, the timeout should be for the request.", 10); $this->addRequiredValueOption('token-auth', null, 'Use custom token auth instead of system generated one. If running this ' @@ -83,7 +93,8 @@ protected function doExecute(): int // nextWaitTime can be large if the next visit happens in an hour. no sense in // waiting if it'll be after stopAfter - if ($stopAfter > 0 + if ( + $stopAfter > 0 && (time() + $nextWaitTime) - $startTime > $stopAfter ) { $output->writeln("$stopAfter seconds reached, exiting."); @@ -93,7 +104,8 @@ protected function doExecute(): int $output->writeln(" sleeping {$nextWaitTime}s."); sleep($nextWaitTime); - if ($stopAfter > 0 + if ( + $stopAfter > 0 && time() - $startTime > $stopAfter ) { $output->writeln("$stopAfter seconds reached, exiting."); @@ -107,7 +119,8 @@ protected function doExecute(): int private function getPostiveIntegerOption($optionName) { $value = $this->getInput()->getOption($optionName); - if (!empty($value) + if ( + !empty($value) && (!is_numeric($value) || $value < 0) ) { diff --git a/Commands/GenerateUsers.php b/Commands/GenerateUsers.php index 0866574..9e8afad 100644 --- a/Commands/GenerateUsers.php +++ b/Commands/GenerateUsers.php @@ -1,4 +1,5 @@ getInput(); if ($input->getOption('limit-fake-visits')) { - return $input->getOption('limit-fake-visits'); } @@ -153,4 +153,4 @@ protected function getIdSite() return $idSite; }); } -} \ No newline at end of file +} diff --git a/Commands/GenerateVisitsDb.php b/Commands/GenerateVisitsDb.php index 6c68222..cc43127 100644 --- a/Commands/GenerateVisitsDb.php +++ b/Commands/GenerateVisitsDb.php @@ -1,4 +1,5 @@ getLimitVisits(); $stats = $this->generate($time, $idSite, $limit); @@ -131,18 +130,18 @@ protected function doExecute(): int if ($this->verbosity > 0) { $this->log( - sprintf("%s:", Date::factory($time)->toString()). - " Visits: ".str_pad($this->formatter->format($stats['visits']), 8, ' ', STR_PAD_LEFT). - " Visit Actions: ".str_pad($this->formatter->format($stats['visitActions']), 8, ' ', STR_PAD_LEFT). - " Actions: ".str_pad($this->formatter->format($stats['actions']), 8, ' ', STR_PAD_LEFT). - " Conversions: ".str_pad($this->formatter->format($stats['conversions']), 8, ' ', STR_PAD_LEFT) + sprintf("%s:", Date::factory($time)->toString()) . + " Visits: " . str_pad($this->formatter->format($stats['visits']), 8, ' ', STR_PAD_LEFT) . + " Visit Actions: " . str_pad($this->formatter->format($stats['visitActions']), 8, ' ', STR_PAD_LEFT) . + " Actions: " . str_pad($this->formatter->format($stats['actions']), 8, ' ', STR_PAD_LEFT) . + " Conversions: " . str_pad($this->formatter->format($stats['conversions']), 8, ' ', STR_PAD_LEFT) ); } $time += 86400; } - $summary =[ + $summary = [ 'visits' => $visitsTotal, 'visitActions' => $visitActionsTotal, 'actions' => $actionsTotal, @@ -177,12 +176,11 @@ private function doThreadedRun(Input $input, Output $output, int $idSite, int $d ]; // Start threads - $this->log($threads. " threads requested"); + $this->log($threads . " threads requested"); $processList = []; $this->log("Starting threads", 0, false); $threadsComplete = []; for ($t = 1; $t < $threads + 1; $t++) { - $this->log(implode(' ', $command), 2); $process = new Process($command); @@ -191,7 +189,7 @@ private function doThreadedRun(Input $input, Output $output, int $idSite, int $d if (strpos($buffer, '|') !== false) { // Record summary - $json = json_decode(trim($buffer, "| \n\r"),true); + $json = json_decode(trim($buffer, "| \n\r"), true); if (is_array($json)) { $grandSummary['visits'] += $json['visits']; $grandSummary['visitActions'] += $json['visitActions']; @@ -290,11 +288,18 @@ private function buildThreadCommand(Input $input, Output $output, int $idSite, i $command[] = '--start-date=' . $startDate; } - switch($this->verbosity) { - case 1: $command[] = '--v'; break; - case 2: $command[] = '--vv'; break; - case 3: $command[] = '--vvv'; break; - default: break; + switch ($this->verbosity) { + case 1: + $command[] = '--v'; + break; + case 2: + $command[] = '--vv'; + break; + case 3: + $command[] = '--vvv'; + break; + default: + break; } // Split workload simplistically by dividing the limit across all threads @@ -314,7 +319,7 @@ private function buildThreadCommand(Input $input, Output $output, int $idSite, i private function writeSummary(int $idSite, array $summaryInfo): void { $summary = [ - 'Site Id ' .str_pad($idSite, 12, ' ', STR_PAD_LEFT), + 'Site Id ' . str_pad($idSite, 12, ' ', STR_PAD_LEFT), 'Time taken ' . str_pad($this->metricFormatter->getPrettyTimeFromSeconds($summaryInfo['timeTaken'], true), 12, ' ', STR_PAD_LEFT), 'Visits generated ' . str_pad($this->formatter->format($summaryInfo['visits']), 12, ' ', STR_PAD_LEFT), 'Visits actions generated ' . str_pad($this->formatter->format($summaryInfo['visitActions']), 12, ' ', STR_PAD_LEFT), @@ -381,7 +386,6 @@ private function generate(int $time, int $idSite, int $limit): array ]; while ($requestCount < $limit || $limit < 0) { - $this->query(['sql' => 'START TRANSACTION', 'bind' => []]); // Choose a random timestamp within supplied date range $timestampUTC = rand($time, $time + 86000); // no new visits will start for 400 seconds before midnight @@ -391,7 +395,6 @@ private function generate(int $time, int $idSite, int $limit): array $actionUrl = ''; $actionCount = rand($actionCountMin, $actionCountMax); for ($i = 0; $i != $actionCount; $i++) { - // Get random action, 50% chance of being new until pool is full, then always an existing action $actionUrl = $queryGenerator->getRandomActionURL(); @@ -414,7 +417,7 @@ private function generate(int $time, int $idSite, int $limit): array // Get random visitor id (10% chance of a returning visitor id) $idvisitor = $queryGenerator->getVisitor(10); - $this->log("Got idvisitor '".bin2hex($idvisitor)."'", 3); + $this->log("Got idvisitor '" . bin2hex($idvisitor) . "'", 3); // Check if visit exists in db, create new visit if not $findVisitorQuery = $queryGenerator->getCheckIfNewVisitorQuery($idvisitor, $idSite); @@ -440,7 +443,6 @@ private function generate(int $time, int $idSite, int $limit): array // Update visit $updateVisitQuery = $queryGenerator->getUpdateVisitQuery($idvisit, $visitorRows[0]->visit_first_action_time, $timestampUTC, $idSite); $this->query($updateVisitQuery, false); - } $stats['visits']++; @@ -448,7 +450,7 @@ private function generate(int $time, int $idSite, int $limit): array // Insert the action link(s) $idlinkva = null; - foreach($idactions as $idaction) { + foreach ($idactions as $idaction) { if ($idvisit && $idaction) { $this->log("Inserting action link...", 3); @@ -465,8 +467,16 @@ private function generate(int $time, int $idSite, int $limit): array // Insert conversion (conversion will always use the last idlinkva if there are multiple actions if ($idlinkva && $conversionPercent > 0 && (rand(0, 100) < $conversionPercent)) { $this->log("Inserting conversion...", 3); - $insertConversionQuery = $queryGenerator->getInsertConversionQuery($idvisitor, $idvisit, end($idactions), $actionUrl, $timestampUTC, - $idlinkva, $this->siteGoals[array_rand($this->siteGoals)], $idSite); + $insertConversionQuery = $queryGenerator->getInsertConversionQuery( + $idvisitor, + $idvisit, + end($idactions), + $actionUrl, + $timestampUTC, + $idlinkva, + $this->siteGoals[array_rand($this->siteGoals)], + $idSite + ); $this->query($insertConversionQuery, false); $stats['conversions']++; } diff --git a/Commands/GenerateWebsites.php b/Commands/GenerateWebsites.php index 5ea1a3d..9efb45c 100644 --- a/Commands/GenerateWebsites.php +++ b/Commands/GenerateWebsites.php @@ -1,4 +1,5 @@ generate($time, $idSite); @@ -125,5 +126,4 @@ private function checkNonce() Nonce::discardNonce('VisitorGenerator.generate'); } - } diff --git a/Faker/Request.php b/Faker/Request.php index 4c2ee7c..eb3d63b 100644 --- a/Faker/Request.php +++ b/Faker/Request.php @@ -1,4 +1,5 @@ getMatomoUrl()); @@ -46,7 +48,8 @@ protected function makeMatomoTracker($idSite) /** * @param $matomoUrl */ - protected function setMatomoUrl($matomoUrl) { + protected function setMatomoUrl($matomoUrl) + { $this->matomoUrl = $matomoUrl; } @@ -55,7 +58,7 @@ protected function setMatomoUrl($matomoUrl) { */ protected function getMatomoUrl() { - if($this->matomoUrl) { + if ($this->matomoUrl) { $url = $this->matomoUrl; } else { $url = SettingsPiwik::getPiwikUrl(); diff --git a/Generator/Annotations.php b/Generator/Annotations.php index 0db9381..13ba2e2 100644 --- a/Generator/Annotations.php +++ b/Generator/Annotations.php @@ -1,4 +1,5 @@ toString(); diff --git a/Generator/Goals.php b/Generator/Goals.php index b3a2f33..f386877 100644 --- a/Generator/Goals.php +++ b/Generator/Goals.php @@ -1,4 +1,5 @@ fileIterator, function ($line, $lineNumber) { $log = LogParser::parseLogLine($line); - if (empty($log) + if ( + empty($log) && strpos($line, 'POST') === false ) { $this->logger->debug("Failed to parse line {lineNo}: {line}", [ diff --git a/Generator/Users.php b/Generator/Users.php index db0f4a8..dd42c47 100644 --- a/Generator/Users.php +++ b/Generator/Users.php @@ -1,4 +1,5 @@ $id, @@ -42,7 +41,7 @@ public function __construct(int $actionsPoolSize = 1000000, int $returnVisitorPo 'group' => '', 'keyword' => $keywords[array_rand($keywords)], 'medium' => $medium[array_rand($medium)], - 'name' => 'campaign_'.$id, + 'name' => 'campaign_' . $id, 'placement' => '', 'source' => $source[array_rand($source)] ]; @@ -50,19 +49,17 @@ public function __construct(int $actionsPoolSize = 1000000, int $returnVisitorPo $this->campaigns[] = $campaign; } - for ($i = 0; $i < 500;$i++) { - + for ($i = 0; $i < 500; $i++) { $id = bin2hex(random_bytes(4)); $referer = [ - 'name' => 'ref_'.$id, - 'url' => 'https://domain'.$id.'.com', + 'name' => 'ref_' . $id, + 'url' => 'https://domain' . $id . '.com', 'type' => array_rand([1,2,3]), 'keyword' => $keywords[array_rand($keywords)], ]; $this->referers[] = $referer; } - } public function getRandomActionURL(): string @@ -71,10 +68,10 @@ public function getRandomActionURL(): string // Choose an existing actionsUrl 50% of the time if there are at least 100 in the pool // or 100% of the time if the pool is full if (count($this->actionsUrl) > 100 && (rand(0, 100) < 50 || count($this->actionsUrl) >= $this->actionsPoolSize)) { - return $this->actionsUrl[array_rand($this->actionsUrl)]; + return $this->actionsUrl[array_rand($this->actionsUrl)]; } - $newActionUrl = "/page_".bin2hex(random_bytes(10)); + $newActionUrl = "/page_" . bin2hex(random_bytes(10)); $this->actionsUrl[] = $newActionUrl; return $newActionUrl; @@ -90,15 +87,14 @@ public function getRandomActionURL(): string */ public function getVisitor(int $chanceReturning): string { - if (rand(0,100) <= $chanceReturning && count($this->returnUserIds) > 0) { + if (rand(0, 100) <= $chanceReturning && count($this->returnUserIds) > 0) { return $this->returnUserIds[array_rand($this->returnUserIds)]; } $idvisitor = random_bytes(8); // 1% chance to update a return user id if the pool is full - if (count($this->returnUserIds) >= $this->returnVisitorPoolSize && rand(0,100) === 1) { - + if (count($this->returnUserIds) >= $this->returnVisitorPoolSize && rand(0, 100) === 1) { // Never replace the early return visitors, we want some selects at the quiet end of the index $this->returnUserIds[rand($this->returnVisitorPoolSize / 10, $this->returnVisitorPoolSize)] = $idvisitor; } @@ -151,26 +147,26 @@ public function getCheckIfNewVisitorQuery(string $idvisitor, int $site): array return ['sql' => $sql, 'bind' => $bind]; } - public function getRandomIP() : string + public function getRandomIP(): string { - $ipString = (rand(1,100) < 78 ? $this->fakerInternet->ipv4() : $this->fakerInternet->ipv6()); + $ipString = (rand(1, 100) < 78 ? $this->fakerInternet->ipv4() : $this->fakerInternet->ipv6()); $ip = @inet_pton($ipString); return $ip === false ? "\x00\x00\x00\x00" : $ip; } - public function getRandomLang() : string + public function getRandomLang(): string { return FakerMisc::languageCode(); } - public function getRandomResolution() : string + public function getRandomResolution(): string { $res = $this->fakerRequest->resolution(); return $res[array_rand($res)]; } - public function getRandomCountryA2() : string + public function getRandomCountryA2(): string { return strtolower(FakerMisc::countryCode()); } @@ -204,12 +200,12 @@ public function getInsertVisitorQuery(string $idvisitor, string $entryActionUrlI "; $campaign = null; - if (rand(0,100) < 5) { + if (rand(0, 100) < 5) { $campaign = $this->campaigns[array_rand($this->campaigns)]; } $referer = null; - if (rand(0,100) < 33) { + if (rand(0, 100) < 33) { $referer = $this->referers[array_rand($this->referers)]; } @@ -235,7 +231,7 @@ public function getInsertVisitorQuery(string $idvisitor, string $entryActionUrlI ':visit_total_searches' => 0, ':visit_total_time' => 0, ':visit_total_events' => 0, - ':visitor_localtime' => rand(1,23).':'.rand(0,59).':'.rand(0,59), + ':visitor_localtime' => rand(1, 23) . ':' . rand(0, 59) . ':' . rand(0, 59), ':visitor_seconds_since_last' => 0, ':referer_keyword' => ($referer ? $referer['keyword'] : null), @@ -251,18 +247,18 @@ public function getInsertVisitorQuery(string $idvisitor, string $entryActionUrlI ':config_client_type' => 1, ':config_device_brand' => '', ':config_device_model' => '', - ':config_device_type' => rand(0,3), + ':config_device_type' => rand(0, 3), ':config_os' => '', ':config_os_version' => '', ':config_resolution' => $this->getRandomResolution(), - ':config_cookie' => rand(0,1), - ':config_flash' => rand(0,1), - ':config_java' => rand(0,1), - ':config_pdf' => rand(0,1), - ':config_quicktime' => rand(0,1), - ':config_realplayer' => rand(0,1), - ':config_silverlight' => rand(0,1), - ':config_windowsmedia' => rand(0,1), + ':config_cookie' => rand(0, 1), + ':config_flash' => rand(0, 1), + ':config_java' => rand(0, 1), + ':config_pdf' => rand(0, 1), + ':config_quicktime' => rand(0, 1), + ':config_realplayer' => rand(0, 1), + ':config_silverlight' => rand(0, 1), + ':config_windowsmedia' => rand(0, 1), ]; @@ -315,20 +311,27 @@ public function getInsertActionLinkQuery(string $idvisitor, int $idvisit, string ':idaction_name_ref' => null, ':server_time' => date('Y-m-d H:i:s', $timestamp), ':idpageview' => bin2hex(random_bytes(3)), - ':pageview_position' => rand(1,10), - ':time_spent_ref_action' => rand(1,1000), - ':time_dom_processing' => rand(1,1000), - ':time_network' => rand(1,1000), - ':time_server' => rand(1,1000), - ':time_transfer' => rand(1,1000) + ':pageview_position' => rand(1, 10), + ':time_spent_ref_action' => rand(1, 1000), + ':time_dom_processing' => rand(1, 1000), + ':time_network' => rand(1, 1000), + ':time_server' => rand(1, 1000), + ':time_transfer' => rand(1, 1000) ]; return ['sql' => $sql, 'bind' => $bind]; } - public function getInsertConversionQuery(string $idvisitor, int $idvisit, string $idaction, string $url, int $timestamp, - int $idlink_va, int $idgoal, int $site): array - { + public function getInsertConversionQuery( + string $idvisitor, + int $idvisit, + string $idaction, + string $url, + int $timestamp, + int $idlink_va, + int $idgoal, + int $site + ): array { $sql = " INSERT IGNORE INTO " . Common::prefixTable('log_conversion') . " (idvisit, idsite, idvisitor, server_time, idaction_url, idlink_va, idgoal, buster, @@ -349,10 +352,10 @@ public function getInsertConversionQuery(string $idvisitor, int $idvisit, string ':idgoal' => $idgoal, ':buster' => 0, ':url' => $url, - ':revenue' => round(mt_rand() / mt_getrandmax(),2), - ':visitor_count_visits' => rand(1,10), - ':visitor_returning' => rand(0,1), - ':visitor_seconds_since_first' => rand(1,5000), + ':revenue' => round(mt_rand() / mt_getrandmax(), 2), + ':visitor_count_visits' => rand(1, 10), + ':visitor_returning' => rand(0, 1), + ':visitor_seconds_since_first' => rand(1, 5000), ':config_browser_name' => '', ':config_client_type' => 1, ':config_device_brand' => '', @@ -362,5 +365,4 @@ public function getInsertConversionQuery(string $idvisitor, int $idvisit, string return ['sql' => $sql, 'bind' => $bind]; } - } diff --git a/Generator/VisitsFake.php b/Generator/VisitsFake.php index 453921c..ebb2e8b 100644 --- a/Generator/VisitsFake.php +++ b/Generator/VisitsFake.php @@ -1,4 +1,5 @@ faker->resolution; - $tracker->setResolution( $resolution[0], $resolution[1]); + $tracker->setResolution($resolution[0], $resolution[1]); $tracker->setBrowserHasCookies($this->faker->boolean(90)); - $tracker->setPlugins($flash = $this->faker->boolean(90), $java = $this->faker->boolean(85), $quickTime = $this->faker->boolean(40), $realPlayer = $this->faker->boolean(10), $pdf = $this->faker->boolean(75), $windowsMedia = $this->faker->boolean(60), $silverlight = $this->faker->boolean(5)); + $tracker->setPlugins( + $flash = $this->faker->boolean(90), + $java = $this->faker->boolean(85), + $quickTime = $this->faker->boolean(40), + $realPlayer = $this->faker->boolean(10), + $pdf = $this->faker->boolean(75), + $windowsMedia = $this->faker->boolean(60), + $silverlight = $this->faker->boolean(5) + ); $tracker->setCustomVariable(1, 'gender', $this->faker->gender, 'visit'); $tracker->setCustomVariable(2, 'age', $this->faker->randomDigit, 'visit'); $tracker->setCustomVariable(3, 'languageCode', $this->faker->languageCode, 'visit'); @@ -160,7 +169,7 @@ public function generate($time = false, $idSite = 1, $limit = 1000) if ($this->faker->boolean(10)) { $price = $this->faker->randomNumber(2); - $quantity = $this->faker->numberBetween(1,4); + $quantity = $this->faker->numberBetween(1, 4); $tracker->addEcommerceItem($this->faker->productSku, $this->faker->productName, $this->faker->categories(5), $price, $quantity); diff --git a/Generator/VisitsFromLogs.php b/Generator/VisitsFromLogs.php index 958f7df..b293aa1 100644 --- a/Generator/VisitsFromLogs.php +++ b/Generator/VisitsFromLogs.php @@ -1,4 +1,5 @@ getLogFiles() as $logFile) { - $logParser = new LogParser($logFile); $logs = $logParser->getParsedLogLines(); @@ -157,5 +158,4 @@ private function isDayOfMonthPresentInLogs($dayOfMonth, $parsedLogs) return false; } - } diff --git a/Generator/Websites.php b/Generator/Websites.php index 7648c3f..9a199f0 100644 --- a/Generator/Websites.php +++ b/Generator/Websites.php @@ -1,4 +1,5 @@ iterator; } -} \ No newline at end of file +} diff --git a/LogParser.php b/LogParser.php index 2cf142b..07eda14 100644 --- a/LogParser.php +++ b/LogParser.php @@ -1,4 +1,5 @@ assertNotEmpty($line); } } - } diff --git a/tests/System/CheckDirectDependencyUseCommandTest.php b/tests/System/CheckDirectDependencyUseCommandTest.php index 9a26eef..ae3d745 100644 --- a/tests/System/CheckDirectDependencyUseCommandTest.php +++ b/tests/System/CheckDirectDependencyUseCommandTest.php @@ -1,4 +1,5 @@ usesFoundList[$pluginName]); } -} \ No newline at end of file +} diff --git a/tests/System/GenerateLogsTest.php b/tests/System/GenerateLogsTest.php index ba2d562..fb0d472 100644 --- a/tests/System/GenerateLogsTest.php +++ b/tests/System/GenerateLogsTest.php @@ -1,4 +1,5 @@ new FakeAccess() ); } -} \ No newline at end of file +} From 1ca3bd5276ca8e51bc31bf9b89a956979bf8b3b4 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Wed, 30 Oct 2024 07:26:20 +0530 Subject: [PATCH 08/46] Updated tests to run on php 8.4 from 8.3, #PG-3957 --- .github/workflows/matomo-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/matomo-tests.yml b/.github/workflows/matomo-tests.yml index b849c72..12236df 100644 --- a/.github/workflows/matomo-tests.yml +++ b/.github/workflows/matomo-tests.yml @@ -1,7 +1,7 @@ # Action for running tests # This file has been automatically created. # To recreate it you can run this command -# ./console generate:test-action --plugin="VisitorGenerator" --php-versions="7.2,8.3" --schedule-cron="30 2 * * 6" +# ./console generate:test-action --plugin="VisitorGenerator" --php-versions="7.2,8.4" --schedule-cron="30 2 * * 6" name: Plugin VisitorGenerator Tests @@ -37,7 +37,7 @@ jobs: strategy: fail-fast: false matrix: - php: [ '7.2', '8.3' ] + php: [ '7.2', '8.4' ] target: ['minimum_required_matomo', 'maximum_supported_matomo'] steps: - uses: actions/checkout@v3 From 90a7945d016a0cb251f25d0c92e1caf85e98b0cb Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 26 Nov 2024 08:05:49 +0100 Subject: [PATCH 09/46] Translated using Weblate (Spanish) Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/es/ [ci skip] Co-authored-by: gallegonovato --- lang/es.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lang/es.json b/lang/es.json index c0c4761..90b9aa5 100644 --- a/lang/es.json +++ b/lang/es.json @@ -1,25 +1,25 @@ { "VisitorGenerator": { - "AreYouSure": "¿Está seguro que desea generar visitas falsas?", - "AutomaticReprocess": "Los informes serán reprocesados la próxima vez que visite los informes de Matomo. Esto puede tomar unos minutos.", - "ChoiceYes": "¡Si, estoy seguro!", - "CliToolUsage": "Utilizando la %1$sherramienta Matomo CLI%2$s no solo puede generar más visitas sino también usuarios, sitios web y objetivos.", - "ConfirmVisitorGeneration": "Por favor confirme la creación del visitante marcando la casilla", + "AreYouSure": "¿Generar visitas falsas?", + "AutomaticReprocess": "La próxima vez que visite Matomo , los informes se volverán a procesar. Esto puede tardar unos minutos.", + "ChoiceYes": "Sí", + "CliToolUsage": "Utilizando la %1$sherramienta Matomo CLI%2$s no solo puede generar más visitas sino también usuarios, páginas web y objetivos.", + "ConfirmVisitorGeneration": "Por favor, marque la casilla para confirmar la generación de visitantes", "CustomMatomoUrl": "URL Matomo personalizado", "DaysToCompute": "Días a computar", "GenerateFakeActions": "Esto generará al menos %d acciones falsas en este sitio cada día.", "GeneratedVisitsFor": "Visitas generadas para %1$sy los últimos %2$s dias", - "LogImporterNote": "También existe una herramienta más rápida que permite importar grandes cantidades de datos para pruebas en Matomo, consulta el archivo %1$sREADME%2$s.", + "LogImporterNote": "El archivo README %1$s %2$s tiene información sobre una herramienta más rápida que importa datos de prueba de gran tamaño en Matomo .", "NbRequestsPerSec": "Peticiones por segundo", "NotReversible": "Puede %1$s no%2$s ser posible fácilmente borrar estas visitas de los registros de Matomo.", "NumberOfGeneratedActions": "Número de acciones generadas", - "OverwriteLogFiles": "Puedes sobrescribir los archivos de registro que se utilizan para generar visitas falsas (cambie o agregue archivos en %s). Existen registros de solicitudes a \"matomo.php\" con el formato \"Apache combined log\". Los desarrolladores de complementos pueden crear sus propios archivos de registro colocando los archivos '*.log' en un directorio de datos en sus complementos.", - "PleaseBePatient": "Nota: Generar visitas y acciones puede tardar unos minutos, por favor tenga paciencia…", + "OverwriteLogFiles": "Sobrescriba los archivos de registro \" matomo.php \" para generar visitas falsas en el formato \" registro combinado de Apache\" ( cambie o agregue archivos en %s ). Los desarrolladores de complementos agregan sus propios archivos de registro como archivos '* .log ' en una carpeta ' data ' de su complemento .", + "PleaseBePatient": "Generar visitas y acciones puede tardar unos minutos.", "PluginDescription": "Crear visitas y acciones falsas en Matomo. Generar datos falsos para rellenar informes Matomo.", - "ReRunArchiveScript": "Por favor vuelva a ejecutar el comando './console core:archive' en el crontab para actualizar los informes. %1$sVer \"Cómo configurar el archivo automático de sus informes\"%2$s", - "SelectWebsite": "Seleccionar sitio de internet", + "ReRunArchiveScript": "Vuelva a ejecutar el comando crontab './console core :archive' para actualizar los informes , según %1$s \"Cómo configurar el archivado automático de sus informes \" %2$s", + "SelectWebsite": "Seleccionar página web", "Submit": "Enviar", "VisitorGenerator": "Generador de visitas", - "Warning": "Está a punto de generar visitas falsas que serán grabadas en su base de datos Matomo." + "Warning": "Estás a punto de generar visitas falsas para tu base de datos de Matomo." } } From ab0aa48b7f3217ae884222f0a8928465abd23b84 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 10 Dec 2024 10:00:21 +0000 Subject: [PATCH 10/46] Translated using Weblate (Finnish) Currently translated at 52.3% (11 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/fi/ [ci skip] Co-authored-by: Ricky Tigg --- lang/fi.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/fi.json b/lang/fi.json index a030078..3997367 100644 --- a/lang/fi.json +++ b/lang/fi.json @@ -2,17 +2,17 @@ "VisitorGenerator": { "AreYouSure": "Haluatko varmasti luoda valheellisia käyntejä?", "AutomaticReprocess": "Raportit käsitellään uudelleen, kun käyt seuraavan kerran Matomon raporteissa. Tämä saattaa kestää joitakin minuutteja.", - "ChoiceYes": "Kyllä, olen varma!", + "ChoiceYes": "Kyllä", "ConfirmVisitorGeneration": "Varmista kävijöiden luominen rastittamalla valintalaatikko", "CustomMatomoUrl": "Muokattu Matomon osoite", "DaysToCompute": "Päivien määrä", - "GenerateFakeActions": "Tämä luo vähintään %d kuvitteellista toimintoa tälle sivulle jokaiselle päivälle", + "GenerateFakeActions": "Tämä luo vähintään %d väärennettyä toimintoa tälle sivustolle joka päivä.", "GeneratedVisitsFor": "Tehdyt käynnit %1$s:lla viimeisten %2$s päivän aikana", "LogImporterNote": "On olemassa myös nopeampi työkalu, joka tuo suuria testidatoja Matomoon, katso %1$sREADME%2$s.", "NbRequestsPerSec": "Pyyntöä / sekunti", "NotReversible": "Näitä käyntejä %1$sei voi%2$s helposti poistaa Matomon lokeista.", "NumberOfGeneratedActions": "Toimeenpantujen toimintojen lukumäärä", - "PleaseBePatient": "Huom: Käyntien ja toimintojen luonti saattaa kestää joitakin minuutteja, pyydämme kärsivällisyyttä…", + "PleaseBePatient": "Vierailujen ja toimien luominen voi kestää muutaman minuutin.", "ReRunArchiveScript": "Ole hyvä ja aja uudelleen './console core:archive' crontabissa päivittääksesi raportit. %1$sKatso \"Miten asennan automaattisen raporttien arkistoinnin\"%2$s", "SelectWebsite": "Valitse sivusto", "Submit": "Lähetä", From 6030120e0ec8e2498e4dd2a502aca12deff78ce4 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 11 Dec 2024 22:00:36 +0100 Subject: [PATCH 11/46] Translated using Weblate (Albanian) Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/sq/ [ci skip] Co-authored-by: Besnik Bleta --- lang/sq.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/sq.json b/lang/sq.json index fa2063f..078cb30 100644 --- a/lang/sq.json +++ b/lang/sq.json @@ -16,7 +16,7 @@ "OverwriteLogFiles": "Mbishkruani kartelat regjistër “matomo.php” që të prodhohen vizita gjoja në formatin “Apache combined log” (ndryshoni ose shtoni kartela te %s). Zhvilluesit e shtojcave i shtojnë kartelat e tyre si kartela '*.log' brenda një dosjeje 'data' të shtojcës së tyre.", "PleaseBePatient": "Prodhimi i vizitave dhe veprimeve mund të dojë ca minuta.", "PluginDescription": "Krijoni vizita dhe veprime gjoja në Matomo. Prodhoni të dhëna gjoja, për të populluar me to raporte Matomo.", - "ReRunArchiveScript": "Ju lutemi, rixhironi urdhrin crontab './console core:archive', që të rifreskohen raportet, sipas %1$s“Si të udjiset arkivimi i automatizuar i raporteve tuaja”%2$s", + "ReRunArchiveScript": "Ju lutemi, rixhironi urdhrin crontab './console core:archive', që të rifreskohen raportet, sipas %1$s“Si të ujdiset arkivimi i automatizuar i raporteve tuaja”%2$s", "SelectWebsite": "Përzgjidhni sajt", "Submit": "Parashtroje", "VisitorGenerator": "Prodhues Vizitorësh", From 45e5074170063c4d56ed1509152e4c101c8d3275 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 15 Jan 2025 04:00:44 +0100 Subject: [PATCH 12/46] Translated using Weblate (Tamil) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 90.4% (19 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ta/ [ci skip] Co-authored-by: தமிழ்நேரம் --- lang/ta.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/lang/ta.json b/lang/ta.json index 0967ef4..a92de87 100644 --- a/lang/ta.json +++ b/lang/ta.json @@ -1 +1,25 @@ -{} +{ + "VisitorGenerator": { + "AreYouSure": "போலி வருகைகளை உருவாக்கவா?", + "AutomaticReprocess": "அடுத்த முறை நீங்கள் மாடோமோ அறிக்கைகளைப் பார்வையிடும்போது அவை மீண்டும் செயலாக்கப்படும். இதற்கு சில நிமிடங்கள் ஆகலாம்.", + "ChoiceYes": "ஆம்", + "CliToolUsage": "%1 $ ச்மாடோமோ சி.எல்.ஐ கருவி %2$s இன்னும் அதிகமான வருகைகளை உருவாக்குவது மட்டுமல்லாமல், பயனர்கள், வலைத்தளங்கள் மற்றும் குறிக்கோள்களையும் உருவாக்க முடியும்.", + "ConfirmVisitorGeneration": "பார்வையாளர் தலைமுறையை உறுதிப்படுத்த பெட்டியைத் தட்டவும்", + "CustomMatomoUrl": "தனிப்பயன் மாடோமோ முகவரி", + "DaysToCompute": "கணக்கிட நாட்கள்", + "GenerateFakeActions": "இது ஒவ்வொரு நாளும் இந்த தளத்தில் குறைந்தது %d போலி நடவடிக்கைகளை உருவாக்கும்.", + "GeneratedVisitsFor": "%1$s மற்றும் கடைசி %2$s நாட்களுக்கு உருவாக்கப்பட்ட வருகைகள்", + "LogImporterNote": "%1$sREADME %2$s MATOMO இல் பெரிய சோதனை தரவை இறக்குமதி செய்யும் வேகமான கருவியைப் பற்றிய தகவலைக் கொண்டுள்ளது.", + "NbRequestsPerSec": "ஒரு நொடிக்கு கோரிக்கைகள்", + "NotReversible": "இந்த வருகைகளை மேடோமோ பதிவுகளிலிருந்து எளிதாக நீக்க இது %1$s %2$s சாத்தியமில்லை.", + "NumberOfGeneratedActions": "உருவாக்கப்பட்ட செயல்களின் எண்ணிக்கை", + "OverwriteLogFiles": "\"அப்பாச்சி ஒருங்கிணைந்த பதிவு\" வடிவத்தில் போலி வருகைகளை உருவாக்க \"matomo.php\" பதிவு கோப்புகளை மேலெழுதவும் ( %s இல் கோப்புகளை மாற்றவும் அல்லது சேர்க்கவும்). சொருகி உருவாக்குபவர்கள் தங்கள் சொந்த பதிவு கோப்புகளை '*.log' கோப்புகளாக தங்கள் சொருகி 'தரவு' கோப்புறையில் சேர்க்கின்றனர்.", + "PleaseBePatient": "வருகைகள் மற்றும் செயல்களை உருவாக்குவது சில நிமிடங்கள் ஆகலாம்.", + "PluginDescription": "மாடோமோவில் போலி வருகைகள் மற்றும் செயல்களை உருவாக்கவும். மாடோமோ அறிக்கைகளை விரிவுபடுத்த போலி தரவை உருவாக்குங்கள்.", + "ReRunArchiveScript": "தயவுசெய்து குண்டியை மீண்டும் இயக்கவும்.", + "SelectWebsite": "வலைத்தளத்தைத் தேர்ந்தெடுக்கவும்", + "Submit": "சமர்ப்பிக்கவும்", + "VisitorGenerator": "பார்வையாளர் செனரேட்டர்", + "Warning": "உங்கள் மாடோமோ தரவுத்தளத்திற்கான போலி வருகைகளை நீங்கள் உருவாக்க உள்ளீர்கள்." + } +} From 5aedb57c413878c08d4f886e36e90b90d0dc6c4f Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Fri, 17 Jan 2025 14:04:59 +0100 Subject: [PATCH 13/46] Translated using Weblate (Tamil) (#162) Currently translated at 90.4% (19 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ta/ [ci skip] Co-authored-by: Stefan --- lang/ta.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/ta.json b/lang/ta.json index a92de87..231b702 100644 --- a/lang/ta.json +++ b/lang/ta.json @@ -3,7 +3,7 @@ "AreYouSure": "போலி வருகைகளை உருவாக்கவா?", "AutomaticReprocess": "அடுத்த முறை நீங்கள் மாடோமோ அறிக்கைகளைப் பார்வையிடும்போது அவை மீண்டும் செயலாக்கப்படும். இதற்கு சில நிமிடங்கள் ஆகலாம்.", "ChoiceYes": "ஆம்", - "CliToolUsage": "%1 $ ச்மாடோமோ சி.எல்.ஐ கருவி %2$s இன்னும் அதிகமான வருகைகளை உருவாக்குவது மட்டுமல்லாமல், பயனர்கள், வலைத்தளங்கள் மற்றும் குறிக்கோள்களையும் உருவாக்க முடியும்.", + "CliToolUsage": "%1$sச்மாடோமோ சி.எல்.ஐ கருவி %2$s இன்னும் அதிகமான வருகைகளை உருவாக்குவது மட்டுமல்லாமல், பயனர்கள், வலைத்தளங்கள் மற்றும் குறிக்கோள்களையும் உருவாக்க முடியும்.", "ConfirmVisitorGeneration": "பார்வையாளர் தலைமுறையை உறுதிப்படுத்த பெட்டியைத் தட்டவும்", "CustomMatomoUrl": "தனிப்பயன் மாடோமோ முகவரி", "DaysToCompute": "கணக்கிட நாட்கள்", @@ -16,7 +16,7 @@ "OverwriteLogFiles": "\"அப்பாச்சி ஒருங்கிணைந்த பதிவு\" வடிவத்தில் போலி வருகைகளை உருவாக்க \"matomo.php\" பதிவு கோப்புகளை மேலெழுதவும் ( %s இல் கோப்புகளை மாற்றவும் அல்லது சேர்க்கவும்). சொருகி உருவாக்குபவர்கள் தங்கள் சொந்த பதிவு கோப்புகளை '*.log' கோப்புகளாக தங்கள் சொருகி 'தரவு' கோப்புறையில் சேர்க்கின்றனர்.", "PleaseBePatient": "வருகைகள் மற்றும் செயல்களை உருவாக்குவது சில நிமிடங்கள் ஆகலாம்.", "PluginDescription": "மாடோமோவில் போலி வருகைகள் மற்றும் செயல்களை உருவாக்கவும். மாடோமோ அறிக்கைகளை விரிவுபடுத்த போலி தரவை உருவாக்குங்கள்.", - "ReRunArchiveScript": "தயவுசெய்து குண்டியை மீண்டும் இயக்கவும்.", + "ReRunArchiveScript": "", "SelectWebsite": "வலைத்தளத்தைத் தேர்ந்தெடுக்கவும்", "Submit": "சமர்ப்பிக்கவும்", "VisitorGenerator": "பார்வையாளர் செனரேட்டர்", From 4192651e56e64a2f6fe451c00348c90d002b854a Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 29 Jan 2025 18:05:52 +0100 Subject: [PATCH 14/46] Translated using Weblate (French) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 95.2% (20 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/fr/ [ci skip] Co-authored-by: Vincèn PUJOL --- lang/fr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/fr.json b/lang/fr.json index f4bea06..76dd369 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -15,11 +15,11 @@ "NumberOfGeneratedActions": "Nombre d'actions générées", "OverwriteLogFiles": "Vous pouvez écraser les fichiers de log \"matomo.php\" au format \"log combiné Apache\" utilisés pour générer les visites factices (modifier ou ajouter des fichiers dans %s). Les développeurs de composants additionnels peuvent fournir leurs propres fichiers de log '*.log' dans un répertoire 'data' au sein de leur composant.", "PleaseBePatient": "Générer des visites et des actions peut prendre quelques minutes.", - "PluginDescription": "Créer des visites et actions de test dans Matomo. Générer des données simulées pour remplir les rapports Matomo.", + "PluginDescription": "Crée des visites et actions de test dans Matomo. Génére des données simulées pour remplir les rapports Matomo.", "ReRunArchiveScript": "Veuillez exécuter à nouveau la tâche planifiée crontab './console core:archive' afin de rafraîchir les rapports, comme le prévoit la documentation %1$s\"Comment mettre en place l'archivage automatique de vos rapports\"%2$s", "SelectWebsite": "Sélectionner le site Web", "Submit": "Soumettre", "VisitorGenerator": "Générateur de visites", - "Warning": "Vous êtes sur le point de générer des visites factices qui seront enregistrées dans votre base de donnés Matomo." + "Warning": "Vous êtes sur le point de générer des visites factices qui seront enregistrées dans votre base de données Matomo." } } From 5ba7eb194475305b2a539362ea12a88066189e5d Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Tue, 4 Feb 2025 10:46:53 +1300 Subject: [PATCH 15/46] Updating dependency to eliminate deprecation warning --- composer.json | 2 +- composer.lock | 175 +- vendor/composer/InstalledVersions.php | 15 +- vendor/composer/LICENSE | 2 + vendor/composer/autoload_files.php | 10 + vendor/composer/autoload_psr4.php | 3 +- vendor/composer/autoload_real.php | 12 + vendor/composer/autoload_static.php | 14 +- vendor/composer/installed.json | 177 +- vendor/composer/installed.php | 36 +- vendor/composer/platform_check.php | 4 +- vendor/fakerphp/faker/CHANGELOG.md | 209 + vendor/{fzaninotto => fakerphp}/faker/LICENSE | 0 vendor/fakerphp/faker/README.md | 114 + vendor/fakerphp/faker/composer.json | 56 + vendor/fakerphp/faker/rector-migrate.php | 161 + .../faker/src/Faker/Calculator/Ean.php | 50 + .../faker/src/Faker/Calculator/Iban.php | 38 +- .../faker/src/Faker/Calculator/Inn.php | 24 +- .../faker/src/Faker/Calculator/Isbn.php | 60 + .../faker/src/Faker/Calculator/Luhn.php | 23 +- .../faker/src/Faker/Calculator/TCNo.php | 43 + .../faker/src/Faker/ChanceGenerator.php | 60 + .../faker/src/Faker/Container/Container.php | 139 + .../src/Faker/Container/ContainerBuilder.php | 68 + .../Faker/Container/ContainerException.php | 14 + .../Faker/Container/ContainerInterface.php | 9 + .../Container/NotInContainerException.php | 14 + .../fakerphp/faker/src/Faker/Core/Barcode.php | 52 + .../fakerphp/faker/src/Faker/Core/Blood.php | 42 + .../fakerphp/faker/src/Faker/Core/Color.php | 177 + .../faker/src/Faker/Core/Coordinates.php | 78 + .../faker/src/Faker/Core/DateTime.php | 217 ++ vendor/fakerphp/faker/src/Faker/Core/File.php | 564 +++ .../fakerphp/faker/src/Faker/Core/Number.php | 83 + vendor/fakerphp/faker/src/Faker/Core/Uuid.php | 65 + .../fakerphp/faker/src/Faker/Core/Version.php | 69 + .../faker/src/Faker/DefaultGenerator.php | 21 +- .../faker/src/Faker/Documentor.php | 26 +- .../src/Faker/Extension/AddressExtension.php | 39 + .../src/Faker/Extension/BarcodeExtension.php | 41 + .../src/Faker/Extension/BloodExtension.php | 30 + .../src/Faker/Extension/ColorExtension.php | 63 + .../src/Faker/Extension/CompanyExtension.php | 21 + .../src/Faker/Extension/CountryExtension.php | 14 + .../src/Faker/Extension/DateTimeExtension.php | 242 ++ .../faker/src/Faker/Extension/Extension.php | 14 + .../src/Faker/Extension/ExtensionNotFound.php | 12 + .../src/Faker/Extension/FileExtension.php | 28 + .../Extension/GeneratorAwareExtension.php | 20 + .../GeneratorAwareExtensionTrait.php | 30 + .../faker/src/Faker/Extension/Helper.php | 106 + .../src/Faker/Extension/NumberExtension.php | 53 + .../src/Faker/Extension/PersonExtension.php | 52 + .../Faker/Extension/PhoneNumberExtension.php | 19 + .../src/Faker/Extension/UuidExtension.php | 16 + .../src/Faker/Extension/VersionExtension.php | 21 + .../faker/src/Faker/Factory.php | 16 +- vendor/fakerphp/faker/src/Faker/Generator.php | 985 +++++ .../fakerphp/faker/src/Faker/Guesser/Name.php | 180 + .../Faker/ORM/CakePHP/ColumnTypeGuesser.php | 28 +- .../src/Faker/ORM/CakePHP/EntityPopulator.php | 15 +- .../faker/src/Faker/ORM/CakePHP/Populator.php | 16 +- .../Faker/ORM/Doctrine/ColumnTypeGuesser.php | 58 +- .../Faker/ORM/Doctrine/EntityPopulator.php | 73 +- .../src/Faker/ORM/Doctrine/Populator.php | 58 +- .../ORM/Doctrine/backward-compatibility.php | 11 + .../Faker/ORM/Mandango/ColumnTypeGuesser.php | 32 +- .../Faker/ORM/Mandango/EntityPopulator.php | 27 +- .../src/Faker/ORM/Mandango/Populator.php | 18 +- .../Faker/ORM/Propel/ColumnTypeGuesser.php | 109 + .../src/Faker/ORM/Propel/EntityPopulator.php | 57 +- .../faker/src/Faker/ORM/Propel/Populator.php | 19 +- .../Faker/ORM/Propel2/ColumnTypeGuesser.php | 59 +- .../src/Faker/ORM/Propel2/EntityPopulator.php | 59 +- .../faker/src/Faker/ORM/Propel2/Populator.php | 19 +- .../src/Faker/ORM/Spot/ColumnTypeGuesser.php | 41 +- .../src/Faker/ORM/Spot/EntityPopulator.php | 54 +- .../faker/src/Faker/ORM/Spot/Populator.php | 37 +- .../faker/src/Faker/Provider/Address.php | 69 +- .../faker/src/Faker/Provider/Barcode.php | 107 + .../faker/src/Faker/Provider/Base.php | 306 +- .../faker/src/Faker/Provider/Biased.php | 13 +- .../faker/src/Faker/Provider/Color.php | 59 +- .../faker/src/Faker/Provider/Company.php | 10 +- .../faker/src/Faker/Provider/DateTime.php | 145 +- .../faker/src/Faker/Provider/File.php | 610 +++ .../faker/src/Faker/Provider/HtmlLorem.php | 199 +- .../faker/src/Faker/Provider/Image.php | 196 + .../faker/src/Faker/Provider/Internet.php | 407 ++ .../faker/src/Faker/Provider/Lorem.php | 87 +- .../faker/src/Faker/Provider/Medical.php | 34 + .../src/Faker/Provider/Miscellaneous.php | 127 +- .../faker/src/Faker/Provider/Payment.php | 312 ++ .../faker/src/Faker/Provider/Person.php | 67 +- .../faker/src/Faker/Provider/PhoneNumber.php | 270 ++ .../faker/src/Faker/Provider/Text.php | 87 +- .../faker/src/Faker/Provider/UserAgent.php | 219 ++ .../faker/src/Faker/Provider/Uuid.php | 11 +- .../src/Faker/Provider/ar_EG/Address.php | 217 ++ .../faker/src/Faker/Provider/ar_EG/Color.php | 65 + .../src/Faker/Provider/ar_EG/Company.php | 85 + .../src/Faker/Provider/ar_EG/Internet.php | 93 + .../src/Faker/Provider/ar_EG/Payment.php | 16 + .../faker/src/Faker/Provider/ar_EG/Person.php | 107 + .../faker/src/Faker/Provider/ar_EG/Text.php | 31 + .../src/Faker/Provider/ar_JO/Address.php | 52 +- .../src/Faker/Provider/ar_JO/Company.php | 39 +- .../src/Faker/Provider/ar_JO/Internet.php | 20 +- .../faker/src/Faker/Provider/ar_JO/Person.php | 30 +- .../faker/src/Faker/Provider/ar_JO/Text.php | 1 + .../src/Faker/Provider/ar_SA/Address.php | 50 +- .../faker/src/Faker/Provider/ar_SA/Color.php | 18 +- .../src/Faker/Provider/ar_SA/Company.php | 42 +- .../src/Faker/Provider/ar_SA/Internet.php | 20 +- .../src/Faker/Provider/ar_SA/Payment.php | 11 +- .../faker/src/Faker/Provider/ar_SA/Person.php | 37 +- .../faker/src/Faker/Provider/ar_SA/Text.php | 1 + .../src/Faker/Provider/at_AT/Payment.php | 11 + .../src/Faker/Provider/bg_BG/Internet.php | 9 + .../src/Faker/Provider/bg_BG/Payment.php | 17 +- .../faker/src/Faker/Provider/bg_BG/Person.php | 47 +- .../src/Faker/Provider/bg_BG/PhoneNumber.php | 4 +- .../src/Faker/Provider/bn_BD/Address.php | 46 +- .../src/Faker/Provider/bn_BD/Company.php | 18 +- .../faker/src/Faker/Provider/bn_BD/Person.php | 26 +- .../src/Faker/Provider/bn_BD/PhoneNumber.php | 2 +- .../faker/src/Faker/Provider/bn_BD/Utils.php | 2 +- .../src/Faker/Provider/cs_CZ/Address.php | 28 +- .../src/Faker/Provider/cs_CZ/Company.php | 35 +- .../src/Faker/Provider/cs_CZ/DateTime.php | 28 +- .../src/Faker/Provider/cs_CZ/Internet.php | 9 + .../src/Faker/Provider/cs_CZ/Payment.php | 11 +- .../faker/src/Faker/Provider/cs_CZ/Person.php | 538 +++ .../src/Faker/Provider/cs_CZ/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/cs_CZ/Text.php | 1 + .../src/Faker/Provider/da_DK/Address.php | 71 +- .../src/Faker/Provider/da_DK/Company.php | 13 +- .../src/Faker/Provider/da_DK/Internet.php | 17 +- .../src/Faker/Provider/da_DK/Payment.php | 11 +- .../faker/src/Faker/Provider/da_DK/Person.php | 38 +- .../src/Faker/Provider/da_DK/PhoneNumber.php | 7 +- .../src/Faker/Provider/de_AT/Address.php | 104 +- .../src/Faker/Provider/de_AT/Company.php | 13 + .../src/Faker/Provider/de_AT/Internet.php | 9 + .../src/Faker/Provider/de_AT}/Payment.php | 24 +- .../faker/src/Faker/Provider/de_AT/Person.php | 78 +- .../src/Faker/Provider/de_AT/PhoneNumber.php | 8 +- .../faker/src/Faker/Provider/de_AT/Text.php | 0 .../src/Faker/Provider/de_CH/Address.php | 118 +- .../src/Faker/Provider/de_CH/Company.php | 6 +- .../src/Faker/Provider/de_CH/Internet.php | 8 +- .../src/Faker/Provider/de_CH/Payment.php | 11 +- .../faker/src/Faker/Provider/de_CH/Person.php | 22 +- .../src/Faker/Provider/de_CH/PhoneNumber.php | 12 +- .../faker/src/Faker/Provider/de_CH/Text.php | 2 + .../src/Faker/Provider/de_DE/Address.php | 49 +- .../src/Faker/Provider/de_DE/Company.php | 14 +- .../src/Faker/Provider/de_DE/Internet.php | 26 + .../src/Faker/Provider/de_DE/Payment.php | 16 +- .../faker/src/Faker/Provider/de_DE/Person.php | 45 +- .../src/Faker/Provider/de_DE/PhoneNumber.php | 127 + .../faker/src/Faker/Provider/de_DE/Text.php | 2 + .../src/Faker/Provider/el_CY/Address.php | 28 +- .../src/Faker/Provider/el_CY/Company.php | 8 +- .../src/Faker/Provider/el_CY/Internet.php | 9 + .../src/Faker/Provider/el_CY/Payment.php | 9 +- .../faker/src/Faker/Provider/el_CY/Person.php | 25 +- .../src/Faker/Provider/el_CY/PhoneNumber.php | 8 +- .../src/Faker/Provider/el_GR/Address.php | 36 +- .../src/Faker/Provider/el_GR/Company.php | 30 +- .../src/Faker/Provider/el_GR/Payment.php | 11 +- .../faker/src/Faker/Provider/el_GR/Person.php | 49 +- .../src/Faker/Provider/el_GR/PhoneNumber.php | 324 ++ .../faker/src/Faker/Provider/el_GR/Text.php | 5 +- .../src/Faker/Provider/en_AU/Address.php | 42 +- .../src/Faker/Provider/en_AU/Internet.php | 9 + .../src/Faker/Provider/en_AU/PhoneNumber.php | 14 +- .../src/Faker/Provider/en_CA/Address.php | 34 +- .../src/Faker/Provider/en_CA/PhoneNumber.php | 4 +- .../src/Faker/Provider/en_GB/Address.php | 174 + .../src/Faker/Provider/en_GB/Company.php | 130 + .../src/Faker/Provider/en_GB/Internet.php | 9 + .../src/Faker/Provider/en_GB/Payment.php | 11 +- .../faker/src/Faker/Provider/en_GB/Person.php | 48 +- .../src/Faker/Provider/en_GB/PhoneNumber.php | 22 +- .../src/Faker/Provider/en_HK/Address.php | 51 +- .../src/Faker/Provider/en_HK/Internet.php | 12 +- .../src/Faker/Provider/en_HK/PhoneNumber.php | 11 +- .../src/Faker/Provider/en_IN/Address.php | 128 +- .../src/Faker/Provider/en_IN/Internet.php | 9 + .../faker/src/Faker/Provider/en_IN/Person.php | 125 + .../src/Faker/Provider/en_IN/PhoneNumber.php | 14 +- .../src/Faker/Provider/en_NG/Address.php | 20 +- .../src/Faker/Provider/en_NG/Internet.php | 8 + .../faker/src/Faker/Provider/en_NG/Person.php | 37 +- .../src/Faker/Provider/en_NG/PhoneNumber.php | 133 + .../src/Faker/Provider/en_NZ/Address.php | 36 +- .../src/Faker/Provider/en_NZ/Internet.php | 7 +- .../src/Faker/Provider/en_NZ/PhoneNumber.php | 37 +- .../src/Faker/Provider/en_PH/Address.php | 44 +- .../src/Faker/Provider/en_PH/PhoneNumber.php | 7 +- .../src/Faker/Provider/en_SG/Address.php | 41 +- .../faker/src/Faker/Provider/en_SG/Person.php | 74 + .../src/Faker/Provider/en_SG/PhoneNumber.php | 54 +- .../src/Faker/Provider/en_UG/Address.php | 101 + .../src/Faker/Provider/en_UG/Internet.php | 9 + .../faker/src/Faker/Provider/en_UG/Person.php | 133 + .../src/Faker/Provider/en_UG/PhoneNumber.php | 6 +- .../src/Faker/Provider/en_US/Address.php | 52 +- .../src/Faker/Provider/en_US/Company.php | 69 +- .../src/Faker/Provider/en_US/Payment.php | 3 +- .../faker/src/Faker/Provider/en_US/Person.php | 48 +- .../src/Faker/Provider/en_US/PhoneNumber.php | 55 +- .../faker/src/Faker/Provider/en_US/Text.php | 1 + .../src/Faker/Provider/en_ZA/Address.php | 38 +- .../src/Faker/Provider/en_ZA/Company.php | 9 +- .../src/Faker/Provider/en_ZA/Internet.php | 23 + .../faker/src/Faker/Provider/en_ZA/Person.php | 42 +- .../src/Faker/Provider/en_ZA/PhoneNumber.php | 40 +- .../src/Faker/Provider/es_AR/Address.php | 42 +- .../src/Faker/Provider/es_AR/Company.php | 62 +- .../faker/src/Faker/Provider/es_AR/Person.php | 32 +- .../src/Faker/Provider/es_AR/PhoneNumber.php | 4 +- .../src/Faker/Provider/es_ES/Address.php | 101 + .../faker/src/Faker/Provider/es_ES/Color.php | 4 +- .../src/Faker/Provider/es_ES/Company.php | 64 +- .../src/Faker/Provider/es_ES/Internet.php | 9 + .../src/Faker/Provider/es_ES/Payment.php | 13 +- .../faker/src/Faker/Provider/es_ES/Person.php | 34 +- .../src/Faker/Provider/es_ES/PhoneNumber.php | 12 +- .../faker/src/Faker/Provider/es_ES/Text.php | 1 + .../src/Faker/Provider/es_PE/Address.php | 36 +- .../src/Faker/Provider/es_PE/Company.php | 82 +- .../faker/src/Faker/Provider/es_PE/Person.php | 35 +- .../src/Faker/Provider/es_PE/PhoneNumber.php | 4 +- .../src/Faker/Provider/es_VE/Address.php | 46 +- .../src/Faker/Provider/es_VE/Company.php | 18 +- .../src/Faker/Provider/es_VE/Internet.php | 9 + .../faker/src/Faker/Provider/es_VE/Person.php | 53 +- .../src/Faker/Provider/es_VE/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/et_EE/Person.php | 84 + .../src/Faker/Provider/fa_IR/Address.php | 52 +- .../src/Faker/Provider/fa_IR/Company.php | 29 +- .../src/Faker/Provider/fa_IR/Internet.php | 28 +- .../faker/src/Faker/Provider/fa_IR/Person.php | 61 +- .../src/Faker/Provider/fa_IR/PhoneNumber.php | 76 + .../faker/src/Faker/Provider/fa_IR/Text.php | 15 +- .../src/Faker/Provider/fi_FI/Address.php | 48 +- .../src/Faker/Provider/fi_FI/Company.php | 62 +- .../src/Faker/Provider/fi_FI/Internet.php | 9 + .../src/Faker/Provider/fi_FI/Payment.php | 11 +- .../faker/src/Faker/Provider/fi_FI/Person.php | 61 +- .../src/Faker/Provider/fi_FI/PhoneNumber.php | 24 +- .../src/Faker/Provider/fr_BE/Address.php | 72 + .../faker/src/Faker/Provider/fr_BE/Color.php | 7 + .../src/Faker/Provider/fr_BE/Company.php | 13 + .../src/Faker/Provider/fr_BE/Internet.php | 9 + .../src/Faker/Provider/fr_BE/Payment.php | 15 +- .../faker/src/Faker/Provider/fr_BE/Person.php | 22 +- .../src/Faker/Provider/fr_BE/PhoneNumber.php | 4 +- .../src/Faker/Provider/fr_CA/Address.php | 52 +- .../faker/src/Faker/Provider/fr_CA/Color.php | 7 + .../src/Faker/Provider/fr_CA/Company.php | 0 .../faker/src/Faker/Provider/fr_CA/Person.php | 22 +- .../faker/src/Faker/Provider/fr_CA/Text.php | 6 +- .../src/Faker/Provider/fr_CH/Address.php | 102 +- .../faker/src/Faker/Provider/fr_CH/Color.php | 7 + .../src/Faker/Provider/fr_CH/Company.php | 6 +- .../src/Faker/Provider/fr_CH/Internet.php | 9 + .../src/Faker/Provider/fr_CH/Payment.php | 11 +- .../faker/src/Faker/Provider/fr_CH/Person.php | 29 +- .../src/Faker/Provider/fr_CH/PhoneNumber.php | 8 +- .../faker/src/Faker/Provider/fr_CH/Text.php | 1 - .../src/Faker/Provider/fr_FR/Address.php | 104 +- .../faker/src/Faker/Provider/fr_FR/Color.php | 40 + .../src/Faker/Provider/fr_FR/Company.php | 45 +- .../src/Faker/Provider/fr_FR/Internet.php | 9 + .../src/Faker/Provider/fr_FR/Payment.php | 13 +- .../faker/src/Faker/Provider/fr_FR/Person.php | 35 +- .../src/Faker/Provider/fr_FR/PhoneNumber.php | 77 +- .../faker/src/Faker/Provider/fr_FR/Text.php | 1 + .../src/Faker/Provider/he_IL/Address.php | 64 +- .../src/Faker/Provider/he_IL/Company.php | 8 +- .../src/Faker/Provider/he_IL/Payment.php | 11 +- .../faker/src/Faker/Provider/he_IL/Person.php | 40 +- .../src/Faker/Provider/he_IL/PhoneNumber.php | 6 +- .../src/Faker/Provider/hr_HR/Address.php | 41 +- .../src/Faker/Provider/hr_HR/Company.php | 16 +- .../src/Faker/Provider/hr_HR/Payment.php | 11 +- .../faker/src/Faker/Provider/hr_HR/Person.php | 24 +- .../src/Faker/Provider/hr_HR/PhoneNumber.php | 4 +- .../src/Faker/Provider/hu_HU/Address.php | 67 +- .../src/Faker/Provider/hu_HU/Company.php | 6 +- .../src/Faker/Provider/hu_HU/Payment.php | 11 +- .../faker/src/Faker/Provider/hu_HU/Person.php | 82 +- .../src/Faker/Provider/hu_HU/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/hu_HU/Text.php | 2 +- .../src/Faker/Provider/hy_AM/Address.php | 132 + .../faker/src/Faker/Provider/hy_AM/Color.php | 4 +- .../src/Faker/Provider/hy_AM/Company.php | 24 +- .../src/Faker/Provider/hy_AM/Internet.php | 9 + .../faker/src/Faker/Provider/hy_AM/Person.php | 50 +- .../src/Faker/Provider/hy_AM/PhoneNumber.php | 14 +- .../src/Faker/Provider/id_ID/Address.php | 319 ++ .../faker/src/Faker/Provider/id_ID/Color.php | 25 +- .../src/Faker/Provider/id_ID/Company.php | 64 + .../src/Faker/Provider/id_ID/Internet.php | 12 +- .../faker/src/Faker/Provider/id_ID/Person.php | 86 +- .../src/Faker/Provider/id_ID/PhoneNumber.php | 4 +- .../src/Faker/Provider/is_IS/Address.php | 67 +- .../src/Faker/Provider/is_IS/Company.php | 11 +- .../src/Faker/Provider/is_IS/Internet.php | 13 +- .../src/Faker/Provider/is_IS/Payment.php | 11 +- .../faker/src/Faker/Provider/is_IS/Person.php | 142 + .../src/Faker/Provider/is_IS/PhoneNumber.php | 7 +- .../src/Faker/Provider/it_CH/Address.php | 102 +- .../src/Faker/Provider/it_CH/Company.php | 6 +- .../src/Faker/Provider/it_CH/Internet.php | 9 + .../src/Faker/Provider/it_CH/Payment.php | 11 +- .../faker/src/Faker/Provider/it_CH/Person.php | 19 +- .../src/Faker/Provider/it_CH/PhoneNumber.php | 8 +- .../faker/src/Faker/Provider/it_CH/Text.php | 1 - .../src/Faker/Provider/it_IT/Address.php | 97 + .../src/Faker/Provider/it_IT/Company.php | 85 +- .../src/Faker/Provider/it_IT/Internet.php | 9 + .../src/Faker/Provider/it_IT/Payment.php | 11 +- .../faker/src/Faker/Provider/it_IT/Person.php | 113 + .../src/Faker/Provider/it_IT/PhoneNumber.php | 6 +- .../faker/src/Faker/Provider/it_IT/Text.php | 2079 ++++++++++ .../src/Faker/Provider/ja_JP/Address.php | 58 +- .../src/Faker/Provider/ja_JP/Company.php | 8 +- .../src/Faker/Provider/ja_JP/Internet.php | 26 +- .../faker/src/Faker/Provider/ja_JP/Person.php | 54 +- .../src/Faker/Provider/ja_JP/PhoneNumber.php | 6 +- .../faker/src/Faker/Provider/ja_JP/Text.php | 19 +- .../src/Faker/Provider/ka_GE/Address.php | 83 +- .../faker/src/Faker/Provider/ka_GE/Color.php | 8 +- .../src/Faker/Provider/ka_GE/Company.php | 23 +- .../src/Faker/Provider/ka_GE/DateTime.php | 15 +- .../src/Faker/Provider/ka_GE/Internet.php | 12 +- .../src/Faker/Provider/ka_GE/Payment.php | 16 +- .../faker/src/Faker/Provider/ka_GE/Person.php | 24 +- .../src/Faker/Provider/ka_GE/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/ka_GE/Text.php | 4 +- .../src/Faker/Provider/kk_KZ/Address.php | 40 +- .../faker/src/Faker/Provider/kk_KZ/Color.php | 6 +- .../src/Faker/Provider/kk_KZ/Company.php | 34 +- .../src/Faker/Provider/kk_KZ/Internet.php | 9 + .../src/Faker/Provider/kk_KZ/Payment.php | 16 +- .../faker/src/Faker/Provider/kk_KZ/Person.php | 102 +- .../src/Faker/Provider/kk_KZ/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/kk_KZ/Text.php | 4 +- .../src/Faker/Provider/ko_KR/Address.php | 32 +- .../src/Faker/Provider/ko_KR/Company.php | 10 +- .../src/Faker/Provider/ko_KR/Internet.php | 22 +- .../faker/src/Faker/Provider/ko_KR/Person.php | 21 +- .../src/Faker/Provider/ko_KR/PhoneNumber.php | 16 +- .../faker/src/Faker/Provider/ko_KR/Text.php | 4 +- .../src/Faker/Provider/lt_LT/Address.php | 209 + .../src/Faker/Provider/lt_LT/Company.php | 6 +- .../src/Faker/Provider/lt_LT/Internet.php | 8 +- .../src/Faker/Provider/lt_LT/Payment.php | 11 +- .../faker/src/Faker/Provider/lt_LT/Person.php | 390 ++ .../src/Faker/Provider/lt_LT/PhoneNumber.php | 4 +- .../src/Faker/Provider/lv_LV/Address.php | 44 +- .../faker/src/Faker/Provider/lv_LV/Color.php | 12 +- .../src/Faker/Provider/lv_LV/Internet.php | 9 + .../src/Faker/Provider/lv_LV/Payment.php | 11 +- .../faker/src/Faker/Provider/lv_LV/Person.php | 93 +- .../src/Faker/Provider/lv_LV/PhoneNumber.php | 6 +- .../src/Faker/Provider/me_ME/Address.php | 54 +- .../src/Faker/Provider/me_ME/Company.php | 18 +- .../src/Faker/Provider/me_ME/Payment.php | 22 + .../faker/src/Faker/Provider/me_ME/Person.php | 22 +- .../src/Faker/Provider/me_ME/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/mn_MN/Person.php | 36 +- .../src/Faker/Provider/mn_MN/PhoneNumber.php | 6 +- .../src/Faker/Provider/ms_MY/Address.php | 710 ++++ .../src/Faker/Provider/ms_MY/Company.php | 105 + .../Faker/Provider/ms_MY/Miscellaneous.php | 88 +- .../src/Faker/Provider/ms_MY/Payment.php | 120 +- .../faker/src/Faker/Provider/ms_MY/Person.php | 812 ++++ .../src/Faker/Provider/ms_MY/PhoneNumber.php | 82 +- .../src/Faker/Provider/nb_NO/Address.php | 197 + .../src/Faker/Provider/nb_NO/Company.php | 18 +- .../src/Faker/Provider/nb_NO/Payment.php | 11 +- .../faker/src/Faker/Provider/nb_NO/Person.php | 335 ++ .../src/Faker/Provider/nb_NO/PhoneNumber.php | 12 +- .../src/Faker/Provider/ne_NP/Address.php | 60 +- .../src/Faker/Provider/ne_NP/Internet.php | 12 +- .../src/Faker/Provider/ne_NP/Payment.php | 316 ++ .../faker/src/Faker/Provider/ne_NP/Person.php | 24 +- .../src/Faker/Provider/ne_NP/PhoneNumber.php | 4 +- .../src/Faker/Provider/nl_BE/Address.php | 40 +- .../src/Faker/Provider/nl_BE/Company.php | 13 + .../src/Faker/Provider/nl_BE/Internet.php | 9 + .../src/Faker/Provider/nl_BE/Payment.php | 26 +- .../faker/src/Faker/Provider/nl_BE/Person.php | 48 +- .../src/Faker/Provider/nl_BE/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/nl_BE/Text.php | 1 + .../src/Faker/Provider/nl_NL/Address.php | 56 +- .../faker/src/Faker/Provider/nl_NL/Color.php | 10 +- .../src/Faker/Provider/nl_NL/Company.php | 49 +- .../src/Faker/Provider/nl_NL/Internet.php | 9 + .../src/Faker/Provider/nl_NL/Payment.php | 11 +- .../faker/src/Faker/Provider/nl_NL/Person.php | 90 +- .../src/Faker/Provider/nl_NL/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/nl_NL/Text.php | 1 + .../src/Faker/Provider/pl_PL/Address.php | 209 + .../faker/src/Faker/Provider/pl_PL/Color.php | 40 + .../src/Faker/Provider/pl_PL/Company.php | 44 +- .../src/Faker/Provider/pl_PL/Internet.php | 9 + .../src/Faker/Provider/pl_PL/LicensePlate.php | 545 +++ .../src/Faker/Provider/pl_PL/Payment.php | 120 + .../faker/src/Faker/Provider/pl_PL/Person.php | 110 +- .../src/Faker/Provider/pl_PL/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/pl_PL/Text.php | 1 + .../src/Faker/Provider/pt_BR/Address.php | 76 +- .../src/Faker/Provider/pt_BR/Company.php | 17 +- .../src/Faker/Provider/pt_BR/Internet.php | 9 + .../src/Faker/Provider/pt_BR/Payment.php | 112 +- .../faker/src/Faker/Provider/pt_BR/Person.php | 159 + .../src/Faker/Provider/pt_BR/PhoneNumber.php | 67 +- .../faker/src/Faker/Provider/pt_BR/Text.php | 3427 +++++++++++++++++ .../src/Faker/Provider/pt_BR/check_digit.php | 39 + .../src/Faker/Provider/pt_PT/Address.php | 54 +- .../src/Faker/Provider/pt_PT/Company.php | 8 +- .../src/Faker/Provider/pt_PT/Internet.php | 9 + .../src/Faker/Provider/pt_PT/Payment.php | 11 +- .../faker/src/Faker/Provider/pt_PT/Person.php | 81 +- .../src/Faker/Provider/pt_PT/PhoneNumber.php | 12 +- .../src/Faker/Provider/ro_MD/Address.php | 79 +- .../src/Faker/Provider/ro_MD/Payment.php | 11 +- .../faker/src/Faker/Provider/ro_MD/Person.php | 33 +- .../src/Faker/Provider/ro_MD/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/ro_MD/Text.php | 4 +- .../src/Faker/Provider/ro_RO/Address.php | 87 +- .../src/Faker/Provider/ro_RO/Payment.php | 11 +- .../faker/src/Faker/Provider/ro_RO/Person.php | 93 +- .../src/Faker/Provider/ro_RO/PhoneNumber.php | 34 +- .../faker/src/Faker/Provider/ro_RO/Text.php | 3 +- .../src/Faker/Provider/ru_RU/Address.php | 46 +- .../faker/src/Faker/Provider/ru_RU/Color.php | 10 +- .../src/Faker/Provider/ru_RU/Company.php | 147 +- .../src/Faker/Provider/ru_RU/Internet.php | 9 + .../src/Faker/Provider/ru_RU/Payment.php | 5 +- .../faker/src/Faker/Provider/ru_RU/Person.php | 85 +- .../src/Faker/Provider/ru_RU/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/ru_RU/Text.php | 3027 +++++++-------- .../src/Faker/Provider/sk_SK/Address.php | 45 +- .../src/Faker/Provider/sk_SK/Company.php | 60 +- .../src/Faker/Provider/sk_SK/Internet.php | 9 + .../src/Faker/Provider/sk_SK/Payment.php | 11 +- .../faker/src/Faker/Provider/sk_SK/Person.php | 57 +- .../src/Faker/Provider/sk_SK/PhoneNumber.php | 4 +- .../src/Faker/Provider/sl_SI/Address.php | 49 +- .../src/Faker/Provider/sl_SI/Company.php | 6 +- .../src/Faker/Provider/sl_SI/Internet.php | 10 + .../src/Faker/Provider/sl_SI/Payment.php | 11 +- .../faker/src/Faker/Provider/sl_SI/Person.php | 46 +- .../src/Faker/Provider/sl_SI/PhoneNumber.php | 6 +- .../src/Faker/Provider/sr_Cyrl_RS/Address.php | 34 +- .../src/Faker/Provider/sr_Cyrl_RS/Payment.php | 11 +- .../src/Faker/Provider/sr_Cyrl_RS/Person.php | 18 +- .../src/Faker/Provider/sr_Latn_RS/Address.php | 34 +- .../src/Faker/Provider/sr_Latn_RS/Payment.php | 11 +- .../src/Faker/Provider/sr_Latn_RS/Person.php | 16 +- .../src/Faker/Provider/sr_RS/Address.php | 34 +- .../src/Faker/Provider/sr_RS/Payment.php | 11 +- .../faker/src/Faker/Provider/sr_RS/Person.php | 68 +- .../src/Faker/Provider/sv_SE/Address.php | 65 +- .../src/Faker/Provider/sv_SE/Company.php | 26 + .../src/Faker/Provider/sv_SE/Municipality.php | 27 + .../src/Faker/Provider/sv_SE/Payment.php | 11 +- .../faker/src/Faker/Provider/sv_SE/Person.php | 79 +- .../src/Faker/Provider/sv_SE/PhoneNumber.php | 64 + .../src/Faker/Provider/th_TH/Address.php | 66 +- .../faker/src/Faker/Provider/th_TH/Color.php | 16 + .../src/Faker/Provider/th_TH/Company.php | 20 +- .../src/Faker/Provider/th_TH/Internet.php | 8 + .../src/Faker/Provider/th_TH/Payment.php | 7 +- .../faker/src/Faker/Provider/th_TH/Person.php | 36 +- .../src/Faker/Provider/th_TH/PhoneNumber.php | 39 + .../src/Faker/Provider/tr_TR/Address.php | 94 + .../faker/src/Faker/Provider/tr_TR/Color.php | 10 +- .../src/Faker/Provider/tr_TR/Company.php | 37 +- .../src/Faker/Provider/tr_TR/DateTime.php | 14 +- .../src/Faker/Provider/tr_TR/Internet.php | 9 + .../src/Faker/Provider/tr_TR/Payment.php | 11 +- .../faker/src/Faker/Provider/tr_TR/Person.php | 89 +- .../src/Faker/Provider/tr_TR/PhoneNumber.php | 186 + .../src/Faker/Provider/uk_UA/Address.php | 52 +- .../faker/src/Faker/Provider/uk_UA/Color.php | 12 +- .../src/Faker/Provider/uk_UA/Company.php | 26 +- .../src/Faker/Provider/uk_UA/Internet.php | 9 + .../src/Faker/Provider/uk_UA/Payment.php | 6 +- .../faker/src/Faker/Provider/uk_UA/Person.php | 54 +- .../src/Faker/Provider/uk_UA/PhoneNumber.php | 27 +- .../faker/src/Faker/Provider/uk_UA/Text.php | 3 +- .../src/Faker/Provider/vi_VN/Address.php | 54 +- .../faker/src/Faker/Provider/vi_VN/Color.php | 8 +- .../src/Faker/Provider/vi_VN/Internet.php | 8 + .../faker/src/Faker/Provider/vi_VN/Person.php | 54 +- .../src/Faker/Provider/vi_VN/PhoneNumber.php | 16 +- .../src/Faker/Provider/zh_CN/Address.php | 43 +- .../faker/src/Faker/Provider/zh_CN/Color.php | 12 +- .../src/Faker/Provider/zh_CN/Company.php | 19 +- .../src/Faker/Provider/zh_CN/DateTime.php | 14 +- .../src/Faker/Provider/zh_CN/Internet.php | 20 +- .../src/Faker/Provider/zh_CN/Payment.php | 6 +- .../faker/src/Faker/Provider/zh_CN/Person.php | 83 + .../src/Faker/Provider/zh_CN/PhoneNumber.php | 6 +- .../src/Faker/Provider/zh_TW/Address.php | 140 +- .../faker/src/Faker/Provider/zh_TW/Color.php | 12 +- .../src/Faker/Provider/zh_TW/Company.php | 55 +- .../src/Faker/Provider/zh_TW/DateTime.php | 14 +- .../src/Faker/Provider/zh_TW/Internet.php | 28 + .../src/Faker/Provider/zh_TW/Payment.php | 21 + .../faker/src/Faker/Provider/zh_TW/Person.php | 50 +- .../src/Faker/Provider/zh_TW/PhoneNumber.php | 4 +- .../faker/src/Faker/Provider/zh_TW/Text.php | 22 +- .../faker/src/Faker/UniqueGenerator.php | 87 + .../faker/src/Faker/ValidGenerator.php | 39 +- .../faker/src/autoload.php | 3 + vendor/fzaninotto/faker/composer.json | 42 - .../faker/src/Faker/Calculator/Ean.php | 55 - .../faker/src/Faker/Calculator/TCNo.php | 52 - .../fzaninotto/faker/src/Faker/Generator.php | 299 -- .../faker/src/Faker/Guesser/Name.php | 156 - .../Faker/ORM/Propel/ColumnTypeGuesser.php | 107 - .../faker/src/Faker/Provider/Barcode.php | 114 - .../faker/src/Faker/Provider/File.php | 606 --- .../faker/src/Faker/Provider/Image.php | 105 - .../faker/src/Faker/Provider/Internet.php | 362 -- .../faker/src/Faker/Provider/Payment.php | 286 -- .../faker/src/Faker/Provider/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/UserAgent.php | 165 - .../src/Faker/Provider/bg_BG/Internet.php | 9 - .../src/Faker/Provider/cs_CZ/Internet.php | 9 - .../faker/src/Faker/Provider/cs_CZ/Person.php | 533 --- .../src/Faker/Provider/de_AT/Company.php | 13 - .../src/Faker/Provider/de_AT/Internet.php | 9 - .../src/Faker/Provider/de_AT/Payment.php | 19 - .../src/Faker/Provider/de_DE/Internet.php | 26 - .../src/Faker/Provider/de_DE/PhoneNumber.php | 20 - .../src/Faker/Provider/el_CY/Internet.php | 9 - .../src/Faker/Provider/el_GR/PhoneNumber.php | 85 - .../src/Faker/Provider/en_AU/Internet.php | 9 - .../src/Faker/Provider/en_GB/Address.php | 143 - .../src/Faker/Provider/en_GB/Internet.php | 9 - .../src/Faker/Provider/en_IN/Internet.php | 9 - .../faker/src/Faker/Provider/en_IN/Person.php | 127 - .../src/Faker/Provider/en_NG/Internet.php | 8 - .../src/Faker/Provider/en_NG/PhoneNumber.php | 133 - .../src/Faker/Provider/en_UG/Address.php | 101 - .../src/Faker/Provider/en_UG/Internet.php | 9 - .../faker/src/Faker/Provider/en_UG/Person.php | 132 - .../src/Faker/Provider/en_ZA/Internet.php | 18 - .../src/Faker/Provider/es_ES/Address.php | 101 - .../src/Faker/Provider/es_ES/Internet.php | 9 - .../src/Faker/Provider/es_VE/Internet.php | 9 - .../faker/src/Faker/Provider/et_EE/Person.php | 89 - .../src/Faker/Provider/fa_IR/PhoneNumber.php | 75 - .../src/Faker/Provider/fi_FI/Internet.php | 9 - .../src/Faker/Provider/fr_BE/Address.php | 72 - .../src/Faker/Provider/fr_BE/Company.php | 13 - .../src/Faker/Provider/fr_BE/Internet.php | 9 - .../src/Faker/Provider/fr_CH/Internet.php | 9 - .../src/Faker/Provider/fr_FR/Internet.php | 9 - .../src/Faker/Provider/hy_AM/Address.php | 132 - .../src/Faker/Provider/hy_AM/Internet.php | 9 - .../src/Faker/Provider/id_ID/Address.php | 316 -- .../src/Faker/Provider/id_ID/Company.php | 43 - .../faker/src/Faker/Provider/is_IS/Person.php | 140 - .../src/Faker/Provider/it_CH/Internet.php | 9 - .../src/Faker/Provider/it_IT/Address.php | 97 - .../src/Faker/Provider/it_IT/Internet.php | 9 - .../faker/src/Faker/Provider/it_IT/Person.php | 98 - .../faker/src/Faker/Provider/it_IT/Text.php | 1994 ---------- .../src/Faker/Provider/kk_KZ/Internet.php | 9 - .../src/Faker/Provider/lt_LT/Address.php | 131 - .../faker/src/Faker/Provider/lt_LT/Person.php | 371 -- .../src/Faker/Provider/lv_LV/Internet.php | 9 - .../src/Faker/Provider/me_ME/Payment.php | 19 - .../src/Faker/Provider/ms_MY/Address.php | 708 ---- .../src/Faker/Provider/ms_MY/Company.php | 105 - .../faker/src/Faker/Provider/ms_MY/Person.php | 813 ---- .../src/Faker/Provider/nb_NO/Address.php | 195 - .../faker/src/Faker/Provider/nb_NO/Person.php | 326 -- .../src/Faker/Provider/nl_BE/Company.php | 13 - .../src/Faker/Provider/nl_BE/Internet.php | 9 - .../src/Faker/Provider/nl_NL/Internet.php | 9 - .../src/Faker/Provider/pl_PL/Address.php | 210 - .../src/Faker/Provider/pl_PL/Internet.php | 9 - .../src/Faker/Provider/pl_PL/Payment.php | 115 - .../src/Faker/Provider/pt_BR/Internet.php | 9 - .../faker/src/Faker/Provider/pt_BR/Person.php | 133 - .../src/Faker/Provider/pt_BR/check_digit.php | 35 - .../src/Faker/Provider/pt_PT/Internet.php | 9 - .../src/Faker/Provider/ru_RU/Internet.php | 9 - .../src/Faker/Provider/sk_SK/Internet.php | 9 - .../src/Faker/Provider/sl_SI/Internet.php | 11 - .../src/Faker/Provider/sv_SE/Company.php | 26 - .../src/Faker/Provider/sv_SE/PhoneNumber.php | 37 - .../faker/src/Faker/Provider/th_TH/Color.php | 16 - .../src/Faker/Provider/th_TH/Internet.php | 8 - .../src/Faker/Provider/th_TH/PhoneNumber.php | 37 - .../src/Faker/Provider/tr_TR/Address.php | 93 - .../src/Faker/Provider/tr_TR/Internet.php | 9 - .../src/Faker/Provider/tr_TR/PhoneNumber.php | 33 - .../src/Faker/Provider/uk_UA/Internet.php | 9 - .../src/Faker/Provider/vi_VN/Internet.php | 8 - .../faker/src/Faker/Provider/zh_CN/Person.php | 83 - .../src/Faker/Provider/zh_TW/Internet.php | 16 - .../src/Faker/Provider/zh_TW/Payment.php | 11 - .../faker/src/Faker/UniqueGenerator.php | 58 - vendor/psr/container/.gitignore | 3 + vendor/psr/container/LICENSE | 21 + vendor/psr/container/README.md | 13 + vendor/psr/container/composer.json | 27 + .../src/ContainerExceptionInterface.php | 12 + .../psr/container/src/ContainerInterface.php | 36 + .../src/NotFoundExceptionInterface.php | 10 + .../deprecation-contracts/CHANGELOG.md | 5 + vendor/symfony/deprecation-contracts/LICENSE | 19 + .../symfony/deprecation-contracts/README.md | 26 + .../deprecation-contracts/composer.json | 35 + .../deprecation-contracts/function.php | 27 + 629 files changed, 29725 insertions(+), 17630 deletions(-) create mode 100644 vendor/composer/autoload_files.php create mode 100644 vendor/fakerphp/faker/CHANGELOG.md rename vendor/{fzaninotto => fakerphp}/faker/LICENSE (100%) create mode 100644 vendor/fakerphp/faker/README.md create mode 100644 vendor/fakerphp/faker/composer.json create mode 100644 vendor/fakerphp/faker/rector-migrate.php create mode 100644 vendor/fakerphp/faker/src/Faker/Calculator/Ean.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Calculator/Iban.php (60%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Calculator/Inn.php (52%) create mode 100644 vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Calculator/Luhn.php (73%) create mode 100644 vendor/fakerphp/faker/src/Faker/Calculator/TCNo.php create mode 100644 vendor/fakerphp/faker/src/Faker/ChanceGenerator.php create mode 100644 vendor/fakerphp/faker/src/Faker/Container/Container.php create mode 100644 vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php create mode 100644 vendor/fakerphp/faker/src/Faker/Container/ContainerException.php create mode 100644 vendor/fakerphp/faker/src/Faker/Container/ContainerInterface.php create mode 100644 vendor/fakerphp/faker/src/Faker/Container/NotInContainerException.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/Barcode.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/Blood.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/Color.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/Coordinates.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/DateTime.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/File.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/Number.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/Uuid.php create mode 100644 vendor/fakerphp/faker/src/Faker/Core/Version.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/DefaultGenerator.php (51%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Documentor.php (79%) create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/AddressExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/BarcodeExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/BloodExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/ColorExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/CompanyExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/CountryExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/DateTimeExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/Extension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/ExtensionNotFound.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/FileExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/GeneratorAwareExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/GeneratorAwareExtensionTrait.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/Helper.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/NumberExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/PersonExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/PhoneNumberExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/UuidExtension.php create mode 100644 vendor/fakerphp/faker/src/Faker/Extension/VersionExtension.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Factory.php (81%) create mode 100644 vendor/fakerphp/faker/src/Faker/Generator.php create mode 100644 vendor/fakerphp/faker/src/Faker/Guesser/Name.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php (71%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/CakePHP/EntityPopulator.php (96%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/CakePHP/Populator.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php (51%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Doctrine/EntityPopulator.php (80%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Doctrine/Populator.php (72%) create mode 100644 vendor/fakerphp/faker/src/Faker/ORM/Doctrine/backward-compatibility.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php (57%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Mandango/EntityPopulator.php (82%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Mandango/Populator.php (81%) create mode 100644 vendor/fakerphp/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Propel/EntityPopulator.php (77%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Propel/Populator.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php (63%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Propel2/EntityPopulator.php (77%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Propel2/Populator.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php (59%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Spot/EntityPopulator.php (81%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ORM/Spot/Populator.php (64%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Address.php (68%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/Barcode.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Base.php (66%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Biased.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Color.php (80%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Company.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/DateTime.php (64%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/File.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/HtmlLorem.php (60%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/Image.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Lorem.php (73%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/Medical.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Miscellaneous.php (75%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/Payment.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Person.php (70%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/PhoneNumber.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Text.php (57%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/UserAgent.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/Uuid.php (90%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Address.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Color.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Company.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Internet.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Payment.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Person.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Text.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_JO/Address.php (82%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_JO/Company.php (52%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_JO/Internet.php (84%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_JO/Person.php (96%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_JO/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_SA/Address.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_SA/Color.php (97%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_SA/Company.php (57%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_SA/Internet.php (84%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_SA/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_SA/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ar_SA/Text.php (99%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/at_AT/Payment.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/bg_BG/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bg_BG/Payment.php (65%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bg_BG/Person.php (98%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bg_BG/PhoneNumber.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bn_BD/Address.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bn_BD/Company.php (61%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bn_BD/Person.php (70%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bn_BD/PhoneNumber.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/bn_BD/Utils.php (68%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/cs_CZ/Address.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/cs_CZ/Company.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/cs_CZ/DateTime.php (73%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/cs_CZ/Payment.php (50%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php (82%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/cs_CZ/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/da_DK/Address.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/da_DK/Company.php (84%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/da_DK/Internet.php (65%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/da_DK/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/da_DK/Person.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/da_DK/PhoneNumber.php (75%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_AT/Address.php (62%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/de_AT/Company.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/de_AT/Internet.php rename vendor/{fzaninotto/faker/src/Faker/Provider/at_AT => fakerphp/faker/src/Faker/Provider/de_AT}/Payment.php (60%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_AT/Person.php (79%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_AT/PhoneNumber.php (75%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_AT/Text.php (100%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_CH/Address.php (82%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_CH/Company.php (69%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_CH/Internet.php (57%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_CH/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_CH/Person.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_CH/PhoneNumber.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_CH/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_DE/Address.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_DE/Company.php (62%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/de_DE/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_DE/Payment.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_DE/Person.php (91%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/de_DE/PhoneNumber.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/de_DE/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_CY/Address.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_CY/Company.php (73%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/el_CY/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_CY/Payment.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_CY/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_CY/PhoneNumber.php (84%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_GR/Address.php (96%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_GR/Company.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_GR/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_GR/Person.php (97%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/el_GR/PhoneNumber.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/el_GR/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_AU/Address.php (84%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_AU/PhoneNumber.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_CA/Address.php (54%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_CA/PhoneNumber.php (88%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_GB/Address.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_GB/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_GB/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_GB/Person.php (77%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_GB/PhoneNumber.php (74%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_HK/Address.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_HK/Internet.php (59%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_HK/PhoneNumber.php (70%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_IN/Address.php (73%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_IN/Internet.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_IN/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_IN/PhoneNumber.php (80%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_NG/Address.php (95%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_NG/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_NG/Person.php (82%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_NG/PhoneNumber.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_NZ/Address.php (71%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_NZ/Internet.php (79%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_NZ/PhoneNumber.php (78%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_PH/Address.php (97%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_PH/PhoneNumber.php (98%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_SG/Address.php (85%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_SG/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_SG/PhoneNumber.php (62%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_UG/Address.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_UG/Internet.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_UG/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_UG/PhoneNumber.php (80%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_US/Address.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_US/Company.php (97%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_US/Payment.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_US/Person.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_US/PhoneNumber.php (64%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_US/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_ZA/Address.php (80%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_ZA/Company.php (80%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_ZA/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/en_ZA/PhoneNumber.php (80%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_AR/Address.php (60%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_AR/Company.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_AR/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_AR/PhoneNumber.php (95%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/es_ES/Address.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_ES/Color.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_ES/Company.php (87%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/es_ES/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_ES/Payment.php (64%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_ES/Person.php (91%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_ES/PhoneNumber.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_ES/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_PE/Address.php (61%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_PE/Company.php (82%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_PE/Person.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_PE/PhoneNumber.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_VE/Address.php (57%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_VE/Company.php (68%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/es_VE/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_VE/Person.php (91%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/es_VE/PhoneNumber.php (92%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/et_EE/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fa_IR/Address.php (52%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fa_IR/Company.php (77%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fa_IR/Internet.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fa_IR/Person.php (95%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fa_IR/PhoneNumber.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fa_IR/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fi_FI/Address.php (81%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fi_FI/Company.php (80%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fi_FI/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fi_FI/Person.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fi_FI/PhoneNumber.php (74%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_BE/Address.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_BE/Color.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_BE/Company.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_BE/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_BE/Payment.php (65%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_BE/Person.php (91%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_BE/PhoneNumber.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CA/Address.php (80%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_CA/Color.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CA/Company.php (100%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CA/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CA/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CH/Address.php (66%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_CH/Color.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CH/Company.php (66%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_CH/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CH/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CH/Person.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CH/PhoneNumber.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_CH/Text.php (98%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_FR/Address.php (55%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Color.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_FR/Company.php (93%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_FR/Payment.php (77%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_FR/Person.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_FR/PhoneNumber.php (63%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/fr_FR/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/he_IL/Address.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/he_IL/Company.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/he_IL/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/he_IL/Person.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/he_IL/PhoneNumber.php (74%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hr_HR/Address.php (91%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hr_HR/Company.php (64%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hr_HR/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hr_HR/Person.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hr_HR/PhoneNumber.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hu_HU/Address.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hu_HU/Company.php (53%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hu_HU/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hu_HU/Person.php (58%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hu_HU/PhoneNumber.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hu_HU/Text.php (100%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Address.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hy_AM/Color.php (86%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hy_AM/Company.php (71%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hy_AM/Person.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/hy_AM/PhoneNumber.php (74%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/id_ID/Address.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/id_ID/Color.php (83%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/id_ID/Company.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/id_ID/Internet.php (74%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/id_ID/Person.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/id_ID/PhoneNumber.php (96%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/is_IS/Address.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/is_IS/Company.php (84%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/is_IS/Internet.php (63%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/is_IS/Payment.php (50%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/is_IS/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/is_IS/PhoneNumber.php (70%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_CH/Address.php (64%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_CH/Company.php (69%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/it_CH/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_CH/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_CH/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_CH/PhoneNumber.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_CH/Text.php (98%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/it_IT/Address.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_IT/Company.php (83%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/it_IT/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_IT/Payment.php (50%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/it_IT/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/it_IT/PhoneNumber.php (87%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/it_IT/Text.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ja_JP/Address.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ja_JP/Company.php (56%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ja_JP/Internet.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ja_JP/Person.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ja_JP/PhoneNumber.php (65%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ja_JP/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/Address.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/Color.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/Company.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/DateTime.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/Internet.php (69%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/Payment.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/Person.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/PhoneNumber.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ka_GE/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/kk_KZ/Address.php (71%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/kk_KZ/Color.php (76%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/kk_KZ/Company.php (65%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/kk_KZ/Payment.php (60%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/kk_KZ/Person.php (69%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php (86%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/kk_KZ/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ko_KR/Address.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ko_KR/Company.php (81%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ko_KR/Internet.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ko_KR/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ko_KR/PhoneNumber.php (91%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ko_KR/Text.php (99%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Address.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lt_LT/Company.php (71%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lt_LT/Internet.php (57%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lt_LT/Payment.php (50%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lt_LT/PhoneNumber.php (86%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lv_LV/Address.php (82%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lv_LV/Color.php (68%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lv_LV/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lv_LV/Person.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/lv_LV/PhoneNumber.php (81%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/me_ME/Address.php (91%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/me_ME/Company.php (91%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/me_ME/Payment.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/me_ME/Person.php (98%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/me_ME/PhoneNumber.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/mn_MN/Person.php (86%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/mn_MN/PhoneNumber.php (71%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Address.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Company.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ms_MY/Miscellaneous.php (60%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ms_MY/Payment.php (59%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ms_MY/PhoneNumber.php (69%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Address.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nb_NO/Company.php (98%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nb_NO/Payment.php (50%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nb_NO/PhoneNumber.php (82%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ne_NP/Address.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ne_NP/Internet.php (75%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Payment.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ne_NP/Person.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ne_NP/PhoneNumber.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_BE/Address.php (92%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Company.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_BE/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_BE/Person.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_BE/PhoneNumber.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_BE/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_NL/Address.php (97%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_NL/Color.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_NL/Company.php (93%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_NL/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_NL/Person.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_NL/PhoneNumber.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/nl_NL/Text.php (99%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Color.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pl_PL/Company.php (62%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Internet.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pl_PL/LicensePlate.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Payment.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pl_PL/Person.php (79%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pl_PL/PhoneNumber.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pl_PL/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_BR/Address.php (78%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_BR/Company.php (62%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_BR/Payment.php (63%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_BR/PhoneNumber.php (71%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pt_BR/check_digit.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_PT/Address.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_PT/Company.php (59%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_PT/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_PT/Person.php (81%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/pt_PT/PhoneNumber.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_MD/Address.php (78%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_MD/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_MD/Person.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_MD/PhoneNumber.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_MD/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_RO/Address.php (85%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_RO/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_RO/Person.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_RO/PhoneNumber.php (67%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ro_RO/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ru_RU/Address.php (91%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ru_RU/Color.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ru_RU/Company.php (69%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ru_RU/Payment.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ru_RU/Person.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ru_RU/PhoneNumber.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/ru_RU/Text.php (63%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sk_SK/Address.php (94%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sk_SK/Company.php (88%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sk_SK/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sk_SK/Person.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sk_SK/PhoneNumber.php (84%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sl_SI/Address.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sl_SI/Company.php (63%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/sl_SI/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sl_SI/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sl_SI/Person.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sl_SI/PhoneNumber.php (81%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php (98%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_Latn_RS/Address.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_Latn_RS/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_Latn_RS/Person.php (98%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_RS/Address.php (92%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_RS/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sr_RS/Person.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sv_SE/Address.php (96%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/sv_SE/Company.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/sv_SE/Municipality.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sv_SE/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/sv_SE/Person.php (85%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/th_TH/Address.php (93%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/th_TH/Color.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/th_TH/Company.php (89%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/th_TH/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/th_TH/Payment.php (86%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/th_TH/Person.php (96%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/th_TH/PhoneNumber.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/tr_TR/Address.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/tr_TR/Color.php (95%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/tr_TR/Company.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/tr_TR/DateTime.php (86%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/tr_TR/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/tr_TR/Payment.php (50%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/tr_TR/Person.php (67%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/tr_TR/PhoneNumber.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/uk_UA/Address.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/uk_UA/Color.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/uk_UA/Company.php (91%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/uk_UA/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/uk_UA/Payment.php (97%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/uk_UA/Person.php (83%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/uk_UA/PhoneNumber.php (68%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/uk_UA/Text.php (99%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/vi_VN/Address.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/vi_VN/Color.php (91%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Internet.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/vi_VN/Person.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/vi_VN/PhoneNumber.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_CN/Address.php (89%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_CN/Color.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_CN/Company.php (96%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_CN/DateTime.php (86%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_CN/Internet.php (64%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_CN/Payment.php (94%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Person.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_CN/PhoneNumber.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_TW/Address.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_TW/Color.php (93%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_TW/Company.php (90%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_TW/DateTime.php (86%) create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Internet.php create mode 100644 vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Payment.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_TW/Person.php (87%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_TW/PhoneNumber.php (88%) rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/Provider/zh_TW/Text.php (99%) create mode 100644 vendor/fakerphp/faker/src/Faker/UniqueGenerator.php rename vendor/{fzaninotto => fakerphp}/faker/src/Faker/ValidGenerator.php (59%) rename vendor/{fzaninotto => fakerphp}/faker/src/autoload.php (99%) delete mode 100644 vendor/fzaninotto/faker/composer.json delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/Ean.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Generator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Guesser/Name.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/File.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Image.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/et_EE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php create mode 100644 vendor/psr/container/.gitignore create mode 100644 vendor/psr/container/LICENSE create mode 100644 vendor/psr/container/README.md create mode 100644 vendor/psr/container/composer.json create mode 100644 vendor/psr/container/src/ContainerExceptionInterface.php create mode 100644 vendor/psr/container/src/ContainerInterface.php create mode 100644 vendor/psr/container/src/NotFoundExceptionInterface.php create mode 100644 vendor/symfony/deprecation-contracts/CHANGELOG.md create mode 100644 vendor/symfony/deprecation-contracts/LICENSE create mode 100644 vendor/symfony/deprecation-contracts/README.md create mode 100644 vendor/symfony/deprecation-contracts/composer.json create mode 100644 vendor/symfony/deprecation-contracts/function.php diff --git a/composer.json b/composer.json index e758405..52e2849 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { "require": { - "fzaninotto/faker": "dev-master" + "fakerphp/faker": "^1.24" } } diff --git a/composer.lock b/composer.lock index 3c3520e..c981249 100644 --- a/composer.lock +++ b/composer.lock @@ -4,37 +4,45 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e64b5a418d8b4de4bc5878e9606f6d5e", + "content-hash": "0ac0340f2120a65e4928bde600db496b", "packages": [ { - "name": "fzaninotto/faker", - "version": "dev-master", + "name": "fakerphp/faker", + "version": "v1.24.1", "source": { "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "5ffe7db6c80f441f150fc88008d64e64af66634b" + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/5ffe7db6c80f441f150fc88008d64e64af66634b", - "reference": "5ffe7db6c80f441f150fc88008d64e64af66634b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^2.9.2" + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." }, + "type": "library", "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -56,22 +64,139 @@ "fixtures" ], "support": { - "issues": "https://github.com/fzaninotto/Faker/issues", - "source": "https://github.com/fzaninotto/Faker/tree/master" + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" + }, + "time": "2024-11-21T13:46:39+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "shasum": "" + }, + "require": { + "php": ">=8.1" }, - "abandoned": true, - "time": "2020-12-11T09:59:14+00:00" + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.5-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:20:29+00:00" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "fzaninotto/faker": 20 - }, + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, - "platform": [], - "platform-dev": [], + "platform": {}, + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php index 39e55ea..07b32ed 100644 --- a/vendor/composer/InstalledVersions.php +++ b/vendor/composer/InstalledVersions.php @@ -266,7 +266,7 @@ public static function getRawData() if (null === self::$installed) { // only require the installed.php file if this file is loaded from its dumped location, // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C' && is_file(__DIR__ . '/installed.php')) { + if (substr(__DIR__, -8, 1) !== 'C') { self::$installed = include __DIR__ . '/installed.php'; } else { self::$installed = array(); @@ -322,6 +322,7 @@ private static function getInstalled() } $installed = array(); + $copiedLocalDir = false; if (self::$canGetVendors) { foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { @@ -330,9 +331,11 @@ private static function getInstalled() } elseif (is_file($vendorDir.'/composer/installed.php')) { /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ $required = require $vendorDir.'/composer/installed.php'; - $installed[] = self::$installedByVendor[$vendorDir] = $required; - if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { - self::$installed = $installed[count($installed) - 1]; + self::$installedByVendor[$vendorDir] = $required; + $installed[] = $required; + if (strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $required; + $copiedLocalDir = true; } } } @@ -341,7 +344,7 @@ private static function getInstalled() if (null === self::$installed) { // only require the installed.php file if this file is loaded from its dumped location, // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C' && is_file(__DIR__ . '/installed.php')) { + if (substr(__DIR__, -8, 1) !== 'C') { /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ $required = require __DIR__ . '/installed.php'; self::$installed = $required; @@ -350,7 +353,7 @@ private static function getInstalled() } } - if (self::$installed !== array()) { + if (self::$installed !== array() && !$copiedLocalDir) { $installed[] = self::$installed; } diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE index 62ecfd8..f27399a 100644 --- a/vendor/composer/LICENSE +++ b/vendor/composer/LICENSE @@ -1,3 +1,4 @@ + Copyright (c) Nils Adermann, Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy @@ -17,3 +18,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php new file mode 100644 index 0000000..be8e1c3 --- /dev/null +++ b/vendor/composer/autoload_files.php @@ -0,0 +1,10 @@ + $vendorDir . '/symfony/deprecation-contracts/function.php', +); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 70412e0..a930058 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,5 +6,6 @@ $baseDir = dirname($vendorDir); return array( - 'Faker\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'), + 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'Faker\\' => array($vendorDir . '/fakerphp/faker/src/Faker'), ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index b245b72..1c197cc 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -33,6 +33,18 @@ public static function getLoader() $loader->register(true); + $filesToLoad = \Composer\Autoload\ComposerStaticInit150f3641fba2aa7f9c7e1c8d776f657c::$files; + $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } + }, null, null); + foreach ($filesToLoad as $fileIdentifier => $file) { + $requireFile($fileIdentifier, $file); + } + return $loader; } } diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 08c05cc..de97416 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -6,7 +6,15 @@ class ComposerStaticInit150f3641fba2aa7f9c7e1c8d776f657c { + public static $files = array ( + '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', + ); + public static $prefixLengthsPsr4 = array ( + 'P' => + array ( + 'Psr\\Container\\' => 14, + ), 'F' => array ( 'Faker\\' => 6, @@ -14,9 +22,13 @@ class ComposerStaticInit150f3641fba2aa7f9c7e1c8d776f657c ); public static $prefixDirsPsr4 = array ( + 'Psr\\Container\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/container/src', + ), 'Faker\\' => array ( - 0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker', + 0 => __DIR__ . '/..' . '/fakerphp/faker/src/Faker', ), ); diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index fd8035d..22648bf 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,37 +1,45 @@ { "packages": [ { - "name": "fzaninotto/faker", - "version": "dev-master", - "version_normalized": "dev-master", + "name": "fakerphp/faker", + "version": "v1.24.1", + "version_normalized": "1.24.1.0", "source": { "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "5ffe7db6c80f441f150fc88008d64e64af66634b" + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/5ffe7db6c80f441f150fc88008d64e64af66634b", - "reference": "5ffe7db6c80f441f150fc88008d64e64af66634b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^2.9.2" + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, - "time": "2020-12-11T09:59:14+00:00", - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." }, - "installation-source": "source", + "time": "2024-11-21T13:46:39+00:00", + "type": "library", + "installation-source": "dist", "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -53,11 +61,136 @@ "fixtures" ], "support": { - "issues": "https://github.com/fzaninotto/Faker/issues", - "source": "https://github.com/fzaninotto/Faker/tree/master" + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" + }, + "install-path": "../fakerphp/faker" + }, + { + "name": "psr/container", + "version": "2.0.2", + "version_normalized": "2.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "time": "2021-11-05T16:47:00+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "install-path": "../psr/container" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.1", + "version_normalized": "3.5.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "shasum": "" + }, + "require": { + "php": ">=8.1" }, - "abandoned": true, - "install-path": "../fzaninotto/faker" + "time": "2024-09-25T14:20:29+00:00", + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.5-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/deprecation-contracts" } ], "dev": true, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 99f5674..988c707 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => '0d8b6b4873a354a377c2259553b67abf338eb001', + 'reference' => 'b87aafd9eb25b5a6e8b3a85f73d8ac1a0430cee5', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,21 +13,37 @@ '__root__' => array( 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => '0d8b6b4873a354a377c2259553b67abf338eb001', + 'reference' => 'b87aafd9eb25b5a6e8b3a85f73d8ac1a0430cee5', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => false, ), - 'fzaninotto/faker' => array( - 'pretty_version' => 'dev-master', - 'version' => 'dev-master', - 'reference' => '5ffe7db6c80f441f150fc88008d64e64af66634b', + 'fakerphp/faker' => array( + 'pretty_version' => 'v1.24.1', + 'version' => '1.24.1.0', + 'reference' => 'e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5', 'type' => 'library', - 'install_path' => __DIR__ . '/../fzaninotto/faker', - 'aliases' => array( - 0 => '1.9.x-dev', - ), + 'install_path' => __DIR__ . '/../fakerphp/faker', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/container' => array( + 'pretty_version' => '2.0.2', + 'version' => '2.0.2.0', + 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/container', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/deprecation-contracts' => array( + 'pretty_version' => 'v3.5.1', + 'version' => '3.5.1.0', + 'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', + 'aliases' => array(), 'dev_requirement' => false, ), ), diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index 7f0d16c..4c3a5d6 100644 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 50303)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.3". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 80100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { diff --git a/vendor/fakerphp/faker/CHANGELOG.md b/vendor/fakerphp/faker/CHANGELOG.md new file mode 100644 index 0000000..d3e3722 --- /dev/null +++ b/vendor/fakerphp/faker/CHANGELOG.md @@ -0,0 +1,209 @@ +# CHANGELOG + +## [Unreleased](https://github.com/FakerPHP/Faker/compare/v1.24.0...1.24.1) + +- Removed domain `gmail.com.au` from `Provider\en_AU\Internet` (#886) + +## [2024-11-09, v1.24.0](https://github.com/FakerPHP/Faker/compare/v1.23.1..v1.24.0) + +- Fix internal deprecations in Doctrine's populator by @gnutix in (#889) +- Fix mobile phone number pattern for France by @ker0x in (#859) +- PHP 8.4 Support by @Jubeki in (#904) + +- Added support for PHP 8.4 (#904) + +## [2023-09-29, v1.23.1](https://github.com/FakerPHP/Faker/compare/v1.23.0..v1.23.1) + +- Fixed double `а` female lastName in `ru_RU/Person::name()` (#832) +- Fixed polish license plates (#685) +- Stopped using `static` in callables in `Provider\pt_BR\PhoneNumber` (#785) +- Fixed incorrect female name (#794) +- Stopped using the deprecated `MT_RAND_PHP` constant to seed the random generator on PHP 8.3 (#844) + +## [2023-06-12, v1.23.0](https://github.com/FakerPHP/Faker/compare/v1.22.0..v1.23.0) + +- Update `randomElements` to return random number of elements when no count is provided (#658) + +## [2023-05-14, v1.22.0](https://github.com/FakerPHP/Faker/compare/v1.21.0..v1.22.0) + +- Fixed `randomElements()` to accept empty iterator (#605) +- Added support for passing an `Enum` to `randomElement()` and `randomElements()` (#620) +- Started rejecting invalid arguments passed to `randomElement()` and `randomElements()` (#642) + +## [2022-12-13, v1.21.0](https://github.com/FakerPHP/Faker/compare/v1.20.0..v1.21.0) + +- Dropped support for PHP 7.1, 7.2, and 7.3 (#543) +- Added support for PHP 8.2 (#528) + +## [2022-07-20, v1.20.0](https://github.com/FakerPHP/Faker/compare/v1.19.0..v1.20.0) + +- Fixed typo in French phone number (#452) +- Fixed some Hungarian naming bugs (#451) +- Fixed bug where the NL-BE VAT generation was incorrect (#455) +- Improve Turkish phone numbers for E164 and added landline support (#460) +- Add Microsoft Edge User Agent (#464) +- Added option to set image formats on Faker\Provider\Image (#473) +- Added support for French color translations (#466) +- Support filtering timezones by country code (#480) +- Fixed typo in some greek names (#490) +- Marked the Faker\Provider\Image as deprecated + +## [2022-02-02, v1.19.0](https://github.com/FakerPHP/Faker/compare/v1.18.0..v1.19.0) + +- Added color extension to core (#442) +- Added conflict with `doctrine/persistence` below version `1.4` +- Fix for support on different Doctrine ORM versions (#414) +- Fix usage of `Doctrine\Persistence` dependency +- Fix CZ Person birthNumber docblock return type (#437) +- Fix is_IS Person docbock types (#439) +- Fix is_IS Address docbock type (#438) +- Fix regexify escape backslash in character class (#434) +- Removed UUID from Generator to be able to extend it (#441) + +## [2022-01-23, v1.18.0](https://github.com/FakerPHP/Faker/compare/v1.17.0..v1.18.0) + +- Deprecated UUID, use uuid3 to specify version (#427) +- Reset formatters when adding a new provider (#366) +- Helper methods to use our custom generators (#155) +- Set allow-plugins for Composer 2.2 (#405) +- Fix kk_KZ\Person::individualIdentificationNumber generation (#411) +- Allow for -> syntax to be used in parsing (#423) +- Person->name was missing string return type (#424) +- Generate a valid BE TAX number (#415) +- Added the UUID extension to Core (#427) + +## [2021-12-05, v1.17.0](https://github.com/FakerPHP/Faker/compare/v1.16.0..v1.17.0) + +- Partial PHP 8.1 compatibility (#373) +- Add payment provider for `ne_NP` locale (#375) +- Add Egyptian Arabic `ar_EG` locale (#377) +- Updated list of South African TLDs (#383) +- Fixed formatting of E.164 numbers (#380) +- Allow `symfony/deprecation-contracts` `^3.0` (#397) + +## [2021-09-06, v1.16.0](https://github.com/FakerPHP/Faker/compare/v1.15.0..v1.16.0) + +- Add Company extension +- Add Address extension +- Add Person extension +- Add PhoneNumber extension +- Add VersionExtension (#350) +- Stricter types in Extension\Container and Extension\GeneratorAwareExtension (#345) +- Fix deprecated property access in `nl_NL` (#348) +- Add support for `psr/container` >= 2.0 (#354) +- Add missing union types in Faker\Generator (#352) + +## [2021-07-06, v1.15.0](https://github.com/FakerPHP/Faker/compare/v1.14.1..v1.15.0) + +- Updated the generator phpdoc to help identify magic methods (#307) +- Prevent direct access and triggered deprecation warning for "word" (#302) +- Updated length on all global e164 numbers (#301) +- Updated last names from different source (#312) +- Don't generate birth number of '000' for Swedish personal identity (#306) +- Add job list for localization id_ID (#339) + +## [2021-03-30, v1.14.1](https://github.com/FakerPHP/Faker/compare/v1.14.0..v1.14.1) + +- Fix where randomNumber and randomFloat would return a 0 value (#291 / #292) + +## [2021-03-29, v1.14.0](https://github.com/FakerPHP/Faker/compare/v1.13.0..v1.14.0) + +- Fix for realText to ensure the text keeps closer to its boundaries (#152) +- Fix where regexify produces a random character instead of a literal dot (#135 +- Deprecate zh_TW methods that only call base methods (#122) +- Add used extensions to composer.json as suggestion (#120) +- Moved TCNo and INN from calculator to localized providers (#108) +- Fix regex dot/backslash issue where a dot is replaced with a backslash as escape character (#206) +- Deprecate direct property access (#164) +- Added test to assert unique() behaviour (#233) +- Added RUC for the es_PE locale (#244) +- Test IBAN formats for Latin America (AR/PE/VE) (#260) +- Added VAT number for en_GB (#255) +- Added new districts for the ne_NP locale (#258) +- Fix for U.S. Area Code Generation (#261) +- Fix in numerify where a better random numeric value is guaranteed (#256) +- Fix e164PhoneNumber to only generate valid phone numbers with valid country codes (#264) +- Extract fixtures into separate classes (#234) +- Remove french domains that no longer exists (#277) +- Fix error that occurs when getting a polish title (#279) +- Use valid area codes for North America E164 phone numbers (#280) + +- Adding support for extensions and PSR-11 (#154) +- Adding trait for GeneratorAwareExtension (#165) +- Added helper class for extension (#162) +- Added blood extension to core (#232) +- Added barcode extension to core (#252) +- Added number extension (#257) + +- Various code style updates +- Added a note about our breaking change promise (#273) + +## [2020-12-18, v1.13.0](https://github.com/FakerPHP/Faker/compare/v1.12.1..v1.13.0) + +Several fixes and new additions in this release. A lot of cleanup has been done +on the codebase on both tests and consistency. + +- Feature/pl pl license plate (#62) +- Fix greek phone numbers (#16) +- Move AT payment provider logic to de_AT (#72) +- Fix wiktionary links (#73) +- Fix AT person links (#74) +- Fix AT cities (#75) +- Deprecate at_AT providers (#78) +- Add Austrian `ssn()` to `Person` provider (#79) +- Fix typos in id_ID Address (#83) +- Austrian post codes (#86) +- Updated Polish data (#70) +- Improve Austrian social security number generation (#88) +- Move US phone numbers with extension to own method (#91) +- Add UK National Insurance number generator (#89) +- Fix en_SG phone number generator (#100) +- Remove usage of mt_rand (#87) +- Remove whitespace from beginning of el_GR phone numbers (#105) +- Building numbers can not be 0, 00, 000 (#107) +- Add 172.16/12 local IPv4 block (#121) +- Add JCB credit card type (#124) +- Remove json_decode from emoji generation (#123) +- Remove ro street address (#146) + +## [2020-12-11, v1.12.1](https://github.com/FakerPHP/Faker/compare/v1.12.0..v1.12.1) + +This is a security release that prevents a hacker to execute code on the server. + +## [2020-11-23, v1.12.0](https://github.com/FakerPHP/Faker/compare/v1.11.0..v1.12.0) + +- Fix ro_RO first and last day of year calculation offset (#65) +- Fix en_NG locale test namespaces that did not match PSR-4 (#57) +- Added Singapore NRIC/FIN provider (#56) +- Added provider for Lithuanian municipalities (#58) +- Added blood types provider (#61) + +## [2020-11-15, v1.11.0](https://github.com/FakerPHP/Faker/compare/v1.10.1..v1.11.0) + +- Added Provider for Swedish Municipalities +- Updates to person names in pt_BR +- Many code style changes + +## [2020-10-28, v1.10.1](https://github.com/FakerPHP/Faker/compare/v1.10.0..v1.10.1) + +- Updates the Danish addresses in dk_DK +- Removed offense company names in nl_NL +- Clarify changelog with original fork +- Standin replacement for LoremPixel to Placeholder.com (#11) + +## [2020-10-27, v1.10.0](https://github.com/FakerPHP/Faker/compare/v1.9.1..v1.10.0) + +- Support PHP 7.1-8.0 +- Fix typo in de_DE Company Provider +- Fix dateTimeThisYear method +- Fix typo in de_DE jobTitleFormat +- Fix IBAN generation for CR +- Fix typos in greek first names +- Fix US job title typo +- Do not clear entity manager for doctrine orm populator +- Remove persian rude words +- Corrections to RU names + +## 2020-10-27, v1.9.1 + +- Initial version. Same as `fzaninotto/Faker:v1.9.1`. diff --git a/vendor/fzaninotto/faker/LICENSE b/vendor/fakerphp/faker/LICENSE similarity index 100% rename from vendor/fzaninotto/faker/LICENSE rename to vendor/fakerphp/faker/LICENSE diff --git a/vendor/fakerphp/faker/README.md b/vendor/fakerphp/faker/README.md new file mode 100644 index 0000000..2c6a268 --- /dev/null +++ b/vendor/fakerphp/faker/README.md @@ -0,0 +1,114 @@ +

    Social card of FakerPHP

    + +# Faker + +[![Packagist Downloads](https://img.shields.io/packagist/dm/FakerPHP/Faker)](https://packagist.org/packages/fakerphp/faker) +[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/FakerPHP/Faker/Tests/main)](https://github.com/FakerPHP/Faker/actions) +[![Type Coverage](https://shepherd.dev/github/FakerPHP/Faker/coverage.svg)](https://shepherd.dev/github/FakerPHP/Faker) +[![Code Coverage](https://codecov.io/gh/FakerPHP/Faker/branch/main/graph/badge.svg)](https://codecov.io/gh/FakerPHP/Faker) + +Faker is a PHP library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you. + +It's heavily inspired by Perl's [Data::Faker](https://metacpan.org/pod/Data::Faker), and by Ruby's [Faker](https://rubygems.org/gems/faker). + +## Getting Started + +### Installation + +Faker requires PHP >= 7.4. + +```shell +composer require fakerphp/faker +``` + +### Documentation + +Full documentation can be found over on [fakerphp.github.io](https://fakerphp.github.io). + +### Basic Usage + +Use `Faker\Factory::create()` to create and initialize a Faker generator, which can generate data by accessing methods named after the type of data you want. + +```php +name(); +// 'Vince Sporer' +echo $faker->email(); +// 'walter.sophia@hotmail.com' +echo $faker->text(); +// 'Numquam ut mollitia at consequuntur inventore dolorem.' +``` + +Each call to `$faker->name()` yields a different (random) result. This is because Faker uses `__call()` magic, and forwards `Faker\Generator->$method()` calls to `Faker\Generator->format($method, $attributes)`. + +```php +name() . "\n"; +} + +// 'Cyrus Boyle' +// 'Alena Cummerata' +// 'Orlo Bergstrom' +``` + +## Automated refactoring + +If you already used this library with its properties, they are now deprecated and needs to be replaced by their equivalent methods. + +You can use the provided [Rector](https://github.com/rectorphp/rector) config file to automate the work. + +Run + +```bash +composer require --dev rector/rector +``` + +to install `rector/rector`. + +Run + +```bash +vendor/bin/rector process src/ --config vendor/fakerphp/faker/rector-migrate.php +``` + +to run `rector/rector`. + +*Note:* do not forget to replace `src/` with the path to your source directory. + +Alternatively, import the configuration in your `rector.php` file: + +```php +import('vendor/fakerphp/faker/rector-migrate.php'); +}; +``` + +## License + +Faker is released under the MIT License. See [`LICENSE`](LICENSE) for details. + +## Backward compatibility promise + +Faker is using [Semver](https://semver.org/). This means that versions are tagged +with MAJOR.MINOR.PATCH. Only a new major version will be allowed to break backward +compatibility (BC). + +Classes marked as `@experimental` or `@internal` are not included in our backward compatibility promise. +You are also not guaranteed that the value returned from a method is always the +same. You are guaranteed that the data type will not change. + +PHP 8 introduced [named arguments](https://wiki.php.net/rfc/named_params), which +increased the cost and reduces flexibility for package maintainers. The names of the +arguments for methods in Faker is not included in our BC promise. diff --git a/vendor/fakerphp/faker/composer.json b/vendor/fakerphp/faker/composer.json new file mode 100644 index 0000000..88724f2 --- /dev/null +++ b/vendor/fakerphp/faker/composer.json @@ -0,0 +1,56 @@ +{ + "name": "fakerphp/faker", + "type": "library", + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "faker", + "fixtures", + "data" + ], + "license": "MIT", + "authors": [ + { + "name": "François Zaninotto" + } + ], + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "require-dev": { + "ext-intl": "*", + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "autoload-dev": { + "psr-4": { + "Faker\\Test\\": "test/Faker/", + "Faker\\Test\\Fixture\\": "test/Fixture/" + } + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "suggest": { + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality.", + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine" + }, + "config": { + "allow-plugins": { + "bamarni/composer-bin-plugin": true, + "composer/package-versions-deprecated": true + }, + "sort-packages": true + } +} diff --git a/vendor/fakerphp/faker/rector-migrate.php b/vendor/fakerphp/faker/rector-migrate.php new file mode 100644 index 0000000..7d99b57 --- /dev/null +++ b/vendor/fakerphp/faker/rector-migrate.php @@ -0,0 +1,161 @@ +ruleWithConfiguration( + Transform\Rector\Assign\PropertyFetchToMethodCallRector::class, + array_map(static function (string $property): Transform\ValueObject\PropertyFetchToMethodCall { + return new Transform\ValueObject\PropertyFetchToMethodCall( + Generator::class, + $property, + $property, + ); + }, $properties), + ); +}; diff --git a/vendor/fakerphp/faker/src/Faker/Calculator/Ean.php b/vendor/fakerphp/faker/src/Faker/Calculator/Ean.php new file mode 100644 index 0000000..fbf11fc --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Calculator/Ean.php @@ -0,0 +1,50 @@ + $digit) { + $sums += ((int) $digit) * $sequence[$n % 2]; + } + + return (10 - $sums % 10) % 10; + } + + /** + * Checks whether the provided number is an EAN compliant number and that + * the checksum is correct. + * + * @param string $ean An EAN number + * + * @return bool + */ + public static function isValid(string $ean) + { + if (!preg_match(self::PATTERN, $ean)) { + return false; + } + + return self::checksum(substr($ean, 0, -1)) === (int) substr($ean, -1); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php b/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php similarity index 60% rename from vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php rename to vendor/fakerphp/faker/src/Faker/Calculator/Iban.php index 8a58231..19068fd 100644 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php +++ b/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php @@ -7,16 +7,21 @@ class Iban /** * Generates IBAN Checksum * - * @param string $iban * @return string Checksum (numeric string) */ - public static function checksum($iban) + public static function checksum(string $iban) { // Move first four digits to end and set checksum to '00' $checkString = substr($iban, 4) . substr($iban, 0, 2) . '00'; // Replace all letters with their number equivalents - $checkString = preg_replace_callback('/[A-Z]/', array('self','alphaToNumberCallback'), $checkString); + $checkString = preg_replace_callback( + '/[A-Z]/', + static function (array $matches): string { + return (string) self::alphaToNumber($matches[0]); + }, + $checkString, + ); // Perform mod 97 and subtract from 98 $checksum = 98 - self::mod97($checkString); @@ -24,23 +29,12 @@ public static function checksum($iban) return str_pad($checksum, 2, '0', STR_PAD_LEFT); } - /** - * @param string $match - * - * @return int - */ - private static function alphaToNumberCallback($match) - { - return self::alphaToNumber($match[0]); - } - /** * Converts letter to number * - * @param string $char * @return int */ - public static function alphaToNumber($char) + public static function alphaToNumber(string $char) { return ord($char) - 55; } @@ -49,24 +43,26 @@ public static function alphaToNumber($char) * Calculates mod97 on a numeric string * * @param string $number Numeric string + * * @return int */ - public static function mod97($number) + public static function mod97(string $number) { - $checksum = (int)$number[0]; - for ($i = 1, $size = strlen($number); $i < $size; $i++) { + $checksum = (int) $number[0]; + + for ($i = 1, $size = strlen($number); $i < $size; ++$i) { $checksum = (10 * $checksum + (int) $number[$i]) % 97; } + return $checksum; } /** * Checks whether an IBAN has a valid checksum * - * @param string $iban - * @return boolean + * @return bool */ - public static function isValid($iban) + public static function isValid(string $iban) { return self::checksum($iban) === substr($iban, 2, 2); } diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/Inn.php b/vendor/fakerphp/faker/src/Faker/Calculator/Inn.php similarity index 52% rename from vendor/fzaninotto/faker/src/Faker/Calculator/Inn.php rename to vendor/fakerphp/faker/src/Faker/Calculator/Inn.php index b239ae1..5af4070 100644 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/Inn.php +++ b/vendor/fakerphp/faker/src/Faker/Calculator/Inn.php @@ -1,6 +1,11 @@ 2, 2 => 4, 3 => 10, 4 => 3, 5 => 5, 6 => 9, 7 => 4, 8 => 6, 9 => 8); - $sum = 0; - for ($i = 1; $i <= 9; $i++) { - $sum += intval(substr($inn, $i-1, 1)) * $multipliers[$i]; - } - return strval(($sum % 11) % 10); + return \Faker\Provider\ru_RU\Company::inn10Checksum($inn); } /** * Checks whether an INN has a valid checksum * * @param string $inn - * @return boolean + * + * @return bool + * + * @deprecated use {@link \Faker\Provider\ru_RU\Company::inn10IsValid()} instead + * @see \Faker\Provider\ru_RU\Company::inn10IsValid() */ public static function isValid($inn) { - return self::checksum(substr($inn, 0, -1)) === substr($inn, -1, 1); + return \Faker\Provider\ru_RU\Company::inn10IsValid($inn); } } diff --git a/vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php b/vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php new file mode 100644 index 0000000..df2f59d --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php @@ -0,0 +1,60 @@ += 0; $i -= 2) { $sum += $number[$i]; } + for ($i = $length - 2; $i >= 0; $i -= 2) { $sum += array_sum(str_split($number[$i] * 2)); } @@ -34,14 +33,14 @@ private static function checksum($number) } /** - * @param $partialNumber * @return string */ - public static function computeCheckDigit($partialNumber) + public static function computeCheckDigit(string $partialNumber) { $checkDigit = self::checksum($partialNumber . '0'); + if ($checkDigit === 0) { - return 0; + return '0'; } return (string) (10 - $checkDigit); @@ -50,10 +49,9 @@ public static function computeCheckDigit($partialNumber) /** * Checks whether a number (partial number + check digit) is Luhn compliant * - * @param string $number * @return bool */ - public static function isValid($number) + public static function isValid(string $number) { return self::checksum($number) === 0; } @@ -61,15 +59,14 @@ public static function isValid($number) /** * Generate a Luhn compliant number. * - * @param string $partialValue - * * @return string */ - public static function generateLuhnNumber($partialValue) + public static function generateLuhnNumber(string $partialValue) { if (!preg_match('/^\d+$/', $partialValue)) { - throw new InvalidArgumentException('Argument should be an integer.'); + throw new \InvalidArgumentException('Argument should be an integer.'); } + return $partialValue . Luhn::computeCheckDigit($partialValue); } } diff --git a/vendor/fakerphp/faker/src/Faker/Calculator/TCNo.php b/vendor/fakerphp/faker/src/Faker/Calculator/TCNo.php new file mode 100644 index 0000000..a75c93e --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Calculator/TCNo.php @@ -0,0 +1,43 @@ +default = $default; + $this->generator = $generator; + $this->weight = $weight; + } + + public function ext(string $id) + { + return new self($this->generator->ext($id), $this->weight, $this->default); + } + + /** + * Catch and proxy all generator calls but return only valid values + * + * @param string $attribute + * + * @deprecated Use a method instead. + */ + public function __get($attribute) + { + trigger_deprecation('fakerphp/faker', '1.14', 'Accessing property "%s" is deprecated, use "%s()" instead.', $attribute, $attribute); + + return $this->__call($attribute, []); + } + + /** + * @param string $name + * @param array $arguments + */ + public function __call($name, $arguments) + { + if (mt_rand(1, 100) <= (100 * $this->weight)) { + return call_user_func_array([$this->generator, $name], $arguments); + } + + return $this->default; + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Container/Container.php b/vendor/fakerphp/faker/src/Faker/Container/Container.php new file mode 100644 index 0000000..9b36184 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Container/Container.php @@ -0,0 +1,139 @@ + + */ + private array $definitions; + + private array $services = []; + + /** + * Create a container object with a set of definitions. The array value MUST + * produce an object that implements Extension. + * + * @param array $definitions + */ + public function __construct(array $definitions) + { + $this->definitions = $definitions; + } + + /** + * Retrieve a definition from the container. + * + * @param string $id + * + * @throws \InvalidArgumentException + * @throws \RuntimeException + * @throws ContainerException + * @throws NotInContainerException + */ + public function get($id): Extension + { + if (!is_string($id)) { + throw new \InvalidArgumentException(sprintf( + 'First argument of %s::get() must be string', + self::class, + )); + } + + if (array_key_exists($id, $this->services)) { + return $this->services[$id]; + } + + if (!$this->has($id)) { + throw new NotInContainerException(sprintf( + 'There is not service with id "%s" in the container.', + $id, + )); + } + + $definition = $this->definitions[$id]; + + $service = $this->getService($id, $definition); + + if (!$service instanceof Extension) { + throw new \RuntimeException(sprintf( + 'Service resolved for identifier "%s" does not implement the %s" interface.', + $id, + Extension::class, + )); + } + + $this->services[$id] = $service; + + return $service; + } + + /** + * Get the service from a definition. + * + * @param callable|object|string $definition + */ + private function getService(string $id, $definition) + { + if (is_callable($definition)) { + try { + return $definition(); + } catch (\Throwable $e) { + throw new ContainerException( + sprintf('Error while invoking callable for "%s"', $id), + 0, + $e, + ); + } + } elseif (is_object($definition)) { + return $definition; + } elseif (is_string($definition)) { + if (class_exists($definition)) { + try { + return new $definition(); + } catch (\Throwable $e) { + throw new ContainerException(sprintf('Could not instantiate class "%s"', $id), 0, $e); + } + } + + throw new ContainerException(sprintf( + 'Could not instantiate class "%s". Class was not found.', + $id, + )); + } else { + throw new ContainerException(sprintf( + 'Invalid type for definition with id "%s"', + $id, + )); + } + } + + /** + * Check if the container contains a given identifier. + * + * @param string $id + * + * @throws \InvalidArgumentException + */ + public function has($id): bool + { + if (!is_string($id)) { + throw new \InvalidArgumentException(sprintf( + 'First argument of %s::get() must be string', + self::class, + )); + } + + return array_key_exists($id, $this->definitions); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php b/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php new file mode 100644 index 0000000..f2545e9 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php @@ -0,0 +1,68 @@ + + */ + private array $definitions = []; + + /** + * @param callable|object|string $definition + * + * @throws \InvalidArgumentException + */ + public function add(string $id, $definition): self + { + if (!is_string($definition) && !is_callable($definition) && !is_object($definition)) { + throw new \InvalidArgumentException(sprintf( + 'First argument to "%s::add()" must be a string, callable or object.', + self::class, + )); + } + + $this->definitions[$id] = $definition; + + return $this; + } + + public function build(): ContainerInterface + { + return new Container($this->definitions); + } + + private static function defaultExtensions(): array + { + return [ + Extension\BarcodeExtension::class => Core\Barcode::class, + Extension\BloodExtension::class => Core\Blood::class, + Extension\ColorExtension::class => Core\Color::class, + Extension\DateTimeExtension::class => Core\DateTime::class, + Extension\FileExtension::class => Core\File::class, + Extension\NumberExtension::class => Core\Number::class, + Extension\UuidExtension::class => Core\Uuid::class, + Extension\VersionExtension::class => Core\Version::class, + ]; + } + + public static function withDefaultExtensions(): self + { + $instance = new self(); + + foreach (self::defaultExtensions() as $id => $definition) { + $instance->add($id, $definition); + } + + return $instance; + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Container/ContainerException.php b/vendor/fakerphp/faker/src/Faker/Container/ContainerException.php new file mode 100644 index 0000000..12b3caa --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Container/ContainerException.php @@ -0,0 +1,14 @@ +numberExtension = $numberExtension ?: new Number(); + } + + private function ean(int $length = 13): string + { + $code = Extension\Helper::numerify(str_repeat('#', $length - 1)); + + return sprintf('%s%s', $code, Calculator\Ean::checksum($code)); + } + + public function ean13(): string + { + return $this->ean(); + } + + public function ean8(): string + { + return $this->ean(8); + } + + public function isbn10(): string + { + $code = Extension\Helper::numerify(str_repeat('#', 9)); + + return sprintf('%s%s', $code, Calculator\Isbn::checksum($code)); + } + + public function isbn13(): string + { + $code = '97' . $this->numberExtension->numberBetween(8, 9) . Extension\Helper::numerify(str_repeat('#', 9)); + + return sprintf('%s%s', $code, Calculator\Ean::checksum($code)); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/Blood.php b/vendor/fakerphp/faker/src/Faker/Core/Blood.php new file mode 100644 index 0000000..03e563f --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/Blood.php @@ -0,0 +1,42 @@ +bloodTypes); + } + + public function bloodRh(): string + { + return Extension\Helper::randomElement($this->bloodRhFactors); + } + + public function bloodGroup(): string + { + return sprintf( + '%s%s', + $this->bloodType(), + $this->bloodRh(), + ); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/Color.php b/vendor/fakerphp/faker/src/Faker/Core/Color.php new file mode 100644 index 0000000..c6cac0d --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/Color.php @@ -0,0 +1,177 @@ +numberExtension = $numberExtension ?: new Number(); + } + + /** + * @example '#fa3cc2' + */ + public function hexColor(): string + { + return '#' . str_pad(dechex($this->numberExtension->numberBetween(1, 16777215)), 6, '0', STR_PAD_LEFT); + } + + /** + * @example '#ff0044' + */ + public function safeHexColor(): string + { + $color = str_pad(dechex($this->numberExtension->numberBetween(0, 255)), 3, '0', STR_PAD_LEFT); + + return sprintf( + '#%s%s%s%s%s%s', + $color[0], + $color[0], + $color[1], + $color[1], + $color[2], + $color[2], + ); + } + + /** + * @example 'array(0,255,122)' + * + * @return int[] + */ + public function rgbColorAsArray(): array + { + $color = $this->hexColor(); + + return [ + hexdec(substr($color, 1, 2)), + hexdec(substr($color, 3, 2)), + hexdec(substr($color, 5, 2)), + ]; + } + + /** + * @example '0,255,122' + */ + public function rgbColor(): string + { + return implode(',', $this->rgbColorAsArray()); + } + + /** + * @example 'rgb(0,255,122)' + */ + public function rgbCssColor(): string + { + return sprintf( + 'rgb(%s)', + $this->rgbColor(), + ); + } + + /** + * @example 'rgba(0,255,122,0.8)' + */ + public function rgbaCssColor(): string + { + return sprintf( + 'rgba(%s,%s)', + $this->rgbColor(), + $this->numberExtension->randomFloat(1, 0, 1), + ); + } + + /** + * @example 'blue' + */ + public function safeColorName(): string + { + return Helper::randomElement($this->safeColorNames); + } + + /** + * @example 'NavajoWhite' + */ + public function colorName(): string + { + return Helper::randomElement($this->allColorNames); + } + + /** + * @example '340,50,20' + */ + public function hslColor(): string + { + return sprintf( + '%s,%s,%s', + $this->numberExtension->numberBetween(0, 360), + $this->numberExtension->numberBetween(0, 100), + $this->numberExtension->numberBetween(0, 100), + ); + } + + /** + * @example array(340, 50, 20) + * + * @return int[] + */ + public function hslColorAsArray(): array + { + return [ + $this->numberExtension->numberBetween(0, 360), + $this->numberExtension->numberBetween(0, 100), + $this->numberExtension->numberBetween(0, 100), + ]; + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php b/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php new file mode 100644 index 0000000..bc0678f --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php @@ -0,0 +1,78 @@ +numberExtension = $numberExtension ?: new Number(); + } + + /** + * @example '77.147489' + * + * @return float Uses signed degrees format (returns a float number between -90 and 90) + */ + public function latitude(float $min = -90.0, float $max = 90.0): float + { + if ($min < -90 || $max < -90) { + throw new \LogicException('Latitude cannot be less that -90.0'); + } + + if ($min > 90 || $max > 90) { + throw new \LogicException('Latitude cannot be greater that 90.0'); + } + + return $this->randomFloat(6, $min, $max); + } + + /** + * @example '86.211205' + * + * @return float Uses signed degrees format (returns a float number between -180 and 180) + */ + public function longitude(float $min = -180.0, float $max = 180.0): float + { + if ($min < -180 || $max < -180) { + throw new \LogicException('Longitude cannot be less that -180.0'); + } + + if ($min > 180 || $max > 180) { + throw new \LogicException('Longitude cannot be greater that 180.0'); + } + + return $this->randomFloat(6, $min, $max); + } + + /** + * @example array('77.147489', '86.211205') + * + * @return array{latitude: float, longitude: float} + */ + public function localCoordinates(): array + { + return [ + 'latitude' => $this->latitude(), + 'longitude' => $this->longitude(), + ]; + } + + private function randomFloat(int $nbMaxDecimals, float $min, float $max): float + { + if ($min > $max) { + throw new \LogicException('Invalid coordinates boundaries'); + } + + return $this->numberExtension->randomFloat($nbMaxDecimals, $min, $max); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/DateTime.php b/vendor/fakerphp/faker/src/Faker/Core/DateTime.php new file mode 100644 index 0000000..6e02c66 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/DateTime.php @@ -0,0 +1,217 @@ +getTimestamp(); + } + + return strtotime(empty($until) ? 'now' : $until); + } + + /** + * Get a DateTime created based on a POSIX-timestamp. + * + * @param int $timestamp the UNIX / POSIX-compatible timestamp + */ + private function getTimestampDateTime(int $timestamp): \DateTime + { + return new \DateTime('@' . $timestamp); + } + + private function resolveTimezone(?string $timezone): string + { + if ($timezone !== null) { + return $timezone; + } + + return null === $this->defaultTimezone ? date_default_timezone_get() : $this->defaultTimezone; + } + + /** + * Internal method to set the timezone on a DateTime object. + */ + private function setTimezone(\DateTime $dateTime, ?string $timezone): \DateTime + { + $timezone = $this->resolveTimezone($timezone); + + return $dateTime->setTimezone(new \DateTimeZone($timezone)); + } + + public function dateTime($until = 'now', ?string $timezone = null): \DateTime + { + return $this->setTimezone( + $this->getTimestampDateTime($this->unixTime($until)), + $timezone, + ); + } + + public function dateTimeAD($until = 'now', ?string $timezone = null): \DateTime + { + $min = (PHP_INT_SIZE > 4) ? -62135597361 : -PHP_INT_MAX; + + return $this->setTimezone( + $this->getTimestampDateTime($this->generator->numberBetween($min, $this->getTimestamp($until))), + $timezone, + ); + } + + public function dateTimeBetween($from = '-30 years', $until = 'now', ?string $timezone = null): \DateTime + { + $start = $this->getTimestamp($from); + $end = $this->getTimestamp($until); + + if ($start > $end) { + throw new \InvalidArgumentException('"$from" must be anterior to "$until".'); + } + + $timestamp = $this->generator->numberBetween($start, $end); + + return $this->setTimezone( + $this->getTimestampDateTime($timestamp), + $timezone, + ); + } + + public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', ?string $timezone = null): \DateTime + { + $intervalObject = \DateInterval::createFromDateString($interval); + $datetime = $from instanceof \DateTime ? $from : new \DateTime($from); + + $other = (clone $datetime)->add($intervalObject); + + $begin = min($datetime, $other); + $end = $datetime === $begin ? $other : $datetime; + + return $this->dateTimeBetween($begin, $end, $timezone); + } + + public function dateTimeThisWeek($until = 'sunday this week', ?string $timezone = null): \DateTime + { + return $this->dateTimeBetween('monday this week', $until, $timezone); + } + + public function dateTimeThisMonth($until = 'last day of this month', ?string $timezone = null): \DateTime + { + return $this->dateTimeBetween('first day of this month', $until, $timezone); + } + + public function dateTimeThisYear($until = 'last day of december', ?string $timezone = null): \DateTime + { + return $this->dateTimeBetween('first day of january', $until, $timezone); + } + + public function dateTimeThisDecade($until = 'now', ?string $timezone = null): \DateTime + { + $year = floor(date('Y') / 10) * 10; + + return $this->dateTimeBetween("first day of january $year", $until, $timezone); + } + + public function dateTimeThisCentury($until = 'now', ?string $timezone = null): \DateTime + { + $year = floor(date('Y') / 100) * 100; + + return $this->dateTimeBetween("first day of january $year", $until, $timezone); + } + + public function date(string $format = 'Y-m-d', $until = 'now'): string + { + return $this->dateTime($until)->format($format); + } + + public function time(string $format = 'H:i:s', $until = 'now'): string + { + return $this->date($format, $until); + } + + public function unixTime($until = 'now'): int + { + return $this->generator->numberBetween(0, $this->getTimestamp($until)); + } + + public function iso8601($until = 'now'): string + { + return $this->date(\DateTime::ISO8601, $until); + } + + public function amPm($until = 'now'): string + { + return $this->date('a', $until); + } + + public function dayOfMonth($until = 'now'): string + { + return $this->date('d', $until); + } + + public function dayOfWeek($until = 'now'): string + { + return $this->date('l', $until); + } + + public function month($until = 'now'): string + { + return $this->date('m', $until); + } + + public function monthName($until = 'now'): string + { + return $this->date('F', $until); + } + + public function year($until = 'now'): string + { + return $this->date('Y', $until); + } + + public function century(): string + { + return Helper::randomElement($this->centuries); + } + + public function timezone(?string $countryCode = null): string + { + if ($countryCode) { + $timezones = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode); + } else { + $timezones = \DateTimeZone::listIdentifiers(); + } + + return Helper::randomElement($timezones); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/File.php b/vendor/fakerphp/faker/src/Faker/Core/File.php new file mode 100644 index 0000000..5151e90 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/File.php @@ -0,0 +1,564 @@ + file extension(s) + * + * @see http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types + */ + private array $mimeTypes = [ + 'application/atom+xml' => 'atom', + 'application/ecmascript' => 'ecma', + 'application/emma+xml' => 'emma', + 'application/epub+zip' => 'epub', + 'application/java-archive' => 'jar', + 'application/java-vm' => 'class', + 'application/javascript' => 'js', + 'application/json' => 'json', + 'application/jsonml+json' => 'jsonml', + 'application/lost+xml' => 'lostxml', + 'application/mathml+xml' => 'mathml', + 'application/mets+xml' => 'mets', + 'application/mods+xml' => 'mods', + 'application/mp4' => 'mp4s', + 'application/msword' => ['doc', 'dot'], + 'application/octet-stream' => [ + 'bin', + 'dms', + 'lrf', + 'mar', + 'so', + 'dist', + 'distz', + 'pkg', + 'bpk', + 'dump', + 'elc', + 'deploy', + ], + 'application/ogg' => 'ogx', + 'application/omdoc+xml' => 'omdoc', + 'application/pdf' => 'pdf', + 'application/pgp-encrypted' => 'pgp', + 'application/pgp-signature' => ['asc', 'sig'], + 'application/pkix-pkipath' => 'pkipath', + 'application/pkixcmp' => 'pki', + 'application/pls+xml' => 'pls', + 'application/postscript' => ['ai', 'eps', 'ps'], + 'application/pskc+xml' => 'pskcxml', + 'application/rdf+xml' => 'rdf', + 'application/reginfo+xml' => 'rif', + 'application/rss+xml' => 'rss', + 'application/rtf' => 'rtf', + 'application/sbml+xml' => 'sbml', + 'application/vnd.adobe.air-application-installer-package+zip' => 'air', + 'application/vnd.adobe.xdp+xml' => 'xdp', + 'application/vnd.adobe.xfdf' => 'xfdf', + 'application/vnd.ahead.space' => 'ahead', + 'application/vnd.dart' => 'dart', + 'application/vnd.data-vision.rdz' => 'rdz', + 'application/vnd.dece.data' => ['uvf', 'uvvf', 'uvd', 'uvvd'], + 'application/vnd.dece.ttml+xml' => ['uvt', 'uvvt'], + 'application/vnd.dece.unspecified' => ['uvx', 'uvvx'], + 'application/vnd.dece.zip' => ['uvz', 'uvvz'], + 'application/vnd.denovo.fcselayout-link' => 'fe_launch', + 'application/vnd.dna' => 'dna', + 'application/vnd.dolby.mlp' => 'mlp', + 'application/vnd.dpgraph' => 'dpg', + 'application/vnd.dreamfactory' => 'dfac', + 'application/vnd.ds-keypoint' => 'kpxx', + 'application/vnd.dvb.ait' => 'ait', + 'application/vnd.dvb.service' => 'svc', + 'application/vnd.dynageo' => 'geo', + 'application/vnd.ecowin.chart' => 'mag', + 'application/vnd.enliven' => 'nml', + 'application/vnd.epson.esf' => 'esf', + 'application/vnd.epson.msf' => 'msf', + 'application/vnd.epson.quickanime' => 'qam', + 'application/vnd.epson.salt' => 'slt', + 'application/vnd.epson.ssf' => 'ssf', + 'application/vnd.ezpix-album' => 'ez2', + 'application/vnd.ezpix-package' => 'ez3', + 'application/vnd.fdf' => 'fdf', + 'application/vnd.fdsn.mseed' => 'mseed', + 'application/vnd.fdsn.seed' => ['seed', 'dataless'], + 'application/vnd.flographit' => 'gph', + 'application/vnd.fluxtime.clip' => 'ftc', + 'application/vnd.hal+xml' => 'hal', + 'application/vnd.hydrostatix.sof-data' => 'sfd-hdstx', + 'application/vnd.ibm.minipay' => 'mpy', + 'application/vnd.ibm.secure-container' => 'sc', + 'application/vnd.iccprofile' => ['icc', 'icm'], + 'application/vnd.igloader' => 'igl', + 'application/vnd.immervision-ivp' => 'ivp', + 'application/vnd.kde.karbon' => 'karbon', + 'application/vnd.kde.kchart' => 'chrt', + 'application/vnd.kde.kformula' => 'kfo', + 'application/vnd.kde.kivio' => 'flw', + 'application/vnd.kde.kontour' => 'kon', + 'application/vnd.kde.kpresenter' => ['kpr', 'kpt'], + 'application/vnd.kde.kspread' => 'ksp', + 'application/vnd.kde.kword' => ['kwd', 'kwt'], + 'application/vnd.kenameaapp' => 'htke', + 'application/vnd.kidspiration' => 'kia', + 'application/vnd.kinar' => ['kne', 'knp'], + 'application/vnd.koan' => ['skp', 'skd', 'skt', 'skm'], + 'application/vnd.kodak-descriptor' => 'sse', + 'application/vnd.las.las+xml' => 'lasxml', + 'application/vnd.llamagraphics.life-balance.desktop' => 'lbd', + 'application/vnd.llamagraphics.life-balance.exchange+xml' => 'lbe', + 'application/vnd.lotus-1-2-3' => '123', + 'application/vnd.lotus-approach' => 'apr', + 'application/vnd.lotus-freelance' => 'pre', + 'application/vnd.lotus-notes' => 'nsf', + 'application/vnd.lotus-organizer' => 'org', + 'application/vnd.lotus-screencam' => 'scm', + 'application/vnd.mozilla.xul+xml' => 'xul', + 'application/vnd.ms-artgalry' => 'cil', + 'application/vnd.ms-cab-compressed' => 'cab', + 'application/vnd.ms-excel' => [ + 'xls', + 'xlm', + 'xla', + 'xlc', + 'xlt', + 'xlw', + ], + 'application/vnd.ms-excel.addin.macroenabled.12' => 'xlam', + 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => 'xlsb', + 'application/vnd.ms-excel.sheet.macroenabled.12' => 'xlsm', + 'application/vnd.ms-excel.template.macroenabled.12' => 'xltm', + 'application/vnd.ms-fontobject' => 'eot', + 'application/vnd.ms-htmlhelp' => 'chm', + 'application/vnd.ms-ims' => 'ims', + 'application/vnd.ms-lrm' => 'lrm', + 'application/vnd.ms-officetheme' => 'thmx', + 'application/vnd.ms-pki.seccat' => 'cat', + 'application/vnd.ms-pki.stl' => 'stl', + 'application/vnd.ms-powerpoint' => ['ppt', 'pps', 'pot'], + 'application/vnd.ms-powerpoint.addin.macroenabled.12' => 'ppam', + 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => 'pptm', + 'application/vnd.ms-powerpoint.slide.macroenabled.12' => 'sldm', + 'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => 'ppsm', + 'application/vnd.ms-powerpoint.template.macroenabled.12' => 'potm', + 'application/vnd.ms-project' => ['mpp', 'mpt'], + 'application/vnd.ms-word.document.macroenabled.12' => 'docm', + 'application/vnd.ms-word.template.macroenabled.12' => 'dotm', + 'application/vnd.ms-works' => ['wps', 'wks', 'wcm', 'wdb'], + 'application/vnd.ms-wpl' => 'wpl', + 'application/vnd.ms-xpsdocument' => 'xps', + 'application/vnd.mseq' => 'mseq', + 'application/vnd.musician' => 'mus', + 'application/vnd.oasis.opendocument.chart' => 'odc', + 'application/vnd.oasis.opendocument.chart-template' => 'otc', + 'application/vnd.oasis.opendocument.database' => 'odb', + 'application/vnd.oasis.opendocument.formula' => 'odf', + 'application/vnd.oasis.opendocument.formula-template' => 'odft', + 'application/vnd.oasis.opendocument.graphics' => 'odg', + 'application/vnd.oasis.opendocument.graphics-template' => 'otg', + 'application/vnd.oasis.opendocument.image' => 'odi', + 'application/vnd.oasis.opendocument.image-template' => 'oti', + 'application/vnd.oasis.opendocument.presentation' => 'odp', + 'application/vnd.oasis.opendocument.presentation-template' => 'otp', + 'application/vnd.oasis.opendocument.spreadsheet' => 'ods', + 'application/vnd.oasis.opendocument.spreadsheet-template' => 'ots', + 'application/vnd.oasis.opendocument.text' => 'odt', + 'application/vnd.oasis.opendocument.text-master' => 'odm', + 'application/vnd.oasis.opendocument.text-template' => 'ott', + 'application/vnd.oasis.opendocument.text-web' => 'oth', + 'application/vnd.olpc-sugar' => 'xo', + 'application/vnd.oma.dd2+xml' => 'dd2', + 'application/vnd.openofficeorg.extension' => 'oxt', + 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', + 'application/vnd.openxmlformats-officedocument.presentationml.slide' => 'sldx', + 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx', + 'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx', + 'application/vnd.pvi.ptid1' => 'ptid', + 'application/vnd.quark.quarkxpress' => [ + 'qxd', + 'qxt', + 'qwd', + 'qwt', + 'qxl', + 'qxb', + ], + 'application/vnd.realvnc.bed' => 'bed', + 'application/vnd.recordare.musicxml' => 'mxl', + 'application/vnd.recordare.musicxml+xml' => 'musicxml', + 'application/vnd.rig.cryptonote' => 'cryptonote', + 'application/vnd.rim.cod' => 'cod', + 'application/vnd.rn-realmedia' => 'rm', + 'application/vnd.rn-realmedia-vbr' => 'rmvb', + 'application/vnd.route66.link66+xml' => 'link66', + 'application/vnd.sailingtracker.track' => 'st', + 'application/vnd.seemail' => 'see', + 'application/vnd.sema' => 'sema', + 'application/vnd.semd' => 'semd', + 'application/vnd.semf' => 'semf', + 'application/vnd.shana.informed.formdata' => 'ifm', + 'application/vnd.shana.informed.formtemplate' => 'itp', + 'application/vnd.shana.informed.interchange' => 'iif', + 'application/vnd.shana.informed.package' => 'ipk', + 'application/vnd.simtech-mindmapper' => ['twd', 'twds'], + 'application/vnd.smaf' => 'mmf', + 'application/vnd.stepmania.stepchart' => 'sm', + 'application/vnd.sun.xml.calc' => 'sxc', + 'application/vnd.sun.xml.calc.template' => 'stc', + 'application/vnd.sun.xml.draw' => 'sxd', + 'application/vnd.sun.xml.draw.template' => 'std', + 'application/vnd.sun.xml.impress' => 'sxi', + 'application/vnd.sun.xml.impress.template' => 'sti', + 'application/vnd.sun.xml.math' => 'sxm', + 'application/vnd.sun.xml.writer' => 'sxw', + 'application/vnd.sun.xml.writer.global' => 'sxg', + 'application/vnd.sun.xml.writer.template' => 'stw', + 'application/vnd.sus-calendar' => ['sus', 'susp'], + 'application/vnd.svd' => 'svd', + 'application/vnd.symbian.install' => ['sis', 'sisx'], + 'application/vnd.syncml+xml' => 'xsm', + 'application/vnd.syncml.dm+wbxml' => 'bdm', + 'application/vnd.syncml.dm+xml' => 'xdm', + 'application/vnd.tao.intent-module-archive' => 'tao', + 'application/vnd.tcpdump.pcap' => ['pcap', 'cap', 'dmp'], + 'application/vnd.tmobile-livetv' => 'tmo', + 'application/vnd.trid.tpt' => 'tpt', + 'application/vnd.triscape.mxs' => 'mxs', + 'application/vnd.trueapp' => 'tra', + 'application/vnd.ufdl' => ['ufd', 'ufdl'], + 'application/vnd.uiq.theme' => 'utz', + 'application/vnd.umajin' => 'umj', + 'application/vnd.unity' => 'unityweb', + 'application/vnd.uoml+xml' => 'uoml', + 'application/vnd.vcx' => 'vcx', + 'application/vnd.visio' => ['vsd', 'vst', 'vss', 'vsw'], + 'application/vnd.visionary' => 'vis', + 'application/vnd.vsf' => 'vsf', + 'application/vnd.wap.wbxml' => 'wbxml', + 'application/vnd.wap.wmlc' => 'wmlc', + 'application/vnd.wap.wmlscriptc' => 'wmlsc', + 'application/vnd.webturbo' => 'wtb', + 'application/vnd.wolfram.player' => 'nbp', + 'application/vnd.wordperfect' => 'wpd', + 'application/vnd.wqd' => 'wqd', + 'application/vnd.wt.stf' => 'stf', + 'application/vnd.xara' => 'xar', + 'application/vnd.xfdl' => 'xfdl', + 'application/voicexml+xml' => 'vxml', + 'application/widget' => 'wgt', + 'application/winhlp' => 'hlp', + 'application/wsdl+xml' => 'wsdl', + 'application/wspolicy+xml' => 'wspolicy', + 'application/x-7z-compressed' => '7z', + 'application/x-bittorrent' => 'torrent', + 'application/x-blorb' => ['blb', 'blorb'], + 'application/x-bzip' => 'bz', + 'application/x-cdlink' => 'vcd', + 'application/x-cfs-compressed' => 'cfs', + 'application/x-chat' => 'chat', + 'application/x-chess-pgn' => 'pgn', + 'application/x-conference' => 'nsc', + 'application/x-cpio' => 'cpio', + 'application/x-csh' => 'csh', + 'application/x-debian-package' => ['deb', 'udeb'], + 'application/x-dgc-compressed' => 'dgc', + 'application/x-director' => [ + 'dir', + 'dcr', + 'dxr', + 'cst', + 'cct', + 'cxt', + 'w3d', + 'fgd', + 'swa', + ], + 'application/x-font-ttf' => ['ttf', 'ttc'], + 'application/x-font-type1' => ['pfa', 'pfb', 'pfm', 'afm'], + 'application/x-font-woff' => 'woff', + 'application/x-freearc' => 'arc', + 'application/x-futuresplash' => 'spl', + 'application/x-gca-compressed' => 'gca', + 'application/x-glulx' => 'ulx', + 'application/x-gnumeric' => 'gnumeric', + 'application/x-gramps-xml' => 'gramps', + 'application/x-gtar' => 'gtar', + 'application/x-hdf' => 'hdf', + 'application/x-install-instructions' => 'install', + 'application/x-iso9660-image' => 'iso', + 'application/x-java-jnlp-file' => 'jnlp', + 'application/x-latex' => 'latex', + 'application/x-lzh-compressed' => ['lzh', 'lha'], + 'application/x-mie' => 'mie', + 'application/x-mobipocket-ebook' => ['prc', 'mobi'], + 'application/x-ms-application' => 'application', + 'application/x-ms-shortcut' => 'lnk', + 'application/x-ms-wmd' => 'wmd', + 'application/x-ms-wmz' => 'wmz', + 'application/x-ms-xbap' => 'xbap', + 'application/x-msaccess' => 'mdb', + 'application/x-msbinder' => 'obd', + 'application/x-mscardfile' => 'crd', + 'application/x-msclip' => 'clp', + 'application/x-msdownload' => ['exe', 'dll', 'com', 'bat', 'msi'], + 'application/x-msmediaview' => [ + 'mvb', + 'm13', + 'm14', + ], + 'application/x-msmetafile' => ['wmf', 'wmz', 'emf', 'emz'], + 'application/x-rar-compressed' => 'rar', + 'application/x-research-info-systems' => 'ris', + 'application/x-sh' => 'sh', + 'application/x-shar' => 'shar', + 'application/x-shockwave-flash' => 'swf', + 'application/x-silverlight-app' => 'xap', + 'application/x-sql' => 'sql', + 'application/x-stuffit' => 'sit', + 'application/x-stuffitx' => 'sitx', + 'application/x-subrip' => 'srt', + 'application/x-sv4cpio' => 'sv4cpio', + 'application/x-sv4crc' => 'sv4crc', + 'application/x-t3vm-image' => 't3', + 'application/x-tads' => 'gam', + 'application/x-tar' => 'tar', + 'application/x-tcl' => 'tcl', + 'application/x-tex' => 'tex', + 'application/x-tex-tfm' => 'tfm', + 'application/x-texinfo' => ['texinfo', 'texi'], + 'application/x-tgif' => 'obj', + 'application/x-ustar' => 'ustar', + 'application/x-wais-source' => 'src', + 'application/x-x509-ca-cert' => ['der', 'crt'], + 'application/x-xfig' => 'fig', + 'application/x-xliff+xml' => 'xlf', + 'application/x-xpinstall' => 'xpi', + 'application/x-xz' => 'xz', + 'application/x-zmachine' => 'z1', + 'application/xaml+xml' => 'xaml', + 'application/xcap-diff+xml' => 'xdf', + 'application/xenc+xml' => 'xenc', + 'application/xhtml+xml' => ['xhtml', 'xht'], + 'application/xml' => ['xml', 'xsl'], + 'application/xml-dtd' => 'dtd', + 'application/xop+xml' => 'xop', + 'application/xproc+xml' => 'xpl', + 'application/xslt+xml' => 'xslt', + 'application/xspf+xml' => 'xspf', + 'application/xv+xml' => ['mxml', 'xhvml', 'xvml', 'xvm'], + 'application/yang' => 'yang', + 'application/yin+xml' => 'yin', + 'application/zip' => 'zip', + 'audio/adpcm' => 'adp', + 'audio/basic' => ['au', 'snd'], + 'audio/midi' => ['mid', 'midi', 'kar', 'rmi'], + 'audio/mp4' => 'mp4a', + 'audio/mpeg' => [ + 'mpga', + 'mp2', + 'mp2a', + 'mp3', + 'm2a', + 'm3a', + ], + 'audio/ogg' => ['oga', 'ogg', 'spx'], + 'audio/vnd.dece.audio' => ['uva', 'uvva'], + 'audio/vnd.rip' => 'rip', + 'audio/webm' => 'weba', + 'audio/x-aac' => 'aac', + 'audio/x-aiff' => ['aif', 'aiff', 'aifc'], + 'audio/x-caf' => 'caf', + 'audio/x-flac' => 'flac', + 'audio/x-matroska' => 'mka', + 'audio/x-mpegurl' => 'm3u', + 'audio/x-ms-wax' => 'wax', + 'audio/x-ms-wma' => 'wma', + 'audio/x-pn-realaudio' => ['ram', 'ra'], + 'audio/x-pn-realaudio-plugin' => 'rmp', + 'audio/x-wav' => 'wav', + 'audio/xm' => 'xm', + 'image/bmp' => 'bmp', + 'image/cgm' => 'cgm', + 'image/g3fax' => 'g3', + 'image/gif' => 'gif', + 'image/ief' => 'ief', + 'image/jpeg' => ['jpeg', 'jpg', 'jpe'], + 'image/ktx' => 'ktx', + 'image/png' => 'png', + 'image/prs.btif' => 'btif', + 'image/sgi' => 'sgi', + 'image/svg+xml' => ['svg', 'svgz'], + 'image/tiff' => ['tiff', 'tif'], + 'image/vnd.adobe.photoshop' => 'psd', + 'image/vnd.dece.graphic' => ['uvi', 'uvvi', 'uvg', 'uvvg'], + 'image/vnd.dvb.subtitle' => 'sub', + 'image/vnd.djvu' => ['djvu', 'djv'], + 'image/vnd.dwg' => 'dwg', + 'image/vnd.dxf' => 'dxf', + 'image/vnd.fastbidsheet' => 'fbs', + 'image/vnd.fpx' => 'fpx', + 'image/vnd.fst' => 'fst', + 'image/vnd.fujixerox.edmics-mmr' => 'mmr', + 'image/vnd.fujixerox.edmics-rlc' => 'rlc', + 'image/vnd.ms-modi' => 'mdi', + 'image/vnd.ms-photo' => 'wdp', + 'image/vnd.net-fpx' => 'npx', + 'image/vnd.wap.wbmp' => 'wbmp', + 'image/vnd.xiff' => 'xif', + 'image/webp' => 'webp', + 'image/x-3ds' => '3ds', + 'image/x-cmu-raster' => 'ras', + 'image/x-cmx' => 'cmx', + 'image/x-freehand' => ['fh', 'fhc', 'fh4', 'fh5', 'fh7'], + 'image/x-icon' => 'ico', + 'image/x-mrsid-image' => 'sid', + 'image/x-pcx' => 'pcx', + 'image/x-pict' => ['pic', 'pct'], + 'image/x-portable-anymap' => 'pnm', + 'image/x-portable-bitmap' => 'pbm', + 'image/x-portable-graymap' => 'pgm', + 'image/x-portable-pixmap' => 'ppm', + 'image/x-rgb' => 'rgb', + 'image/x-tga' => 'tga', + 'image/x-xbitmap' => 'xbm', + 'image/x-xpixmap' => 'xpm', + 'image/x-xwindowdump' => 'xwd', + 'message/rfc822' => ['eml', 'mime'], + 'model/iges' => ['igs', 'iges'], + 'model/mesh' => ['msh', 'mesh', 'silo'], + 'model/vnd.collada+xml' => 'dae', + 'model/vnd.dwf' => 'dwf', + 'model/vnd.gdl' => 'gdl', + 'model/vnd.gtw' => 'gtw', + 'model/vnd.mts' => 'mts', + 'model/vnd.vtu' => 'vtu', + 'model/vrml' => ['wrl', 'vrml'], + 'model/x3d+binary' => 'x3db', + 'model/x3d+vrml' => 'x3dv', + 'model/x3d+xml' => 'x3d', + 'text/cache-manifest' => 'appcache', + 'text/calendar' => ['ics', 'ifb'], + 'text/css' => 'css', + 'text/csv' => 'csv', + 'text/html' => ['html', 'htm'], + 'text/n3' => 'n3', + 'text/plain' => [ + 'txt', + 'text', + 'conf', + 'def', + 'list', + 'log', + 'in', + ], + 'text/prs.lines.tag' => 'dsc', + 'text/richtext' => 'rtx', + 'text/sgml' => ['sgml', 'sgm'], + 'text/tab-separated-values' => 'tsv', + 'text/troff' => [ + 't', + 'tr', + 'roff', + 'man', + 'me', + 'ms', + ], + 'text/turtle' => 'ttl', + 'text/uri-list' => ['uri', 'uris', 'urls'], + 'text/vcard' => 'vcard', + 'text/vnd.curl' => 'curl', + 'text/vnd.curl.dcurl' => 'dcurl', + 'text/vnd.curl.scurl' => 'scurl', + 'text/vnd.curl.mcurl' => 'mcurl', + 'text/vnd.dvb.subtitle' => 'sub', + 'text/vnd.fly' => 'fly', + 'text/vnd.fmi.flexstor' => 'flx', + 'text/vnd.graphviz' => 'gv', + 'text/vnd.in3d.3dml' => '3dml', + 'text/vnd.in3d.spot' => 'spot', + 'text/vnd.sun.j2me.app-descriptor' => 'jad', + 'text/vnd.wap.wml' => 'wml', + 'text/vnd.wap.wmlscript' => 'wmls', + 'text/x-asm' => ['s', 'asm'], + 'text/x-fortran' => ['f', 'for', 'f77', 'f90'], + 'text/x-java-source' => 'java', + 'text/x-opml' => 'opml', + 'text/x-pascal' => ['p', 'pas'], + 'text/x-nfo' => 'nfo', + 'text/x-setext' => 'etx', + 'text/x-sfv' => 'sfv', + 'text/x-uuencode' => 'uu', + 'text/x-vcalendar' => 'vcs', + 'text/x-vcard' => 'vcf', + 'video/3gpp' => '3gp', + 'video/3gpp2' => '3g2', + 'video/h261' => 'h261', + 'video/h263' => 'h263', + 'video/h264' => 'h264', + 'video/jpeg' => 'jpgv', + 'video/jpm' => ['jpm', 'jpgm'], + 'video/mj2' => 'mj2', + 'video/mp4' => 'mp4', + 'video/mpeg' => ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'], + 'video/ogg' => 'ogv', + 'video/quicktime' => ['qt', 'mov'], + 'video/vnd.dece.hd' => ['uvh', 'uvvh'], + 'video/vnd.dece.mobile' => ['uvm', 'uvvm'], + 'video/vnd.dece.pd' => ['uvp', 'uvvp'], + 'video/vnd.dece.sd' => ['uvs', 'uvvs'], + 'video/vnd.dece.video' => ['uvv', 'uvvv'], + 'video/vnd.dvb.file' => 'dvb', + 'video/vnd.fvt' => 'fvt', + 'video/vnd.mpegurl' => ['mxu', 'm4u'], + 'video/vnd.ms-playready.media.pyv' => 'pyv', + 'video/vnd.uvvu.mp4' => ['uvu', 'uvvu'], + 'video/vnd.vivo' => 'viv', + 'video/webm' => 'webm', + 'video/x-f4v' => 'f4v', + 'video/x-fli' => 'fli', + 'video/x-flv' => 'flv', + 'video/x-m4v' => 'm4v', + 'video/x-matroska' => ['mkv', 'mk3d', 'mks'], + 'video/x-mng' => 'mng', + 'video/x-ms-asf' => ['asf', 'asx'], + 'video/x-ms-vob' => 'vob', + 'video/x-ms-wm' => 'wm', + 'video/x-ms-wmv' => 'wmv', + 'video/x-ms-wmx' => 'wmx', + 'video/x-ms-wvx' => 'wvx', + 'video/x-msvideo' => 'avi', + 'video/x-sgi-movie' => 'movie', + ]; + + public function mimeType(): string + { + return array_rand($this->mimeTypes, 1); + } + + public function extension(): string + { + $extension = $this->mimeTypes[array_rand($this->mimeTypes, 1)]; + + return is_array($extension) ? $extension[array_rand($extension, 1)] : $extension; + } + + public function filePath(): string + { + return tempnam(sys_get_temp_dir(), 'faker'); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/Number.php b/vendor/fakerphp/faker/src/Faker/Core/Number.php new file mode 100644 index 0000000..4334dcf --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/Number.php @@ -0,0 +1,83 @@ +numberBetween(0, 9); + } + + public function randomDigitNot(int $except): int + { + $result = $this->numberBetween(0, 8); + + if ($result >= $except) { + ++$result; + } + + return $result; + } + + public function randomDigitNotZero(): int + { + return $this->numberBetween(1, 9); + } + + public function randomFloat(?int $nbMaxDecimals = null, float $min = 0, ?float $max = null): float + { + if (null === $nbMaxDecimals) { + $nbMaxDecimals = $this->randomDigit(); + } + + if (null === $max) { + $max = $this->randomNumber(); + + if ($min > $max) { + $max = $min; + } + } + + if ($min > $max) { + $tmp = $min; + $min = $max; + $max = $tmp; + } + + return round($min + $this->numberBetween() / mt_getrandmax() * ($max - $min), $nbMaxDecimals); + } + + public function randomNumber(?int $nbDigits = null, bool $strict = false): int + { + if (null === $nbDigits) { + $nbDigits = $this->randomDigitNotZero(); + } + $max = 10 ** $nbDigits - 1; + + if ($max > mt_getrandmax()) { + throw new \InvalidArgumentException('randomNumber() can only generate numbers up to mt_getrandmax()'); + } + + if ($strict) { + return $this->numberBetween(10 ** ($nbDigits - 1), $max); + } + + return $this->numberBetween(0, $max); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/Uuid.php b/vendor/fakerphp/faker/src/Faker/Core/Uuid.php new file mode 100644 index 0000000..4580460 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/Uuid.php @@ -0,0 +1,65 @@ +numberExtension = $numberExtension ?: new Number(); + } + + public function uuid3(): string + { + // fix for compatibility with 32bit architecture; each mt_rand call is restricted to 32bit + // two such calls will cause 64bits of randomness regardless of architecture + $seed = $this->numberExtension->numberBetween(0, 2147483647) . '#' . $this->numberExtension->numberBetween(0, 2147483647); + + // Hash the seed and convert to a byte array + $val = md5($seed, true); + $byte = array_values(unpack('C16', $val)); + + // extract fields from byte array + $tLo = ($byte[0] << 24) | ($byte[1] << 16) | ($byte[2] << 8) | $byte[3]; + $tMi = ($byte[4] << 8) | $byte[5]; + $tHi = ($byte[6] << 8) | $byte[7]; + $csLo = $byte[9]; + $csHi = $byte[8] & 0x3f | (1 << 7); + + // correct byte order for big edian architecture + if (pack('L', 0x6162797A) == pack('N', 0x6162797A)) { + $tLo = (($tLo & 0x000000ff) << 24) | (($tLo & 0x0000ff00) << 8) + | (($tLo & 0x00ff0000) >> 8) | (($tLo & 0xff000000) >> 24); + $tMi = (($tMi & 0x00ff) << 8) | (($tMi & 0xff00) >> 8); + $tHi = (($tHi & 0x00ff) << 8) | (($tHi & 0xff00) >> 8); + } + + // apply version number + $tHi &= 0x0fff; + $tHi |= (3 << 12); + + // cast to string + return sprintf( + '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x', + $tLo, + $tMi, + $tHi, + $csHi, + $csLo, + $byte[10], + $byte[11], + $byte[12], + $byte[13], + $byte[14], + $byte[15], + ); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Core/Version.php b/vendor/fakerphp/faker/src/Faker/Core/Version.php new file mode 100644 index 0000000..7c321e0 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Core/Version.php @@ -0,0 +1,69 @@ +numberExtension = $numberExtension ?: new Number(); + } + + /** + * Represents v2.0.0 of the semantic versioning: https://semver.org/spec/v2.0.0.html + */ + public function semver(bool $preRelease = false, bool $build = false): string + { + return sprintf( + '%d.%d.%d%s%s', + $this->numberExtension->numberBetween(0, 9), + $this->numberExtension->numberBetween(0, 99), + $this->numberExtension->numberBetween(0, 99), + $preRelease && $this->numberExtension->numberBetween(0, 1) === 1 ? '-' . $this->semverPreReleaseIdentifier() : '', + $build && $this->numberExtension->numberBetween(0, 1) === 1 ? '+' . $this->semverBuildIdentifier() : '', + ); + } + + /** + * Common pre-release identifier + */ + private function semverPreReleaseIdentifier(): string + { + $ident = Extension\Helper::randomElement($this->semverCommonPreReleaseIdentifiers); + + if ($this->numberExtension->numberBetween(0, 1) !== 1) { + return $ident; + } + + return $ident . '.' . $this->numberExtension->numberBetween(1, 99); + } + + /** + * Common random build identifier + */ + private function semverBuildIdentifier(): string + { + if ($this->numberExtension->numberBetween(0, 1) === 1) { + // short git revision syntax: https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection + return substr(sha1(Extension\Helper::lexify('??????')), 0, 7); + } + + // date syntax + return DateTime::date('YmdHis'); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php b/vendor/fakerphp/faker/src/Faker/DefaultGenerator.php similarity index 51% rename from vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php rename to vendor/fakerphp/faker/src/Faker/DefaultGenerator.php index eafd2ec..688f476 100644 --- a/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php +++ b/vendor/fakerphp/faker/src/Faker/DefaultGenerator.php @@ -4,7 +4,11 @@ /** * This generator returns a default value for all called properties - * and methods. It works with Faker\Generator\Base->optional(). + * and methods. + * + * @mixin Generator + * + * @deprecated Use ChanceGenerator instead */ class DefaultGenerator { @@ -12,24 +16,31 @@ class DefaultGenerator public function __construct($default = null) { + trigger_deprecation('fakerphp/faker', '1.16', 'Class "%s" is deprecated, use "%s" instead.', __CLASS__, ChanceGenerator::class); + $this->default = $default; } + public function ext() + { + return $this; + } + /** * @param string $attribute * - * @return mixed + * @deprecated Use a method instead. */ public function __get($attribute) { + trigger_deprecation('fakerphp/faker', '1.14', 'Accessing property "%s" is deprecated, use "%s()" instead.', $attribute, $attribute); + return $this->default; } /** * @param string $method - * @param array $attributes - * - * @return mixed + * @param array $attributes */ public function __call($method, $attributes) { diff --git a/vendor/fzaninotto/faker/src/Faker/Documentor.php b/vendor/fakerphp/faker/src/Faker/Documentor.php similarity index 79% rename from vendor/fzaninotto/faker/src/Faker/Documentor.php rename to vendor/fakerphp/faker/src/Faker/Documentor.php index e42bdf4..280b832 100644 --- a/vendor/fzaninotto/faker/src/Faker/Documentor.php +++ b/vendor/fakerphp/faker/src/Faker/Documentor.php @@ -6,9 +6,6 @@ class Documentor { protected $generator; - /** - * @param Generator $generator - */ public function __construct(Generator $generator) { $this->generator = $generator; @@ -19,37 +16,44 @@ public function __construct(Generator $generator) */ public function getFormatters() { - $formatters = array(); + $formatters = []; $providers = array_reverse($this->generator->getProviders()); - $providers[]= new Provider\Base($this->generator); + $providers[] = new Provider\Base($this->generator); + foreach ($providers as $provider) { $providerClass = get_class($provider); - $formatters[$providerClass] = array(); + $formatters[$providerClass] = []; $refl = new \ReflectionObject($provider); + foreach ($refl->getMethods(\ReflectionMethod::IS_PUBLIC) as $reflmethod) { if ($reflmethod->getDeclaringClass()->getName() == 'Faker\Provider\Base' && $providerClass != 'Faker\Provider\Base') { continue; } $methodName = $reflmethod->name; + if ($reflmethod->isConstructor()) { continue; } - $parameters = array(); + $parameters = []; + foreach ($reflmethod->getParameters() as $reflparameter) { - $parameter = '$'. $reflparameter->getName(); + $parameter = '$' . $reflparameter->getName(); + if ($reflparameter->isDefaultValueAvailable()) { $parameter .= ' = ' . var_export($reflparameter->getDefaultValue(), true); } - $parameters []= $parameter; + $parameters[] = $parameter; } - $parameters = $parameters ? '('. join(', ', $parameters) . ')' : ''; + $parameters = $parameters ? '(' . implode(', ', $parameters) . ')' : ''; + try { $example = $this->generator->format($methodName); } catch (\InvalidArgumentException $e) { $example = ''; } + if (is_array($example)) { - $example = "array('". join("', '", $example) . "')"; + $example = "array('" . implode("', '", $example) . "')"; } elseif ($example instanceof \DateTime) { $example = "DateTime('" . $example->format('Y-m-d H:i:s') . "')"; } elseif ($example instanceof Generator || $example instanceof UniqueGenerator) { // modifier diff --git a/vendor/fakerphp/faker/src/Faker/Extension/AddressExtension.php b/vendor/fakerphp/faker/src/Faker/Extension/AddressExtension.php new file mode 100644 index 0000000..568ca37 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Extension/AddressExtension.php @@ -0,0 +1,39 @@ +generator = $generator; + + return $instance; + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Extension/Helper.php b/vendor/fakerphp/faker/src/Faker/Extension/Helper.php new file mode 100644 index 0000000..47200e9 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Extension/Helper.php @@ -0,0 +1,106 @@ +addProvider(new $providerClassName($generator)); @@ -28,6 +30,7 @@ public static function create($locale = self::DEFAULT_LOCALE) /** * @param string $provider * @param string $locale + * * @return string */ protected static function getProviderClassname($provider, $locale = '') @@ -35,27 +38,34 @@ protected static function getProviderClassname($provider, $locale = '') if ($providerClass = self::findProviderClassname($provider, $locale)) { return $providerClass; } + // fallback to default locale if ($providerClass = self::findProviderClassname($provider, static::DEFAULT_LOCALE)) { return $providerClass; } + // fallback to no locale if ($providerClass = self::findProviderClassname($provider)) { return $providerClass; } + throw new \InvalidArgumentException(sprintf('Unable to find provider "%s" with locale "%s"', $provider, $locale)); } /** * @param string $provider * @param string $locale - * @return string + * + * @return string|null */ protected static function findProviderClassname($provider, $locale = '') { $providerClass = 'Faker\\' . ($locale ? sprintf('Provider\%s\%s', $locale, $provider) : sprintf('Provider\%s', $provider)); + if (class_exists($providerClass, true)) { return $providerClass; } + + return null; } } diff --git a/vendor/fakerphp/faker/src/Faker/Generator.php b/vendor/fakerphp/faker/src/Faker/Generator.php new file mode 100644 index 0000000..d132031 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Generator.php @@ -0,0 +1,985 @@ +container = $container ?: Container\ContainerBuilder::withDefaultExtensions()->build(); + } + + /** + * @template T of Extension\Extension + * + * @param class-string $id + * + * @throws Extension\ExtensionNotFound + * + * @return T + */ + public function ext(string $id): Extension\Extension + { + if (!$this->container->has($id)) { + throw new Extension\ExtensionNotFound(sprintf( + 'No Faker extension with id "%s" was loaded.', + $id, + )); + } + + $extension = $this->container->get($id); + + if ($extension instanceof Extension\GeneratorAwareExtension) { + $extension = $extension->withGenerator($this); + } + + return $extension; + } + + public function addProvider($provider) + { + array_unshift($this->providers, $provider); + + $this->formatters = []; + } + + public function getProviders() + { + return $this->providers; + } + + /** + * With the unique generator you are guaranteed to never get the same two + * values. + * + * + * // will never return twice the same value + * $faker->unique()->randomElement(array(1, 2, 3)); + * + * + * @param bool $reset If set to true, resets the list of existing values + * @param int $maxRetries Maximum number of retries to find a unique value, + * After which an OverflowException is thrown. + * + * @throws \OverflowException When no unique value can be found by iterating $maxRetries times + * + * @return self A proxy class returning only non-existing values + */ + public function unique($reset = false, $maxRetries = 10000) + { + if ($reset || $this->uniqueGenerator === null) { + $this->uniqueGenerator = new UniqueGenerator($this, $maxRetries); + } + + return $this->uniqueGenerator; + } + + /** + * Get a value only some percentage of the time. + * + * @param float $weight A probability between 0 and 1, 0 means that we always get the default value. + * + * @return self + */ + public function optional(float $weight = 0.5, $default = null) + { + if ($weight > 1) { + trigger_deprecation('fakerphp/faker', '1.16', 'First argument ($weight) to method "optional()" must be between 0 and 1. You passed %f, we assume you meant %f.', $weight, $weight / 100); + $weight = $weight / 100; + } + + return new ChanceGenerator($this, $weight, $default); + } + + /** + * To make sure the value meet some criteria, pass a callable that verifies the + * output. If the validator fails, the generator will try again. + * + * The value validity is determined by a function passed as first argument. + * + * + * $values = array(); + * $evenValidator = function ($digit) { + * return $digit % 2 === 0; + * }; + * for ($i=0; $i < 10; $i++) { + * $values []= $faker->valid($evenValidator)->randomDigit; + * } + * print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6] + * + * + * @param ?\Closure $validator A function returning true for valid values + * @param int $maxRetries Maximum number of retries to find a valid value, + * After which an OverflowException is thrown. + * + * @throws \OverflowException When no valid value can be found by iterating $maxRetries times + * + * @return self A proxy class returning only valid values + */ + public function valid(?\Closure $validator = null, int $maxRetries = 10000) + { + return new ValidGenerator($this, $validator, $maxRetries); + } + + public function seed($seed = null) + { + if ($seed === null) { + mt_srand(); + } else { + mt_srand((int) $seed, self::mode()); + } + } + + /** + * @see https://www.php.net/manual/en/migration83.deprecated.php#migration83.deprecated.random + */ + private static function mode(): int + { + if (PHP_VERSION_ID < 80300) { + return MT_RAND_PHP; + } + + return MT_RAND_MT19937; + } + + public function format($format, $arguments = []) + { + return call_user_func_array($this->getFormatter($format), $arguments); + } + + /** + * @param string $format + * + * @return callable + */ + public function getFormatter($format) + { + if (isset($this->formatters[$format])) { + return $this->formatters[$format]; + } + + if (method_exists($this, $format)) { + $this->formatters[$format] = [$this, $format]; + + return $this->formatters[$format]; + } + + // "Faker\Core\Barcode->ean13" + if (preg_match('|^([a-zA-Z0-9\\\]+)->([a-zA-Z0-9]+)$|', $format, $matches)) { + $this->formatters[$format] = [$this->ext($matches[1]), $matches[2]]; + + return $this->formatters[$format]; + } + + foreach ($this->providers as $provider) { + if (method_exists($provider, $format)) { + $this->formatters[$format] = [$provider, $format]; + + return $this->formatters[$format]; + } + } + + throw new \InvalidArgumentException(sprintf('Unknown format "%s"', $format)); + } + + /** + * Replaces tokens ('{{ tokenName }}') with the result from the token method call + * + * @param string $string String that needs to bet parsed + * + * @return string + */ + public function parse($string) + { + $callback = function ($matches) { + return $this->format($matches[1]); + }; + + return preg_replace_callback('/{{\s?(\w+|[\w\\\]+->\w+?)\s?}}/u', $callback, $string); + } + + /** + * Get a random MIME type + * + * @example 'video/avi' + */ + public function mimeType() + { + return $this->ext(Extension\FileExtension::class)->mimeType(); + } + + /** + * Get a random file extension (without a dot) + * + * @example avi + */ + public function fileExtension() + { + return $this->ext(Extension\FileExtension::class)->extension(); + } + + /** + * Get a full path to a new real file on the system. + */ + public function filePath() + { + return $this->ext(Extension\FileExtension::class)->filePath(); + } + + /** + * Get an actual blood type + * + * @example 'AB' + */ + public function bloodType(): string + { + return $this->ext(Extension\BloodExtension::class)->bloodType(); + } + + /** + * Get a random resis value + * + * @example '+' + */ + public function bloodRh(): string + { + return $this->ext(Extension\BloodExtension::class)->bloodRh(); + } + + /** + * Get a full blood group + * + * @example 'AB+' + */ + public function bloodGroup(): string + { + return $this->ext(Extension\BloodExtension::class)->bloodGroup(); + } + + /** + * Get a random EAN13 barcode. + * + * @example '4006381333931' + */ + public function ean13(): string + { + return $this->ext(Extension\BarcodeExtension::class)->ean13(); + } + + /** + * Get a random EAN8 barcode. + * + * @example '73513537' + */ + public function ean8(): string + { + return $this->ext(Extension\BarcodeExtension::class)->ean8(); + } + + /** + * Get a random ISBN-10 code + * + * @see http://en.wikipedia.org/wiki/International_Standard_Book_Number + * + * @example '4881416324' + */ + public function isbn10(): string + { + return $this->ext(Extension\BarcodeExtension::class)->isbn10(); + } + + /** + * Get a random ISBN-13 code + * + * @see http://en.wikipedia.org/wiki/International_Standard_Book_Number + * + * @example '9790404436093' + */ + public function isbn13(): string + { + return $this->ext(Extension\BarcodeExtension::class)->isbn13(); + } + + /** + * Returns a random number between $int1 and $int2 (any order) + * + * @example 79907610 + */ + public function numberBetween($int1 = 0, $int2 = 2147483647): int + { + return $this->ext(Extension\NumberExtension::class)->numberBetween((int) $int1, (int) $int2); + } + + /** + * Returns a random number between 0 and 9 + */ + public function randomDigit(): int + { + return $this->ext(Extension\NumberExtension::class)->randomDigit(); + } + + /** + * Generates a random digit, which cannot be $except + */ + public function randomDigitNot($except): int + { + return $this->ext(Extension\NumberExtension::class)->randomDigitNot((int) $except); + } + + /** + * Returns a random number between 1 and 9 + */ + public function randomDigitNotZero(): int + { + return $this->ext(Extension\NumberExtension::class)->randomDigitNotZero(); + } + + /** + * Return a random float number + * + * @example 48.8932 + */ + public function randomFloat($nbMaxDecimals = null, $min = 0, $max = null): float + { + return $this->ext(Extension\NumberExtension::class)->randomFloat( + $nbMaxDecimals !== null ? (int) $nbMaxDecimals : null, + (float) $min, + $max !== null ? (float) $max : null, + ); + } + + /** + * Returns a random integer with 0 to $nbDigits digits. + * + * The maximum value returned is mt_getrandmax() + * + * @param int|null $nbDigits Defaults to a random number between 1 and 9 + * @param bool $strict Whether the returned number should have exactly $nbDigits + * + * @example 79907610 + */ + public function randomNumber($nbDigits = null, $strict = false): int + { + return $this->ext(Extension\NumberExtension::class)->randomNumber( + $nbDigits !== null ? (int) $nbDigits : null, + (bool) $strict, + ); + } + + /** + * Get a version number in semantic versioning syntax 2.0.0. (https://semver.org/spec/v2.0.0.html) + * + * @param bool $preRelease Pre release parts may be randomly included + * @param bool $build Build parts may be randomly included + * + * @example 1.0.0 + * @example 1.0.0-alpha.1 + * @example 1.0.0-alpha.1+b71f04d + */ + public function semver(bool $preRelease = false, bool $build = false): string + { + return $this->ext(Extension\VersionExtension::class)->semver($preRelease, $build); + } + + /** + * @deprecated + */ + protected function callFormatWithMatches($matches) + { + trigger_deprecation('fakerphp/faker', '1.14', 'Protected method "callFormatWithMatches()" is deprecated and will be removed.'); + + return $this->format($matches[1]); + } + + /** + * @param string $attribute + * + * @deprecated Use a method instead. + */ + public function __get($attribute) + { + trigger_deprecation('fakerphp/faker', '1.14', 'Accessing property "%s" is deprecated, use "%s()" instead.', $attribute, $attribute); + + return $this->format($attribute); + } + + /** + * @param string $method + * @param array $attributes + */ + public function __call($method, $attributes) + { + return $this->format($method, $attributes); + } + + public function __destruct() + { + $this->seed(); + } + + public function __wakeup() + { + $this->formatters = []; + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Guesser/Name.php b/vendor/fakerphp/faker/src/Faker/Guesser/Name.php new file mode 100644 index 0000000..1f98c4f --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Guesser/Name.php @@ -0,0 +1,180 @@ +generator = $generator; + } + + /** + * @param string $name + * @param int|null $size Length of field, if known + * + * @return callable|null + */ + public function guessFormat($name, $size = null) + { + $name = Base::toLower($name); + $generator = $this->generator; + + if (preg_match('/^is[_A-Z]/', $name)) { + return static function () use ($generator) { + return $generator->boolean(); + }; + } + + if (preg_match('/(_a|A)t$/', $name)) { + return static function () use ($generator) { + return $generator->dateTime(); + }; + } + + switch (str_replace('_', '', $name)) { + case 'firstname': + return static function () use ($generator) { + return $generator->firstName(); + }; + + case 'lastname': + return static function () use ($generator) { + return $generator->lastName(); + }; + + case 'username': + case 'login': + return static function () use ($generator) { + return $generator->userName(); + }; + + case 'email': + case 'emailaddress': + return static function () use ($generator) { + return $generator->email(); + }; + + case 'phonenumber': + case 'phone': + case 'telephone': + case 'telnumber': + return static function () use ($generator) { + return $generator->phoneNumber(); + }; + + case 'address': + return static function () use ($generator) { + return $generator->address(); + }; + + case 'city': + case 'town': + return static function () use ($generator) { + return $generator->city(); + }; + + case 'streetaddress': + return static function () use ($generator) { + return $generator->streetAddress(); + }; + + case 'postcode': + case 'zipcode': + return static function () use ($generator) { + return $generator->postcode(); + }; + + case 'state': + return static function () use ($generator) { + return $generator->state(); + }; + + case 'county': + if ($this->generator->locale == 'en_US') { + return static function () use ($generator) { + return sprintf('%s County', $generator->city()); + }; + } + + return static function () use ($generator) { + return $generator->state(); + }; + + case 'country': + switch ($size) { + case 2: + return static function () use ($generator) { + return $generator->countryCode(); + }; + + case 3: + return static function () use ($generator) { + return $generator->countryISOAlpha3(); + }; + + case 5: + case 6: + return static function () use ($generator) { + return $generator->locale(); + }; + + default: + return static function () use ($generator) { + return $generator->country(); + }; + } + + break; + + case 'locale': + return static function () use ($generator) { + return $generator->locale(); + }; + + case 'currency': + case 'currencycode': + return static function () use ($generator) { + return $generator->currencyCode(); + }; + + case 'url': + case 'website': + return static function () use ($generator) { + return $generator->url(); + }; + + case 'company': + case 'companyname': + case 'employer': + return static function () use ($generator) { + return $generator->company(); + }; + + case 'title': + if ($size !== null && $size <= 10) { + return static function () use ($generator) { + return $generator->title(); + }; + } + + return static function () use ($generator) { + return $generator->sentence(); + }; + + case 'body': + case 'summary': + case 'article': + case 'description': + return static function () use ($generator) { + return $generator->text(); + }; + } + + return null; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php b/vendor/fakerphp/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php similarity index 71% rename from vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php rename to vendor/fakerphp/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php index 0aa3413..c2a30e6 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php @@ -21,26 +21,31 @@ public function guessFormat($column, $table) switch ($schema->columnType($column)) { case 'boolean': - return function () use ($generator) { + return static function () use ($generator) { return $generator->boolean; }; + case 'integer': - return function () { - return mt_rand(0, intval('2147483647')); + return static function () use ($generator) { + return $generator->numberBetween(0, 2147483647); }; + case 'biginteger': - return function () { - return mt_rand(0, intval('9223372036854775807')); + return static function () use ($generator) { + return $generator->numberBetween(0, PHP_INT_MAX); }; + case 'decimal': case 'float': - return function () use ($generator) { + return static function () use ($generator) { return $generator->randomFloat(); }; + case 'uuid': - return function () use ($generator) { + return static function () use ($generator) { return $generator->uuid(); }; + case 'string': if (method_exists($schema, 'getColumn')) { $columnData = $schema->getColumn($column); @@ -48,18 +53,21 @@ public function guessFormat($column, $table) $columnData = $schema->column($column); } $length = $columnData['length']; - return function () use ($generator, $length) { + + return static function () use ($generator, $length) { return $generator->text($length); }; + case 'text': - return function () use ($generator) { + return static function () use ($generator) { return $generator->text(); }; + case 'date': case 'datetime': case 'timestamp': case 'time': - return function () use ($generator) { + return static function () use ($generator) { return $generator->datetime(); }; diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php b/vendor/fakerphp/faker/src/Faker/ORM/CakePHP/EntityPopulator.php similarity index 96% rename from vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php rename to vendor/fakerphp/faker/src/Faker/ORM/CakePHP/EntityPopulator.php index 2ec312a..cd9890b 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/CakePHP/EntityPopulator.php @@ -53,16 +53,16 @@ public function guessColumnFormatters($populator) $schema = $table->schema(); $pk = $schema->primaryKey(); $guessers = $populator->getGuessers() + ['ColumnTypeGuesser' => new ColumnTypeGuesser($populator->getGenerator())]; - $isForeignKey = function ($column) use ($table) { + $isForeignKey = static function ($column) use ($table) { foreach ($table->associations()->type('BelongsTo') as $assoc) { if ($column == $assoc->foreignKey()) { return true; } } + return false; }; - foreach ($schema->columns() as $column) { if ($column == $pk[0] || $isForeignKey($column)) { continue; @@ -71,6 +71,7 @@ public function guessColumnFormatters($populator) foreach ($guessers as $guesser) { if ($formatter = $guesser->guessFormat($column, $table)) { $formatters[$column] = $formatter; + break; } } @@ -88,18 +89,20 @@ public function guessModifiers() $table = $this->getTable($this->class); $belongsTo = $table->associations()->type('BelongsTo'); + foreach ($belongsTo as $assoc) { $modifiers['belongsTo' . $assoc->name()] = function ($data, $insertedEntities) use ($assoc) { $table = $assoc->target(); $foreignModel = $table->alias(); $foreignKeys = []; + if (!empty($insertedEntities[$foreignModel])) { $foreignKeys = $insertedEntities[$foreignModel]; } else { $foreignKeys = $table->find('all') ->select(['id']) - ->map(function ($row) { + ->map(static function ($row) { return $row->id; }) ->toArray(); @@ -111,6 +114,7 @@ public function guessModifiers() $foreignKey = $foreignKeys[array_rand($foreignKeys)]; $data[$assoc->foreignKey()] = $foreignKey; + return $data; }; } @@ -129,7 +133,7 @@ public function execute($class, $insertedEntities, $options = []) $entity = $table->newEntity(); foreach ($this->columnFormatters as $column => $format) { - if (!is_null($format)) { + if (null !== $format) { $entity->{$column} = is_callable($format) ? $format($insertedEntities, $table) : $format; } } @@ -143,6 +147,7 @@ public function execute($class, $insertedEntities, $options = []) } $pk = $table->primaryKey(); + if (is_string($pk)) { return $entity->{$pk}; } @@ -158,9 +163,11 @@ public function setConnection($name) protected function getTable($class) { $options = []; + if (!empty($this->connectionName)) { $options['connection'] = $this->connectionName; } + return TableRegistry::get($class, $options); } } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/CakePHP/Populator.php similarity index 95% rename from vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php rename to vendor/fakerphp/faker/src/Faker/ORM/CakePHP/Populator.php index eda30a8..ac195fb 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/CakePHP/Populator.php @@ -4,15 +4,11 @@ class Populator { - protected $generator; protected $entities = []; protected $quantities = []; protected $guessers = []; - /** - * @param \Faker\Generator $generator - */ public function __construct(\Faker\Generator $generator) { $this->generator = $generator; @@ -42,12 +38,14 @@ public function removeGuesser($name) if ($this->guessers[$name]) { unset($this->guessers[$name]); } + return $this; } /** - * @return $this * @throws \Exception + * + * @return $this */ public function addGuesser($class) { @@ -60,12 +58,14 @@ public function addGuesser($class) } $this->guessers[get_class($class)] = $class; + return $this; } /** * @param array $customColumnFormatters * @param array $customModifiers + * * @return $this */ public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = []) @@ -75,11 +75,13 @@ public function addEntity($entity, $number, $customColumnFormatters = [], $custo } $entity->columnFormatters = $entity->guessColumnFormatters($this); + if ($customColumnFormatters) { $entity->mergeColumnFormattersWith($customColumnFormatters); } $entity->modifiers = $entity->guessModifiers($this); + if ($customModifiers) { $entity->mergeModifiersWith($customModifiers); } @@ -87,11 +89,13 @@ public function addEntity($entity, $number, $customColumnFormatters = [], $custo $class = $entity->class; $this->entities[$class] = $entity; $this->quantities[$class] = $number; + return $this; } /** * @param array $options + * * @return array */ public function execute($options = []) @@ -99,7 +103,7 @@ public function execute($options = []) $insertedEntities = []; foreach ($this->quantities as $class => $number) { - for ($i = 0; $i < $number; $i++) { + for ($i = 0; $i < $number; ++$i) { $insertedEntities[$class][] = $this->entities[$class]->execute($class, $insertedEntities, $options); } } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php similarity index 51% rename from vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php rename to vendor/fakerphp/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php index bd608f9..024d8a9 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php @@ -3,76 +3,86 @@ namespace Faker\ORM\Doctrine; use Doctrine\Common\Persistence\Mapping\ClassMetadata; +use Faker\Generator; + +require_once 'backward-compatibility.php'; class ColumnTypeGuesser { protected $generator; - /** - * @param \Faker\Generator $generator - */ - public function __construct(\Faker\Generator $generator) + public function __construct(Generator $generator) { $this->generator = $generator; } /** - * @param ClassMetadata $class * @return \Closure|null */ public function guessFormat($fieldName, ClassMetadata $class) { $generator = $this->generator; $type = $class->getTypeOfField($fieldName); + switch ($type) { case 'boolean': - return function () use ($generator) { - return $generator->boolean; + return static function () use ($generator) { + return $generator->boolean(); }; + case 'decimal': - $size = isset($class->fieldMappings[$fieldName]['precision']) ? $class->fieldMappings[$fieldName]['precision'] : 2; + $size = $class->fieldMappings[$fieldName]['precision'] ?? 2; - return function () use ($generator, $size) { + return static function () use ($generator, $size) { return $generator->randomNumber($size + 2) / 100; }; + case 'smallint': - return function () { - return mt_rand(0, 65535); + return static function () use ($generator) { + return $generator->numberBetween(0, 65535); }; + case 'integer': - return function () { - return mt_rand(0, intval('2147483647')); + return static function () use ($generator) { + return $generator->numberBetween(0, 2147483647); }; + case 'bigint': - return function () { - return mt_rand(0, intval('18446744073709551615')); + return static function () use ($generator) { + return $generator->numberBetween(0, PHP_INT_MAX); }; + case 'float': - return function () { - return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295')); + return static function () use ($generator) { + return $generator->randomFloat(); }; + case 'string': - $size = isset($class->fieldMappings[$fieldName]['length']) ? $class->fieldMappings[$fieldName]['length'] : 255; + $size = $class->fieldMappings[$fieldName]['length'] ?? 255; - return function () use ($generator, $size) { + return static function () use ($generator, $size) { return $generator->text($size); }; + case 'text': - return function () use ($generator) { - return $generator->text; + return static function () use ($generator) { + return $generator->text(); }; + case 'datetime': case 'date': case 'time': - return function () use ($generator) { - return $generator->datetime; + return static function () use ($generator) { + return $generator->datetime(); }; + case 'datetime_immutable': case 'date_immutable': case 'time_immutable': - return function () use ($generator) { + return static function () use ($generator) { return \DateTimeImmutable::createFromMutable($generator->datetime); }; + default: // no smart way to guess what the user expects here return null; diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/EntityPopulator.php similarity index 80% rename from vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Doctrine/EntityPopulator.php index bc703e5..4792399 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/EntityPopulator.php @@ -2,8 +2,10 @@ namespace Faker\ORM\Doctrine; -use Doctrine\Common\Persistence\ObjectManager; use Doctrine\Common\Persistence\Mapping\ClassMetadata; +use Doctrine\Common\Persistence\ObjectManager; + +require_once 'backward-compatibility.php'; /** * Service class for populating a table through a Doctrine Entity class. @@ -17,17 +19,12 @@ class EntityPopulator /** * @var array */ - protected $columnFormatters = array(); + protected $columnFormatters = []; /** * @var array */ - protected $modifiers = array(); + protected $modifiers = []; - /** - * Class constructor. - * - * @param ClassMetadata $class - */ public function __construct(ClassMetadata $class) { $this->class = $class; @@ -41,9 +38,6 @@ public function getClass() return $this->class->getName(); } - /** - * @param $columnFormatters - */ public function setColumnFormatters($columnFormatters) { $this->columnFormatters = $columnFormatters; @@ -62,9 +56,6 @@ public function mergeColumnFormattersWith($columnFormatters) $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); } - /** - * @param array $modifiers - */ public function setModifiers(array $modifiers) { $this->modifiers = $modifiers; @@ -78,35 +69,36 @@ public function getModifiers() return $this->modifiers; } - /** - * @param array $modifiers - */ public function mergeModifiersWith(array $modifiers) { $this->modifiers = array_merge($this->modifiers, $modifiers); } /** - * @param \Faker\Generator $generator * @return array */ public function guessColumnFormatters(\Faker\Generator $generator) { - $formatters = array(); + $formatters = []; $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; } - $size = isset($this->class->fieldMappings[$fieldName]['length']) ? $this->class->fieldMappings[$fieldName]['length'] : null; + $size = $this->class->fieldMappings[$fieldName]['length'] ?? null; + if ($formatter = $nameGuesser->guessFormat($fieldName, $size)) { $formatters[$fieldName] = $formatter; + continue; } + if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) { $formatters[$fieldName] = $formatter; + continue; } } @@ -119,24 +111,29 @@ public function guessColumnFormatters(\Faker\Generator $generator) $relatedClass = $this->class->getAssociationTargetClass($assocName); $unique = $optional = false; + if ($this->class instanceof \Doctrine\ORM\Mapping\ClassMetadata) { $mappings = $this->class->getAssociationMappings(); + foreach ($mappings as $mapping) { if ($mapping['targetEntity'] == $relatedClass) { if ($mapping['type'] == \Doctrine\ORM\Mapping\ClassMetadata::ONE_TO_ONE) { $unique = true; - $optional = isset($mapping['joinColumns'][0]['nullable']) ? $mapping['joinColumns'][0]['nullable'] : false; + $optional = $mapping['joinColumns'][0]['nullable'] ?? false; + break; } } } } elseif ($this->class instanceof \Doctrine\ODM\MongoDB\Mapping\ClassMetadata) { $mappings = $this->class->associationMappings; + foreach ($mappings as $mapping) { if ($mapping['targetDocument'] == $relatedClass) { if ($mapping['type'] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::ONE && $mapping['association'] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::REFERENCE_ONE) { $unique = true; - $optional = isset($mapping['nullable']) ? $mapping['nullable'] : false; + $optional = $mapping['nullable'] ?? false; + break; } } @@ -144,21 +141,21 @@ public function guessColumnFormatters(\Faker\Generator $generator) } $index = 0; - $formatters[$assocName] = function ($inserted) use ($relatedClass, &$index, $unique, $optional) { - + $formatters[$assocName] = static function ($inserted) use ($relatedClass, &$index, $unique, $optional, $generator) { if (isset($inserted[$relatedClass])) { if ($unique) { $related = null; + if (isset($inserted[$relatedClass][$index]) || !$optional) { $related = $inserted[$relatedClass][$index]; } - $index++; + ++$index; return $related; } - return $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)]; + return $generator->randomElement($inserted[$relatedClass]); } return null; @@ -170,8 +167,9 @@ public function guessColumnFormatters(\Faker\Generator $generator) /** * Insert one new record using the Entity class. - * @param ObjectManager $manager + * * @param bool $generateId + * * @return EntityPopulator */ public function execute(ObjectManager $manager, $insertedEntities, $generateId = false) @@ -183,6 +181,7 @@ public function execute(ObjectManager $manager, $insertedEntities, $generateId = if ($generateId) { $idsName = $this->class->getIdentifier(); + foreach ($idsName as $idName) { $id = $this->generateId($obj, $idName, $manager); $this->class->reflFields[$idName]->setValue($obj, $id); @@ -194,7 +193,7 @@ public function execute(ObjectManager $manager, $insertedEntities, $generateId = return $obj; } - private function fillColumns($obj, $insertedEntities) + private function fillColumns($obj, $insertedEntities): void { foreach ($this->columnFormatters as $field => $format) { if (null !== $format) { @@ -203,15 +202,16 @@ private function fillColumns($obj, $insertedEntities) $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; } catch (\InvalidArgumentException $ex) { throw new \InvalidArgumentException(sprintf( - "Failed to generate a value for %s::%s: %s", + 'Failed to generate a value for %s::%s: %s', get_class($obj), $field, - $ex->getMessage() + $ex->getMessage(), )); } // Try a standard setter if it's available, otherwise fall back on reflection - $setter = sprintf("set%s", ucfirst($field)); - if (is_callable(array($obj, $setter))) { + $setter = sprintf('set%s', ucfirst($field)); + + if (is_callable([$obj, $setter])) { $obj->$setter($value); } else { $this->class->reflFields[$field]->setValue($obj, $value); @@ -220,7 +220,7 @@ private function fillColumns($obj, $insertedEntities) } } - private function callMethods($obj, $insertedEntities) + private function callMethods($obj, $insertedEntities): void { foreach ($this->getModifiers() as $modifier) { $modifier($obj, $insertedEntities); @@ -228,12 +228,10 @@ private function callMethods($obj, $insertedEntities) } /** - * @param ObjectManager $manager - * @return int|null + * @return int */ private function generateId($obj, $column, ObjectManager $manager) { - /* @var $repository \Doctrine\Common\Persistence\ObjectRepository */ $repository = $manager->getRepository(get_class($obj)); $result = $repository->createQueryBuilder('e') ->select(sprintf('e.%s', $column)) @@ -241,10 +239,9 @@ private function generateId($obj, $column, ObjectManager $manager) ->execute(); $ids = array_map('current', $result->toArray()); - $id = null; do { $id = mt_rand(); - } while (in_array($id, $ids)); + } while (in_array($id, $ids, false)); return $id; } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php similarity index 72% rename from vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php index bd55f0b..61d4171 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php @@ -5,37 +5,50 @@ use Doctrine\Common\Persistence\ObjectManager; use Faker\Generator; +require_once 'backward-compatibility.php'; + /** * Service class for populating a database using the Doctrine ORM or ODM. * A Populator can populate several tables using ActiveRecord classes. */ class Populator { - /** @var int */ + /** + * @var int + */ protected $batchSize; - /** @var Generator */ + /** + * @var Generator + */ protected $generator; - /** @var ObjectManager|null */ + /** + * @var ObjectManager|null + */ protected $manager; - /** @var array */ - protected $entities = array(); + /** + * @var array + */ + protected $entities = []; - /** @var array */ - protected $quantities = array(); + /** + * @var array + */ + protected $quantities = []; - /** @var array */ - protected $generateId = array(); + /** + * @var array + */ + protected $generateId = []; /** * Populator constructor. - * @param Generator $generator - * @param ObjectManager|null $manager + * * @param int $batchSize */ - public function __construct(Generator $generator, ObjectManager $manager = null, $batchSize = 1000) + public function __construct(Generator $generator, ?ObjectManager $manager = null, $batchSize = 1000) { $this->generator = $generator; $this->manager = $manager; @@ -48,15 +61,16 @@ public function __construct(Generator $generator, ObjectManager $manager = null, * @param mixed $entity A Doctrine classname, or a \Faker\ORM\Doctrine\EntityPopulator instance * @param int $number The number of entities to populate */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array(), $generateId = false) + public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = [], $generateId = false) { if (!$entity instanceof \Faker\ORM\Doctrine\EntityPopulator) { if (null === $this->manager) { - throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator."); + throw new \InvalidArgumentException('No entity manager passed to Doctrine Populator.'); } $entity = new \Faker\ORM\Doctrine\EntityPopulator($this->manager->getClassMetadata($entity)); } $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); + if ($customColumnFormatters) { $entity->mergeColumnFormattersWith($customColumnFormatters); } @@ -74,7 +88,7 @@ public function addEntity($entity, $number, $customColumnFormatters = array(), $ * Please note that large amounts of data will result in more memory usage since the the Populator will return * all newly created primary keys after executing. * - * @param null|EntityManager $entityManager A Doctrine connection object + * @param ObjectManager|null $entityManager A Doctrine connection object * * @return array A list of the inserted PKs */ @@ -83,19 +97,23 @@ public function execute($entityManager = null) if (null === $entityManager) { $entityManager = $this->manager; } + if (null === $entityManager) { - throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator."); + throw new \InvalidArgumentException('No entity manager passed to Doctrine Populator.'); } - $insertedEntities = array(); + $insertedEntities = []; + foreach ($this->quantities as $class => $number) { $generateId = $this->generateId[$class]; - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute( + + for ($i = 0; $i < $number; ++$i) { + $insertedEntities[$class][] = $this->entities[$class]->execute( $entityManager, $insertedEntities, - $generateId + $generateId, ); + if (count($insertedEntities) % $this->batchSize === 0) { $entityManager->flush(); } diff --git a/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/backward-compatibility.php b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/backward-compatibility.php new file mode 100644 index 0000000..6f545f8 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/backward-compatibility.php @@ -0,0 +1,11 @@ +generator = $generator; } @@ -20,27 +22,33 @@ public function __construct(\Faker\Generator $generator) public function guessFormat($field) { $generator = $this->generator; + switch ($field['type']) { case 'boolean': - return function () use ($generator) { + return static function () use ($generator) { return $generator->boolean; }; + case 'integer': - return function () { - return mt_rand(0, intval('4294967295')); + return static function () use ($generator) { + return $generator->numberBetween(0, 4294967295); }; + case 'float': - return function () { - return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295')); + return static function () use ($generator) { + return $generator->randomFloat(); }; + case 'string': - return function () use ($generator) { + return static function () use ($generator) { return $generator->text(255); }; + case 'date': - return function () use ($generator) { - return $generator->datetime; + return static function () use ($generator) { + return $generator->dateTime; }; + default: // no smart way to guess what the user expects here return null; diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php b/vendor/fakerphp/faker/src/Faker/ORM/Mandango/EntityPopulator.php similarity index 82% rename from vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Mandango/EntityPopulator.php index 667f5be..515ab7b 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Mandango/EntityPopulator.php @@ -2,8 +2,8 @@ namespace Faker\ORM\Mandango; -use Mandango\Mandango; use Faker\Provider\Base; +use Mandango\Mandango; /** * Service class for populating a table through a Mandango ActiveRecord class. @@ -11,11 +11,9 @@ class EntityPopulator { protected $class; - protected $columnFormatters = array(); + protected $columnFormatters = []; /** - * Class constructor. - * * @param string $class A Mandango ActiveRecord classname */ public function __construct($class) @@ -50,13 +48,11 @@ public function mergeColumnFormattersWith($columnFormatters) } /** - * @param \Faker\Generator $generator - * @param Mandango $mandango * @return array */ public function guessColumnFormatters(\Faker\Generator $generator, Mandango $mandango) { - $formatters = array(); + $formatters = []; $nameGuesser = new \Faker\Guesser\Name($generator); $columnTypeGuesser = new \Faker\ORM\Mandango\ColumnTypeGuesser($generator); @@ -66,10 +62,13 @@ public function guessColumnFormatters(\Faker\Generator $generator, Mandango $man foreach ($metadata['fields'] as $fieldName => $field) { if ($formatter = $nameGuesser->guessFormat($fieldName)) { $formatters[$fieldName] = $formatter; + continue; } + if ($formatter = $columnTypeGuesser->guessFormat($field)) { $formatters[$fieldName] = $formatter; + continue; } } @@ -81,10 +80,12 @@ public function guessColumnFormatters(\Faker\Generator $generator, Mandango $man } $referenceClass = $reference['class']; - $formatters[$referenceName] = function ($insertedEntities) use ($referenceClass) { + $formatters[$referenceName] = static function ($insertedEntities) use ($referenceClass) { if (isset($insertedEntities[$referenceClass])) { return Base::randomElement($insertedEntities[$referenceClass]); } + + return null; }; } @@ -93,24 +94,24 @@ public function guessColumnFormatters(\Faker\Generator $generator, Mandango $man /** * Insert one new record using the Entity class. - * @param Mandango $mandango */ public function execute(Mandango $mandango, $insertedEntities) { $metadata = $mandango->getMetadata($this->class); $obj = $mandango->create($this->class); + foreach ($this->columnFormatters as $column => $format) { if (null !== $format) { - $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; + $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; - if (isset($metadata['fields'][$column]) || - isset($metadata['referencesOne'][$column])) { + if (isset($metadata['fields'][$column]) + || isset($metadata['referencesOne'][$column])) { $obj->set($column, $value); } if (isset($metadata['referencesMany'][$column])) { - $adder = 'add'.ucfirst($column); + $adder = 'add' . ucfirst($column); $obj->$adder($value); } } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/Mandango/Populator.php similarity index 81% rename from vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Mandango/Populator.php index 26736dc..de6c3b8 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Mandango/Populator.php @@ -12,13 +12,9 @@ class Populator { protected $generator; protected $mandango; - protected $entities = array(); - protected $quantities = array(); + protected $entities = []; + protected $quantities = []; - /** - * @param \Faker\Generator $generator - * @param Mandango $mandango - */ public function __construct(\Faker\Generator $generator, Mandango $mandango) { $this->generator = $generator; @@ -31,12 +27,13 @@ public function __construct(\Faker\Generator $generator, Mandango $mandango) * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance * @param int $number The number of entities to populate */ - public function addEntity($entity, $number, $customColumnFormatters = array()) + public function addEntity($entity, $number, $customColumnFormatters = []) { if (!$entity instanceof \Faker\ORM\Mandango\EntityPopulator) { $entity = new \Faker\ORM\Mandango\EntityPopulator($entity); } $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator, $this->mandango)); + if ($customColumnFormatters) { $entity->mergeColumnFormattersWith($customColumnFormatters); } @@ -52,10 +49,11 @@ public function addEntity($entity, $number, $customColumnFormatters = array()) */ public function execute() { - $insertedEntities = array(); + $insertedEntities = []; + foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($this->mandango, $insertedEntities); + for ($i = 0; $i < $number; ++$i) { + $insertedEntities[$class][] = $this->entities[$class]->execute($this->mandango, $insertedEntities); } } $this->mandango->flush(); diff --git a/vendor/fakerphp/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php b/vendor/fakerphp/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php new file mode 100644 index 0000000..3d8a9a1 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php @@ -0,0 +1,109 @@ +generator = $generator; + } + + /** + * @return \Closure|null + */ + public function guessFormat(\ColumnMap $column) + { + $generator = $this->generator; + + if ($column->isTemporal()) { + if ($column->isEpochTemporal()) { + return static function () use ($generator) { + return $generator->dateTime; + }; + } + + return static function () use ($generator) { + return $generator->dateTimeAD; + }; + } + $type = $column->getType(); + + switch ($type) { + case \PropelColumnTypes::BOOLEAN: + case \PropelColumnTypes::BOOLEAN_EMU: + return static function () use ($generator) { + return $generator->boolean; + }; + + case \PropelColumnTypes::NUMERIC: + case \PropelColumnTypes::DECIMAL: + $size = $column->getSize(); + + return static function () use ($generator, $size) { + return $generator->randomNumber($size + 2) / 100; + }; + + case \PropelColumnTypes::TINYINT: + return static function () use ($generator) { + return $generator->numberBetween(0, 127); + }; + + case \PropelColumnTypes::SMALLINT: + return static function () use ($generator) { + return $generator->numberBetween(0, 32767); + }; + + case \PropelColumnTypes::INTEGER: + return static function () use ($generator) { + return $generator->numberBetween(0, 2147483647); + }; + + case \PropelColumnTypes::BIGINT: + return static function () use ($generator) { + return $generator->numberBetween(0, PHP_INT_MAX); + }; + + case \PropelColumnTypes::FLOAT: + case \PropelColumnTypes::DOUBLE: + case \PropelColumnTypes::REAL: + return static function () use ($generator) { + return $generator->randomFloat(); + }; + + case \PropelColumnTypes::CHAR: + case \PropelColumnTypes::VARCHAR: + case \PropelColumnTypes::BINARY: + case \PropelColumnTypes::VARBINARY: + $size = $column->getSize(); + + return static function () use ($generator, $size) { + return $generator->text($size); + }; + + case \PropelColumnTypes::LONGVARCHAR: + case \PropelColumnTypes::LONGVARBINARY: + case \PropelColumnTypes::CLOB: + case \PropelColumnTypes::CLOB_EMU: + case \PropelColumnTypes::BLOB: + return static function () use ($generator) { + return $generator->text; + }; + + case \PropelColumnTypes::ENUM: + $valueSet = $column->getValueSet(); + + return static function () use ($generator, $valueSet) { + return $generator->randomElement($valueSet); + }; + + case \PropelColumnTypes::OBJECT: + case \PropelColumnTypes::PHP_ARRAY: + default: + // no smart way to guess what the user expects here + return null; + } + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php b/vendor/fakerphp/faker/src/Faker/ORM/Propel/EntityPopulator.php similarity index 77% rename from vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Propel/EntityPopulator.php index 1976a40..f5af75c 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Propel/EntityPopulator.php @@ -2,8 +2,7 @@ namespace Faker\ORM\Propel; -use \Faker\Provider\Base; -use \ColumnMap; +use Faker\Provider\Base; /** * Service class for populating a table through a Propel ActiveRecord class. @@ -11,12 +10,10 @@ class EntityPopulator { protected $class; - protected $columnFormatters = array(); - protected $modifiers = array(); + protected $columnFormatters = []; + protected $modifiers = []; /** - * Class constructor. - * * @param string $class A Propel ActiveRecord classname */ public function __construct($class) @@ -51,38 +48,45 @@ public function mergeColumnFormattersWith($columnFormatters) } /** - * @param \Faker\Generator $generator * @return array */ public function guessColumnFormatters(\Faker\Generator $generator) { - $formatters = array(); + $formatters = []; $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) { // skip behavior columns, handled by modifiers if ($this->isColumnBehavior($columnMap)) { continue; } + 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; + $formatters[$columnMap->getPhpName()] = static function ($inserted) use ($relatedClass, $generator) { + return isset($inserted[$relatedClass]) ? $generator->randomElement($inserted[$relatedClass]) : null; }; + continue; } + if ($columnMap->isPrimaryKey()) { continue; } + if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName(), $columnMap->getSize())) { $formatters[$columnMap->getPhpName()] = $formatter; + continue; } + if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) { $formatters[$columnMap->getPhpName()] = $formatter; + continue; } } @@ -91,25 +95,30 @@ public function guessColumnFormatters(\Faker\Generator $generator) } /** - * @param ColumnMap $columnMap * @return bool */ - protected function isColumnBehavior(ColumnMap $columnMap) + protected function isColumnBehavior(\ColumnMap $columnMap) { foreach ($columnMap->getTable()->getBehaviors() as $name => $params) { $columnName = Base::toLower($columnMap->getName()); + switch ($name) { case 'nested_set': - $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']); - if (in_array($columnName, $columnNames)) { + $columnNames = [$params['left_column'], $params['right_column'], $params['level_column']]; + + if (in_array($columnName, $columnNames, false)) { return true; } + break; + case 'timestampable': - $columnNames = array($params['create_column'], $params['update_column']); - if (in_array($columnName, $columnNames)) { + $columnNames = [$params['create_column'], $params['update_column']]; + + if (in_array($columnName, $columnNames, false)) { return true; } + break; } } @@ -136,19 +145,19 @@ public function mergeModifiersWith($modifiers) } /** - * @param \Faker\Generator $generator * @return array */ public function guessModifiers(\Faker\Generator $generator) { - $modifiers = array(); + $modifiers = []; $class = $this->class; $peerClass = $class::PEER; $tableMap = $peerClass::getTableMap(); + foreach ($tableMap->getBehaviors() as $name => $params) { switch ($name) { case 'nested_set': - $modifiers['nested_set'] = function ($obj, $inserted) use ($class, $generator) { + $modifiers['nested_set'] = static function ($obj, $inserted) use ($class, $generator): void { if (isset($inserted[$class])) { $queryClass = $class . 'Query'; $parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class])); @@ -157,12 +166,14 @@ public function guessModifiers(\Faker\Generator $generator) $obj->makeRoot(); } }; + break; + case 'sortable': - $modifiers['sortable'] = function ($obj, $inserted) use ($class) { - $maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0; - $obj->insertAtRank(mt_rand(1, $maxRank + 1)); + $modifiers['sortable'] = static function ($obj, $inserted) use ($class, $generator): void { + $obj->insertAtRank($generator->numberBetween(1, count($inserted[$class] ?? []) + 1)); }; + break; } } @@ -176,11 +187,13 @@ public function guessModifiers(\Faker\Generator $generator) public function execute($con, $insertedEntities) { $obj = new $this->class(); + foreach ($this->getColumnFormatters() as $column => $format) { if (null !== $format) { $obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format); } } + foreach ($this->getModifiers() as $modifier) { $modifier($obj, $insertedEntities); } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/Propel/Populator.php similarity index 87% rename from vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Propel/Populator.php index 4285727..e3d4298 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Propel/Populator.php @@ -9,12 +9,9 @@ class Populator { protected $generator; - protected $entities = array(); - protected $quantities = array(); + protected $entities = []; + protected $quantities = []; - /** - * @param \Faker\Generator $generator - */ public function __construct(\Faker\Generator $generator) { $this->generator = $generator; @@ -26,16 +23,18 @@ public function __construct(\Faker\Generator $generator) * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance * @param int $number The number of entities to populate */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array()) + public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = []) { if (!$entity instanceof \Faker\ORM\Propel\EntityPopulator) { $entity = new \Faker\ORM\Propel\EntityPopulator($entity); } $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); + if ($customColumnFormatters) { $entity->mergeColumnFormattersWith($customColumnFormatters); } $entity->setModifiers($entity->guessModifiers($this->generator)); + if ($customModifiers) { $entity->mergeModifiersWith($customModifiers); } @@ -58,14 +57,16 @@ public function execute($con = null) } $isInstancePoolingEnabled = \Propel::isInstancePoolingEnabled(); \Propel::disableInstancePooling(); - $insertedEntities = array(); + $insertedEntities = []; $con->beginTransaction(); + foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities); + for ($i = 0; $i < $number; ++$i) { + $insertedEntities[$class][] = $this->entities[$class]->execute($con, $insertedEntities); } } $con->commit(); + if ($isInstancePoolingEnabled) { \Propel::enableInstancePooling(); } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php b/vendor/fakerphp/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php similarity index 63% rename from vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php rename to vendor/fakerphp/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php index 024965a..4c08e0a 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php @@ -2,105 +2,110 @@ namespace Faker\ORM\Propel2; -use \Propel\Generator\Model\PropelTypes; -use \Propel\Runtime\Map\ColumnMap; +use Propel\Generator\Model\PropelTypes; +use Propel\Runtime\Map\ColumnMap; class ColumnTypeGuesser { protected $generator; - /** - * @param \Faker\Generator $generator - */ public function __construct(\Faker\Generator $generator) { $this->generator = $generator; } /** - * @param ColumnMap $column * @return \Closure|null */ public function guessFormat(ColumnMap $column) { $generator = $this->generator; + if ($column->isTemporal()) { if ($column->getType() == PropelTypes::BU_DATE || $column->getType() == PropelTypes::BU_TIMESTAMP) { - return function () use ($generator) { + return static function () use ($generator) { return $generator->dateTime; }; } - return function () use ($generator) { + return static function () use ($generator) { return $generator->dateTimeAD; }; } $type = $column->getType(); + switch ($type) { case PropelTypes::BOOLEAN: case PropelTypes::BOOLEAN_EMU: - return function () use ($generator) { + return static function () use ($generator) { return $generator->boolean; }; + case PropelTypes::NUMERIC: case PropelTypes::DECIMAL: $size = $column->getSize(); - return function () use ($generator, $size) { + return static function () use ($generator, $size) { return $generator->randomNumber($size + 2) / 100; }; + case PropelTypes::TINYINT: - return function () { - return mt_rand(0, 127); + return static function () use ($generator) { + return $generator->numberBetween(0, 127); }; + case PropelTypes::SMALLINT: - return function () { - return mt_rand(0, 32767); + return static function () use ($generator) { + return $generator->numberBetween(0, 32767); }; + case PropelTypes::INTEGER: - return function () { - return mt_rand(0, intval('2147483647')); + return static function () use ($generator) { + return $generator->numberBetween(0, 2147483647); }; + case PropelTypes::BIGINT: - return function () { - return mt_rand(0, intval('9223372036854775807')); + return static function () use ($generator) { + return $generator->numberBetween(0, PHP_INT_MAX); }; + case PropelTypes::FLOAT: - return function () { - return mt_rand(0, intval('2147483647'))/mt_rand(1, intval('2147483647')); - }; case PropelTypes::DOUBLE: case PropelTypes::REAL: - return function () { - return mt_rand(0, intval('9223372036854775807'))/mt_rand(1, intval('9223372036854775807')); + return static function () use ($generator) { + return $generator->randomFloat(); }; + case PropelTypes::CHAR: case PropelTypes::VARCHAR: case PropelTypes::BINARY: case PropelTypes::VARBINARY: $size = $column->getSize(); - return function () use ($generator, $size) { + return static function () use ($generator, $size) { return $generator->text($size); }; + case PropelTypes::LONGVARCHAR: case PropelTypes::LONGVARBINARY: case PropelTypes::CLOB: case PropelTypes::CLOB_EMU: case PropelTypes::BLOB: - return function () use ($generator) { + return static function () use ($generator) { return $generator->text; }; + case PropelTypes::ENUM: $valueSet = $column->getValueSet(); - return function () use ($generator, $valueSet) { + return static function () use ($generator, $valueSet) { return $generator->randomElement($valueSet); }; + case PropelTypes::OBJECT: case PropelTypes::PHP_ARRAY: default: - // no smart way to guess what the user expects here + // no smart way to guess what the user expects here return null; } } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php b/vendor/fakerphp/faker/src/Faker/ORM/Propel2/EntityPopulator.php similarity index 77% rename from vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Propel2/EntityPopulator.php index df5b671..44804e3 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Propel2/EntityPopulator.php @@ -2,8 +2,8 @@ namespace Faker\ORM\Propel2; -use \Faker\Provider\Base; -use \Propel\Runtime\Map\ColumnMap; +use Faker\Provider\Base; +use Propel\Runtime\Map\ColumnMap; /** * Service class for populating a table through a Propel ActiveRecord class. @@ -11,12 +11,10 @@ class EntityPopulator { protected $class; - protected $columnFormatters = array(); - protected $modifiers = array(); + protected $columnFormatters = []; + protected $modifiers = []; /** - * Class constructor. - * * @param string $class A Propel ActiveRecord classname */ public function __construct($class) @@ -51,39 +49,47 @@ public function mergeColumnFormattersWith($columnFormatters) } /** - * @param \Faker\Generator $generator * @return array */ public function guessColumnFormatters(\Faker\Generator $generator) { - $formatters = array(); + $formatters = []; $class = $this->class; $peerClass = $class::TABLE_MAP; $tableMap = $peerClass::getTableMap(); $nameGuesser = new \Faker\Guesser\Name($generator); $columnTypeGuesser = new \Faker\ORM\Propel2\ColumnTypeGuesser($generator); + foreach ($tableMap->getColumns() as $columnMap) { // skip behavior columns, handled by modifiers if ($this->isColumnBehavior($columnMap)) { continue; } + if ($columnMap->isForeignKey()) { $relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname(); - $formatters[$columnMap->getPhpName()] = function ($inserted) use ($relatedClass) { - $relatedClass = trim($relatedClass, "\\"); - return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; + $formatters[$columnMap->getPhpName()] = static function ($inserted) use ($relatedClass, $generator) { + $relatedClass = trim($relatedClass, '\\'); + + return isset($inserted[$relatedClass]) ? $generator->randomElement($inserted[$relatedClass]) : null; }; + continue; } + if ($columnMap->isPrimaryKey()) { continue; } + if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName(), $columnMap->getSize())) { $formatters[$columnMap->getPhpName()] = $formatter; + continue; } + if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) { $formatters[$columnMap->getPhpName()] = $formatter; + continue; } } @@ -92,25 +98,30 @@ public function guessColumnFormatters(\Faker\Generator $generator) } /** - * @param ColumnMap $columnMap * @return bool */ protected function isColumnBehavior(ColumnMap $columnMap) { foreach ($columnMap->getTable()->getBehaviors() as $name => $params) { $columnName = Base::toLower($columnMap->getName()); + switch ($name) { case 'nested_set': - $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']); - if (in_array($columnName, $columnNames)) { + $columnNames = [$params['left_column'], $params['right_column'], $params['level_column']]; + + if (in_array($columnName, $columnNames, false)) { return true; } + break; + case 'timestampable': - $columnNames = array($params['create_column'], $params['update_column']); - if (in_array($columnName, $columnNames)) { + $columnNames = [$params['create_column'], $params['update_column']]; + + if (in_array($columnName, $columnNames, false)) { return true; } + break; } } @@ -137,19 +148,19 @@ public function mergeModifiersWith($modifiers) } /** - * @param \Faker\Generator $generator * @return array */ public function guessModifiers(\Faker\Generator $generator) { - $modifiers = array(); + $modifiers = []; $class = $this->class; $peerClass = $class::TABLE_MAP; $tableMap = $peerClass::getTableMap(); + foreach ($tableMap->getBehaviors() as $name => $params) { switch ($name) { case 'nested_set': - $modifiers['nested_set'] = function ($obj, $inserted) use ($class, $generator) { + $modifiers['nested_set'] = static function ($obj, $inserted) use ($class, $generator): void { if (isset($inserted[$class])) { $queryClass = $class . 'Query'; $parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class])); @@ -158,12 +169,14 @@ public function guessModifiers(\Faker\Generator $generator) $obj->makeRoot(); } }; + break; + case 'sortable': - $modifiers['sortable'] = function ($obj, $inserted) use ($class) { - $maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0; - $obj->insertAtRank(mt_rand(1, $maxRank + 1)); + $modifiers['sortable'] = static function ($obj, $inserted) use ($class, $generator): void { + $obj->insertAtRank($generator->numberBetween(1, count($inserted[$class] ?? []) + 1)); }; + break; } } @@ -177,11 +190,13 @@ public function guessModifiers(\Faker\Generator $generator) public function execute($con, $insertedEntities) { $obj = new $this->class(); + foreach ($this->getColumnFormatters() as $column => $format) { if (null !== $format) { $obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format); } } + foreach ($this->getModifiers() as $modifier) { $modifier($obj, $insertedEntities); } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/Propel2/Populator.php similarity index 87% rename from vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Propel2/Populator.php index c0efe3b..7698f80 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Propel2/Populator.php @@ -12,12 +12,9 @@ class Populator { protected $generator; - protected $entities = array(); - protected $quantities = array(); + protected $entities = []; + protected $quantities = []; - /** - * @param \Faker\Generator $generator - */ public function __construct(\Faker\Generator $generator) { $this->generator = $generator; @@ -29,16 +26,18 @@ public function __construct(\Faker\Generator $generator) * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel2\EntityPopulator instance * @param int $number The number of entities to populate */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array()) + public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = []) { if (!$entity instanceof \Faker\ORM\Propel2\EntityPopulator) { $entity = new \Faker\ORM\Propel2\EntityPopulator($entity); } $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); + if ($customColumnFormatters) { $entity->mergeColumnFormattersWith($customColumnFormatters); } $entity->setModifiers($entity->guessModifiers($this->generator)); + if ($customModifiers) { $entity->mergeModifiersWith($customModifiers); } @@ -61,14 +60,16 @@ public function execute($con = null) } $isInstancePoolingEnabled = Propel::isInstancePoolingEnabled(); Propel::disableInstancePooling(); - $insertedEntities = array(); + $insertedEntities = []; $con->beginTransaction(); + foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities); + for ($i = 0; $i < $number; ++$i) { + $insertedEntities[$class][] = $this->entities[$class]->execute($con, $insertedEntities); } } $con->commit(); + if ($isInstancePoolingEnabled) { Propel::enableInstancePooling(); } diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php b/vendor/fakerphp/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php similarity index 59% rename from vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php rename to vendor/fakerphp/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php index 716a9f2..f06ba04 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php @@ -8,10 +8,8 @@ class ColumnTypeGuesser { protected $generator; - /** * ColumnTypeGuesser constructor. - * @param Generator $generator */ public function __construct(Generator $generator) { @@ -19,56 +17,65 @@ public function __construct(Generator $generator) } /** - * @param array $field * @return \Closure|null */ public function guessFormat(array $field) { $generator = $this->generator; $type = $field['type']; + switch ($type) { case 'boolean': - return function () use ($generator) { + return static function () use ($generator) { return $generator->boolean; }; + case 'decimal': - $size = isset($field['precision']) ? $field['precision'] : 2; + $size = $field['precision'] ?? 2; - return function () use ($generator, $size) { + return static function () use ($generator, $size) { return $generator->randomNumber($size + 2) / 100; }; + case 'smallint': - return function () use ($generator) { + return static function () use ($generator) { return $generator->numberBetween(0, 65535); }; + case 'integer': - return function () use ($generator) { - return $generator->numberBetween(0, intval('2147483647')); + return static function () use ($generator) { + return $generator->numberBetween(0, 2147483647); }; + case 'bigint': - return function () use ($generator) { - return $generator->numberBetween(0, intval('18446744073709551615')); + return static function () use ($generator) { + return $generator->numberBetween(0, PHP_INT_MAX); }; + case 'float': - return function () use ($generator) { - return $generator->randomFloat(null, 0, intval('4294967295')); + return static function () use ($generator) { + return $generator->randomFloat(null, 0, 4294967295); }; + case 'string': - $size = isset($field['length']) ? $field['length'] : 255; + $size = $field['length'] ?? 255; - return function () use ($generator, $size) { + return static function () use ($generator, $size) { return $generator->text($size); }; + case 'text': - return function () use ($generator) { + return static function () use ($generator) { return $generator->text; }; + case 'datetime': case 'date': case 'time': - return function () use ($generator) { + return static function () use ($generator) { return $generator->datetime; }; + default: // no smart way to guess what the user expects here return null; diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php b/vendor/fakerphp/faker/src/Faker/ORM/Spot/EntityPopulator.php similarity index 81% rename from vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Spot/EntityPopulator.php index bc27e7b..b67ae25 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Spot/EntityPopulator.php @@ -16,7 +16,7 @@ class EntityPopulator /** * When fetching existing data - fetch only few first rows. */ - const RELATED_FETCH_COUNT = 10; + public const RELATED_FETCH_COUNT = 10; /** * @var Mapper @@ -31,11 +31,11 @@ class EntityPopulator /** * @var array */ - protected $columnFormatters = array(); + protected $columnFormatters = []; /** * @var array */ - protected $modifiers = array(); + protected $modifiers = []; /** * @var bool @@ -43,11 +43,7 @@ class EntityPopulator protected $useExistingData = false; /** - * Class constructor. - * - * @param Mapper $mapper - * @param Locator $locator - * @param $useExistingData + * @param bool $useExistingData */ public function __construct(Mapper $mapper, Locator $locator, $useExistingData = false) { @@ -64,9 +60,6 @@ public function getMapper() return $this->mapper; } - /** - * @param $columnFormatters - */ public function setColumnFormatters($columnFormatters) { $this->columnFormatters = $columnFormatters; @@ -80,17 +73,11 @@ public function getColumnFormatters() return $this->columnFormatters; } - /** - * @param $columnFormatters - */ public function mergeColumnFormattersWith($columnFormatters) { $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); } - /** - * @param array $modifiers - */ public function setModifiers(array $modifiers) { $this->modifiers = $modifiers; @@ -104,40 +91,42 @@ public function getModifiers() return $this->modifiers; } - /** - * @param array $modifiers - */ public function mergeModifiersWith(array $modifiers) { $this->modifiers = array_merge($this->modifiers, $modifiers); } /** - * @param Generator $generator * @return array */ public function guessColumnFormatters(Generator $generator) { - $formatters = array(); + $formatters = []; $nameGuesser = new Name($generator); $columnTypeGuesser = new ColumnTypeGuesser($generator); $fields = $this->mapper->fields(); + foreach ($fields as $fieldName => $field) { if ($field['primary'] === true) { continue; } + if ($formatter = $nameGuesser->guessFormat($fieldName)) { $formatters[$fieldName] = $formatter; + continue; } + if ($formatter = $columnTypeGuesser->guessFormat($field)) { $formatters[$fieldName] = $formatter; + continue; } } $entityName = $this->mapper->entity(); $entity = $this->mapper->build([]); $relations = $entityName::relations($this->mapper, $entity); + foreach ($relations as $relation) { // We don't need any other relation here. if ($relation instanceof BelongsTo) { @@ -148,9 +137,9 @@ public function guessColumnFormatters(Generator $generator) $locator = $this->locator; - $formatters[$fieldName] = function ($inserted) use ($required, $entityName, $locator) { + $formatters[$fieldName] = function ($inserted) use ($required, $entityName, $locator, $generator) { if (!empty($inserted[$entityName])) { - return $inserted[$entityName][mt_rand(0, count($inserted[$entityName]) - 1)]->get('id'); + return $generator->randomElement($inserted[$entityName])->get('id'); } if ($required && $this->useExistingData) { @@ -158,11 +147,12 @@ public function guessColumnFormatters(Generator $generator) // So let's find something existing in DB. $mapper = $locator->mapper($entityName); $records = $mapper->all()->limit(self::RELATED_FETCH_COUNT)->toArray(); + if (empty($records)) { return null; } - return $records[mt_rand(0, count($records) - 1)]['id']; + return $generator->randomElement($records)['id']; } return null; @@ -176,7 +166,6 @@ public function guessColumnFormatters(Generator $generator) /** * Insert one new record using the Entity class. * - * @param $insertedEntities * @return string */ public function execute($insertedEntities) @@ -188,15 +177,10 @@ public function execute($insertedEntities) $this->mapper->insert($obj); - return $obj; } - /** - * @param $obj - * @param $insertedEntities - */ - private function fillColumns($obj, $insertedEntities) + private function fillColumns($obj, $insertedEntities): void { foreach ($this->columnFormatters as $field => $format) { if (null !== $format) { @@ -206,11 +190,7 @@ private function fillColumns($obj, $insertedEntities) } } - /** - * @param $obj - * @param $insertedEntities - */ - private function callMethods($obj, $insertedEntities) + private function callMethods($obj, $insertedEntities): void { foreach ($this->getModifiers() as $modifier) { $modifier($obj, $insertedEntities); diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php similarity index 64% rename from vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php rename to vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php index c834b04..9ad3bfb 100644 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php @@ -1,6 +1,5 @@ generator = $generator; $this->locator = $locator; @@ -29,26 +26,28 @@ public function __construct(\Faker\Generator $generator, Locator $locator = null /** * Add an order for the generation of $number records for $entity. * - * @param $entityName string Name of Entity object to generate - * @param $number int The number of entities to populate - * @param $customColumnFormatters array - * @param $customModifiers array - * @param $useExistingData bool Should we use existing rows (e.g. roles) to populate relations? + * @param string $entityName Name of Entity object to generate + * @param int $number The number of entities to populate + * @param array $customColumnFormatters + * @param array $customModifiers + * @param bool $useExistingData Should we use existing rows (e.g. roles) to populate relations? */ public function addEntity( $entityName, $number, - $customColumnFormatters = array(), - $customModifiers = array(), + $customColumnFormatters = [], + $customModifiers = [], $useExistingData = false ) { $mapper = $this->locator->mapper($entityName); + if (null === $mapper) { - throw new \InvalidArgumentException("No mapper can be found for entity " . $entityName); + throw new \InvalidArgumentException('No mapper can be found for entity ' . $entityName); } $entity = new EntityPopulator($mapper, $this->locator, $useExistingData); $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); + if ($customColumnFormatters) { $entity->mergeColumnFormattersWith($customColumnFormatters); } @@ -70,15 +69,17 @@ public function execute($locator = null) if (null === $locator) { $locator = $this->locator; } + if (null === $locator) { - throw new \InvalidArgumentException("No entity manager passed to Spot Populator."); + throw new \InvalidArgumentException('No entity manager passed to Spot Populator.'); } - $insertedEntities = array(); + $insertedEntities = []; + foreach ($this->quantities as $entityName => $number) { - for ($i = 0; $i < $number; $i++) { + for ($i = 0; $i < $number; ++$i) { $insertedEntities[$entityName][] = $this->entities[$entityName]->execute( - $insertedEntities + $insertedEntities, ); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/Address.php similarity index 68% rename from vendor/fzaninotto/faker/src/Faker/Provider/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/Address.php index 24f538a..9727497 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Address.php @@ -4,27 +4,29 @@ class Address extends Base { - protected static $citySuffix = array('Ville'); - protected static $streetSuffix = array('Street'); - protected static $cityFormats = array( + protected static $citySuffix = ['Ville']; + protected static $streetSuffix = ['Street']; + protected static $cityFormats = [ '{{firstName}}{{citySuffix}}', - ); - protected static $streetNameFormats = array( - '{{lastName}} {{streetSuffix}}' - ); - protected static $streetAddressFormats = array( - '{{buildingNumber}} {{streetName}}' - ); - protected static $addressFormats = array( + ]; + protected static $streetNameFormats = [ + '{{lastName}} {{streetSuffix}}', + ]; + protected static $streetAddressFormats = [ + '{{buildingNumber}} {{streetName}}', + ]; + protected static $addressFormats = [ '{{streetAddress}} {{postcode}} {{city}}', - ); + ]; - protected static $buildingNumber = array('%#'); - protected static $postcode = array('#####'); - protected static $country = array(); + protected static $buildingNumber = ['%#']; + protected static $postcode = ['#####']; + protected static $country = []; /** * @example 'town' + * + * @return string */ public static function citySuffix() { @@ -33,6 +35,8 @@ public static function citySuffix() /** * @example 'Avenue' + * + * @return string */ public static function streetSuffix() { @@ -41,6 +45,8 @@ public static function streetSuffix() /** * @example '791' + * + * @return string */ public static function buildingNumber() { @@ -49,6 +55,8 @@ public static function buildingNumber() /** * @example 'Sashabury' + * + * @return string */ public function city() { @@ -59,6 +67,8 @@ public function city() /** * @example 'Crist Parks' + * + * @return string */ public function streetName() { @@ -69,6 +79,8 @@ public function streetName() /** * @example '791 Crist Parks' + * + * @return string */ public function streetAddress() { @@ -79,6 +91,8 @@ public function streetAddress() /** * @example 86039-9874 + * + * @return string */ public static function postcode() { @@ -87,6 +101,8 @@ public static function postcode() /** * @example '791 Crist Parks, Sashabury, IL 86039-9874' + * + * @return string */ public function address() { @@ -97,6 +113,8 @@ public function address() /** * @example 'Japan' + * + * @return string */ public static function country() { @@ -104,10 +122,14 @@ public static function country() } /** + * Uses signed degrees format (returns a float number between -90 and 90) + * * @example '77.147489' + * * @param float|int $min * @param float|int $max - * @return float Uses signed degrees format (returns a float number between -90 and 90) + * + * @return float */ public static function latitude($min = -90, $max = 90) { @@ -115,10 +137,14 @@ public static function latitude($min = -90, $max = 90) } /** + * Uses signed degrees format (returns a float number between -180 and 180) + * * @example '86.211205' + * * @param float|int $min * @param float|int $max - * @return float Uses signed degrees format (returns a float number between -180 and 180) + * + * @return float */ public static function longitude($min = -180, $max = 180) { @@ -127,13 +153,14 @@ public static function longitude($min = -180, $max = 180) /** * @example array('77.147489', '86.211205') - * @return array | latitude, longitude + * + * @return float[] */ public static function localCoordinates() { - return array( + return [ 'latitude' => static::latitude(), - 'longitude' => static::longitude() - ); + 'longitude' => static::longitude(), + ]; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Barcode.php b/vendor/fakerphp/faker/src/Faker/Provider/Barcode.php new file mode 100644 index 0000000..0d39a61 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/Barcode.php @@ -0,0 +1,107 @@ +ean(13); + } + + /** + * Get a random EAN8 barcode. + * + * @return string + * + * @example '73513537' + */ + public function ean8() + { + return $this->ean(8); + } + + /** + * Get a random ISBN-10 code + * + * @see http://en.wikipedia.org/wiki/International_Standard_Book_Number + * + * @return string + * + * @example '4881416324' + */ + public function isbn10() + { + $code = static::numerify(str_repeat('#', 9)); + + return $code . Isbn::checksum($code); + } + + /** + * Get a random ISBN-13 code + * + * @see http://en.wikipedia.org/wiki/International_Standard_Book_Number + * + * @return string + * + * @example '9790404436093' + */ + public function isbn13() + { + $code = '97' . self::numberBetween(8, 9) . static::numerify(str_repeat('#', 9)); + + return $code . Ean::checksum($code); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Base.php b/vendor/fakerphp/faker/src/Faker/Provider/Base.php similarity index 66% rename from vendor/fzaninotto/faker/src/Faker/Provider/Base.php rename to vendor/fakerphp/faker/src/Faker/Provider/Base.php index 6765c80..6b9876b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Base.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Base.php @@ -2,8 +2,8 @@ namespace Faker\Provider; -use Faker\Generator; use Faker\DefaultGenerator; +use Faker\Generator; use Faker\UniqueGenerator; use Faker\ValidGenerator; @@ -19,9 +19,6 @@ class Base */ protected $unique; - /** - * @param \Faker\Generator $generator - */ public function __construct(Generator $generator) { $this->generator = $generator; @@ -30,7 +27,7 @@ public function __construct(Generator $generator) /** * Returns a random number between 0 and 9 * - * @return integer + * @return int */ public static function randomDigit() { @@ -40,7 +37,7 @@ public static function randomDigit() /** * Returns a random number between 1 and 9 * - * @return integer + * @return int */ public static function randomDigitNotNull() { @@ -51,14 +48,17 @@ public static function randomDigitNotNull() * Generates a random digit, which cannot be $except * * @param int $except + * * @return int */ public static function randomDigitNot($except) { $result = self::numberBetween(0, 8); + if ($result >= $except) { - $result++; + ++$result; } + return $result; } @@ -67,26 +67,30 @@ public static function randomDigitNot($except) * * The maximum value returned is mt_getrandmax() * - * @param integer $nbDigits Defaults to a random number between 1 and 9 - * @param boolean $strict Whether the returned number should have exactly $nbDigits + * @param int $nbDigits Defaults to a random number between 1 and 9 + * @param bool $strict Whether the returned number should have exactly $nbDigits + * * @example 79907610 * - * @return integer + * @return int */ public static function randomNumber($nbDigits = null, $strict = false) { if (!is_bool($strict)) { throw new \InvalidArgumentException('randomNumber() generates numbers of fixed width. To generate numbers between two boundaries, use numberBetween() instead.'); } + if (null === $nbDigits) { $nbDigits = static::randomDigitNotNull(); } - $max = pow(10, $nbDigits) - 1; + $max = 10 ** $nbDigits - 1; + if ($max > mt_getrandmax()) { throw new \InvalidArgumentException('randomNumber() can only generate numbers up to mt_getrandmax()'); } + if ($strict) { - return mt_rand(pow(10, $nbDigits - 1), $max); + return mt_rand(10 ** ($nbDigits - 1), $max); } return mt_rand(0, $max); @@ -96,8 +100,9 @@ public static function randomNumber($nbDigits = null, $strict = false) * Return a random float number * * @param int $nbMaxDecimals - * @param int|float $min - * @param int|float $max + * @param float|int $min + * @param float|int $max + * * @example 48.8932 * * @return float @@ -110,6 +115,7 @@ public static function randomFloat($nbMaxDecimals = null, $min = 0, $max = null) if (null === $max) { $max = static::randomNumber(); + if ($min > $max) { $max = $min; } @@ -127,25 +133,23 @@ public static function randomFloat($nbMaxDecimals = null, $min = 0, $max = null) /** * Returns a random number between $int1 and $int2 (any order) * - * @param integer $int1 default to 0 - * @param integer $int2 defaults to 32 bit max integer, ie 2147483647 + * @param int $int1 default to 0 + * @param int $int2 defaults to 32 bit max integer, ie 2147483647 + * * @example 79907610 * - * @return integer + * @return int */ public static function numberBetween($int1 = 0, $int2 = 2147483647) { $min = $int1 < $int2 ? $int1 : $int2; $max = $int1 < $int2 ? $int2 : $int1; + return mt_rand($min, $max); } - + /** * Returns the passed value - * - * @param mixed $value - * - * @return mixed */ public static function passthrough($value) { @@ -164,6 +168,8 @@ public static function randomLetter() /** * Returns a random ASCII character (excluding accents and special chars) + * + * @return string */ public static function randomAscii() { @@ -173,84 +179,132 @@ public static function randomAscii() /** * Returns randomly ordered subsequence of $count elements from a provided array * - * @param array $array Array to take elements from. Defaults to a-c - * @param integer $count Number of elements to take. - * @param boolean $allowDuplicates Allow elements to be picked several times. Defaults to false - * @throws \LengthException When requesting more elements than provided + * @todo update default $count to `null` (BC) for next major version + * + * @param array|class-string|\Traversable $array Array to take elements from. Defaults to a-c + * @param int|null $count Number of elements to take. If `null` then returns random number of elements + * @param bool $allowDuplicates Allow elements to be picked several times. Defaults to false + * + * @throws \InvalidArgumentException + * @throws \LengthException When requesting more elements than provided * * @return array New array with $count elements from $array */ - public static function randomElements($array = array('a', 'b', 'c'), $count = 1, $allowDuplicates = false) + public static function randomElements($array = ['a', 'b', 'c'], $count = 1, $allowDuplicates = false) { - $traversables = array(); + $elements = $array; + + if (is_string($array) && function_exists('enum_exists') && enum_exists($array)) { + $elements = $array::cases(); + } if ($array instanceof \Traversable) { - foreach ($array as $element) { - $traversables[] = $element; - } + $elements = \iterator_to_array($array, false); + } + + if (!is_array($elements)) { + throw new \InvalidArgumentException(sprintf( + 'Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.', + \UnitEnum::class, + \Traversable::class, + is_object($array) ? get_class($array) : gettype($array), + )); } - $arr = count($traversables) ? $traversables : $array; + $numberOfElements = count($elements); - $allKeys = array_keys($arr); - $numKeys = count($allKeys); + if (!$allowDuplicates && null !== $count && $numberOfElements < $count) { + throw new \LengthException(sprintf( + 'Cannot get %d elements, only %d in array', + $count, + $numberOfElements, + )); + } - if (!$allowDuplicates && $numKeys < $count) { - throw new \LengthException(sprintf('Cannot get %d elements, only %d in array', $count, $numKeys)); + if (null === $count) { + $count = mt_rand(1, $numberOfElements); } - $highKey = $numKeys - 1; - $keys = $elements = array(); - $numElements = 0; + $randomElements = []; + + $keys = array_keys($elements); + $maxIndex = $numberOfElements - 1; + $elementHasBeenSelectedAlready = []; + $numberOfRandomElements = 0; - while ($numElements < $count) { - $num = mt_rand(0, $highKey); + while ($numberOfRandomElements < $count) { + $index = mt_rand(0, $maxIndex); if (!$allowDuplicates) { - if (isset($keys[$num])) { + if (isset($elementHasBeenSelectedAlready[$index])) { continue; } - $keys[$num] = true; + + $elementHasBeenSelectedAlready[$index] = true; } - $elements[] = $arr[$allKeys[$num]]; - $numElements++; + $key = $keys[$index]; + + $randomElements[] = $elements[$key]; + + ++$numberOfRandomElements; } - return $elements; + return $randomElements; } /** * Returns a random element from a passed array * - * @param array $array - * @return mixed + * @param array|class-string|\Traversable $array + * + * @throws \InvalidArgumentException */ - public static function randomElement($array = array('a', 'b', 'c')) + public static function randomElement($array = ['a', 'b', 'c']) { - if (!$array || ($array instanceof \Traversable && !count($array))) { + $elements = $array; + + if (is_string($array) && function_exists('enum_exists') && enum_exists($array)) { + $elements = $array::cases(); + } + + if ($array instanceof \Traversable) { + $elements = iterator_to_array($array, false); + } + + if ($elements === []) { return null; } - $elements = static::randomElements($array, 1); - return $elements[0]; + if (!is_array($elements)) { + throw new \InvalidArgumentException(sprintf( + 'Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.', + \UnitEnum::class, + \Traversable::class, + is_object($array) ? get_class($array) : gettype($array), + )); + } + + $randomElements = static::randomElements($elements, 1); + + return $randomElements[0]; } /** * Returns a random key from a passed associative array * - * @param array $array + * @param array $array + * * @return int|string|null */ - public static function randomKey($array = array()) + public static function randomKey($array = []) { if (!$array) { return null; } $keys = array_keys($array); - $key = $keys[mt_rand(0, count($keys) - 1)]; - return $key; + return $keys[mt_rand(0, count($keys) - 1)]; } /** @@ -265,6 +319,7 @@ public static function randomKey($array = array()) * @see shuffleString() * * @param array|string $arg The set to shuffle + * * @return array|string The shuffled set */ public static function shuffle($arg = '') @@ -272,9 +327,11 @@ public static function shuffle($arg = '') if (is_array($arg)) { return static::shuffleArray($arg); } + if (is_string($arg)) { return static::shuffleString($arg); } + throw new \InvalidArgumentException('shuffle() only supports strings or arrays'); } @@ -286,32 +343,36 @@ public static function shuffle($arg = '') * twister random generator. This function is therefore more random than * PHP's shuffle() function, and it is seedable. * - * @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle + * @see http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle * * @example $faker->shuffleArray([1, 2, 3]); // [2, 1, 3] * * @param array $array The set to shuffle + * * @return array The shuffled set */ - public static function shuffleArray($array = array()) + public static function shuffleArray($array = []) { - $shuffledArray = array(); + $shuffledArray = []; $i = 0; reset($array); + foreach ($array as $key => $value) { if ($i == 0) { $j = 0; } else { $j = mt_rand(0, $i); } + if ($j == $i) { - $shuffledArray[]= $value; + $shuffledArray[] = $value; } else { - $shuffledArray[]= $shuffledArray[$j]; + $shuffledArray[] = $shuffledArray[$j]; $shuffledArray[$j] = $value; } - $i++; + ++$i; } + return $shuffledArray; } @@ -324,39 +385,44 @@ public static function shuffleArray($array = array()) * PHP's shuffle() function, and it is seedable. Additionally, it is * UTF8 safe if the mb extension is available. * - * @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle + * @see http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle * * @example $faker->shuffleString('hello, world'); // 'rlo,h eold!lw' * - * @param string $string The set to shuffle + * @param string $string The set to shuffle * @param string $encoding The string encoding (defaults to UTF-8) + * * @return string The shuffled set */ public static function shuffleString($string = '', $encoding = 'UTF-8') { if (function_exists('mb_strlen')) { // UTF8-safe str_split() - $array = array(); + $array = []; $strlen = mb_strlen($string, $encoding); - for ($i = 0; $i < $strlen; $i++) { - $array []= mb_substr($string, $i, 1, $encoding); + + for ($i = 0; $i < $strlen; ++$i) { + $array[] = mb_substr($string, $i, 1, $encoding); } } else { $array = str_split($string, 1); } + return implode('', static::shuffleArray($array)); } - private static function replaceWildcard($string, $wildcard = '#', $callback = 'static::randomDigit') + private static function replaceWildcard($string, $wildcard, $callback) { if (($pos = strpos($string, $wildcard)) === false) { return $string; } - for ($i = $pos, $last = strrpos($string, $wildcard, $pos) + 1; $i < $last; $i++) { + + for ($i = $pos, $last = strrpos($string, $wildcard, $pos) + 1; $i < $last; ++$i) { if ($string[$i] === $wildcard) { $string[$i] = call_user_func($callback); } } + return $string; } @@ -364,35 +430,40 @@ private static function replaceWildcard($string, $wildcard = '#', $callback = 's * Replaces all hash sign ('#') occurrences with a random number * Replaces all percentage sign ('%') occurrences with a not null number * - * @param string $string String that needs to bet parsed + * @param string $string String that needs to bet parsed + * * @return string */ public static function numerify($string = '###') { // instead of using randomDigit() several times, which is slow, // count the number of hashes and generate once a large number - $toReplace = array(); + $toReplace = []; + if (($pos = strpos($string, '#')) !== false) { - for ($i = $pos, $last = strrpos($string, '#', $pos) + 1; $i < $last; $i++) { + for ($i = $pos, $last = strrpos($string, '#', $pos) + 1; $i < $last; ++$i) { if ($string[$i] === '#') { $toReplace[] = $i; } } } + if ($nbReplacements = count($toReplace)) { $maxAtOnce = strlen((string) mt_getrandmax()) - 1; $numbers = ''; $i = 0; + while ($i < $nbReplacements) { $size = min($nbReplacements - $i, $maxAtOnce); $numbers .= str_pad(static::randomNumber($size), $size, '0', STR_PAD_LEFT); $i += $size; } - for ($i = 0; $i < $nbReplacements; $i++) { + + for ($i = 0; $i < $nbReplacements; ++$i) { $string[$toReplace[$i]] = $numbers[$i]; } } - $string = self::replaceWildcard($string, '%', 'static::randomDigitNotNull'); + $string = self::replaceWildcard($string, '%', [static::class, 'randomDigitNotNull']); return $string; } @@ -400,26 +471,29 @@ public static function numerify($string = '###') /** * Replaces all question mark ('?') occurrences with a random letter * - * @param string $string String that needs to bet parsed + * @param string $string String that needs to bet parsed + * * @return string */ public static function lexify($string = '????') { - return self::replaceWildcard($string, '?', 'static::randomLetter'); + return self::replaceWildcard($string, '?', [static::class, 'randomLetter']); } /** * Replaces hash signs ('#') and question marks ('?') with random numbers and letters * An asterisk ('*') is replaced with either a random number or a random letter * - * @param string $string String that needs to bet parsed + * @param string $string String that needs to be parsed + * * @return string */ public static function bothify($string = '## ??') { - $string = self::replaceWildcard($string, '*', function () { - return mt_rand(0, 1) ? '#' : '?'; + $string = self::replaceWildcard($string, '*', static function () { + return mt_rand(0, 1) === 1 ? '#' : '?'; }); + return static::lexify(static::numerify($string)); } @@ -428,12 +502,13 @@ public static function bothify($string = '## ??') * * @example $faker->asciify(''********'); // "s5'G!uC3" * - * @param string $string String that needs to bet parsed + * @param string $string String that needs to bet parsed + * * @return string */ public static function asciify($string = '****') { - return preg_replace_callback('/\*/u', 'static::randomAscii', $string); + return preg_replace_callback('/\*/u', [static::class, 'randomAscii'], $string); } /** @@ -460,6 +535,7 @@ public static function asciify($string = '****') * @see https://github.com/icomefromthenet/ReverseRegex for a more robust implementation * * @param string $regex A regular expression (delimiters are optional) + * * @return string */ public static function regexify($regex = '') @@ -474,37 +550,54 @@ public static function regexify($regex = '') $regex = preg_replace('/(?unique()->randomElement(array(1, 2, 3)); * * - * @param boolean $reset If set to true, resets the list of existing values - * @param integer $maxRetries Maximum number of retries to find a unique value, - * After which an OverflowException is thrown. + * @param bool $reset If set to true, resets the list of existing values + * @param int $maxRetries Maximum number of retries to find a unique value, + * After which an OverflowException is thrown. + * * @throws \OverflowException When no unique value can be found by iterating $maxRetries times * * @return UniqueGenerator A proxy class returning only non-existing values @@ -599,8 +696,9 @@ public function unique($reset = false, $maxRetries = 10000) * * * @param Closure $validator A function returning true for valid values - * @param integer $maxRetries Maximum number of retries to find a unique value, + * @param int $maxRetries Maximum number of retries to find a unique value, * After which an OverflowException is thrown. + * * @throws \OverflowException When no valid value can be found by iterating $maxRetries times * * @return ValidGenerator A proxy class returning only valid values diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php b/vendor/fakerphp/faker/src/Faker/Provider/Biased.php similarity index 85% rename from vendor/fzaninotto/faker/src/Faker/Provider/Biased.php rename to vendor/fakerphp/faker/src/Faker/Provider/Biased.php index d37dcef..42c70bc 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Biased.php @@ -14,10 +14,11 @@ class Biased extends Base * between $min and $max. Otherwise two new doubles are created until the pair * is accepted. * - * @param integer $min Minimum value of the generated integers. - * @param integer $max Maximum value of the generated integers. + * @param int $min Minimum value of the generated integers. + * @param int $max Maximum value of the generated integers. * @param callable $function A function mapping x ∈ [0, 1] onto a double ∈ [0, 1] - * @return integer An integer between $min and $max. + * + * @return int An integer between $min and $max. */ public function biasedNumberBetween($min = 0, $max = 100, $function = 'sqrt') { @@ -33,7 +34,7 @@ public function biasedNumberBetween($min = 0, $max = 100, $function = 'sqrt') * 'unbiased' creates an unbiased distribution by giving * each value the same value of one. * - * @return integer + * @return int */ protected static function unbiased() { @@ -44,7 +45,7 @@ protected static function unbiased() * 'linearLow' favors lower numbers. The probability decreases * in a linear fashion. * - * @return integer + * @return int */ protected static function linearLow($x) { @@ -55,7 +56,7 @@ protected static function linearLow($x) * 'linearHigh' favors higher numbers. The probability increases * in a linear fashion. * - * @return integer + * @return int */ protected static function linearHigh($x) { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/Color.php similarity index 80% rename from vendor/fzaninotto/faker/src/Faker/Provider/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/Color.php index 209d722..d14e705 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Color.php @@ -2,18 +2,15 @@ namespace Faker\Provider; -/** - * @author lsv - */ class Color extends Base { - protected static $safeColorNames = array( + protected static $safeColorNames = [ 'black', 'maroon', 'green', 'navy', 'olive', 'purple', 'teal', 'lime', 'blue', 'silver', - 'gray', 'yellow', 'fuchsia', 'aqua', 'white' - ); + 'gray', 'yellow', 'fuchsia', 'aqua', 'white', + ]; - protected static $allColorNames = array( + protected static $allColorNames = [ 'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine', 'Azure', 'Beige', 'Bisque', 'Black', 'BlanchedAlmond', 'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue', @@ -39,43 +36,51 @@ class Color extends Base 'PowderBlue', 'Purple', 'Red', 'RosyBrown', 'RoyalBlue', 'SaddleBrown', 'Salmon', 'SandyBrown', 'SeaGreen', 'SeaShell', 'Sienna', 'Silver', 'SkyBlue', 'SlateBlue', 'SlateGray', 'Snow', 'SpringGreen', 'SteelBlue', 'Tan', 'Teal', 'Thistle', 'Tomato', - 'Turquoise', 'Violet', 'Wheat', 'White', 'WhiteSmoke', 'Yellow', 'YellowGreen' - ); + 'Turquoise', 'Violet', 'Wheat', 'White', 'WhiteSmoke', 'Yellow', 'YellowGreen', + ]; /** * @example '#fa3cc2' + * + * @return string */ public static function hexColor() { - return '#' . str_pad(dechex(mt_rand(1, 16777215)), 6, '0', STR_PAD_LEFT); + return '#' . str_pad(dechex(self::numberBetween(1, 16777215)), 6, '0', STR_PAD_LEFT); } /** * @example '#ff0044' + * + * @return string */ public static function safeHexColor() { - $color = str_pad(dechex(mt_rand(0, 255)), 3, '0', STR_PAD_LEFT); + $color = str_pad(dechex(self::numberBetween(0, 255)), 3, '0', STR_PAD_LEFT); return '#' . $color[0] . $color[0] . $color[1] . $color[1] . $color[2] . $color[2]; } /** * @example 'array(0,255,122)' + * + * @return array */ public static function rgbColorAsArray() { $color = static::hexColor(); - return array( + return [ hexdec(substr($color, 1, 2)), hexdec(substr($color, 3, 2)), - hexdec(substr($color, 5, 2)) - ); + hexdec(substr($color, 5, 2)), + ]; } /** * @example '0,255,122' + * + * @return string */ public static function rgbColor() { @@ -84,6 +89,8 @@ public static function rgbColor() /** * @example 'rgb(0,255,122)' + * + * @return string */ public static function rgbCssColor() { @@ -92,6 +99,8 @@ public static function rgbCssColor() /** * @example 'rgba(0,255,122,0.8)' + * + * @return string */ public static function rgbaCssColor() { @@ -100,6 +109,8 @@ public static function rgbaCssColor() /** * @example 'blue' + * + * @return string */ public static function safeColorName() { @@ -108,6 +119,8 @@ public static function safeColorName() /** * @example 'NavajoWhite' + * + * @return string */ public static function colorName() { @@ -116,28 +129,30 @@ public static function colorName() /** * @example '340,50,20' + * * @return string */ public static function hslColor() { return sprintf( '%s,%s,%s', - static::numberBetween(0, 360), - static::numberBetween(0, 100), - static::numberBetween(0, 100) + self::numberBetween(0, 360), + self::numberBetween(0, 100), + self::numberBetween(0, 100), ); } /** * @example array(340, 50, 20) + * * @return array */ public static function hslColorAsArray() { - return array( - static::numberBetween(0, 360), - static::numberBetween(0, 100), - static::numberBetween(0, 100) - ); + return [ + self::numberBetween(0, 360), + self::numberBetween(0, 100), + self::numberBetween(0, 100), + ]; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/Company.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/Company.php index d536d48..52ea906 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Company.php @@ -4,15 +4,15 @@ class Company extends Base { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', - ); + ]; - protected static $companySuffix = array('Ltd'); + protected static $companySuffix = ['Ltd']; - protected static $jobTitleFormat = array( + protected static $jobTitleFormat = [ '{{word}}', - ); + ]; /** * @example 'Acme Ltd' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php b/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php similarity index 64% rename from vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php rename to vendor/fakerphp/faker/src/Faker/Provider/DateTime.php index 2d82ae6..a8a1992 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php @@ -4,13 +4,14 @@ class DateTime extends 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','XXI'); + protected static $century = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI']; protected static $defaultTimezone = null; /** - * @param \DateTime|string|float|int $max - * @return int|false + * @param \DateTime|float|int|string $max + * + * @return false|int */ protected static function getMaxTimestamp($max = 'now') { @@ -26,52 +27,60 @@ protected static function getMaxTimestamp($max = 'now') } /** - * Get a timestamp between January 1, 1970 and now + * Get a timestamp between January 1, 1970, and now * * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return int * * @example 1061306726 */ public static function unixTime($max = 'now') { - return mt_rand(0, static::getMaxTimestamp($max)); + return self::numberBetween(0, static::getMaxTimestamp($max)); } /** * Get a datetime object for a date between January 1, 1970 and now * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2005-08-16 20:39:21') + * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * @param string $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime + * * @see http://php.net/manual/en/timezones.php * @see http://php.net/manual/en/function.date-default-timezone-get.php + * + * @example DateTime('2005-08-16 20:39:21') */ public static function dateTime($max = 'now', $timezone = null) { return static::setTimezone( new \DateTime('@' . static::unixTime($max)), - $timezone + $timezone, ); } /** * Get a datetime object for a date between January 1, 001 and now * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('1265-03-22 21:15:52') + * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime + * * @see http://php.net/manual/en/timezones.php * @see http://php.net/manual/en/function.date-default-timezone-get.php + * + * @example DateTime('1265-03-22 21:15:52') */ public static function dateTimeAD($max = 'now', $timezone = null) { - $min = (PHP_INT_SIZE>4 ? -62135597361 : -PHP_INT_MAX); + $min = (PHP_INT_SIZE > 4 ? -62135597361 : -PHP_INT_MAX); + return static::setTimezone( - new \DateTime('@' . mt_rand($min, static::getMaxTimestamp($max))), - $timezone + new \DateTime('@' . self::numberBetween($min, static::getMaxTimestamp($max))), + $timezone, ); } @@ -79,7 +88,9 @@ public static function dateTimeAD($max = 'now', $timezone = null) * get a date string formatted with ISO8601 * * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example '2003-10-21T16:05:52+0000' */ public static function iso8601($max = 'now') @@ -92,7 +103,9 @@ public static function iso8601($max = 'now') * * @param string $format * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example '2008-11-27' */ public static function date($format = 'Y-m-d', $max = 'now') @@ -105,7 +118,9 @@ public static function date($format = 'Y-m-d', $max = 'now') * * @param string $format * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example '15:02:34' */ public static function time($format = 'H:i:s', $max = 'now') @@ -119,11 +134,14 @@ public static function time($format = 'H:i:s', $max = 'now') * * @param \DateTime|string $startDate Defaults to 30 years ago * @param \DateTime|string $endDate Defaults to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('1999-02-02 11:42:52') + * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime + * * @see http://php.net/manual/en/timezones.php * @see http://php.net/manual/en/function.date-default-timezone-get.php + * + * @example DateTime('1999-02-02 11:42:52') */ public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null) { @@ -134,11 +152,11 @@ public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now throw new \InvalidArgumentException('Start date must be anterior to end date.'); } - $timestamp = mt_rand($startTimestamp, $endTimestamp); + $timestamp = self::numberBetween($startTimestamp, $endTimestamp); return static::setTimezone( new \DateTime('@' . $timestamp), - $timezone + $timezone, ); } @@ -147,35 +165,40 @@ public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now * an interval * Accepts date string that can be recognized by strtotime(). * - * @param \DateTime|string $date Defaults to 30 years ago - * @param string $interval Defaults to 5 days after - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days') + * @param \DateTime|string $date Defaults to 30 years ago + * @param string $interval Defaults to 5 days after + * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime + * + * @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days') + * * @see http://php.net/manual/en/timezones.php * @see http://php.net/manual/en/function.date-default-timezone-get.php */ public static function dateTimeInInterval($date = '-30 years', $interval = '+5 days', $timezone = null) { $intervalObject = \DateInterval::createFromDateString($interval); - $datetime = $date instanceof \DateTime ? $date : new \DateTime($date); - $otherDatetime = clone $datetime; + $datetime = $date instanceof \DateTime ? $date : new \DateTime($date); + $otherDatetime = clone $datetime; $otherDatetime->add($intervalObject); - $begin = $datetime > $otherDatetime ? $otherDatetime : $datetime; - $end = $datetime===$begin ? $otherDatetime : $datetime; + $begin = min($datetime, $otherDatetime); + $end = $datetime === $begin ? $otherDatetime : $datetime; return static::dateTimeBetween( $begin, $end, - $timezone + $timezone, ); } /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('1964-04-04 11:02:02') + * Get a date time object somewhere within a century. + * + * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime */ public static function dateTimeThisCentury($max = 'now', $timezone = null) @@ -184,9 +207,11 @@ public static function dateTimeThisCentury($max = 'now', $timezone = null) } /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2010-03-10 05:18:58') + * Get a date time object somewhere within a decade. + * + * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime */ public static function dateTimeThisDecade($max = 'now', $timezone = null) @@ -195,9 +220,11 @@ public static function dateTimeThisDecade($max = 'now', $timezone = null) } /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2011-09-19 09:24:37') + * Get a date time object somewhere inside the current year. + * + * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime */ public static function dateTimeThisYear($max = 'now', $timezone = null) @@ -206,9 +233,11 @@ public static function dateTimeThisYear($max = 'now', $timezone = null) } /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2011-10-05 12:51:46') + * Get a date time object somewhere within a month. + * + * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` + * * @return \DateTime */ public static function dateTimeThisMonth($max = 'now', $timezone = null) @@ -217,8 +246,12 @@ public static function dateTimeThisMonth($max = 'now', $timezone = null) } /** + * Get a string containing either "am" or "pm". + * * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example 'am' */ public static function amPm($max = 'now') @@ -228,7 +261,9 @@ public static function amPm($max = 'now') /** * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example '22' */ public static function dayOfMonth($max = 'now') @@ -238,7 +273,9 @@ public static function dayOfMonth($max = 'now') /** * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example 'Tuesday' */ public static function dayOfWeek($max = 'now') @@ -248,7 +285,9 @@ public static function dayOfWeek($max = 'now') /** * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example '7' */ public static function month($max = 'now') @@ -258,7 +297,9 @@ public static function month($max = 'now') /** * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example 'September' */ public static function monthName($max = 'now') @@ -268,8 +309,10 @@ public static function monthName($max = 'now') /** * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string - * @example '1673' + * + * @example '1987' */ public static function year($max = 'now') { @@ -278,6 +321,7 @@ public static function year($max = 'now') /** * @return string + * * @example 'XVII' */ public static function century() @@ -287,17 +331,23 @@ public static function century() /** * @return string + * * @example 'Europe/Paris' */ - public static function timezone() + public static function timezone(?string $countryCode = null) { - return static::randomElement(\DateTimeZone::listIdentifiers()); + if ($countryCode) { + $timezones = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode); + } else { + $timezones = \DateTimeZone::listIdentifiers(); + } + + return static::randomElement($timezones); } /** * Internal method to set the time zone on a DateTime. * - * @param \DateTime $dt * @param string|null $timezone * * @return \DateTime @@ -311,8 +361,6 @@ private static function setTimezone(\DateTime $dt, $timezone) * Sets default time zone. * * @param string $timezone - * - * @return void */ public static function setDefaultTimezone($timezone = null) { @@ -331,10 +379,11 @@ public static function getDefaultTimezone() /** * @param string|null $timezone - * @return null|string + * + * @return string|null */ private static function resolveTimezone($timezone) { - return ((null === $timezone) ? ((null === static::$defaultTimezone) ? date_default_timezone_get() : static::$defaultTimezone) : $timezone); + return (null === $timezone) ? ((null === static::$defaultTimezone) ? date_default_timezone_get() : static::$defaultTimezone) : $timezone; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/File.php b/vendor/fakerphp/faker/src/Faker/Provider/File.php new file mode 100644 index 0000000..3cf3db9 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/File.php @@ -0,0 +1,610 @@ + file extension(s) + * + * @see http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types + */ + protected static $mimeTypes = [ + 'application/atom+xml' => 'atom', + 'application/ecmascript' => 'ecma', + 'application/emma+xml' => 'emma', + 'application/epub+zip' => 'epub', + 'application/java-archive' => 'jar', + 'application/java-vm' => 'class', + 'application/javascript' => 'js', + 'application/json' => 'json', + 'application/jsonml+json' => 'jsonml', + 'application/lost+xml' => 'lostxml', + 'application/mathml+xml' => 'mathml', + 'application/mets+xml' => 'mets', + 'application/mods+xml' => 'mods', + 'application/mp4' => 'mp4s', + 'application/msword' => ['doc', 'dot'], + 'application/octet-stream' => [ + 'bin', + 'dms', + 'lrf', + 'mar', + 'so', + 'dist', + 'distz', + 'pkg', + 'bpk', + 'dump', + 'elc', + 'deploy', + ], + 'application/ogg' => 'ogx', + 'application/omdoc+xml' => 'omdoc', + 'application/pdf' => 'pdf', + 'application/pgp-encrypted' => 'pgp', + 'application/pgp-signature' => ['asc', 'sig'], + 'application/pkix-pkipath' => 'pkipath', + 'application/pkixcmp' => 'pki', + 'application/pls+xml' => 'pls', + 'application/postscript' => ['ai', 'eps', 'ps'], + 'application/pskc+xml' => 'pskcxml', + 'application/rdf+xml' => 'rdf', + 'application/reginfo+xml' => 'rif', + 'application/rss+xml' => 'rss', + 'application/rtf' => 'rtf', + 'application/sbml+xml' => 'sbml', + 'application/vnd.adobe.air-application-installer-package+zip' => 'air', + 'application/vnd.adobe.xdp+xml' => 'xdp', + 'application/vnd.adobe.xfdf' => 'xfdf', + 'application/vnd.ahead.space' => 'ahead', + 'application/vnd.dart' => 'dart', + 'application/vnd.data-vision.rdz' => 'rdz', + 'application/vnd.dece.data' => ['uvf', 'uvvf', 'uvd', 'uvvd'], + 'application/vnd.dece.ttml+xml' => ['uvt', 'uvvt'], + 'application/vnd.dece.unspecified' => ['uvx', 'uvvx'], + 'application/vnd.dece.zip' => ['uvz', 'uvvz'], + 'application/vnd.denovo.fcselayout-link' => 'fe_launch', + 'application/vnd.dna' => 'dna', + 'application/vnd.dolby.mlp' => 'mlp', + 'application/vnd.dpgraph' => 'dpg', + 'application/vnd.dreamfactory' => 'dfac', + 'application/vnd.ds-keypoint' => 'kpxx', + 'application/vnd.dvb.ait' => 'ait', + 'application/vnd.dvb.service' => 'svc', + 'application/vnd.dynageo' => 'geo', + 'application/vnd.ecowin.chart' => 'mag', + 'application/vnd.enliven' => 'nml', + 'application/vnd.epson.esf' => 'esf', + 'application/vnd.epson.msf' => 'msf', + 'application/vnd.epson.quickanime' => 'qam', + 'application/vnd.epson.salt' => 'slt', + 'application/vnd.epson.ssf' => 'ssf', + 'application/vnd.ezpix-album' => 'ez2', + 'application/vnd.ezpix-package' => 'ez3', + 'application/vnd.fdf' => 'fdf', + 'application/vnd.fdsn.mseed' => 'mseed', + 'application/vnd.fdsn.seed' => ['seed', 'dataless'], + 'application/vnd.flographit' => 'gph', + 'application/vnd.fluxtime.clip' => 'ftc', + 'application/vnd.hal+xml' => 'hal', + 'application/vnd.hydrostatix.sof-data' => 'sfd-hdstx', + 'application/vnd.ibm.minipay' => 'mpy', + 'application/vnd.ibm.secure-container' => 'sc', + 'application/vnd.iccprofile' => ['icc', 'icm'], + 'application/vnd.igloader' => 'igl', + 'application/vnd.immervision-ivp' => 'ivp', + 'application/vnd.kde.karbon' => 'karbon', + 'application/vnd.kde.kchart' => 'chrt', + 'application/vnd.kde.kformula' => 'kfo', + 'application/vnd.kde.kivio' => 'flw', + 'application/vnd.kde.kontour' => 'kon', + 'application/vnd.kde.kpresenter' => ['kpr', 'kpt'], + 'application/vnd.kde.kspread' => 'ksp', + 'application/vnd.kde.kword' => ['kwd', 'kwt'], + 'application/vnd.kenameaapp' => 'htke', + 'application/vnd.kidspiration' => 'kia', + 'application/vnd.kinar' => ['kne', 'knp'], + 'application/vnd.koan' => ['skp', 'skd', 'skt', 'skm'], + 'application/vnd.kodak-descriptor' => 'sse', + 'application/vnd.las.las+xml' => 'lasxml', + 'application/vnd.llamagraphics.life-balance.desktop' => 'lbd', + 'application/vnd.llamagraphics.life-balance.exchange+xml' => 'lbe', + 'application/vnd.lotus-1-2-3' => '123', + 'application/vnd.lotus-approach' => 'apr', + 'application/vnd.lotus-freelance' => 'pre', + 'application/vnd.lotus-notes' => 'nsf', + 'application/vnd.lotus-organizer' => 'org', + 'application/vnd.lotus-screencam' => 'scm', + 'application/vnd.mozilla.xul+xml' => 'xul', + 'application/vnd.ms-artgalry' => 'cil', + 'application/vnd.ms-cab-compressed' => 'cab', + 'application/vnd.ms-excel' => [ + 'xls', + 'xlm', + 'xla', + 'xlc', + 'xlt', + 'xlw', + ], + 'application/vnd.ms-excel.addin.macroenabled.12' => 'xlam', + 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => 'xlsb', + 'application/vnd.ms-excel.sheet.macroenabled.12' => 'xlsm', + 'application/vnd.ms-excel.template.macroenabled.12' => 'xltm', + 'application/vnd.ms-fontobject' => 'eot', + 'application/vnd.ms-htmlhelp' => 'chm', + 'application/vnd.ms-ims' => 'ims', + 'application/vnd.ms-lrm' => 'lrm', + 'application/vnd.ms-officetheme' => 'thmx', + 'application/vnd.ms-pki.seccat' => 'cat', + 'application/vnd.ms-pki.stl' => 'stl', + 'application/vnd.ms-powerpoint' => ['ppt', 'pps', 'pot'], + 'application/vnd.ms-powerpoint.addin.macroenabled.12' => 'ppam', + 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => 'pptm', + 'application/vnd.ms-powerpoint.slide.macroenabled.12' => 'sldm', + 'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => 'ppsm', + 'application/vnd.ms-powerpoint.template.macroenabled.12' => 'potm', + 'application/vnd.ms-project' => ['mpp', 'mpt'], + 'application/vnd.ms-word.document.macroenabled.12' => 'docm', + 'application/vnd.ms-word.template.macroenabled.12' => 'dotm', + 'application/vnd.ms-works' => ['wps', 'wks', 'wcm', 'wdb'], + 'application/vnd.ms-wpl' => 'wpl', + 'application/vnd.ms-xpsdocument' => 'xps', + 'application/vnd.mseq' => 'mseq', + 'application/vnd.musician' => 'mus', + 'application/vnd.oasis.opendocument.chart' => 'odc', + 'application/vnd.oasis.opendocument.chart-template' => 'otc', + 'application/vnd.oasis.opendocument.database' => 'odb', + 'application/vnd.oasis.opendocument.formula' => 'odf', + 'application/vnd.oasis.opendocument.formula-template' => 'odft', + 'application/vnd.oasis.opendocument.graphics' => 'odg', + 'application/vnd.oasis.opendocument.graphics-template' => 'otg', + 'application/vnd.oasis.opendocument.image' => 'odi', + 'application/vnd.oasis.opendocument.image-template' => 'oti', + 'application/vnd.oasis.opendocument.presentation' => 'odp', + 'application/vnd.oasis.opendocument.presentation-template' => 'otp', + 'application/vnd.oasis.opendocument.spreadsheet' => 'ods', + 'application/vnd.oasis.opendocument.spreadsheet-template' => 'ots', + 'application/vnd.oasis.opendocument.text' => 'odt', + 'application/vnd.oasis.opendocument.text-master' => 'odm', + 'application/vnd.oasis.opendocument.text-template' => 'ott', + 'application/vnd.oasis.opendocument.text-web' => 'oth', + 'application/vnd.olpc-sugar' => 'xo', + 'application/vnd.oma.dd2+xml' => 'dd2', + 'application/vnd.openofficeorg.extension' => 'oxt', + 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', + 'application/vnd.openxmlformats-officedocument.presentationml.slide' => 'sldx', + 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx', + 'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx', + 'application/vnd.pvi.ptid1' => 'ptid', + 'application/vnd.quark.quarkxpress' => [ + 'qxd', + 'qxt', + 'qwd', + 'qwt', + 'qxl', + 'qxb', + ], + 'application/vnd.realvnc.bed' => 'bed', + 'application/vnd.recordare.musicxml' => 'mxl', + 'application/vnd.recordare.musicxml+xml' => 'musicxml', + 'application/vnd.rig.cryptonote' => 'cryptonote', + 'application/vnd.rim.cod' => 'cod', + 'application/vnd.rn-realmedia' => 'rm', + 'application/vnd.rn-realmedia-vbr' => 'rmvb', + 'application/vnd.route66.link66+xml' => 'link66', + 'application/vnd.sailingtracker.track' => 'st', + 'application/vnd.seemail' => 'see', + 'application/vnd.sema' => 'sema', + 'application/vnd.semd' => 'semd', + 'application/vnd.semf' => 'semf', + 'application/vnd.shana.informed.formdata' => 'ifm', + 'application/vnd.shana.informed.formtemplate' => 'itp', + 'application/vnd.shana.informed.interchange' => 'iif', + 'application/vnd.shana.informed.package' => 'ipk', + 'application/vnd.simtech-mindmapper' => ['twd', 'twds'], + 'application/vnd.smaf' => 'mmf', + 'application/vnd.stepmania.stepchart' => 'sm', + 'application/vnd.sun.xml.calc' => 'sxc', + 'application/vnd.sun.xml.calc.template' => 'stc', + 'application/vnd.sun.xml.draw' => 'sxd', + 'application/vnd.sun.xml.draw.template' => 'std', + 'application/vnd.sun.xml.impress' => 'sxi', + 'application/vnd.sun.xml.impress.template' => 'sti', + 'application/vnd.sun.xml.math' => 'sxm', + 'application/vnd.sun.xml.writer' => 'sxw', + 'application/vnd.sun.xml.writer.global' => 'sxg', + 'application/vnd.sun.xml.writer.template' => 'stw', + 'application/vnd.sus-calendar' => ['sus', 'susp'], + 'application/vnd.svd' => 'svd', + 'application/vnd.symbian.install' => ['sis', 'sisx'], + 'application/vnd.syncml+xml' => 'xsm', + 'application/vnd.syncml.dm+wbxml' => 'bdm', + 'application/vnd.syncml.dm+xml' => 'xdm', + 'application/vnd.tao.intent-module-archive' => 'tao', + 'application/vnd.tcpdump.pcap' => ['pcap', 'cap', 'dmp'], + 'application/vnd.tmobile-livetv' => 'tmo', + 'application/vnd.trid.tpt' => 'tpt', + 'application/vnd.triscape.mxs' => 'mxs', + 'application/vnd.trueapp' => 'tra', + 'application/vnd.ufdl' => ['ufd', 'ufdl'], + 'application/vnd.uiq.theme' => 'utz', + 'application/vnd.umajin' => 'umj', + 'application/vnd.unity' => 'unityweb', + 'application/vnd.uoml+xml' => 'uoml', + 'application/vnd.vcx' => 'vcx', + 'application/vnd.visio' => ['vsd', 'vst', 'vss', 'vsw'], + 'application/vnd.visionary' => 'vis', + 'application/vnd.vsf' => 'vsf', + 'application/vnd.wap.wbxml' => 'wbxml', + 'application/vnd.wap.wmlc' => 'wmlc', + 'application/vnd.wap.wmlscriptc' => 'wmlsc', + 'application/vnd.webturbo' => 'wtb', + 'application/vnd.wolfram.player' => 'nbp', + 'application/vnd.wordperfect' => 'wpd', + 'application/vnd.wqd' => 'wqd', + 'application/vnd.wt.stf' => 'stf', + 'application/vnd.xara' => 'xar', + 'application/vnd.xfdl' => 'xfdl', + 'application/voicexml+xml' => 'vxml', + 'application/widget' => 'wgt', + 'application/winhlp' => 'hlp', + 'application/wsdl+xml' => 'wsdl', + 'application/wspolicy+xml' => 'wspolicy', + 'application/x-7z-compressed' => '7z', + 'application/x-bittorrent' => 'torrent', + 'application/x-blorb' => ['blb', 'blorb'], + 'application/x-bzip' => 'bz', + 'application/x-cdlink' => 'vcd', + 'application/x-cfs-compressed' => 'cfs', + 'application/x-chat' => 'chat', + 'application/x-chess-pgn' => 'pgn', + 'application/x-conference' => 'nsc', + 'application/x-cpio' => 'cpio', + 'application/x-csh' => 'csh', + 'application/x-debian-package' => ['deb', 'udeb'], + 'application/x-dgc-compressed' => 'dgc', + 'application/x-director' => [ + 'dir', + 'dcr', + 'dxr', + 'cst', + 'cct', + 'cxt', + 'w3d', + 'fgd', + 'swa', + ], + 'application/x-font-ttf' => ['ttf', 'ttc'], + 'application/x-font-type1' => ['pfa', 'pfb', 'pfm', 'afm'], + 'application/x-font-woff' => 'woff', + 'application/x-freearc' => 'arc', + 'application/x-futuresplash' => 'spl', + 'application/x-gca-compressed' => 'gca', + 'application/x-glulx' => 'ulx', + 'application/x-gnumeric' => 'gnumeric', + 'application/x-gramps-xml' => 'gramps', + 'application/x-gtar' => 'gtar', + 'application/x-hdf' => 'hdf', + 'application/x-install-instructions' => 'install', + 'application/x-iso9660-image' => 'iso', + 'application/x-java-jnlp-file' => 'jnlp', + 'application/x-latex' => 'latex', + 'application/x-lzh-compressed' => ['lzh', 'lha'], + 'application/x-mie' => 'mie', + 'application/x-mobipocket-ebook' => ['prc', 'mobi'], + 'application/x-ms-application' => 'application', + 'application/x-ms-shortcut' => 'lnk', + 'application/x-ms-wmd' => 'wmd', + 'application/x-ms-wmz' => 'wmz', + 'application/x-ms-xbap' => 'xbap', + 'application/x-msaccess' => 'mdb', + 'application/x-msbinder' => 'obd', + 'application/x-mscardfile' => 'crd', + 'application/x-msclip' => 'clp', + 'application/x-msdownload' => ['exe', 'dll', 'com', 'bat', 'msi'], + 'application/x-msmediaview' => [ + 'mvb', + 'm13', + 'm14', + ], + 'application/x-msmetafile' => ['wmf', 'wmz', 'emf', 'emz'], + 'application/x-rar-compressed' => 'rar', + 'application/x-research-info-systems' => 'ris', + 'application/x-sh' => 'sh', + 'application/x-shar' => 'shar', + 'application/x-shockwave-flash' => 'swf', + 'application/x-silverlight-app' => 'xap', + 'application/x-sql' => 'sql', + 'application/x-stuffit' => 'sit', + 'application/x-stuffitx' => 'sitx', + 'application/x-subrip' => 'srt', + 'application/x-sv4cpio' => 'sv4cpio', + 'application/x-sv4crc' => 'sv4crc', + 'application/x-t3vm-image' => 't3', + 'application/x-tads' => 'gam', + 'application/x-tar' => 'tar', + 'application/x-tcl' => 'tcl', + 'application/x-tex' => 'tex', + 'application/x-tex-tfm' => 'tfm', + 'application/x-texinfo' => ['texinfo', 'texi'], + 'application/x-tgif' => 'obj', + 'application/x-ustar' => 'ustar', + 'application/x-wais-source' => 'src', + 'application/x-x509-ca-cert' => ['der', 'crt'], + 'application/x-xfig' => 'fig', + 'application/x-xliff+xml' => 'xlf', + 'application/x-xpinstall' => 'xpi', + 'application/x-xz' => 'xz', + 'application/x-zmachine' => 'z1', + 'application/xaml+xml' => 'xaml', + 'application/xcap-diff+xml' => 'xdf', + 'application/xenc+xml' => 'xenc', + 'application/xhtml+xml' => ['xhtml', 'xht'], + 'application/xml' => ['xml', 'xsl'], + 'application/xml-dtd' => 'dtd', + 'application/xop+xml' => 'xop', + 'application/xproc+xml' => 'xpl', + 'application/xslt+xml' => 'xslt', + 'application/xspf+xml' => 'xspf', + 'application/xv+xml' => ['mxml', 'xhvml', 'xvml', 'xvm'], + 'application/yang' => 'yang', + 'application/yin+xml' => 'yin', + 'application/zip' => 'zip', + 'audio/adpcm' => 'adp', + 'audio/basic' => ['au', 'snd'], + 'audio/midi' => ['mid', 'midi', 'kar', 'rmi'], + 'audio/mp4' => 'mp4a', + 'audio/mpeg' => [ + 'mpga', + 'mp2', + 'mp2a', + 'mp3', + 'm2a', + 'm3a', + ], + 'audio/ogg' => ['oga', 'ogg', 'spx'], + 'audio/vnd.dece.audio' => ['uva', 'uvva'], + 'audio/vnd.rip' => 'rip', + 'audio/webm' => 'weba', + 'audio/x-aac' => 'aac', + 'audio/x-aiff' => ['aif', 'aiff', 'aifc'], + 'audio/x-caf' => 'caf', + 'audio/x-flac' => 'flac', + 'audio/x-matroska' => 'mka', + 'audio/x-mpegurl' => 'm3u', + 'audio/x-ms-wax' => 'wax', + 'audio/x-ms-wma' => 'wma', + 'audio/x-pn-realaudio' => ['ram', 'ra'], + 'audio/x-pn-realaudio-plugin' => 'rmp', + 'audio/x-wav' => 'wav', + 'audio/xm' => 'xm', + 'image/bmp' => 'bmp', + 'image/cgm' => 'cgm', + 'image/g3fax' => 'g3', + 'image/gif' => 'gif', + 'image/ief' => 'ief', + 'image/jpeg' => ['jpeg', 'jpg', 'jpe'], + 'image/ktx' => 'ktx', + 'image/png' => 'png', + 'image/prs.btif' => 'btif', + 'image/sgi' => 'sgi', + 'image/svg+xml' => ['svg', 'svgz'], + 'image/tiff' => ['tiff', 'tif'], + 'image/vnd.adobe.photoshop' => 'psd', + 'image/vnd.dece.graphic' => ['uvi', 'uvvi', 'uvg', 'uvvg'], + 'image/vnd.dvb.subtitle' => 'sub', + 'image/vnd.djvu' => ['djvu', 'djv'], + 'image/vnd.dwg' => 'dwg', + 'image/vnd.dxf' => 'dxf', + 'image/vnd.fastbidsheet' => 'fbs', + 'image/vnd.fpx' => 'fpx', + 'image/vnd.fst' => 'fst', + 'image/vnd.fujixerox.edmics-mmr' => 'mmr', + 'image/vnd.fujixerox.edmics-rlc' => 'rlc', + 'image/vnd.ms-modi' => 'mdi', + 'image/vnd.ms-photo' => 'wdp', + 'image/vnd.net-fpx' => 'npx', + 'image/vnd.wap.wbmp' => 'wbmp', + 'image/vnd.xiff' => 'xif', + 'image/webp' => 'webp', + 'image/x-3ds' => '3ds', + 'image/x-cmu-raster' => 'ras', + 'image/x-cmx' => 'cmx', + 'image/x-freehand' => ['fh', 'fhc', 'fh4', 'fh5', 'fh7'], + 'image/x-icon' => 'ico', + 'image/x-mrsid-image' => 'sid', + 'image/x-pcx' => 'pcx', + 'image/x-pict' => ['pic', 'pct'], + 'image/x-portable-anymap' => 'pnm', + 'image/x-portable-bitmap' => 'pbm', + 'image/x-portable-graymap' => 'pgm', + 'image/x-portable-pixmap' => 'ppm', + 'image/x-rgb' => 'rgb', + 'image/x-tga' => 'tga', + 'image/x-xbitmap' => 'xbm', + 'image/x-xpixmap' => 'xpm', + 'image/x-xwindowdump' => 'xwd', + 'message/rfc822' => ['eml', 'mime'], + 'model/iges' => ['igs', 'iges'], + 'model/mesh' => ['msh', 'mesh', 'silo'], + 'model/vnd.collada+xml' => 'dae', + 'model/vnd.dwf' => 'dwf', + 'model/vnd.gdl' => 'gdl', + 'model/vnd.gtw' => 'gtw', + 'model/vnd.mts' => 'mts', + 'model/vnd.vtu' => 'vtu', + 'model/vrml' => ['wrl', 'vrml'], + 'model/x3d+binary' => 'x3db', + 'model/x3d+vrml' => 'x3dv', + 'model/x3d+xml' => 'x3d', + 'text/cache-manifest' => 'appcache', + 'text/calendar' => ['ics', 'ifb'], + 'text/css' => 'css', + 'text/csv' => 'csv', + 'text/html' => ['html', 'htm'], + 'text/n3' => 'n3', + 'text/plain' => [ + 'txt', + 'text', + 'conf', + 'def', + 'list', + 'log', + 'in', + ], + 'text/prs.lines.tag' => 'dsc', + 'text/richtext' => 'rtx', + 'text/sgml' => ['sgml', 'sgm'], + 'text/tab-separated-values' => 'tsv', + 'text/troff' => [ + 't', + 'tr', + 'roff', + 'man', + 'me', + 'ms', + ], + 'text/turtle' => 'ttl', + 'text/uri-list' => ['uri', 'uris', 'urls'], + 'text/vcard' => 'vcard', + 'text/vnd.curl' => 'curl', + 'text/vnd.curl.dcurl' => 'dcurl', + 'text/vnd.curl.scurl' => 'scurl', + 'text/vnd.curl.mcurl' => 'mcurl', + 'text/vnd.dvb.subtitle' => 'sub', + 'text/vnd.fly' => 'fly', + 'text/vnd.fmi.flexstor' => 'flx', + 'text/vnd.graphviz' => 'gv', + 'text/vnd.in3d.3dml' => '3dml', + 'text/vnd.in3d.spot' => 'spot', + 'text/vnd.sun.j2me.app-descriptor' => 'jad', + 'text/vnd.wap.wml' => 'wml', + 'text/vnd.wap.wmlscript' => 'wmls', + 'text/x-asm' => ['s', 'asm'], + 'text/x-fortran' => ['f', 'for', 'f77', 'f90'], + 'text/x-java-source' => 'java', + 'text/x-opml' => 'opml', + 'text/x-pascal' => ['p', 'pas'], + 'text/x-nfo' => 'nfo', + 'text/x-setext' => 'etx', + 'text/x-sfv' => 'sfv', + 'text/x-uuencode' => 'uu', + 'text/x-vcalendar' => 'vcs', + 'text/x-vcard' => 'vcf', + 'video/3gpp' => '3gp', + 'video/3gpp2' => '3g2', + 'video/h261' => 'h261', + 'video/h263' => 'h263', + 'video/h264' => 'h264', + 'video/jpeg' => 'jpgv', + 'video/jpm' => ['jpm', 'jpgm'], + 'video/mj2' => 'mj2', + 'video/mp4' => 'mp4', + 'video/mpeg' => ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'], + 'video/ogg' => 'ogv', + 'video/quicktime' => ['qt', 'mov'], + 'video/vnd.dece.hd' => ['uvh', 'uvvh'], + 'video/vnd.dece.mobile' => ['uvm', 'uvvm'], + 'video/vnd.dece.pd' => ['uvp', 'uvvp'], + 'video/vnd.dece.sd' => ['uvs', 'uvvs'], + 'video/vnd.dece.video' => ['uvv', 'uvvv'], + 'video/vnd.dvb.file' => 'dvb', + 'video/vnd.fvt' => 'fvt', + 'video/vnd.mpegurl' => ['mxu', 'm4u'], + 'video/vnd.ms-playready.media.pyv' => 'pyv', + 'video/vnd.uvvu.mp4' => ['uvu', 'uvvu'], + 'video/vnd.vivo' => 'viv', + 'video/webm' => 'webm', + 'video/x-f4v' => 'f4v', + 'video/x-fli' => 'fli', + 'video/x-flv' => 'flv', + 'video/x-m4v' => 'm4v', + 'video/x-matroska' => ['mkv', 'mk3d', 'mks'], + 'video/x-mng' => 'mng', + 'video/x-ms-asf' => ['asf', 'asx'], + 'video/x-ms-vob' => 'vob', + 'video/x-ms-wm' => 'wm', + 'video/x-ms-wmv' => 'wmv', + 'video/x-ms-wmx' => 'wmx', + 'video/x-ms-wvx' => 'wvx', + 'video/x-msvideo' => 'avi', + 'video/x-sgi-movie' => 'movie', + ]; + + /** + * Get a random MIME type + * + * @return string + * + * @example 'video/avi' + */ + public static function mimeType() + { + return static::randomElement(array_keys(static::$mimeTypes)); + } + + /** + * Get a random file extension (without a dot) + * + * @example avi + * + * @return string + */ + public static function fileExtension() + { + $random_extension = static::randomElement(array_values(static::$mimeTypes)); + + return is_array($random_extension) ? static::randomElement($random_extension) : $random_extension; + } + + /** + * Copy a random file from the source directory to the target directory and returns the filename/fullpath + * + * @param string $sourceDirectory The directory to look for random file taking + * @param string $targetDirectory + * @param bool $fullPath Whether to have the full path or just the filename + * + * @return string + */ + public static function file($sourceDirectory = '/tmp', $targetDirectory = '/tmp', $fullPath = true) + { + if (!is_dir($sourceDirectory)) { + throw new \InvalidArgumentException(sprintf('Source directory %s does not exist or is not a directory.', $sourceDirectory)); + } + + if (!is_dir($targetDirectory)) { + throw new \InvalidArgumentException(sprintf('Target directory %s does not exist or is not a directory.', $targetDirectory)); + } + + if ($sourceDirectory == $targetDirectory) { + throw new \InvalidArgumentException('Source and target directories must differ.'); + } + + // Drop . and .. and reset array keys + $files = array_filter(array_values(array_diff(scandir($sourceDirectory), ['.', '..'])), static function ($file) use ($sourceDirectory) { + return is_file($sourceDirectory . DIRECTORY_SEPARATOR . $file) && is_readable($sourceDirectory . DIRECTORY_SEPARATOR . $file); + }); + + if (empty($files)) { + throw new \InvalidArgumentException(sprintf('Source directory %s is empty.', $sourceDirectory)); + } + + $sourceFullPath = $sourceDirectory . DIRECTORY_SEPARATOR . static::randomElement($files); + + $destinationFile = Uuid::uuid() . '.' . pathinfo($sourceFullPath, PATHINFO_EXTENSION); + $destinationFullPath = $targetDirectory . DIRECTORY_SEPARATOR . $destinationFile; + + if (false === copy($sourceFullPath, $destinationFullPath)) { + return false; + } + + return $fullPath ? $destinationFullPath : $destinationFile; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php b/vendor/fakerphp/faker/src/Faker/Provider/HtmlLorem.php similarity index 60% rename from vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php rename to vendor/fakerphp/faker/src/Faker/Provider/HtmlLorem.php index 6219bc8..a843410 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/HtmlLorem.php @@ -7,29 +7,28 @@ class HtmlLorem extends Base { - - const HTML_TAG = "html"; - const HEAD_TAG = "head"; - const BODY_TAG = "body"; - const DIV_TAG = "div"; - const P_TAG = "p"; - const A_TAG = "a"; - const SPAN_TAG = "span"; - const TABLE_TAG = "table"; - const THEAD_TAG = "thead"; - const TBODY_TAG = "tbody"; - const TR_TAG = "tr"; - const TD_TAG = "td"; - const TH_TAG = "th"; - const UL_TAG = "ul"; - const LI_TAG = "li"; - const H_TAG = "h"; - const B_TAG = "b"; - const I_TAG = "i"; - const TITLE_TAG = "title"; - const FORM_TAG = "form"; - const INPUT_TAG = "input"; - const LABEL_TAG = "label"; + public const HTML_TAG = 'html'; + public const HEAD_TAG = 'head'; + public const BODY_TAG = 'body'; + public const DIV_TAG = 'div'; + public const P_TAG = 'p'; + public const A_TAG = 'a'; + public const SPAN_TAG = 'span'; + public const TABLE_TAG = 'table'; + public const THEAD_TAG = 'thead'; + public const TBODY_TAG = 'tbody'; + public const TR_TAG = 'tr'; + public const TD_TAG = 'td'; + public const TH_TAG = 'th'; + public const UL_TAG = 'ul'; + public const LI_TAG = 'li'; + public const H_TAG = 'h'; + public const B_TAG = 'b'; + public const I_TAG = 'i'; + public const TITLE_TAG = 'title'; + public const FORM_TAG = 'form'; + public const INPUT_TAG = 'input'; + public const LABEL_TAG = 'label'; private $idGenerator; @@ -41,189 +40,217 @@ public function __construct(Generator $generator) } /** - * @param integer $maxDepth - * @param integer $maxWidth + * @param int $maxDepth + * @param int $maxWidth * * @return string */ public function randomHtml($maxDepth = 4, $maxWidth = 4) { + if (!class_exists(\DOMDocument::class, false)) { + throw new \RuntimeException('ext-dom is required to use randomHtml.'); + } + $document = new \DOMDocument(); $this->idGenerator = new UniqueGenerator($this->generator); - $head = $document->createElement("head"); + $head = $document->createElement('head'); $this->addRandomTitle($head); - $body = $document->createElement("body"); + $body = $document->createElement('body'); $this->addLoginForm($body); $this->addRandomSubTree($body, $maxDepth, $maxWidth); - $html = $document->createElement("html"); + $html = $document->createElement('html'); $html->appendChild($head); $html->appendChild($body); $document->appendChild($html); + return $document->saveHTML(); } private function addRandomSubTree(\DOMElement $root, $maxDepth, $maxWidth) { - $maxDepth--; + --$maxDepth; + if ($maxDepth <= 0) { return $root; } - $siblings = mt_rand(1, $maxWidth); - for ($i = 0; $i < $siblings; $i++) { + $siblings = self::numberBetween(1, $maxWidth); + + for ($i = 0; $i < $siblings; ++$i) { if ($maxDepth == 1) { $this->addRandomLeaf($root); } else { - $sibling = $root->ownerDocument->createElement("div"); + $sibling = $root->ownerDocument->createElement('div'); $root->appendChild($sibling); $this->addRandomAttribute($sibling); - $this->addRandomSubTree($sibling, mt_rand(0, $maxDepth), $maxWidth); + $this->addRandomSubTree($sibling, self::numberBetween(0, $maxDepth), $maxWidth); } } + return $root; } - private function addRandomLeaf(\DOMElement $node) + private function addRandomLeaf(\DOMElement $node): void { - $rand = mt_rand(1, 10); + $rand = self::numberBetween(1, 10); + switch ($rand) { case 1: $this->addRandomP($node); + break; + case 2: $this->addRandomA($node); + break; + case 3: $this->addRandomSpan($node); + break; + case 4: $this->addRandomUL($node); + break; + case 5: $this->addRandomH($node); + break; + case 6: $this->addRandomB($node); + break; + case 7: $this->addRandomI($node); + break; + case 8: $this->addRandomTable($node); + break; + default: $this->addRandomText($node); + break; } } - private function addRandomAttribute(\DOMElement $node) + private function addRandomAttribute(\DOMElement $node): void { - $rand = mt_rand(1, 2); + $rand = self::numberBetween(1, 2); + switch ($rand) { case 1: - $node->setAttribute("class", $this->generator->word); + $node->setAttribute('class', $this->generator->word()); + break; + case 2: - $node->setAttribute("id", (string)$this->idGenerator->randomNumber(5)); + $node->setAttribute('id', (string) $this->idGenerator->randomNumber(5)); + break; } } - private function addRandomP(\DOMElement $element, $maxLength = 10) + private function addRandomP(\DOMElement $element, $maxLength = 10): void { - $node = $element->ownerDocument->createElement(static::P_TAG); - $node->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); + $node->textContent = $this->generator->sentence(self::numberBetween(1, $maxLength)); $element->appendChild($node); } - private function addRandomText(\DOMElement $element, $maxLength = 10) + private function addRandomText(\DOMElement $element, $maxLength = 10): void { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); + $text = $element->ownerDocument->createTextNode($this->generator->sentence(self::numberBetween(1, $maxLength))); $element->appendChild($text); } - private function addRandomA(\DOMElement $element, $maxLength = 10) + private function addRandomA(\DOMElement $element, $maxLength = 10): void { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); + $text = $element->ownerDocument->createTextNode($this->generator->sentence(self::numberBetween(1, $maxLength))); $node = $element->ownerDocument->createElement(static::A_TAG); - $node->setAttribute("href", $this->generator->safeEmailDomain); + $node->setAttribute('href', $this->generator->safeEmailDomain()); $node->appendChild($text); $element->appendChild($node); } - private function addRandomTitle(\DOMElement $element, $maxLength = 10) + private function addRandomTitle(\DOMElement $element, $maxLength = 10): void { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); + $text = $element->ownerDocument->createTextNode($this->generator->sentence(self::numberBetween(1, $maxLength))); $node = $element->ownerDocument->createElement(static::TITLE_TAG); $node->appendChild($text); $element->appendChild($node); } - private function addRandomH(\DOMElement $element, $maxLength = 10) + private function addRandomH(\DOMElement $element, $maxLength = 10): void { - $h = static::H_TAG . (string)mt_rand(1, 3); - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); + $h = static::H_TAG . (string) self::numberBetween(1, 3); + $text = $element->ownerDocument->createTextNode($this->generator->sentence(self::numberBetween(1, $maxLength))); $node = $element->ownerDocument->createElement($h); $node->appendChild($text); $element->appendChild($node); } - private function addRandomB(\DOMElement $element, $maxLength = 10) + private function addRandomB(\DOMElement $element, $maxLength = 10): void { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); + $text = $element->ownerDocument->createTextNode($this->generator->sentence(self::numberBetween(1, $maxLength))); $node = $element->ownerDocument->createElement(static::B_TAG); $node->appendChild($text); $element->appendChild($node); } - private function addRandomI(\DOMElement $element, $maxLength = 10) + private function addRandomI(\DOMElement $element, $maxLength = 10): void { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); + $text = $element->ownerDocument->createTextNode($this->generator->sentence(self::numberBetween(1, $maxLength))); $node = $element->ownerDocument->createElement(static::I_TAG); $node->appendChild($text); $element->appendChild($node); } - private function addRandomSpan(\DOMElement $element, $maxLength = 10) + private function addRandomSpan(\DOMElement $element, $maxLength = 10): void { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); + $text = $element->ownerDocument->createTextNode($this->generator->sentence(self::numberBetween(1, $maxLength))); $node = $element->ownerDocument->createElement(static::SPAN_TAG); $node->appendChild($text); $element->appendChild($node); } - private function addLoginForm(\DOMElement $element) + private function addLoginForm(\DOMElement $element): void { - $textInput = $element->ownerDocument->createElement(static::INPUT_TAG); - $textInput->setAttribute("type", "text"); - $textInput->setAttribute("id", "username"); + $textInput->setAttribute('type', 'text'); + $textInput->setAttribute('id', 'username'); $textLabel = $element->ownerDocument->createElement(static::LABEL_TAG); - $textLabel->setAttribute("for", "username"); - $textLabel->textContent = $this->generator->word; + $textLabel->setAttribute('for', 'username'); + $textLabel->textContent = $this->generator->word(); $passwordInput = $element->ownerDocument->createElement(static::INPUT_TAG); - $passwordInput->setAttribute("type", "password"); - $passwordInput->setAttribute("id", "password"); + $passwordInput->setAttribute('type', 'password'); + $passwordInput->setAttribute('id', 'password'); $passwordLabel = $element->ownerDocument->createElement(static::LABEL_TAG); - $passwordLabel->setAttribute("for", "password"); - $passwordLabel->textContent = $this->generator->word; + $passwordLabel->setAttribute('for', 'password'); + $passwordLabel->textContent = $this->generator->word(); $submit = $element->ownerDocument->createElement(static::INPUT_TAG); - $submit->setAttribute("type", "submit"); - $submit->setAttribute("value", $this->generator->word); + $submit->setAttribute('type', 'submit'); + $submit->setAttribute('value', $this->generator->word()); $submit = $element->ownerDocument->createElement(static::FORM_TAG); - $submit->setAttribute("action", $this->generator->safeEmailDomain); - $submit->setAttribute("method", "POST"); + $submit->setAttribute('action', $this->generator->safeEmailDomain()); + $submit->setAttribute('method', 'POST'); $submit->appendChild($textLabel); $submit->appendChild($textInput); $submit->appendChild($passwordLabel); @@ -231,10 +258,10 @@ private function addLoginForm(\DOMElement $element) $element->appendChild($submit); } - private function addRandomTable(\DOMElement $element, $maxRows = 10, $maxCols = 6, $maxTitle = 4, $maxLength = 10) + private function addRandomTable(\DOMElement $element, $maxRows = 10, $maxCols = 6, $maxTitle = 4, $maxLength = 10): void { - $rows = mt_rand(1, $maxRows); - $cols = mt_rand(1, $maxCols); + $rows = self::numberBetween(1, $maxRows); + $cols = self::numberBetween(1, $maxCols); $table = $element->ownerDocument->createElement(static::TABLE_TAG); $thead = $element->ownerDocument->createElement(static::THEAD_TAG); @@ -245,30 +272,34 @@ private function addRandomTable(\DOMElement $element, $maxRows = 10, $maxCols = $tr = $element->ownerDocument->createElement(static::TR_TAG); $thead->appendChild($tr); - for ($i = 0; $i < $cols; $i++) { + + for ($i = 0; $i < $cols; ++$i) { $th = $element->ownerDocument->createElement(static::TH_TAG); - $th->textContent = $this->generator->sentence(mt_rand(1, $maxTitle)); + $th->textContent = $this->generator->sentence(self::numberBetween(1, $maxTitle)); $tr->appendChild($th); } - for ($i = 0; $i < $rows; $i++) { + + for ($i = 0; $i < $rows; ++$i) { $tr = $element->ownerDocument->createElement(static::TR_TAG); $tbody->appendChild($tr); - for ($j = 0; $j < $cols; $j++) { + + for ($j = 0; $j < $cols; ++$j) { $th = $element->ownerDocument->createElement(static::TD_TAG); - $th->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); + $th->textContent = $this->generator->sentence(self::numberBetween(1, $maxLength)); $tr->appendChild($th); } } $element->appendChild($table); } - private function addRandomUL(\DOMElement $element, $maxItems = 11, $maxLength = 4) + private function addRandomUL(\DOMElement $element, $maxItems = 11, $maxLength = 4): void { - $num = mt_rand(1, $maxItems); + $num = self::numberBetween(1, $maxItems); $ul = $element->ownerDocument->createElement(static::UL_TAG); - for ($i = 0; $i < $num; $i++) { + + for ($i = 0; $i < $num; ++$i) { $li = $element->ownerDocument->createElement(static::LI_TAG); - $li->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); + $li->textContent = $this->generator->sentence(self::numberBetween(1, $maxLength)); $ul->appendChild($li); } $element->appendChild($ul); diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Image.php b/vendor/fakerphp/faker/src/Faker/Provider/Image.php new file mode 100644 index 0000000..e787142 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/Image.php @@ -0,0 +1,196 @@ + 0 ? '?text=' . urlencode(implode(' ', $imageParts)) : '', + ); + } + + /** + * Download a remote random image to disk and return its location + * + * Requires curl, or allow_url_fopen to be on in php.ini. + * + * @example '/path/to/dir/13b73edae8443990be1aa8f1a483bc27.png' + * + * @return bool|string + */ + public static function image( + $dir = null, + $width = 640, + $height = 480, + $category = null, + $fullPath = true, + $randomize = true, + $word = null, + $gray = false, + $format = 'png' + ) { + trigger_deprecation( + 'fakerphp/faker', + '1.20', + 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead', + ); + + $dir = null === $dir ? sys_get_temp_dir() : $dir; // GNU/Linux / OS X / Windows compatible + + // Validate directory path + if (!is_dir($dir) || !is_writable($dir)) { + throw new \InvalidArgumentException(sprintf('Cannot write to directory "%s"', $dir)); + } + + // Generate a random filename. Use the server address so that a file + // generated at the same time on a different server won't have a collision. + $name = md5(uniqid(empty($_SERVER['SERVER_ADDR']) ? '' : $_SERVER['SERVER_ADDR'], true)); + $filename = sprintf('%s.%s', $name, $format); + $filepath = $dir . DIRECTORY_SEPARATOR . $filename; + + $url = static::imageUrl($width, $height, $category, $randomize, $word, $gray, $format); + + // save file + if (function_exists('curl_exec')) { + // use cURL + $fp = fopen($filepath, 'w'); + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_FILE, $fp); + $success = curl_exec($ch) && curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200; + fclose($fp); + curl_close($ch); + + if (!$success) { + unlink($filepath); + + // could not contact the distant URL or HTTP error - fail silently. + return false; + } + } elseif (ini_get('allow_url_fopen')) { + // use remote fopen() via copy() + $success = copy($url, $filepath); + + if (!$success) { + // could not contact the distant URL or HTTP error - fail silently. + return false; + } + } else { + return new \RuntimeException('The image formatter downloads an image from a remote HTTP server. Therefore, it requires that PHP can request remote hosts, either via cURL or fopen()'); + } + + return $fullPath ? $filepath : $filename; + } + + public static function getFormats(): array + { + trigger_deprecation( + 'fakerphp/faker', + '1.20', + 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead', + ); + + return array_keys(static::getFormatConstants()); + } + + public static function getFormatConstants(): array + { + trigger_deprecation( + 'fakerphp/faker', + '1.20', + 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead', + ); + + return [ + static::FORMAT_JPG => constant('IMAGETYPE_JPEG'), + static::FORMAT_JPEG => constant('IMAGETYPE_JPEG'), + static::FORMAT_PNG => constant('IMAGETYPE_PNG'), + ]; + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/Internet.php new file mode 100644 index 0000000..122d9c0 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/Internet.php @@ -0,0 +1,407 @@ +generator->parse($format); + } + + /** + * @example 'jdoe@example.com' + * + * @return string + */ + final public function safeEmail() + { + return preg_replace('/\s/u', '', $this->userName() . '@' . static::safeEmailDomain()); + } + + /** + * @example 'jdoe@gmail.com' + * + * @return string + */ + public function freeEmail() + { + return preg_replace('/\s/u', '', $this->userName() . '@' . static::freeEmailDomain()); + } + + /** + * @example 'jdoe@dawson.com' + * + * @return string + */ + public function companyEmail() + { + return preg_replace('/\s/u', '', $this->userName() . '@' . $this->domainName()); + } + + /** + * @example 'gmail.com' + * + * @return string + */ + public static function freeEmailDomain() + { + return static::randomElement(static::$freeEmailDomain); + } + + /** + * @example 'example.org' + * + * @return string + */ + final public static function safeEmailDomain() + { + $domains = [ + 'example.com', + 'example.org', + 'example.net', + ]; + + return static::randomElement($domains); + } + + /** + * @example 'jdoe' + * + * @return string + */ + public function userName() + { + $format = static::randomElement(static::$userNameFormats); + $username = static::bothify($this->generator->parse($format)); + + $username = strtolower(static::transliterate($username)); + + // check if transliterate() didn't support the language and removed all letters + if (trim($username, '._') === '') { + throw new \Exception('userName failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); + } + + // clean possible trailing dots from first/last names + $username = str_replace('..', '.', $username); + $username = rtrim($username, '.'); + + return $username; + } + + /** + * @example 'fY4èHdZv68' + * + * @return string + */ + public function password($minLength = 6, $maxLength = 20) + { + $pattern = str_repeat('*', $this->numberBetween($minLength, $maxLength)); + + return $this->asciify($pattern); + } + + /** + * @example 'tiramisu.com' + * + * @return string + */ + public function domainName() + { + return $this->domainWord() . '.' . $this->tld(); + } + + /** + * @example 'faber' + * + * @return string + */ + public function domainWord() + { + $lastName = $this->generator->format('lastName'); + + $lastName = strtolower(static::transliterate($lastName)); + + // check if transliterate() didn't support the language and removed all letters + if (trim($lastName, '._') === '') { + throw new \Exception('domainWord failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); + } + + // clean possible trailing dot from last name + $lastName = rtrim($lastName, '.'); + + return $lastName; + } + + /** + * @example 'com' + * + * @return string + */ + public function tld() + { + return static::randomElement(static::$tld); + } + + /** + * @example 'http://www.runolfsdottir.com/' + * + * @return string + */ + public function url() + { + $format = static::randomElement(static::$urlFormats); + + return $this->generator->parse($format); + } + + /** + * @example 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum' + * + * @return string + */ + public function slug($nbWords = 6, $variableNbWords = true) + { + if ($nbWords <= 0) { + return ''; + } + + if ($variableNbWords) { + $nbWords = (int) ($nbWords * self::numberBetween(60, 140) / 100) + 1; + } + $words = $this->generator->words($nbWords); + + return implode('-', $words); + } + + /** + * @example '237.149.115.38' + * + * @return string + */ + public function ipv4() + { + return long2ip(Miscellaneous::boolean() ? self::numberBetween(-2147483648, -2) : self::numberBetween(16777216, 2147483647)); + } + + /** + * @example '35cd:186d:3e23:2986:ef9f:5b41:42a4:e6f1' + * + * @return string + */ + public function ipv6() + { + $res = []; + + for ($i = 0; $i < 8; ++$i) { + $res[] = dechex(self::numberBetween(0, 65535)); + } + + return implode(':', $res); + } + + /** + * @example '10.1.1.17' + * + * @return string + */ + public static function localIpv4() + { + $ipBlock = self::randomElement(static::$localIpBlocks); + + return long2ip(static::numberBetween(ip2long($ipBlock[0]), ip2long($ipBlock[1]))); + } + + /** + * @example '32:F1:39:2F:D6:18' + * + * @return string + */ + public static function macAddress() + { + $mac = []; + + for ($i = 0; $i < 6; ++$i) { + $mac[] = sprintf('%02X', self::numberBetween(0, 0xff)); + } + + return implode(':', $mac); + } + + protected static function transliterate($string) + { + if (0 === preg_match('/[^A-Za-z0-9_.]/', $string)) { + return $string; + } + + $transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;'; + + if (class_exists(\Transliterator::class, false) && $transliterator = \Transliterator::create($transId)) { + $transString = $transliterator->transliterate($string); + } else { + $transString = static::toAscii($string); + } + + return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString); + } + + protected static function toAscii($string) + { + static $arrayFrom, $arrayTo; + + if (empty($arrayFrom)) { + $transliterationTable = [ + 'IJ' => 'I', 'Ö' => 'O', 'Œ' => 'O', 'Ü' => 'U', 'ä' => 'a', 'æ' => 'a', + 'ij' => 'i', 'ö' => 'o', 'œ' => 'o', 'ü' => 'u', 'ß' => 's', 'ſ' => 's', + 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', + 'Æ' => 'A', 'Ā' => 'A', 'Ą' => 'A', 'Ă' => 'A', 'Ç' => 'C', 'Ć' => 'C', + 'Č' => 'C', 'Ĉ' => 'C', 'Ċ' => 'C', 'Ď' => 'D', 'Đ' => 'D', 'È' => 'E', + 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ē' => 'E', 'Ę' => 'E', 'Ě' => 'E', + 'Ĕ' => 'E', 'Ė' => 'E', 'Ĝ' => 'G', 'Ğ' => 'G', 'Ġ' => 'G', 'Ģ' => 'G', + 'Ĥ' => 'H', 'Ħ' => 'H', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', + 'Ī' => 'I', 'Ĩ' => 'I', 'Ĭ' => 'I', 'Į' => 'I', 'İ' => 'I', 'Ĵ' => 'J', + 'Ķ' => 'K', 'Ľ' => 'K', 'Ĺ' => 'K', 'Ļ' => 'K', 'Ŀ' => 'K', 'Ł' => 'L', + 'Ñ' => 'N', 'Ń' => 'N', 'Ň' => 'N', 'Ņ' => 'N', 'Ŋ' => 'N', 'Ò' => 'O', + 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ø' => 'O', 'Ō' => 'O', 'Ő' => 'O', + 'Ŏ' => 'O', 'Ŕ' => 'R', 'Ř' => 'R', 'Ŗ' => 'R', 'Ś' => 'S', 'Ş' => 'S', + 'Ŝ' => 'S', 'Ș' => 'S', 'Š' => 'S', 'Ť' => 'T', 'Ţ' => 'T', 'Ŧ' => 'T', + 'Ț' => 'T', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ū' => 'U', 'Ů' => 'U', + 'Ű' => 'U', 'Ŭ' => 'U', 'Ũ' => 'U', 'Ų' => 'U', 'Ŵ' => 'W', 'Ŷ' => 'Y', + 'Ÿ' => 'Y', 'Ý' => 'Y', 'Ź' => 'Z', 'Ż' => 'Z', 'Ž' => 'Z', 'à' => 'a', + 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ā' => 'a', 'ą' => 'a', 'ă' => 'a', + 'å' => 'a', 'ç' => 'c', 'ć' => 'c', 'č' => 'c', 'ĉ' => 'c', 'ċ' => 'c', + 'ď' => 'd', 'đ' => 'd', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', + 'ē' => 'e', 'ę' => 'e', 'ě' => 'e', 'ĕ' => 'e', 'ė' => 'e', 'ƒ' => 'f', + 'ĝ' => 'g', 'ğ' => 'g', 'ġ' => 'g', 'ģ' => 'g', 'ĥ' => 'h', 'ħ' => 'h', + 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ī' => 'i', 'ĩ' => 'i', + 'ĭ' => 'i', 'į' => 'i', 'ı' => 'i', 'ĵ' => 'j', 'ķ' => 'k', 'ĸ' => 'k', + 'ł' => 'l', 'ľ' => 'l', 'ĺ' => 'l', 'ļ' => 'l', 'ŀ' => 'l', 'ñ' => 'n', + 'ń' => 'n', 'ň' => 'n', 'ņ' => 'n', 'ʼn' => 'n', 'ŋ' => 'n', 'ò' => 'o', + 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ø' => 'o', 'ō' => 'o', 'ő' => 'o', + 'ŏ' => 'o', 'ŕ' => 'r', 'ř' => 'r', 'ŗ' => 'r', 'ś' => 's', 'š' => 's', + 'ť' => 't', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ū' => 'u', 'ů' => 'u', + 'ű' => 'u', 'ŭ' => 'u', 'ũ' => 'u', 'ų' => 'u', 'ŵ' => 'w', 'ÿ' => 'y', + 'ý' => 'y', 'ŷ' => 'y', 'ż' => 'z', 'ź' => 'z', 'ž' => 'z', 'Α' => 'A', + 'Ά' => 'A', 'Ἀ' => 'A', 'Ἁ' => 'A', 'Ἂ' => 'A', 'Ἃ' => 'A', 'Ἄ' => 'A', + 'Ἅ' => 'A', 'Ἆ' => 'A', 'Ἇ' => 'A', 'ᾈ' => 'A', 'ᾉ' => 'A', 'ᾊ' => 'A', + 'ᾋ' => 'A', 'ᾌ' => 'A', 'ᾍ' => 'A', 'ᾎ' => 'A', 'ᾏ' => 'A', 'Ᾰ' => 'A', + 'Ᾱ' => 'A', 'Ὰ' => 'A', 'ᾼ' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', + 'Ε' => 'E', 'Έ' => 'E', 'Ἐ' => 'E', 'Ἑ' => 'E', 'Ἒ' => 'E', 'Ἓ' => 'E', + 'Ἔ' => 'E', 'Ἕ' => 'E', 'Ὲ' => 'E', 'Ζ' => 'Z', 'Η' => 'I', 'Ή' => 'I', + 'Ἠ' => 'I', 'Ἡ' => 'I', 'Ἢ' => 'I', 'Ἣ' => 'I', 'Ἤ' => 'I', 'Ἥ' => 'I', + 'Ἦ' => 'I', 'Ἧ' => 'I', 'ᾘ' => 'I', 'ᾙ' => 'I', 'ᾚ' => 'I', 'ᾛ' => 'I', + 'ᾜ' => 'I', 'ᾝ' => 'I', 'ᾞ' => 'I', 'ᾟ' => 'I', 'Ὴ' => 'I', 'ῌ' => 'I', + 'Θ' => 'T', 'Ι' => 'I', 'Ί' => 'I', 'Ϊ' => 'I', 'Ἰ' => 'I', 'Ἱ' => 'I', + 'Ἲ' => 'I', 'Ἳ' => 'I', 'Ἴ' => 'I', 'Ἵ' => 'I', 'Ἶ' => 'I', 'Ἷ' => 'I', + 'Ῐ' => 'I', 'Ῑ' => 'I', 'Ὶ' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', + 'Ν' => 'N', 'Ξ' => 'K', 'Ο' => 'O', 'Ό' => 'O', 'Ὀ' => 'O', 'Ὁ' => 'O', + 'Ὂ' => 'O', 'Ὃ' => 'O', 'Ὄ' => 'O', 'Ὅ' => 'O', 'Ὸ' => 'O', 'Π' => 'P', + 'Ρ' => 'R', 'Ῥ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Ύ' => 'Y', + 'Ϋ' => 'Y', 'Ὑ' => 'Y', 'Ὓ' => 'Y', 'Ὕ' => 'Y', 'Ὗ' => 'Y', 'Ῠ' => 'Y', + 'Ῡ' => 'Y', 'Ὺ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'P', 'Ω' => 'O', + 'Ώ' => 'O', 'Ὠ' => 'O', 'Ὡ' => 'O', 'Ὢ' => 'O', 'Ὣ' => 'O', 'Ὤ' => 'O', + 'Ὥ' => 'O', 'Ὦ' => 'O', 'Ὧ' => 'O', 'ᾨ' => 'O', 'ᾩ' => 'O', 'ᾪ' => 'O', + 'ᾫ' => 'O', 'ᾬ' => 'O', 'ᾭ' => 'O', 'ᾮ' => 'O', 'ᾯ' => 'O', 'Ὼ' => 'O', + 'ῼ' => 'O', 'α' => 'a', 'ά' => 'a', 'ἀ' => 'a', 'ἁ' => 'a', 'ἂ' => 'a', + 'ἃ' => 'a', 'ἄ' => 'a', 'ἅ' => 'a', 'ἆ' => 'a', 'ἇ' => 'a', 'ᾀ' => 'a', + 'ᾁ' => 'a', 'ᾂ' => 'a', 'ᾃ' => 'a', 'ᾄ' => 'a', 'ᾅ' => 'a', 'ᾆ' => 'a', + 'ᾇ' => 'a', 'ὰ' => 'a', 'ᾰ' => 'a', 'ᾱ' => 'a', 'ᾲ' => 'a', 'ᾳ' => 'a', + 'ᾴ' => 'a', 'ᾶ' => 'a', 'ᾷ' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', + 'ε' => 'e', 'έ' => 'e', 'ἐ' => 'e', 'ἑ' => 'e', 'ἒ' => 'e', 'ἓ' => 'e', + 'ἔ' => 'e', 'ἕ' => 'e', 'ὲ' => 'e', 'ζ' => 'z', 'η' => 'i', 'ή' => 'i', + 'ἠ' => 'i', 'ἡ' => 'i', 'ἢ' => 'i', 'ἣ' => 'i', 'ἤ' => 'i', 'ἥ' => 'i', + 'ἦ' => 'i', 'ἧ' => 'i', 'ᾐ' => 'i', 'ᾑ' => 'i', 'ᾒ' => 'i', 'ᾓ' => 'i', + 'ᾔ' => 'i', 'ᾕ' => 'i', 'ᾖ' => 'i', 'ᾗ' => 'i', 'ὴ' => 'i', 'ῂ' => 'i', + 'ῃ' => 'i', 'ῄ' => 'i', 'ῆ' => 'i', 'ῇ' => 'i', 'θ' => 't', 'ι' => 'i', + 'ί' => 'i', 'ϊ' => 'i', 'ΐ' => 'i', 'ἰ' => 'i', 'ἱ' => 'i', 'ἲ' => 'i', + 'ἳ' => 'i', 'ἴ' => 'i', 'ἵ' => 'i', 'ἶ' => 'i', 'ἷ' => 'i', 'ὶ' => 'i', + 'ῐ' => 'i', 'ῑ' => 'i', 'ῒ' => 'i', 'ῖ' => 'i', 'ῗ' => 'i', 'κ' => 'k', + 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => 'k', 'ο' => 'o', 'ό' => 'o', + 'ὀ' => 'o', 'ὁ' => 'o', 'ὂ' => 'o', 'ὃ' => 'o', 'ὄ' => 'o', 'ὅ' => 'o', + 'ὸ' => 'o', 'π' => 'p', 'ρ' => 'r', 'ῤ' => 'r', 'ῥ' => 'r', 'σ' => 's', + 'ς' => 's', 'τ' => 't', 'υ' => 'y', 'ύ' => 'y', 'ϋ' => 'y', 'ΰ' => 'y', + 'ὐ' => 'y', 'ὑ' => 'y', 'ὒ' => 'y', 'ὓ' => 'y', 'ὔ' => 'y', 'ὕ' => 'y', + 'ὖ' => 'y', 'ὗ' => 'y', 'ὺ' => 'y', 'ῠ' => 'y', 'ῡ' => 'y', 'ῢ' => 'y', + 'ῦ' => 'y', 'ῧ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'p', 'ω' => 'o', + 'ώ' => 'o', 'ὠ' => 'o', 'ὡ' => 'o', 'ὢ' => 'o', 'ὣ' => 'o', 'ὤ' => 'o', + 'ὥ' => 'o', 'ὦ' => 'o', 'ὧ' => 'o', 'ᾠ' => 'o', 'ᾡ' => 'o', 'ᾢ' => 'o', + 'ᾣ' => 'o', 'ᾤ' => 'o', 'ᾥ' => 'o', 'ᾦ' => 'o', 'ᾧ' => 'o', 'ὼ' => 'o', + 'ῲ' => 'o', 'ῳ' => 'o', 'ῴ' => 'o', 'ῶ' => 'o', 'ῷ' => 'o', 'А' => 'A', + 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'E', + 'Ж' => 'Z', 'З' => 'Z', 'И' => 'I', 'Й' => 'I', 'К' => 'K', 'Л' => 'L', + 'М' => 'M', 'Н' => 'N', 'О' => 'O', 'П' => 'P', 'Р' => 'R', 'С' => 'S', + 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'K', 'Ц' => 'T', 'Ч' => 'C', + 'Ш' => 'S', 'Щ' => 'S', 'Ы' => 'Y', 'Э' => 'E', 'Ю' => 'Y', 'Я' => 'Y', + 'а' => 'A', 'б' => 'B', 'в' => 'V', 'г' => 'G', 'д' => 'D', 'е' => 'E', + 'ё' => 'E', 'ж' => 'Z', 'з' => 'Z', 'и' => 'I', 'й' => 'I', 'к' => 'K', + 'л' => 'L', 'м' => 'M', 'н' => 'N', 'о' => 'O', 'п' => 'P', 'р' => 'R', + 'с' => 'S', 'т' => 'T', 'у' => 'U', 'ф' => 'F', 'х' => 'K', 'ц' => 'T', + 'ч' => 'C', 'ш' => 'S', 'щ' => 'S', 'ы' => 'Y', 'э' => 'E', 'ю' => 'Y', + 'я' => 'Y', 'ð' => 'd', 'Ð' => 'D', 'þ' => 't', 'Þ' => 'T', 'ა' => 'a', + 'ბ' => 'b', 'გ' => 'g', 'დ' => 'd', 'ე' => 'e', 'ვ' => 'v', 'ზ' => 'z', + 'თ' => 't', 'ი' => 'i', 'კ' => 'k', 'ლ' => 'l', 'მ' => 'm', 'ნ' => 'n', + 'ო' => 'o', 'პ' => 'p', 'ჟ' => 'z', 'რ' => 'r', 'ს' => 's', 'ტ' => 't', + 'უ' => 'u', 'ფ' => 'p', 'ქ' => 'k', 'ღ' => 'g', 'ყ' => 'q', 'შ' => 's', + 'ჩ' => 'c', 'ც' => 't', 'ძ' => 'd', 'წ' => 't', 'ჭ' => 'c', 'ხ' => 'k', + 'ჯ' => 'j', 'ჰ' => 'h', 'ţ' => 't', 'ʼ' => "'", '̧' => '', 'ḩ' => 'h', + '‘' => "'", '’' => "'", 'ừ' => 'u', '/' => '', 'ế' => 'e', 'ả' => 'a', + 'ị' => 'i', 'ậ' => 'a', 'ệ' => 'e', 'ỉ' => 'i', 'ồ' => 'o', 'ề' => 'e', + 'ơ' => 'o', 'ạ' => 'a', 'ẵ' => 'a', 'ư' => 'u', 'ằ' => 'a', 'ầ' => 'a', + 'ḑ' => 'd', 'Ḩ' => 'H', 'Ḑ' => 'D', 'ș' => 's', 'ț' => 't', 'ộ' => 'o', + 'ắ' => 'a', 'ş' => 's', "'" => '', 'ու' => 'u', 'ա' => 'a', 'բ' => 'b', + 'գ' => 'g', 'դ' => 'd', 'ե' => 'e', 'զ' => 'z', 'է' => 'e', 'ը' => 'y', + 'թ' => 't', 'ժ' => 'zh', 'ի' => 'i', 'լ' => 'l', 'խ' => 'kh', 'ծ' => 'ts', + 'կ' => 'k', 'հ' => 'h', 'ձ' => 'dz', 'ղ' => 'gh', 'ճ' => 'ch', 'մ' => 'm', + 'յ' => 'y', 'ն' => 'n', 'շ' => 'sh', 'ո' => 'o', 'չ' => 'ch', 'պ' => 'p', + 'ջ' => 'j', 'ռ' => 'r', 'ս' => 's', 'վ' => 'v', 'տ' => 't', 'ր' => 'r', + 'ց' => 'ts', 'փ' => 'p', 'ք' => 'q', 'և' => 'ev', 'օ' => 'o', 'ֆ' => 'f', + ]; + $arrayFrom = array_keys($transliterationTable); + $arrayTo = array_values($transliterationTable); + } + + return str_replace($arrayFrom, $arrayTo, $string); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php b/vendor/fakerphp/faker/src/Faker/Provider/Lorem.php similarity index 73% rename from vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php rename to vendor/fakerphp/faker/src/Faker/Provider/Lorem.php index b8c6dac..2cfb70e 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Lorem.php @@ -4,9 +4,9 @@ class Lorem extends Base { - protected static $wordList = array( + protected static $wordList = [ 'alias', 'consequatur', 'aut', 'perferendis', 'sit', 'voluptatem', - 'accusantium', 'doloremque', 'aperiam', 'eaque','ipsa', 'quae', 'ab', + 'accusantium', 'doloremque', 'aperiam', 'eaque', 'ipsa', 'quae', 'ab', 'illo', 'inventore', 'veritatis', 'et', 'quasi', 'architecto', 'beatae', 'vitae', 'dicta', 'sunt', 'explicabo', 'aspernatur', 'aut', 'odit', 'aut', 'fugit', 'sed', 'quia', 'consequuntur', 'magni', @@ -41,11 +41,12 @@ class Lorem extends Base 'voluptates', 'repudiandae', 'sint', 'et', 'molestiae', 'non', 'recusandae', 'itaque', 'earum', 'rerum', 'hic', 'tenetur', 'a', 'sapiente', 'delectus', 'ut', 'aut', 'reiciendis', 'voluptatibus', - 'maiores', 'doloribus', 'asperiores', 'repellat' - ); + 'maiores', 'doloribus', 'asperiores', 'repellat', + ]; /** * @example 'Lorem' + * * @return string */ public static function word() @@ -57,15 +58,18 @@ public static function word() * Generate an array of random words * * @example array('Lorem', 'ipsum', 'dolor') - * @param integer $nb how many words to return - * @param bool $asText if true the sentences are returned as one string + * + * @param int $nb how many words to return + * @param bool $asText if true the sentences are returned as one string + * * @return array|string */ public static function words($nb = 3, $asText = false) { - $words = array(); - for ($i=0; $i < $nb; $i++) { - $words []= static::word(); + $words = []; + + for ($i = 0; $i < $nb; ++$i) { + $words[] = static::word(); } return $asText ? implode(' ', $words) : $words; @@ -75,9 +79,11 @@ public static function words($nb = 3, $asText = false) * Generate a random sentence * * @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, - * otherwise $nbWords may vary by +/-40% with a minimum of 1 + * + * @param int $nbWords around how many words the sentence should contain + * @param bool $variableNbWords set to false if you want exactly $nbWords returned, + * otherwise $nbWords may vary by +/-40% with a minimum of 1 + * * @return string */ public static function sentence($nbWords = 6, $variableNbWords = true) @@ -85,6 +91,7 @@ public static function sentence($nbWords = 6, $variableNbWords = true) if ($nbWords <= 0) { return ''; } + if ($variableNbWords) { $nbWords = self::randomizeNbElements($nbWords); } @@ -99,15 +106,18 @@ public static function sentence($nbWords = 6, $variableNbWords = true) * Generate an array of sentences * * @example array('Lorem ipsum dolor sit amet.', 'Consectetur adipisicing eli.') - * @param integer $nb how many sentences to return - * @param bool $asText if true the sentences are returned as one string + * + * @param int $nb how many sentences to return + * @param bool $asText if true the sentences are returned as one string + * * @return array|string */ public static function sentences($nb = 3, $asText = false) { - $sentences = array(); - for ($i=0; $i < $nb; $i++) { - $sentences []= static::sentence(); + $sentences = []; + + for ($i = 0; $i < $nb; ++$i) { + $sentences[] = static::sentence(); } return $asText ? implode(' ', $sentences) : $sentences; @@ -116,10 +126,12 @@ public static function sentences($nb = 3, $asText = false) /** * Generate a single paragraph * - * @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, - * otherwise $nbSentences may vary by +/-40% with a minimum of 1 + * @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.' + * + * @param int $nbSentences around how many sentences the paragraph should contain + * @param bool $variableNbSentences set to false if you want exactly $nbSentences returned, + * otherwise $nbSentences may vary by +/-40% with a minimum of 1 + * * @return string */ public static function paragraph($nbSentences = 3, $variableNbSentences = true) @@ -127,6 +139,7 @@ public static function paragraph($nbSentences = 3, $variableNbSentences = true) if ($nbSentences <= 0) { return ''; } + if ($variableNbSentences) { $nbSentences = self::randomizeNbElements($nbSentences); } @@ -138,15 +151,18 @@ public static function paragraph($nbSentences = 3, $variableNbSentences = true) * Generate an array of paragraphs * * @example array($paragraph1, $paragraph2, $paragraph3) - * @param integer $nb how many paragraphs to return - * @param bool $asText if true the paragraphs are returned as one string, separated by two newlines + * + * @param int $nb how many paragraphs to return + * @param bool $asText if true the paragraphs are returned as one string, separated by two newlines + * * @return array|string */ public static function paragraphs($nb = 3, $asText = false) { - $paragraphs = array(); - for ($i=0; $i < $nb; $i++) { - $paragraphs []= static::paragraph(); + $paragraphs = []; + + for ($i = 0; $i < $nb; ++$i) { + $paragraphs[] = static::paragraph(); } return $asText ? implode("\n\n", $paragraphs) : $paragraphs; @@ -158,7 +174,7 @@ public static function paragraphs($nb = 3, $asText = false) * * @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.' * - * @param integer $maxNbChars Maximum number of characters the text should contain (minimum 5) + * @param int $maxNbChars Maximum number of characters the text should contain (minimum 5) * * @return string */ @@ -168,15 +184,24 @@ public static function text($maxNbChars = 200) throw new \InvalidArgumentException('text() can only generate text of at least 5 characters'); } - $type = ($maxNbChars < 25) ? 'word' : (($maxNbChars < 100) ? 'sentence' : 'paragraph'); + $type = 'paragraph'; + + if ($maxNbChars < 100) { + $type = 'sentence'; + } + + if ($maxNbChars < 25) { + $type = 'word'; + } + + $text = []; - $text = array(); while (empty($text)) { $size = 0; // until $maxNbChars is reached while ($size < $maxNbChars) { - $word = ($size ? ' ' : '') . static::$type(); + $word = ($size ? ' ' : '') . static::$type(); $text[] = $word; $size += strlen($word); @@ -198,6 +223,6 @@ public static function text($maxNbChars = 200) protected static function randomizeNbElements($nbElements) { - return (int) ($nbElements * mt_rand(60, 140) / 100) + 1; + return (int) ($nbElements * self::numberBetween(60, 140) / 100) + 1; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Medical.php b/vendor/fakerphp/faker/src/Faker/Provider/Medical.php new file mode 100644 index 0000000..6d44fa6 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/Medical.php @@ -0,0 +1,34 @@ +generator->parse('{{bloodType}}{{bloodRh}}'); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php b/vendor/fakerphp/faker/src/Faker/Provider/Miscellaneous.php similarity index 75% rename from vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php rename to vendor/fakerphp/faker/src/Faker/Provider/Miscellaneous.php index 4f669c9..354f67b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Miscellaneous.php @@ -5,33 +5,33 @@ class Miscellaneous extends Base { /** - * @link https://en.wikipedia.org/wiki/Emoji#Unicode_blocks + * @see https://en.wikipedia.org/wiki/Emoji#Unicode_blocks * On date of 2017-03-26 * - * U+1F600 - U+1F637 as their UTF-8 Pairings + * U+1F600 - U+1F637 in Unicode Codepoint Escape Syntax */ - protected static $emoji = array( - '\uD83D\uDE00', '\uD83D\uDE01', '\uD83D\uDE02', '\uD83D\uDE03', - '\uD83D\uDE04', '\uD83D\uDE05', '\uD83D\uDE06', '\uD83D\uDE07', - '\uD83D\uDE08', '\uD83D\uDE09', '\uD83D\uDE0A', '\uD83D\uDE0B', - '\uD83D\uDE0C', '\uD83D\uDE0D', '\uD83D\uDE0E', '\uD83D\uDE0F', - '\uD83D\uDE10', '\uD83D\uDE11', '\uD83D\uDE12', '\uD83D\uDE13', - '\uD83D\uDE14', '\uD83D\uDE15', '\uD83D\uDE16', '\uD83D\uDE17', - '\uD83D\uDE18', '\uD83D\uDE19', '\uD83D\uDE1A', '\uD83D\uDE1B', - '\uD83D\uDE1C', '\uD83D\uDE1D', '\uD83D\uDE1E', '\uD83D\uDE1F', - '\uD83D\uDE20', '\uD83D\uDE21', '\uD83D\uDE22', '\uD83D\uDE23', - '\uD83D\uDE24', '\uD83D\uDE25', '\uD83D\uDE26', '\uD83D\uDE27', - '\uD83D\uDE28', '\uD83D\uDE29', '\uD83D\uDE2A', '\uD83D\uDE2B', - '\uD83D\uDE2C', '\uD83D\uDE2D', '\uD83D\uDE2E', '\uD83D\uDE2F', - '\uD83D\uDE30', '\uD83D\uDE31', '\uD83D\uDE32', '\uD83D\uDE33', - '\uD83D\uDE34', '\uD83D\uDE35', '\uD83D\uDE36', '\uD83D\uDE37', - ); + protected static $emoji = [ + "\u{1F600}", "\u{1F601}", "\u{1F602}", "\u{1F603}", + "\u{1F604}", "\u{1F605}", "\u{1F606}", "\u{1F607}", + "\u{1F608}", "\u{1F609}", "\u{1F60A}", "\u{1F60B}", + "\u{1F60C}", "\u{1F60D}", "\u{1F60E}", "\u{1F60F}", + "\u{1F610}", "\u{1F611}", "\u{1F612}", "\u{1F613}", + "\u{1F614}", "\u{1F615}", "\u{1F616}", "\u{1F617}", + "\u{1F618}", "\u{1F619}", "\u{1F61A}", "\u{1F61B}", + "\u{1F61C}", "\u{1F61D}", "\u{1F61E}", "\u{1F61F}", + "\u{1F620}", "\u{1F621}", "\u{1F622}", "\u{1F623}", + "\u{1F624}", "\u{1F625}", "\u{1F626}", "\u{1F627}", + "\u{1F628}", "\u{1F629}", "\u{1F62A}", "\u{1F62B}", + "\u{1F62C}", "\u{1F62D}", "\u{1F62E}", "\u{1F62F}", + "\u{1F630}", "\u{1F631}", "\u{1F632}", "\u{1F633}", + "\u{1F634}", "\u{1F635}", "\u{1F636}", "\u{1F637}", + ]; /** - * @link https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes + * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes * On date of 2016-04-22 */ - protected static $languageCode = array( + protected static $languageCode = [ 'aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av', 'ay', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv', @@ -51,13 +51,13 @@ class Miscellaneous extends Base 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug', 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi', 'yo', 'za', 'zh', 'zu', - ); + ]; /** - * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + * @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 * On date of 2014-10-19 */ - protected static $countryCode = array( + protected static $countryCode = [ 'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', @@ -83,13 +83,13 @@ class Miscellaneous extends Base 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW', - ); + ]; /** - * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 + * @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 * On date of 2014-10-19 */ - protected static $countryISOAlpha3 = array( + protected static $countryISOAlpha3 = [ 'ABW', 'AFG', 'AGO', 'AIA', 'ALA', 'ALB', 'AND', 'ARE', 'ARG', 'ARM', 'ASM', 'ATA', 'ATF', 'ATG', 'AUS', 'AUT', 'AZE', 'BDI', 'BEL', 'BEN', 'BES', 'BFA', 'BGD', 'BGR', 'BHR', 'BHS', 'BIH', 'BLM', 'BLR', 'BLZ', @@ -115,9 +115,9 @@ class Miscellaneous extends Base 'TKL', 'TKM', 'TLS', 'TON', 'TTO', 'TUN', 'TUR', 'TUV', 'TWN', 'TZA', 'UGA', 'UKR', 'UMI', 'URY', 'USA', 'UZB', 'VAT', 'VCT', 'VEN', 'VGB', 'VIR', 'VNM', 'VUT', 'WLF', 'WSM', 'YEM', 'ZAF', 'ZMB', 'ZWE', - ); + ]; - protected static $localeData = array( + protected static $localeData = [ 'aa_DJ', 'aa_ER', 'aa_ET', 'af_NA', 'af_ZA', 'ak_GH', 'am_ET', 'ar_AE', 'ar_BH', 'ar_DZ', @@ -198,34 +198,35 @@ class Miscellaneous extends Base 'wal_ET', 'wo_SN', 'xh_ZA', 'yo_NG', 'zh_CN', 'zh_HK', 'zh_MO', 'zh_SG', 'zh_TW', 'zu_ZA', - ); + ]; /** - * @link https://en.wikipedia.org/wiki/ISO_4217 - * On date of 2019-09-27 + * @see https://en.wikipedia.org/wiki/ISO_4217 + * On date of 2023-01-01 * * With the following exceptions: * SVC has been replaced by the USD in 2001: https://en.wikipedia.org/wiki/Salvadoran_col%C3%B3n * ZWL has been suspended since 2009: https://en.wikipedia.org/wiki/Zimbabwean_dollar + * HRK has been replaced by EUR since 2023: https://en.wikipedia.org/wiki/Croatian_kuna */ - protected static $currencyCode = array( + protected static $currencyCode = [ 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP', - 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', - 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', - 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', - 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', - 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', - 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', - 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', - 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SYP', 'SZL', - 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', - 'UGX', 'USD', 'UYU', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XCD', - 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW', - ); + 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HTG', 'HUF', 'IDR', 'ILS', + 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', + 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', + 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU', + 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', + 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', + 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', + 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SYP', 'SZL', 'THB', + 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', + 'USD', 'UYU', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XOF', + 'XPF', 'YER', 'ZAR', 'ZMW', + ]; /** * Return a boolean, true or false. @@ -238,35 +239,43 @@ class Miscellaneous extends Base */ public static function boolean($chanceOfGettingTrue = 50) { - return mt_rand(1, 100) <= $chanceOfGettingTrue; + return self::numberBetween(1, 100) <= $chanceOfGettingTrue; } /** * @example 'cfcd208495d565ef66e7dff9f98764da' + * + * @return string */ public static function md5() { - return md5(mt_rand()); + return md5(self::numberBetween()); } /** * @example 'b5d86317c2a144cd04d0d7c03b2b02666fafadf2' + * + * @return string */ public static function sha1() { - return sha1(mt_rand()); + return sha1(self::numberBetween()); } /** * @example '85086017559ccc40638fcde2fecaf295e0de7ca51b7517b6aebeaaf75b4d4654' + * + * @return string */ public static function sha256() { - return hash('sha256', mt_rand()); + return hash('sha256', self::numberBetween()); } /** * @example 'fr_FR' + * + * @return string */ public static function locale() { @@ -276,7 +285,9 @@ public static function locale() /** * @example 'FR' * - * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + * @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + * + * @return string */ public static function countryCode() { @@ -286,7 +297,9 @@ public static function countryCode() /** * @example 'FRA' * - * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 + * @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 + * + * @return string */ public static function countryISOAlpha3() { @@ -295,6 +308,8 @@ public static function countryISOAlpha3() /** * @example 'fr' + * + * @return string */ public static function languageCode() { @@ -304,7 +319,9 @@ public static function languageCode() /** * @example 'EUR' * - * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + * @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + * + * @return string */ public static function currencyCode() { @@ -312,12 +329,14 @@ public static function currencyCode() } /** - * Returns an encoded Unicode Character between U+1F600 and U+1F637. + * Returns an Emoji (Unicode character between U+1F600 and U+1F637). + * + * @see https://en.wikipedia.org/wiki/Emoji#Unicode_blocks * - * @link https://en.wikipedia.org/wiki/Emoji#Unicode_blocks + * @return string */ public static function emoji() { - return json_decode('"' . static::randomElement(static::$emoji) . '"'); + return static::randomElement(static::$emoji); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/Payment.php new file mode 100644 index 0000000..707ef05 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/Payment.php @@ -0,0 +1,312 @@ + [ + '4539###########', + '4556###########', + '4916###########', + '4532###########', + '4929###########', + '40240071#######', + '4485###########', + '4716###########', + '4##############', + ], + 'Visa Retired' => [ + '4539########', + '4556########', + '4916########', + '4532########', + '4929########', + '40240071####', + '4485########', + '4716########', + '4###########', + ], + 'MasterCard' => [ + '2221###########', + '23#############', + '24#############', + '25#############', + '26#############', + '2720###########', + '51#############', + '52#############', + '53#############', + '54#############', + '55#############', + ], + 'American Express' => [ + '34############', + '37############', + ], + 'Discover Card' => [ + '6011###########', + ], + 'JCB' => [ + '3528###########', + '3589###########', + ], + ]; + + /** + * @var array list of IBAN formats, source: @see https://www.swift.com/standards/data-standards/iban + */ + protected static $ibanFormats = [ + 'AD' => [['n', 4], ['n', 4], ['c', 12]], + 'AE' => [['n', 3], ['n', 16]], + 'AL' => [['n', 8], ['c', 16]], + 'AT' => [['n', 5], ['n', 11]], + 'AZ' => [['a', 4], ['c', 20]], + 'BA' => [['n', 3], ['n', 3], ['n', 8], ['n', 2]], + 'BE' => [['n', 3], ['n', 7], ['n', 2]], + 'BG' => [['a', 4], ['n', 4], ['n', 2], ['c', 8]], + 'BH' => [['a', 4], ['c', 14]], + 'BR' => [['n', 8], ['n', 5], ['n', 10], ['a', 1], ['c', 1]], + 'CH' => [['n', 5], ['c', 12]], + 'CR' => [['n', 4], ['n', 14]], + 'CY' => [['n', 3], ['n', 5], ['c', 16]], + 'CZ' => [['n', 4], ['n', 6], ['n', 10]], + 'DE' => [['n', 8], ['n', 10]], + 'DK' => [['n', 4], ['n', 9], ['n', 1]], + 'DO' => [['c', 4], ['n', 20]], + 'EE' => [['n', 2], ['n', 2], ['n', 11], ['n', 1]], + 'EG' => [['n', 4], ['n', 4], ['n', 17]], + 'ES' => [['n', 4], ['n', 4], ['n', 1], ['n', 1], ['n', 10]], + 'FI' => [['n', 6], ['n', 7], ['n', 1]], + 'FR' => [['n', 5], ['n', 5], ['c', 11], ['n', 2]], + 'GB' => [['a', 4], ['n', 6], ['n', 8]], + 'GE' => [['a', 2], ['n', 16]], + 'GI' => [['a', 4], ['c', 15]], + 'GR' => [['n', 3], ['n', 4], ['c', 16]], + 'GT' => [['c', 4], ['c', 20]], + 'HR' => [['n', 7], ['n', 10]], + 'HU' => [['n', 3], ['n', 4], ['n', 1], ['n', 15], ['n', 1]], + 'IE' => [['a', 4], ['n', 6], ['n', 8]], + 'IL' => [['n', 3], ['n', 3], ['n', 13]], + 'IS' => [['n', 4], ['n', 2], ['n', 6], ['n', 10]], + 'IT' => [['a', 1], ['n', 5], ['n', 5], ['c', 12]], + 'KW' => [['a', 4], ['n', 22]], + 'KZ' => [['n', 3], ['c', 13]], + 'LB' => [['n', 4], ['c', 20]], + 'LI' => [['n', 5], ['c', 12]], + 'LT' => [['n', 5], ['n', 11]], + 'LU' => [['n', 3], ['c', 13]], + 'LV' => [['a', 4], ['c', 13]], + 'MC' => [['n', 5], ['n', 5], ['c', 11], ['n', 2]], + 'MD' => [['c', 2], ['c', 18]], + 'ME' => [['n', 3], ['n', 13], ['n', 2]], + 'MK' => [['n', 3], ['c', 10], ['n', 2]], + 'MR' => [['n', 5], ['n', 5], ['n', 11], ['n', 2]], + 'MT' => [['a', 4], ['n', 5], ['c', 18]], + 'MU' => [['a', 4], ['n', 2], ['n', 2], ['n', 12], ['n', 3], ['a', 3]], + 'NL' => [['a', 4], ['n', 10]], + 'NO' => [['n', 4], ['n', 6], ['n', 1]], + 'PK' => [['a', 4], ['c', 16]], + 'PL' => [['n', 8], ['n', 16]], + 'PS' => [['a', 4], ['c', 21]], + 'PT' => [['n', 4], ['n', 4], ['n', 11], ['n', 2]], + 'RO' => [['a', 4], ['c', 16]], + 'RS' => [['n', 3], ['n', 13], ['n', 2]], + 'SA' => [['n', 2], ['c', 18]], + 'SE' => [['n', 3], ['n', 16], ['n', 1]], + 'SI' => [['n', 5], ['n', 8], ['n', 2]], + 'SK' => [['n', 4], ['n', 6], ['n', 10]], + 'SM' => [['a', 1], ['n', 5], ['n', 5], ['c', 12]], + 'TN' => [['n', 2], ['n', 3], ['n', 13], ['n', 2]], + 'TR' => [['n', 5], ['n', 1], ['c', 16]], + 'VG' => [['a', 4], ['n', 16]], + ]; + + /** + * @return string Returns a credit card vendor name + * + * @example 'MasterCard' + */ + public static function creditCardType() + { + return static::randomElement(static::$cardVendors); + } + + /** + * Returns the String of a credit card number. + * + * @param string $type Supporting any of 'Visa', 'MasterCard', 'American Express', 'Discover' and 'JCB' + * @param bool $formatted Set to true if the output string should contain one separator every 4 digits + * @param string $separator Separator string for formatting card number. Defaults to dash (-). + * + * @return string + * + * @example '4485480221084675' + */ + public static function creditCardNumber($type = null, $formatted = false, $separator = '-') + { + if (null === $type) { + $type = static::creditCardType(); + } + $mask = static::randomElement(static::$cardParams[$type]); + + $number = static::numerify($mask); + $number .= Luhn::computeCheckDigit($number); + + if ($formatted) { + $p1 = substr($number, 0, 4); + $p2 = substr($number, 4, 4); + $p3 = substr($number, 8, 4); + $p4 = substr($number, 12); + $number = $p1 . $separator . $p2 . $separator . $p3 . $separator . $p4; + } + + return $number; + } + + /** + * @param bool $valid True (by default) to get a valid expiration date, false to get a maybe valid date + * + * @return \DateTime + * + * @example 04/13 + */ + public function creditCardExpirationDate($valid = true) + { + if ($valid) { + return $this->generator->dateTimeBetween('now', '36 months'); + } + + return $this->generator->dateTimeBetween('-36 months', '36 months'); + } + + /** + * @param bool $valid True (by default) to get a valid expiration date, false to get a maybe valid date + * @param string $expirationDateFormat + * + * @return string + * + * @example '04/13' + */ + public function creditCardExpirationDateString($valid = true, $expirationDateFormat = null) + { + return $this->creditCardExpirationDate($valid)->format(null === $expirationDateFormat ? static::$expirationDateFormat : $expirationDateFormat); + } + + /** + * @param bool $valid True (by default) to get a valid expiration date, false to get a maybe valid date + * + * @return array + */ + public function creditCardDetails($valid = true) + { + $type = static::creditCardType(); + + return [ + 'type' => $type, + 'number' => static::creditCardNumber($type), + 'name' => $this->generator->name(), + 'expirationDate' => $this->creditCardExpirationDateString($valid), + ]; + } + + /** + * International Bank Account Number (IBAN) + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param string $prefix for generating bank account number of a specific bank + * @param int $length total length without country code and 2 check digits + * + * @return string + */ + public static function iban($countryCode = null, $prefix = '', $length = null) + { + $countryCode = null === $countryCode ? self::randomKey(self::$ibanFormats) : strtoupper($countryCode); + + $format = !isset(static::$ibanFormats[$countryCode]) ? null : static::$ibanFormats[$countryCode]; + + if ($length === null) { + if ($format === null) { + $length = 24; + } else { + $length = 0; + + foreach ($format as $part) { + [$class, $groupCount] = $part; + $length += $groupCount; + } + } + } + + if ($format === null) { + $format = [['n', $length]]; + } + + $expandedFormat = ''; + + foreach ($format as $item) { + [$class, $length] = $item; + $expandedFormat .= str_repeat($class, $length); + } + + $result = $prefix; + $expandedFormat = substr($expandedFormat, strlen($result)); + + foreach (str_split($expandedFormat) as $class) { + switch ($class) { + default: + case 'c': + $result .= Miscellaneous::boolean() ? static::randomDigit() : strtoupper(static::randomLetter()); + + break; + + case 'a': + $result .= strtoupper(static::randomLetter()); + + break; + + case 'n': + $result .= static::randomDigit(); + + break; + } + } + + $checksum = Iban::checksum($countryCode . '00' . $result); + + return $countryCode . $checksum . $result; + } + + /** + * Return the String of a SWIFT/BIC number + * + * @example 'RZTIAT22263' + * + * @see http://en.wikipedia.org/wiki/ISO_9362 + * + * @return string Swift/Bic number + */ + public static function swiftBicNumber() + { + return self::regexify('^([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?$'); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/Person.php similarity index 70% rename from vendor/fzaninotto/faker/src/Faker/Provider/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/Person.php index 9d875b6..c11a72b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Person.php @@ -4,44 +4,46 @@ class Person extends Base { - const GENDER_MALE = 'male'; - const GENDER_FEMALE = 'female'; + public const GENDER_MALE = 'male'; + public const GENDER_FEMALE = 'female'; - protected static $titleFormat = array( - '{{titleMale}}', - '{{titleFemale}}', - ); + protected static $titleFormat = [ + '{{titleMale}}', + '{{titleFemale}}', + ]; - protected static $firstNameFormat = array( - '{{firstNameMale}}', - '{{firstNameFemale}}', - ); + protected static $firstNameFormat = [ + '{{firstNameMale}}', + '{{firstNameFemale}}', + ]; - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{firstNameMale}} {{lastName}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{firstNameFemale}} {{lastName}}', - ); + ]; - protected static $firstNameMale = array( + protected static $firstNameMale = [ 'John', - ); + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'Jane', - ); + ]; - protected static $lastName = array('Doe'); + protected static $lastName = ['Doe']; - protected static $titleMale = array('Mr.', 'Dr.', 'Prof.'); + protected static $titleMale = ['Mr.', 'Dr.', 'Prof.']; - protected static $titleFemale = array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.'); + protected static $titleFemale = ['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) @@ -59,25 +61,35 @@ public function name($gender = null) /** * @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) { + } + + if ($gender === static::GENDER_FEMALE) { return static::firstNameFemale(); } return $this->generator->parse(static::randomElement(static::$firstNameFormat)); } + /** + * @return string + */ public static function firstNameMale() { return static::randomElement(static::$firstNameMale); } + /** + * @return string + */ public static function firstNameFemale() { return static::randomElement(static::$firstNameFemale); @@ -85,6 +97,7 @@ public static function firstNameFemale() /** * @example 'Doe' + * * @return string */ public function lastName() @@ -94,14 +107,18 @@ public function 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) { + } + + if ($gender === static::GENDER_FEMALE) { return static::titleFemale(); } @@ -110,6 +127,8 @@ public function title($gender = null) /** * @example 'Mr.' + * + * @return string */ public static function titleMale() { @@ -118,6 +137,8 @@ public static function titleMale() /** * @example 'Mrs.' + * + * @return string */ public static function titleFemale() { diff --git a/vendor/fakerphp/faker/src/Faker/Provider/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/PhoneNumber.php new file mode 100644 index 0000000..515ef57 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/PhoneNumber.php @@ -0,0 +1,270 @@ +generator->parse(static::randomElement(static::$formats))); + } + + /** + * @example +11134567890 + * + * @return string + */ + public function e164PhoneNumber() + { + return static::numerify($this->generator->parse(static::randomElement(static::$e164Formats))); + } + + /** + * International Mobile Equipment Identity (IMEI) + * + * @see http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity + * @see http://imei-number.com/imei-validation-check/ + * + * @example '720084494799532' + * + * @return int $imei + */ + public function imei() + { + $imei = (string) static::numerify('##############'); + $imei .= Luhn::computeCheckDigit($imei); + + return $imei; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/Text.php similarity index 57% rename from vendor/fzaninotto/faker/src/Faker/Provider/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/Text.php index 80aa02f..585d5b5 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Text.php @@ -8,7 +8,7 @@ abstract class Text extends Base protected static $separator = ' '; protected static $separatorLen = 1; protected $explodedText; - protected $consecutiveWords = array(); + protected $consecutiveWords = []; protected static $textStartsWithUppercase = true; /** @@ -19,15 +19,44 @@ abstract class Text extends Base * possible following words as the value. * * @example 'Alice, swallowing down her flamingo, and began by taking the little golden key' - * @param integer $maxNbChars Maximum number of characters the text should contain (minimum: 10) - * @param integer $indexSize Determines how many words are considered for the generation of the next word. - * The minimum is 1, and it produces a higher level of randomness, although the - * generated text usually doesn't make sense. Higher index sizes (up to 5) - * produce more correct text, at the price of less randomness. + * + * @param int $maxNbChars Maximum number of characters the text should contain (minimum: 10) + * @param int $indexSize Determines how many words are considered for the generation of the next word. + * The minimum is 1, and it produces a higher level of randomness, although the + * generated text usually doesn't make sense. Higher index sizes (up to 5) + * produce more correct text, at the price of less randomness. + * * @return string */ public function realText($maxNbChars = 200, $indexSize = 2) { + return $this->realTextBetween((int) round($maxNbChars * 0.8), $maxNbChars, $indexSize); + } + + /** + * Generate a text string by the Markov chain algorithm. + * + * Depending on the $maxNbChars, returns a random valid looking text. The algorithm + * generates a weighted table with the specified number of words as the index and the + * possible following words as the value. + * + * @example 'Alice, swallowing down her flamingo, and began by taking the little golden key' + * + * @param int $minNbChars Minimum number of characters the text should contain (maximum: 8) + * @param int $maxNbChars Maximum number of characters the text should contain (minimum: 10) + * @param int $indexSize Determines how many words are considered for the generation of the next word. + * The minimum is 1, and it produces a higher level of randomness, although the + * generated text usually doesn't make sense. Higher index sizes (up to 5) + * produce more correct text, at the price of less randomness. + * + * @return string + */ + public function realTextBetween($minNbChars = 160, $maxNbChars = 200, $indexSize = 2) + { + if ($minNbChars < 1) { + throw new \InvalidArgumentException('minNbChars must be at least 1'); + } + if ($maxNbChars < 10) { throw new \InvalidArgumentException('maxNbChars must be at least 10'); } @@ -40,11 +69,39 @@ public function realText($maxNbChars = 200, $indexSize = 2) throw new \InvalidArgumentException('indexSize must be at most 5'); } + if ($minNbChars >= $maxNbChars) { + throw new \InvalidArgumentException('minNbChars must be smaller than maxNbChars'); + } + $words = $this->getConsecutiveWords($indexSize); - $result = array(); + $iterations = 0; + + do { + ++$iterations; + + if ($iterations >= 100) { + throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a valid real text', $iterations)); + } + + $result = $this->generateText($maxNbChars, $words); + } while (static::strlen($result) <= $minNbChars); + + return $result; + } + + /** + * @param int $maxNbChars + * @param array $words + * + * @return string + */ + protected function generateText($maxNbChars, $words) + { + $result = []; $resultLength = 0; // take a random starting point $next = static::randomKey($words); + while ($resultLength < $maxNbChars && isset($words[$next])) { // fetch a random word to append $word = static::randomElement($words[$next]); @@ -78,16 +135,18 @@ protected function getConsecutiveWords($indexSize) { if (!isset($this->consecutiveWords[$indexSize])) { $parts = $this->getExplodedText(); - $words = array(); - $index = array(); - for ($i = 0; $i < $indexSize; $i++) { + $words = []; + $index = []; + + for ($i = 0; $i < $indexSize; ++$i) { $index[] = array_shift($parts); } - for ($i = 0, $count = count($parts); $i < $count; $i++) { + for ($i = 0, $count = count($parts); $i < $count; ++$i) { $stringIndex = static::implode($index); + if (!isset($words[$stringIndex])) { - $words[$stringIndex] = array(); + $words[$stringIndex] = []; } $word = $parts[$i]; $words[$stringIndex][] = $word; @@ -128,14 +187,16 @@ protected static function strlen($text) protected static function validStart($word) { $isValid = true; + if (static::$textStartsWithUppercase) { $isValid = preg_match('/^\p{Lu}/u', $word); } + return $isValid; } protected static function appendEnd($text) { - return preg_replace("/([ ,-:;\x{2013}\x{2014}]+$)/us", '', $text).'.'; + return preg_replace("/([ ,-:;\x{2013}\x{2014}]+$)/us", '', $text) . '.'; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/UserAgent.php b/vendor/fakerphp/faker/src/Faker/Provider/UserAgent.php new file mode 100644 index 0000000..752df4d --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/UserAgent.php @@ -0,0 +1,219 @@ + '02', + 'الإسماعيلية' => '19', + 'أسوان' => '28', + 'أسيوط' => '25', + 'الأقصر' => '29', + 'البحر الأحمر' => '31', + 'البحيرة' => '18', + 'بني سويف' => '22', + 'بورسعيد' => '03', + 'جنوب سيناء' => '35', + 'القاهرة' => '01', + 'الدقهلية' => '12', + 'دمياط' => '11', + 'سوهاج' => '26', + 'السويس' => '04', + 'الشرقية' => '13', + 'شمال سيناء' => '34', + 'الغربية' => '16', + 'الفيوم' => '23', + 'القليوبية' => '14', + 'قنا' => '27', + 'كفر الشيخ' => '15', + 'مطروح' => '33', + 'المنوفية' => '17', + 'المنيا' => '24', + 'الوادي الجديد' => '32', + ]; + + protected static $buildingNumber = ['%####', '%###', '%#']; + + protected static $postcode = ['#####', '#####-####']; + + /** + * @see http://www.nationsonline.org/oneworld/countrynames_arabic.htm + */ + protected static $country = [ + 'الكاريبي', 'أمريكا الوسطى', 'أنتيجوا وبربودا', 'أنجولا', 'أنجويلا', 'أندورا', 'اندونيسيا', 'أورجواي', 'أوروبا', 'أوزبكستان', 'أوغندا', 'أوقيانوسيا', 'أوقيانوسيا النائية', 'أوكرانيا', 'ايران', 'أيرلندا', 'أيسلندا', 'ايطاليا', + 'بابوا غينيا الجديدة', 'باراجواي', 'باكستان', 'بالاو', 'بتسوانا', 'بتكايرن', 'بربادوس', 'برمودا', 'بروناي', 'بلجيكا', 'بلغاريا', 'بليز', 'بنجلاديش', 'بنما', 'بنين', 'بوتان', 'بورتوريكو', 'بوركينا فاسو', 'بوروندي', 'بولندا', 'بوليفيا', 'بولينيزيا', 'بولينيزيا الفرنسية', 'بيرو', + 'تانزانيا', 'تايلند', 'تايوان', 'تركمانستان', 'تركيا', 'ترينيداد وتوباغو', 'تشاد', 'توجو', 'توفالو', 'توكيلو', 'تونجا', 'تونس', 'تيمور الشرقية', + 'جامايكا', 'جبل طارق', 'جرينادا', 'جرينلاند', 'جزر الأنتيل الهولندية', 'جزر الترك وجايكوس', 'جزر القمر', 'جزر الكايمن', 'جزر المارشال', 'جزر الملديف', 'جزر الولايات المتحدة البعيدة الصغيرة', 'جزر أولان', 'جزر سليمان', 'جزر فارو', 'جزر فرجين الأمريكية', 'جزر فرجين البريطانية', 'جزر فوكلاند', 'جزر كوك', 'جزر كوكوس', 'جزر ماريانا الشمالية', 'جزر والس وفوتونا', 'جزيرة الكريسماس', 'جزيرة بوفيه', 'جزيرة مان', 'جزيرة نورفوك', 'جزيرة هيرد وماكدونالد', 'جمهورية افريقيا الوسطى', 'جمهورية التشيك', 'جمهورية الدومينيك', 'جمهورية الكونغو الديمقراطية', 'جمهورية جنوب افريقيا', 'جنوب آسيا', 'جنوب أوروبا', 'جنوب شرق آسيا', 'جنوب وسط آسيا', 'جواتيمالا', 'جوادلوب', 'جوام', 'جورجيا', 'جورجيا الجنوبية وجزر ساندويتش الجنوبية', 'جيبوتي', 'جيرسي', + 'دومينيكا', + 'رواندا', 'روسيا', 'روسيا البيضاء', 'رومانيا', 'روينيون', + 'زامبيا', 'زيمبابوي', + 'ساحل العاج', 'ساموا', 'ساموا الأمريكية', 'سانت بيير وميكولون', 'سانت فنسنت وغرنادين', 'سانت كيتس ونيفيس', 'سانت لوسيا', 'سانت مارتين', 'سانت هيلنا', 'سان مارينو', 'ساو تومي وبرينسيبي', 'سريلانكا', 'سفالبارد وجان مايان', 'سلوفاكيا', 'سلوفينيا', 'سنغافورة', 'سوازيلاند', 'سوريا', 'سورينام', 'سويسرا', 'سيراليون', 'سيشل', + 'شرق آسيا', 'شرق افريقيا', 'شرق أوروبا', 'شمال افريقيا', 'شمال أمريكا', 'شمال أوروبا', 'شيلي', + 'صربيا', 'صربيا والجبل الأسود', + 'طاجكستان', + 'عمان', + 'غامبيا', 'غانا', 'غرب آسيا', 'غرب افريقيا', 'غرب أوروبا', 'غويانا', 'غيانا', 'غينيا', 'غينيا الاستوائية', 'غينيا بيساو', + 'فانواتو', 'فرنسا', 'فلسطين', 'فنزويلا', 'فنلندا', 'فيتنام', 'فيجي', + 'قبرص', 'قرغيزستان', 'قطر', + 'كازاخستان', 'كاليدونيا الجديدة', 'كرواتيا', 'كمبوديا', 'كندا', 'كوبا', 'كوريا الجنوبية', 'كوريا الشمالية', 'كوستاريكا', 'كولومبيا', 'كومنولث الدول المستقلة', 'كيريباتي', 'كينيا', + 'لاتفيا', 'لاوس', 'لبنان', 'لوكسمبورج', 'ليبيا', 'ليبيريا', 'ليتوانيا', 'ليختنشتاين', 'ليسوتو', + 'مارتينيك', 'ماكاو الصينية', 'مالطا', 'مالي', 'ماليزيا', 'مايوت', 'مدغشقر', 'مصر', 'مقدونيا', 'ملاوي', 'منغوليا', 'موريتانيا', 'موريشيوس', 'موزمبيق', 'مولدافيا', 'موناكو', 'مونتسرات', 'ميانمار', 'ميكرونيزيا', 'ميلانيزيا', + 'ناميبيا', 'نورو', 'نيبال', 'نيجيريا', 'نيكاراجوا', 'نيوزيلاندا', 'نيوي', + 'هايتي', 'هندوراس', 'هولندا', 'هونج كونج الصينية', + 'وسط آسيا', 'وسط افريقيا', + ]; + + protected static $cityFormats = [ + '{{cityName}}', + ]; + + protected static $streetNameFormats = [ + '{{streetPrefix}} {{firstName}} {{lastName}}', + ]; + + protected static $streetAddressFormats = [ + '{{buildingNumber}} {{streetName}}', + '{{buildingNumber}} {{streetName}} {{secondaryAddress}}', + ]; + + protected static $addressFormats = [ + "{{streetAddress}}\n{{city}}", + ]; + + protected static $secondaryAddressFormats = ['شقة رقم. ##', 'عمارة رقم ##']; + + /** + * @example 'شرق' + */ + public static function cityPrefix() + { + return static::randomElement(static::$cityPrefix); + } + + /** + * @example 'المعادي' + */ + public static function cityName() + { + return static::randomElement(static::$cityName); + } + + /** + * @example 'شارع' + */ + public static function streetPrefix() + { + return static::randomElement(static::$streetPrefix); + } + + /** + * @example 'شقة رقم. 350' + */ + public static function secondaryAddress() + { + return static::numerify(static::randomElement(static::$secondaryAddressFormats)); + } + + /** + * @example 'الإسكندرية' + */ + public static function governorate() + { + return static::randomKey(static::$governorates); + } + + /** + * @example '01' + * + * @return string + */ + public static function governorateId() + { + return static::randomElement(static::$governorates); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Color.php new file mode 100644 index 0000000..c25426a --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Color.php @@ -0,0 +1,65 @@ +generator->parse($format)); + } + + /** + * @example 'wewebit.jo' + */ + public function domainName() + { + return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Payment.php new file mode 100644 index 0000000..1e2eaaf --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Payment.php @@ -0,0 +1,16 @@ += 2000 ? 3 : 2; + $fullBirthDate = date('ymd', $randomBirthDateTimestamp); + $governorateId = Address::governorateId(); + $birthRegistrationSequence = mt_rand(1, 500); + + if ($gender === static::GENDER_MALE) { + $birthRegistrationSequence = $birthRegistrationSequence | 1; // Convert to the nearest odd number + } elseif ($gender === static::GENDER_FEMALE) { + $birthRegistrationSequence = $birthRegistrationSequence & ~1; // Convert to the nearest even number + } + + $birthRegistrationSequence = str_pad((string) $birthRegistrationSequence, 4, '0', STR_PAD_LEFT); + $randomCheckDigit = mt_rand(1, 9); + + return $centuryId . $fullBirthDate . $governorateId . $birthRegistrationSequence . $randomCheckDigit; + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Text.php new file mode 100644 index 0000000..099c408 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Text.php @@ -0,0 +1,31 @@ + $p) { + + foreach ([8, 7, 6, 5, 4, 3, 2] as $i => $p) { $prod += $p * $split[$i]; } $mod = $prod % 11; + if ($mod === 0 || $mod === 10) { return "{$ico}1"; - } elseif ($mod === 1) { + } + + if ($mod === 1) { return "{$ico}0"; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/DateTime.php similarity index 73% rename from vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php rename to vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/DateTime.php index 4bd1508..e136e65 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/DateTime.php @@ -7,20 +7,20 @@ */ class DateTime extends \Faker\Provider\DateTime { - protected static $days = array( - 'neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota' - ); - protected static $months = array( + protected static $days = [ + 'neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota', + ]; + protected static $months = [ 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', - 'srpen', 'září', 'říjen', 'listopad', 'prosinec' - ); - protected static $monthsGenitive = array( + 'srpen', 'září', 'říjen', 'listopad', 'prosinec', + ]; + protected static $monthsGenitive = [ 'ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', - 'srpna', 'září', 'října', 'listopadu', 'prosince' - ); - protected static $formattedDateFormat = array( + 'srpna', 'září', 'října', 'listopadu', 'prosince', + ]; + protected static $formattedDateFormat = [ '{{dayOfMonth}}. {{monthNameGenitive}} {{year}}', - ); + ]; public static function monthName($max = 'now') { @@ -38,8 +38,10 @@ public static function dayOfWeek($max = 'now') } /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" + * * @return string + * * @example '2' */ public static function dayOfMonth($max = 'now') @@ -49,7 +51,9 @@ public static function dayOfMonth($max = 'now') /** * Full date with inflected month + * * @return string + * * @example '16. listopadu 2003' */ public function formattedDate() diff --git a/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Internet.php new file mode 100644 index 0000000..ce5b266 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Internet.php @@ -0,0 +1,9 @@ +generator->boolean() ? static::GENDER_MALE : static::GENDER_FEMALE; + } + + $startTimestamp = strtotime(sprintf('-%d year', $maxAge)); + $endTimestamp = strtotime(sprintf('-%d year', $minAge)); + $randTimestamp = self::numberBetween($startTimestamp, $endTimestamp); + + $year = (int) (date('Y', $randTimestamp)); + $month = (int) (date('n', $randTimestamp)); + $day = (int) (date('j', $randTimestamp)); + $suffix = self::numberBetween(0, 999); + + // women has +50 to month + if ($gender == static::GENDER_FEMALE) { + $month += 50; + } + + // from year 2004 everyone has +20 to month when birth numbers in one day are exhausted + if ($year >= 2004 && $this->generator->boolean(10)) { + $month += 20; + } + + $birthNumber = sprintf('%02d%02d%02d%03d', $year % 100, $month, $day, $suffix); + + // from year 1954 birth number includes CRC + if ($year >= 1954) { + $crc = intval($birthNumber, 10) % 11; + + if ($crc == 10) { + $crc = 0; + } + $birthNumber .= sprintf('%d', $crc); + } + + // add slash + if ($this->generator->boolean($slashProbability)) { + $birthNumber = substr($birthNumber, 0, 6) . '/' . substr($birthNumber, 6); + } + + return $birthNumber; + } + + public static function birthNumberMale() + { + return static::birthNumber(static::GENDER_MALE); + } + + public static function birthNumberFemale() + { + return static::birthNumber(static::GENDER_FEMALE); + } + + public function title($gender = null) + { + return static::titleMale(); + } + + /** + * replaced by specific unisex Czech title + */ + public static function titleMale() + { + return static::randomElement(static::$title); + } + + /** + * replaced by specific unisex Czech title + */ + public static function titleFemale() + { + return static::titleMale(); + } + + /** + * @param string|null $gender 'male', 'female' or null for any + * + * @example 'Albrecht' + */ + public function lastName($gender = null) + { + if ($gender === static::GENDER_MALE) { + return static::lastNameMale(); + } + + if ($gender === static::GENDER_FEMALE) { + return static::lastNameFemale(); + } + + return $this->generator->parse(static::randomElement(static::$lastNameFormat)); + } + + public static function lastNameMale() + { + return static::randomElement(static::$lastNameMale); + } + + public static function lastNameFemale() + { + return static::randomElement(static::$lastNameFemale); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php similarity index 82% rename from vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php index 49ab429..a527a25 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php @@ -4,11 +4,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+420 %## ### ###', '%## ### ###', '00420%########', '+420%########', '%########', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Text.php index 64f4d54..da9455b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Text.php @@ -21,6 +21,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) * Language: Czech * * @see https://cs.wikisource.org/wiki/Krakatit + * * @var string * * Karel Čapek diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Address.php similarity index 93% rename from vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/da_DK/Address.php index 9da303e..13f5e3b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Address.php @@ -2,64 +2,61 @@ namespace Faker\Provider\da_DK; -/** - * @author Antoine Corcy - */ class Address extends \Faker\Provider\Address { /** * @var array Danish city suffixes. */ - protected static $citySuffix = array( + protected static $citySuffix = [ 'sted', 'bjerg', 'borg', 'rød', 'lund', 'by', - ); + ]; /** * @var array Danish street suffixes. */ - protected static $streetSuffix = array( - 'vej', 'gade', 'skov', 'shaven', - ); + protected static $streetSuffix = [ + 'vej', 'gade', 'skov', 'haven', + ]; /** * @var array Danish street word suffixes. */ - protected static $streetSuffixWord = array( + protected static $streetSuffixWord = [ 'Vej', 'Gade', 'Allé', 'Boulevard', 'Plads', 'Have', - ); + ]; /** * @var array Danish building numbers. */ - protected static $buildingNumber = array( + protected static $buildingNumber = [ '%##', '%#', '%#', '%', '%', '%', '%?', '% ?', - ); + ]; /** * @var array Danish building level. */ - protected static $buildingLevel = array( + protected static $buildingLevel = [ 'st.', '%.', '%. sal.', - ); + ]; /** * @var array Danish building sides. */ - protected static $buildingSide = array( - 'tv.', 'th.', - ); + protected static $buildingSide = [ + 'tv.', 'mf.', 'th.', + ]; /** * @var array Danish zip code. */ - protected static $postcode = array( - '%###' - ); + protected static $postcode = [ + '%###', + ]; /** * @var array Danish cities. */ - protected static $cityNames = array( + protected static $cityNames = [ 'Aabenraa', 'Aabybro', 'Aakirkeby', 'Aalborg', 'Aalestrup', 'Aars', 'Aarup', 'Agedrup', 'Agerbæk', 'Agerskov', 'Albertslund', 'Allerød', 'Allinge', 'Allingåbro', 'Almind', 'Anholt', 'Ansager', 'Arden', 'Asaa', 'Askeby', 'Asnæs', 'Asperup', 'Assens', 'Augustenborg', 'Aulum', 'Auning', 'Bagenkop', 'Bagsværd', 'Balle', 'Ballerup', @@ -116,12 +113,12 @@ class Address extends \Faker\Provider\Address 'Vorbasse', 'Vordingborg', 'Væggerløse', 'Værløse', 'Ærøskøbing', 'Ølgod', 'Ølsted', 'Ølstykke', 'Ørbæk', 'Ørnhøj', 'Ørsted', 'Djurs', 'Østbirk', 'Øster', 'Assels', 'Ulslev', 'Østermarie', 'Østervrå', 'Åbyhøj', 'Ålbæk', 'Ålsgårde', 'Århus', 'Årre', 'Årslev', 'Haarby', 'Nivå', 'Rømø', 'Omme', 'Vrå', 'Ørum', - ); + ]; /** * @var array Danish municipalities, called 'kommuner' in danish. */ - protected static $kommuneNames = array( + protected static $kommuneNames = [ 'København', 'Frederiksberg', 'Ballerup', 'Brøndby', 'Dragør', 'Gentofte', 'Gladsaxe', 'Glostrup', 'Herlev', 'Albertslund', 'Hvidovre', 'Høje Taastrup', 'Lyngby-Taarbæk', 'Rødovre', 'Ishøj', 'Tårnby', 'Vallensbæk', 'Allerød', 'Fredensborg', 'Helsingør', 'Hillerød', 'Hørsholm', 'Rudersdal', 'Egedal', 'Frederikssund', 'Greve', @@ -133,21 +130,21 @@ class Address extends \Faker\Provider\Address 'Norddjurs', 'Favrskov', 'Odder', 'Randers', 'Silkeborg', 'Samsø', 'Skanderborg', 'Aarhus', 'Ikast-Brande', 'Ringkøbing-Skjern', 'Hedensted', 'Morsø', 'Skive', 'Thisted', 'Viborg', 'Brønderslev', 'Frederikshavn', 'Vesthimmerlands', 'Læsø', 'Rebild', 'Mariagerfjord', 'Jammerbugt', 'Aalborg', 'Hjørring', 'Køge', - ); + ]; /** * @var array Danish regions. */ - protected static $regionNames = array( + protected static $regionNames = [ 'Region Nordjylland', 'Region Midtjylland', 'Region Syddanmark', 'Region Hovedstaden', 'Region Sjælland', - ); + ]; /** - * @link https://github.com/umpirsky/country-list/blob/master/country/cldr/da_DK/country.php + * @see https://github.com/umpirsky/country-list/blob/master/country/cldr/da_DK/country.php * * @var array Some countries in danish. */ - protected static $country = array( + protected static $country = [ 'Andorra', 'Forenede Arabiske Emirater', 'Afghanistan', 'Antigua og Barbuda', 'Anguilla', 'Albanien', 'Armenien', 'Hollandske Antiller', 'Angola', 'Antarktis', 'Argentina', 'Amerikansk Samoa', 'Østrig', 'Australien', 'Aruba', 'Åland', 'Aserbajdsjan', 'Bosnien-Hercegovina', 'Barbados', 'Bangladesh', 'Belgien', 'Burkina Faso', 'Bulgarien', @@ -180,40 +177,40 @@ class Address extends \Faker\Provider\Address 'USA', 'Uruguay', 'Usbekistan', 'Vatikanstaten', 'St. Vincent og Grenadinerne', 'Venezuela', 'De britiske jomfruøer', 'De amerikanske jomfruøer', 'Vietnam', 'Vanuatu', 'Wallis og Futunaøerne', 'Samoa', 'Yemen', 'Mayotte', 'Sydafrika', 'Zambia', 'Zimbabwe', - ); + ]; /** * @var array Danish city format. */ - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityName}}', - ); + ]; /** * @var array Danish street's name formats. */ - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{lastName}}{{streetSuffix}}', '{{middleName}}{{streetSuffix}}', '{{lastName}} {{streetSuffixWord}}', '{{middleName}} {{streetSuffixWord}}', - ); + ]; /** * @var array Danish street's address formats. */ - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', '{{streetName}} {{buildingNumber}}, {{buildingLevel}}', '{{streetName}} {{buildingNumber}}, {{buildingLevel}} {{buildingSide}}', - ); + ]; /** * @var array Danish address format. */ - protected static $addressFormats = array( + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; /** * Randomly return a real city name. diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Company.php similarity index 84% rename from vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/da_DK/Company.php index b9f289c..8602a4a 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Company.php @@ -2,15 +2,12 @@ namespace Faker\Provider\da_DK; -/** - * @author Antoine Corcy - */ class Company extends \Faker\Provider\Company { /** * @var array Danish company name formats. */ - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} {{companySuffix}}', '{{lastName}} {{companySuffix}}', @@ -27,22 +24,22 @@ class Company extends \Faker\Provider\Company '{{middleName}} og {{middleName}} {{companySuffix}}', '{{middleName}} & {{lastName}}', '{{middleName}} og {{lastName}}', - ); + ]; /** * @var array Company suffixes. */ - protected static $companySuffix = array('ApS', 'A/S', 'I/S', 'K/S'); + protected static $companySuffix = ['ApS', 'A/S', 'I/S', 'K/S']; /** - * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 + * @see http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 * * @var string CVR number format. */ protected static $cvrFormat = '%#######'; /** - * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 + * @see http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 * * @var string P number (production number) format. */ diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Internet.php similarity index 65% rename from vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/da_DK/Internet.php index 1f778de..e3f6e12 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Internet.php @@ -2,29 +2,26 @@ namespace Faker\Provider\da_DK; -/** - * @author Antoine Corcy - */ class Internet extends \Faker\Provider\Internet { /** * @var array Some safe email TLD. */ - protected static $safeEmailTld = array( + protected static $safeEmailTld = [ 'org', 'com', 'net', 'dk', 'dk', 'dk', - ); + ]; /** * @var array Some email domains in Denmark. */ - protected static $freeEmailDomain = array( - 'gmail.com', 'yahoo.com', 'yahoo.dk', 'hotmail.com', 'hotmail.dk', 'mail.dk', 'live.dk' - ); + protected static $freeEmailDomain = [ + 'gmail.com', 'yahoo.com', 'yahoo.dk', 'hotmail.com', 'hotmail.dk', 'mail.dk', 'live.dk', + ]; /** * @var array Some TLD. */ - protected static $tld = array( + protected static $tld = [ 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'dk', 'dk', 'dk', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/da_DK/Payment.php index 6a5b6a8..ff50880 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'DK', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Person.php similarity index 95% rename from vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/da_DK/Person.php index c621206..732afeb 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Person.php @@ -2,17 +2,17 @@ namespace Faker\Provider\da_DK; +use Faker\Provider\DateTime; + /** - * @link http://www.danskernesnavne.navneforskning.ku.dk/Personnavne.asp - * - * @author Antoine Corcy + * @see http://www.danskernesnavne.navneforskning.ku.dk/Personnavne.asp */ class Person extends \Faker\Provider\Person { /** * @var array Danish person name formats. */ - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', @@ -20,9 +20,9 @@ class Person extends \Faker\Provider\Person '{{firstNameMale}} {{middleName}} {{lastName}}', '{{firstNameMale}} {{middleName}}-{{middleName}} {{lastName}}', '{{firstNameMale}} {{middleName}} {{middleName}}-{{lastName}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', @@ -30,13 +30,13 @@ class Person extends \Faker\Provider\Person '{{firstNameFemale}} {{middleName}} {{lastName}}', '{{firstNameFemale}} {{middleName}}-{{middleName}} {{lastName}}', '{{firstNameFemale}} {{middleName}} {{middleName}}-{{lastName}}', - ); + ]; /** * @var array Danish first names. */ - protected static $firstNameMale = array( - 'Aage', 'Adam', 'Adolf', 'Ahmad', 'Ahmed', 'Aksel', 'Albert', 'Alex', 'Alexander', 'Alf', 'Alfred', 'Ali', 'Allan', + protected static $firstNameMale = [ + 'Aage', 'Adam', 'Ahmad', 'Ahmed', 'Aksel', 'Albert', 'Alex', 'Alexander', 'Alf', 'Alfred', 'Ali', 'Allan', 'Anders', 'Andreas', 'Anker', 'Anton', 'Arne', 'Arnold', 'Arthur', 'Asbjørn', 'Asger', 'August', 'Axel', 'Benjamin', 'Benny', 'Bent', 'Bernhard', 'Birger', 'Bjarne', 'Bjørn', 'Bo', 'Brian', 'Bruno', 'Børge', 'Carl', 'Carlo', 'Carsten', 'Casper', 'Charles', 'Chris', 'Christian', 'Christoffer', 'Christopher', 'Claus', 'Dan', 'Daniel', 'David', 'Dennis', @@ -59,9 +59,9 @@ class Person extends \Faker\Provider\Person 'Chr', 'Eigil', 'Ejgil', 'Ejler', 'Ejnar', 'Ejner', 'Evald', 'Folmer', 'Gunner', 'Gurli', 'Hartvig', 'Herluf', 'Hjalmar', 'Ingemann', 'Ingolf', 'Ingvard', 'Keld', 'Kresten', 'Laurids', 'Laurits', 'Lauritz', 'Ludvig', 'Lynge', 'Oluf', 'Osvald', 'Povl', 'Richardt', 'Sigfred', 'Sofus', 'Thorkild', 'Viggo', 'Vilhelm', 'Villiam', - ); + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'Aase', 'Agathe', 'Agnes', 'Alberte', 'Alexandra', 'Alice', 'Alma', 'Amalie', 'Amanda', 'Andrea', 'Ane', 'Anette', 'Anita', 'Anja', 'Ann', 'Anna', 'Annalise', 'Anne', 'Anne-Lise', 'Anne-Marie', 'Anne-Mette', 'Annelise', 'Annette', 'Anni', 'Annie', 'Annika', 'Anny', 'Asta', 'Astrid', 'Augusta', 'Benedikte', 'Bente', 'Berit', 'Bertha', 'Betina', 'Bettina', 'Betty', @@ -90,12 +90,12 @@ class Person extends \Faker\Provider\Person 'Winnie', 'Yrsa', 'Yvonne', 'Agnete', 'Agnethe', 'Alfrida', 'Alvilda', 'Anine', 'Bolette', 'Dorthea', 'Gunhild', 'Hansine', 'Inge-Lise', 'Jensine', 'Juel', 'Jørgine', 'Kamma', 'Kristiane', 'Maj-Britt', 'Margrete', 'Metha', 'Nielsine', 'Oline', 'Petrea', 'Petrine', 'Pouline', 'Ragna', 'Sørine', 'Thora', 'Valborg', 'Vilhelmine', - ); + ]; /** * @var array Danish middle names. */ - protected static $middleName = array( + protected static $middleName = [ 'Møller', 'Lund', 'Holm', 'Jensen', 'Juul', 'Nielsen', 'Kjær', 'Hansen', 'Skov', 'Østergaard', 'Vestergaard', 'Nørgaard', 'Dahl', 'Bach', 'Friis', 'Søndergaard', 'Andersen', 'Bech', 'Pedersen', 'Bruun', 'Nygaard', 'Winther', 'Bang', 'Krogh', 'Schmidt', 'Christensen', 'Hedegaard', 'Toft', 'Damgaard', 'Holst', 'Sørensen', 'Juhl', 'Munk', @@ -120,12 +120,12 @@ class Person extends \Faker\Provider\Person 'Linde', 'Lange', 'Stokholm', 'Bredahl', 'Hein', 'Mose', 'Bækgaard', 'Sandberg', 'Klarskov', 'Kamp', 'Green', 'Iversen', 'Riber', 'Smedegaard', 'Nyholm', 'Vad', 'Balle', 'Kjeldsen', 'Strøm', 'Borch', 'Lerche', 'Grønlund', 'Vestergård', 'Østergård', 'Nyborg', 'Qvist', 'Damkjær', 'Kold', 'Sønderskov', 'Bank', - ); + ]; /** * @var array Danish last names. */ - protected static $lastName = array( + protected static $lastName = [ 'Jensen', 'Nielsen', 'Hansen', 'Pedersen', 'Andersen', 'Christensen', 'Larsen', 'Sørensen', 'Rasmussen', 'Petersen', 'Jørgensen', 'Madsen', 'Kristensen', 'Olsen', 'Christiansen', 'Thomsen', 'Poulsen', 'Johansen', 'Knudsen', 'Mortensen', 'Møller', 'Jacobsen', 'Jakobsen', 'Olesen', 'Frederiksen', 'Mikkelsen', 'Henriksen', 'Laursen', 'Lund', 'Schmidt', @@ -166,7 +166,7 @@ class Person extends \Faker\Provider\Person 'Bergmann', 'Bjerrum', 'Petersson', 'Smed', 'Jeremiassen', 'Nyborg', 'Borch', 'Foged', 'Terp', 'Mark', 'Busch', 'Lundgaard', 'Boye', 'Yde', 'Hinrichsen', 'Matzen', 'Esbensen', 'Hertz', 'Westh', 'Holmberg', 'Geertsen', 'Raun', 'Aagaard', 'Kock', 'Falk', 'Munk', - ); + ]; /** * Randomly return a danish name. @@ -181,14 +181,14 @@ public static function middleName() /** * Randomly return a danish CPR number (Personnal identification number) format. * - * @link http://cpr.dk/cpr/site.aspx?p=16 - * @link http://en.wikipedia.org/wiki/Personal_identification_number_%28Denmark%29 + * @see http://cpr.dk/cpr/site.aspx?p=16 + * @see http://en.wikipedia.org/wiki/Personal_identification_number_%28Denmark%29 * * @return string */ public static function cpr() { - $birthdate = new \DateTime('@' . mt_rand(0, time())); + $birthdate = DateTime::dateTimeThisCentury(); return sprintf('%s-%s', $birthdate->format('dmy'), static::numerify('%###')); } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/PhoneNumber.php similarity index 75% rename from vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/da_DK/PhoneNumber.php index af96d3f..6e8c28d 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/da_DK/PhoneNumber.php @@ -2,20 +2,17 @@ namespace Faker\Provider\da_DK; -/** - * @author Antoine Corcy - */ class PhoneNumber extends \Faker\Provider\PhoneNumber { /** * @var array Danish phonenumber formats. */ - protected static $formats = array( + protected static $formats = [ '+45 ## ## ## ##', '+45 #### ####', '+45########', '## ## ## ##', '#### ####', '########', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Address.php similarity index 62% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_AT/Address.php index 4a2272c..d0031d6 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Address.php @@ -4,58 +4,74 @@ class Address extends \Faker\Provider\Address { - protected static $buildingNumber = array('###', '##', '#', '##[abc]', '#[abc]'); + protected static $buildingNumber = ['%##', '%#', '%', '##[abc]', '#[abc]']; - protected static $streetSuffixLong = array( + protected static $streetSuffixLong = [ 'Gasse', 'Platz', 'Ring', 'Straße', 'Weg', - ); - protected static $streetSuffixShort = array( + ]; + protected static $streetSuffixShort = [ 'gasse', 'platz', 'ring', 'straße', 'weg', - ); + ]; - // As per https://en.wikipedia.org/wiki/List_of_postal_codes_in_Austria (@todo implement more strict postal code values according to wikipedia) - protected static $postcode = array( - '1###', - '2###', - '3###', - '4###', - '5###', - '6###', - '7###', - '8###', - '9###', - ); + /** + * @var string[] + * + * @see http://www.statistik.at/verzeichnis/reglisten/gemliste_knz.xls - postal codes of all Austrian cities with the status 'Statutarstadt (SR)' or 'Stadtgemeinde (ST)' + */ + protected static $postcode = [ + '1010', '1020', '1030', '1040', '1050', '1060', '1070', '1080', '1090', '1100', '1110', '1120', '1130', '1140', + '1150', '1160', '1170', '1180', '1190', '1200', '1210', '1220', '1230', '2000', '2020', '2070', '2073', '2083', + '2093', '2095', '2100', '2120', '2130', '2136', '2170', '2201', '2225', '2230', '2232', '2293', '2301', '2320', + '2340', '2401', '2410', '2452', '2460', '2483', '2490', '2491', '2500', '2514', '2540', '2560', '2620', '2630', + '2640', '2700', '2860', '3002', '3021', '3040', '3100', '3130', '3133', '3150', '3170', '3180', '3240', '3250', + '3270', '3300', '3340', '3350', '3370', '3380', '3390', '3400', '3430', '3500', '3512', '3542', '3550', '3580', + '3601', '3712', '3730', '3741', '3804', '3812', '3820', '3830', '3860', '3874', '3910', '3920', '3943', '3950', + '3970', '4020', '4050', '4053', '4060', '4070', '4150', '4190', '4210', '4221', '4230', '4240', '4300', '4320', + '4360', '4400', '4470', '4540', '4560', '4600', '4614', '4663', '4690', '4710', '4722', '4780', '4800', '4810', + '4820', '4840', '4910', '4950', '5020', '5110', '5201', '5202', '5230', '5280', '5400', '5500', '5550', '5600', + '5700', '5730', '5760', '6020', '6060', '6130', '6240', '6300', '6330', '6370', '6460', '6500', '6682', '6700', + '6800', '6845', '6850', '6900', '7000', '7071', '7083', '7100', '7132', '7210', '7350', '7400', '7423', '7461', + '7540', '8010', '8130', '8160', '8200', '8230', '8240', '8280', '8330', '8350', '8380', '8430', '8480', '8490', + '8530', '8570', '8572', '8580', '8600', '8605', '8630', '8650', '8680', '8700', '8720', '8724', '8740', '8750', + '8784', '8786', '8790', '8793', '8832', '8850', '8940', '8970', '8990', '9020', '9100', '9150', '9170', '9300', + '9330', '9341', '9360', '9400', '9433', '9462', '9500', '9545', '9560', '9620', '9800', '9853', '9900', + ]; - protected static $cityNames = array( + /** + * @var array + * + * @see https://de.wikipedia.org/wiki/Liste_der_St%C3%A4dte_in_%C3%96sterreich + */ + protected static $cityNames = [ 'Allentsteig', 'Altheim', 'Althofen', 'Amstetten', 'Ansfelden', 'Attnang-Puchheim', - 'Bad Aussee', 'Bad Hall', 'Bad Ischl', 'Bad Leonfelden', 'Bad Radkersburg', 'Bad Sankt Leonhard im Lavanttal', 'Bad Vöslau', 'Baden', 'Bärnbach', 'Berndorf', 'Bischofshofen', 'Bleiburg', 'Bludenz', 'Braunau am Inn', 'Bregenz', 'Bruck an der Leitha', 'Bruck an der Mur', - 'Deutsch-Wagram', 'Deutschlandsberg', 'Dornbirn', 'Drosendorf-Zissersdorf 1', 'Dürnstein', + 'Bad Aussee', 'Bad Hall', 'Bad Ischl', 'Bad Leonfelden', 'Bad Radkersburg', 'Bad St. Leonhard im Lavanttal', 'Bad Vöslau', 'Baden', 'Bärnbach', 'Berndorf', 'Bischofshofen', 'Bleiburg', 'Bludenz', 'Braunau am Inn', 'Bregenz', 'Bruck an der Leitha', 'Bruck an der Mur', + 'Deutsch-Wagram', 'Deutschlandsberg', 'Dornbirn', 'Drosendorf-Zissersdorf', 'Dürnstein', 'Ebenfurth', 'Ebreichsdorf', 'Eferding', 'Eggenburg', 'Eisenerz', 'Eisenstadt', 'Enns', - 'Fehring', 'Feldbach', 'Feldkirch', 'Feldkirchen', 'Ferlach', 'Fischamend', 'Frauenkirchen', 'Freistadt', 'Friedberg', 'Friesach', 'Frohnleiten', 'Fürstenfeld', - 'Gallneukirchen', 'Gänserndorf', 'Geras', 'Gerasdorf bei Wien', 'Gföhl', 'Gleisdorf', 'Gloggnitz', 'Gmünd', 'Gmünd in Kärnten', 'Gmunden', 'Graz', 'Grein', 'Grieskirchen', 'Groß-Enzersdorf', 'Groß-Gerungs', 'Groß-Siegharts', 'Güssing', + 'Fehring', 'Feldbach', 'Feldkirch', 'Feldkirchen in Kärnten', 'Ferlach', 'Fischamend', 'Frauenkirchen', 'Freistadt', 'Friedberg', 'Friesach', 'Frohnleiten', 'Fürstenfeld', + 'Gallneukirchen', 'Gänserndorf', 'Geras', 'Gerasdorf bei Wien', 'Gföhl', 'Gleisdorf', 'Gloggnitz', 'Gmünd', 'Gmünd in Kärnten', 'Gmunden', 'Graz', 'Grein', 'Grieskirchen', 'Groß-Enzersdorf', 'Groß Gerungs', 'Groß-Siegharts', 'Güssing', 'Haag', 'Hainburg an der Donau', 'Hainfeld', 'Hall in Tirol', 'Hallein', 'Hardegg', 'Hartberg', 'Heidenreichstein', 'Hermagor-Pressegger See', 'Herzogenburg', 'Hohenems', 'Hollabrunn', 'Horn', 'Imst', 'Innsbruck', 'Jennersdorf', 'Judenburg', - 'Kapfenberg', 'Kindberg', 'Kirchdorf an der Krems', 'Kirchschlag in der Buckligen Welt', 'Kitzbühel', 'Klagenfurt', 'Klosterneuburg', 'Knittelfeld', 'Köflach', 'Korneuburg', 'Krems an der Donau', 'Kufstein', + 'Kapfenberg', 'Kindberg', 'Kirchdorf an der Krems', 'Kirchschlag in der Buckligen Welt', 'Kitzbühel', 'Klagenfurt am Wörthersee', 'Klosterneuburg', 'Knittelfeld', 'Köflach', 'Korneuburg', 'Krems an der Donau', 'Kufstein', 'Laa an der Thaya', 'Laakirchen', 'Landeck', 'Langenlois', 'Leibnitz', 'Leoben', 'Leonding', 'Lienz', 'Liezen', 'Lilienfeld', 'Linz', 'Litschau', - 'Maissau', 'Mank', 'Mannersdorf am Leithagebirge', 'Marchegg', 'Marchtrenk', 'Mariazell', 'Mattersburg', 'Mattighofen', 'Mautern an der Donau', 'Melk', 'Mistelbach an der Zaya', 'Mödling', 'Murau', 'Mureck', 'Mürzzuschlag', + 'Maissau', 'Mank', 'Mannersdorf am Leithagebirge', 'Marchegg', 'Marchtrenk', 'Mariazell', 'Mattersburg', 'Mattighofen', 'Mautern an der Donau', 'Melk', 'Mittersill', 'Mistelbach', 'Mödling', 'Murau', 'Mureck', 'Mürzzuschlag', 'Neufeld an der Leitha', 'Neulengbach', 'Neumarkt am Wallersee', 'Neunkirchen', 'Neusiedl am See', - 'Oberndorf bei Salzburg', 'Oberpullendorf', 'Oberwart', 'Oberwälz', - 'Perg', 'Peuerbach', 'Pinkafeld', 'Pöchlarn', 'Poysdorf', 'Pregarten', 'Pulkau', 'Purbach am Neusiedler See', 'Purkersdorf', - 'Raabs an der Thaya', 'Radenthein', 'Radstadt', 'Rattenberg', 'Retz', 'Ried im Innkreis', 'Rohrbach in Oberösterreich', 'Rottenmann', 'Rust', - 'Saalfelden am Steinernen Meer', 'Salzburg', 'Sankt Andrä im Lavanttal', 'Sankt Johann im Pongau', 'Sankt Pölten', 'Sankt Valentin', 'Sankt Veit an der Glan', 'Schärding', 'Scheibbs', 'Schladming', 'Schrattenthal', 'Schrems', 'Schwanenstadt', 'Schwaz', 'Schwechat', 'Seekirchen am Wallersee', 'Spittal an der Drau', 'Stadtschlaining', 'Steyr', 'Steyregg', 'Stockerau', 'Straßburg', + 'Oberndorf bei Salzburg', 'Oberpullendorf', 'Oberwart', 'Oberwölz', + 'Perg', 'Peuerbach', 'Pinkafeld', 'Pöchlarn', 'Poysdorf', 'Pregarten', 'Pressbaum', 'Pulkau', 'Purbach am Neusiedler See', 'Purkersdorf', + 'Raabs an der Thaya', 'Radenthein', 'Radstadt', 'Rattenberg', 'Retz', 'Ried im Innkreis', 'Rohrbach-Berg', 'Rottenmann', 'Rust', + 'Saalfelden am Steinernen Meer', 'Salzburg', 'Sankt Andrä', 'St. Johann im Pongau', 'St. Pölten', 'St. Valentin', 'Sankt Veit an der Glan', 'Schärding', 'Scheibbs', 'Schladming', 'Schrattenthal', 'Schrems', 'Schwanenstadt', 'Schwaz', 'Schwechat', 'Seekirchen am Wallersee', 'Spielberg', 'Spittal an der Drau', 'Stadtschlaining', 'Steyr', 'Steyregg', 'Stockerau', 'Straßburg', 'Ternitz', 'Traiskirchen', 'Traismauer', 'Traun', 'Trieben', 'Trofaiach', 'Tulln an der Donau', 'Villach', 'Vils', 'Vöcklabruck', 'Voitsberg', 'Völkermarkt', - 'Waidhofen an der Thaya', 'Waidhofen an der Ybbs', 'Weitra', 'Weiz', 'Wels', 'Wien', 'Wiener Neustadt', 'Wieselburg', 'Wilhelmsburg', 'Wolfsberg', 'Wolkersdorf', 'Wörgl', + 'Waidhofen an der Thaya', 'Waidhofen an der Ybbs', 'Weitra', 'Weiz', 'Wels', 'Wien', 'Wiener Neustadt', 'Wieselburg', 'Wilhelmsburg', 'Wolfsberg', 'Wolkersdorf im Weinviertel', 'Wörgl', 'Ybbs an der Donau', 'Zell am See', 'Zeltweg', 'Zistersdorf', 'Zwettl', - ); + ]; - protected static $state = array( - 'Burgenland', 'Kärnten', 'Niederösterreich', 'Oberösterreich', 'Salzburg', 'Steiermark', 'Tirol', 'Vorarlberg', 'Wien' - ); + protected static $state = [ + 'Burgenland', 'Kärnten', 'Niederösterreich', 'Oberösterreich', 'Salzburg', 'Steiermark', 'Tirol', 'Vorarlberg', 'Wien', + ]; - protected static $country = array( + protected static $country = [ 'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äußeres Ozeanien', 'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi', 'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte d’Ivoire', @@ -79,23 +95,23 @@ class Address extends \Faker\Provider\Address 'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam', 'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara', 'Zentralafrikanische Republik', 'Zypern', - ); + ]; - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityName}}', - ); + ]; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{lastName}}{{streetSuffixShort}}', - '{{firstName}}-{{lastName}}-{{streetSuffixLong}}' - ); + '{{firstName}}-{{lastName}}-{{streetSuffixLong}}', + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; public function cityName() { diff --git a/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Company.php new file mode 100644 index 0000000..6532c32 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Company.php @@ -0,0 +1,13 @@ +format('dmy'); + + do { + $consecutiveNumber = (string) self::numberBetween(100, 999); + + $verificationNumber = ( + (int) $consecutiveNumber[0] * 3 + + (int) $consecutiveNumber[1] * 7 + + (int) $consecutiveNumber[2] * 9 + + (int) $birthDateString[0] * 5 + + (int) $birthDateString[1] * 8 + + (int) $birthDateString[2] * 4 + + (int) $birthDateString[3] * 2 + + (int) $birthDateString[4] * 1 + + (int) $birthDateString[5] * 6 + ) % 11; + } while ($verificationNumber == 10); + + return sprintf('%s%s%s', $consecutiveNumber, $verificationNumber, $birthDateString); + } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/de_AT/PhoneNumber.php similarity index 75% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_AT/PhoneNumber.php index 9e0cfdf..00fbe67 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_AT/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '0650 #######', '0660 #######', '0664 #######', @@ -15,5 +15,9 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '0680 #######', '+43 #### ####', '+43 #### ####-##', - ); + ]; + + protected static $e164Formats = [ + '+43##########', + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Text.php similarity index 100% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_AT/Text.php diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Address.php similarity index 82% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_CH/Address.php index 8d9a258..bf5497c 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Address.php @@ -4,21 +4,21 @@ class Address extends \Faker\Provider\Address { - protected static $buildingNumber = array('###', '##', '#', '##[abc]', '#[abc]'); + protected static $buildingNumber = ['%##', '%#', '%', '##[abc]', '#[abc]']; - protected static $streetSuffixLong = array( - 'Gasse', 'Platz', 'Ring', 'Strasse', 'Weg', 'Allee' - ); - protected static $streetSuffixShort = array( - 'gasse', 'platz', 'ring', 'strasse', 'str.', 'weg', 'allee' - ); + protected static $streetSuffixLong = [ + 'Gasse', 'Platz', 'Ring', 'Strasse', 'Weg', 'Allee', + ]; + protected static $streetSuffixShort = [ + 'gasse', 'platz', 'ring', 'strasse', 'str.', 'weg', 'allee', + ]; - protected static $postcode = array('####'); + protected static $postcode = ['####']; /** - * @link https://de.wikipedia.org/wiki/Liste_der_St%C3%A4dte_in_der_Schweiz + * @see https://de.wikipedia.org/wiki/Liste_der_St%C3%A4dte_in_der_Schweiz */ - protected static $cityNames = array( + protected static $cityNames = [ 'Aarau', 'Aarberg', 'Aarburg', 'Adliswil', 'Aesch', 'Affoltern am Albis', 'Agno', 'Aigle', 'Allschwil', 'Altdorf', 'Altstätten', 'Amriswil', 'Appenzell', 'Arbon', 'Arth', 'Ascona', 'Aubonne', 'Avenches', 'Baar', 'Bad Zurzach', 'Baden', 'Basel', 'Bassersdorf', 'Bellinzona', 'Belp', 'Bern', 'Beromünster', 'Biasca', 'Biel/Bienne', 'Binningen', 'Birsfelden', 'Bischofszell', 'Boudry', 'Bourg-Saint-Pierre', 'Bremgarten', 'Brig-Glis', 'Brig', 'Brugg', 'Buchs', 'Bulle', 'Burgdorf', 'Bülach', 'Carouge', 'Cham', 'Chur', 'Châtel-Saint-Denis', 'Chêne-Bougeries', 'Conthey', 'Coppet', 'Cossonay', 'Croglio', 'Cudrefin', 'Cully', @@ -40,42 +40,42 @@ class Address extends \Faker\Provider\Address 'Val-de-Travers NE', 'Valangin', 'Vernier', 'Versoix', 'Vevey', 'Veyrier GE', 'Villars-sur-Glâne', 'Villeneuve', 'Visp', 'Volketswil', 'Waldenburg', 'Walenstadt', 'Wallisellen', 'Wangen an der Aare', 'Weinfelden', 'Werdenberg', 'Wettingen', 'Wetzikon', 'Wiedlisbach', 'Willisau', 'Wil', 'Winterthur', 'Wohlen', 'Worb', 'Wädenswil', 'Yverdon-les-Bains', - 'Zofingen', 'Zollikon', 'Zug', 'Zürich' - ); + 'Zofingen', 'Zollikon', 'Zug', 'Zürich', + ]; /** - * @link https://de.wikipedia.org/wiki/Kanton_(Schweiz) + * @see https://de.wikipedia.org/wiki/Kanton_(Schweiz) */ - protected static $canton = array( - array('AG' => 'Aargau'), - array('AI' => 'Appenzell Innerrhoden'), - array('AR' => 'Appenzell Ausserrhoden'), - array('BE' => 'Bern'), - array('BL' => 'Basel-Landschaft'), - array('BS' => 'Basel-Stadt'), - array('FR' => 'Freiburg'), - array('GE' => 'Genf'), - array('GL' => 'Glarus'), - array('GR' => 'Graubünden'), - array('JU' => 'Jura',), - array('LU' => 'Luzern'), - array('NE' => 'Neuenburg'), - array('NW' => 'Nidwalden'), - array('OW' => 'Obwalden'), - array('SG' => 'St. Gallen'), - array('SH' => 'Schaffhausen'), - array('SO' => 'Solothurn'), - array('SZ' => 'Schwyz'), - array('TG' => 'Thurgau'), - array('TI' => 'Tessin'), - array('UR' => 'Uri'), - array('VD' => 'Waadt'), - array('VS' => 'Wallis'), - array('ZG' => 'Zug'), - array('ZH' => 'Zürich') - ); - - protected static $country = array( + protected static $canton = [ + ['AG' => 'Aargau'], + ['AI' => 'Appenzell Innerrhoden'], + ['AR' => 'Appenzell Ausserrhoden'], + ['BE' => 'Bern'], + ['BL' => 'Basel-Landschaft'], + ['BS' => 'Basel-Stadt'], + ['FR' => 'Freiburg'], + ['GE' => 'Genf'], + ['GL' => 'Glarus'], + ['GR' => 'Graubünden'], + ['JU' => 'Jura'], + ['LU' => 'Luzern'], + ['NE' => 'Neuenburg'], + ['NW' => 'Nidwalden'], + ['OW' => 'Obwalden'], + ['SG' => 'St. Gallen'], + ['SH' => 'Schaffhausen'], + ['SO' => 'Solothurn'], + ['SZ' => 'Schwyz'], + ['TG' => 'Thurgau'], + ['TI' => 'Tessin'], + ['UR' => 'Uri'], + ['VD' => 'Waadt'], + ['VS' => 'Wallis'], + ['ZG' => 'Zug'], + ['ZH' => 'Zürich'], + ]; + + protected static $country = [ 'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äusseres Ozeanien', 'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi', 'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte d’Ivoire', @@ -99,28 +99,30 @@ class Address extends \Faker\Provider\Address 'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam', 'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara', 'Zentralafrikanische Republik', 'Zypern', - ); + ]; - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityName}}', - ); + ]; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{lastName}}{{streetSuffixShort}}', '{{cityName}}{{streetSuffixShort}}', - '{{firstName}}-{{lastName}}-{{streetSuffixLong}}' - ); + '{{firstName}}-{{lastName}}-{{streetSuffixLong}}', + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; /** * Returns a random city name. + * * @example Luzern + * * @return string */ public function cityName() @@ -130,7 +132,9 @@ public function cityName() /** * Returns a random street suffix. + * * @example str. + * * @return string */ public function streetSuffixShort() @@ -140,7 +144,9 @@ public function streetSuffixShort() /** * Returns a random street suffix. + * * @example Strasse + * * @return string */ public function streetSuffixLong() @@ -150,7 +156,9 @@ public function streetSuffixLong() /** * Returns a canton + * * @example array('BE' => 'Bern') + * * @return array */ public static function canton() @@ -160,21 +168,25 @@ public static function canton() /** * Returns the abbreviation of a canton. + * * @return string */ public static function cantonShort() { $canton = static::canton(); + return key($canton); } /** * Returns the name of canton. + * * @return string */ public static function cantonName() { $canton = static::canton(); + return current($canton); } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Company.php similarity index 69% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_CH/Company.php index 604ec5a..ead2781 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Company.php @@ -4,12 +4,12 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} {{lastName}} {{companySuffix}}', '{{lastName}}', '{{lastName}}', - ); + ]; - protected static $companySuffix = array('AG', 'GmbH'); + protected static $companySuffix = ['AG', 'GmbH']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Internet.php similarity index 57% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_CH/Internet.php index ec96ea2..dc574ec 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Internet.php @@ -4,14 +4,14 @@ class Internet extends \Faker\Provider\Internet { - protected static $freeEmailDomain = array( + protected static $freeEmailDomain = [ 'gmail.com', 'hotmail.com', 'yahoo.com', 'googlemail.com', 'gmx.ch', 'bluewin.ch', - 'swissonline.ch' - ); - protected static $tld = array('com', 'com', 'com', 'net', 'org', 'li', 'ch', 'ch'); + 'swissonline.ch', + ]; + protected static $tld = ['com', 'com', 'com', 'net', 'org', 'li', 'ch', 'ch']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_CH/Payment.php index 41d0a30..d72b834 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'CH', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Person.php similarity index 92% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_CH/Person.php index ce9493e..d3ead30 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Person.php @@ -5,10 +5,10 @@ class Person extends \Faker\Provider\de_DE\Person { /** - * @link http://www.bfs.admin.ch/bfs/portal/de/index/themen/01/02/blank/dos/prenoms/02.html + * @see http://www.bfs.admin.ch/bfs/portal/de/index/themen/01/02/blank/dos/prenoms/02.html */ - protected static $firstNameMale = array( - 'Adolf', 'Adrian', 'Alain', 'Albert', 'Alessandro', 'Alex', 'Alexander', 'Alfred', 'Ali', 'Alois', 'Andrea', 'Andreas', 'Andrin', 'André', 'Angelo', 'Anton', 'Antonio', 'Armin', 'Arnold', 'Arthur', + protected static $firstNameMale = [ + 'Adrian', 'Alain', 'Albert', 'Alessandro', 'Alex', 'Alexander', 'Alfred', 'Ali', 'Alois', 'Andrea', 'Andreas', 'Andrin', 'André', 'Angelo', 'Anton', 'Antonio', 'Armin', 'Arnold', 'Arthur', 'Beat', 'Benjamin', 'Bernhard', 'Bruno', 'Carlo', 'Carlos', 'Christian', 'Christoph', 'Claudio', 'Cyrill', 'Cédric', 'Damian', 'Daniel', 'Dario', 'David', 'Denis', 'Diego', 'Dieter', 'Dominic', 'Dominik', @@ -30,12 +30,12 @@ class Person extends \Faker\Provider\de_DE\Person 'Ulrich', 'Urs', 'Walter', 'Werner', 'Wilhelm', 'Willi', 'Willy', 'Wolfgang', 'Yannick', 'Yves', - ); + ]; /** - * @link http://www.bfs.admin.ch/bfs/portal/de/index/themen/01/02/blank/dos/prenoms/02.html + * @see http://www.bfs.admin.ch/bfs/portal/de/index/themen/01/02/blank/dos/prenoms/02.html */ - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'Adelheid', 'Agnes', 'Alessia', 'Alexandra', 'Alice', 'Alina', 'Aline', 'Ana', 'Andrea', 'Angela', 'Angelika', 'Anita', 'Anja', 'Anna', 'Annemarie', 'Antonia', 'Astrid', 'Barbara', 'Beatrice', 'Beatrix', 'Bernadette', 'Bertha', 'Bettina', 'Brigitta', 'Brigitte', 'Carla', 'Carmen', 'Caroline', 'Chantal', 'Charlotte', 'Chiara', 'Christa', 'Christina', 'Christine', 'Claudia', 'Corina', 'Corinne', 'Cornelia', 'Céline', @@ -57,12 +57,12 @@ class Person extends \Faker\Provider\de_DE\Person 'Ursula', 'Valentina', 'Vanessa', 'Vera', 'Verena', 'Veronika', 'Yvonne', - ); + ]; /** - * @link http://blog.tagesanzeiger.ch/datenblog/index.php/6859 + * @see http://blog.tagesanzeiger.ch/datenblog/index.php/6859 */ - protected static $lastName = array( + protected static $lastName = [ 'Achermann', 'Ackermann', 'Aeschlimann', 'Ammann', 'Arnold', 'Bachmann', 'Baumann', 'Baumgartner', 'Beck', 'Benz', 'Berger', 'Betschart', 'Bieri', 'Bischof', 'Blaser', 'Blum', 'Bolliger', 'Bosshard', 'Brunner', 'Bucher', 'Burri', 'Bärtschi', 'Bösch', 'Bühler', 'Bühlmann', 'Bürgi', 'Bürki', 'Christen', @@ -85,7 +85,7 @@ class Person extends \Faker\Provider\de_DE\Person 'Vogel', 'Vogt', 'Wagner', 'Walker', 'Walser', 'Weber', 'Wehrli', 'Weibel', 'Weiss', 'Wenger', 'Wicki', 'Widmer', 'Willi', 'Wirth', 'Wirz', 'Wittwer', 'Wolf', 'Wyss', 'Wüthrich', 'Zaugg', 'Zbinden', 'Zehnder', 'Ziegler', 'Zimmermann', 'Zwahlen', 'Zürcher', - ); + ]; /** * Generates a valid random AVS13 (swiss social security) number @@ -95,6 +95,7 @@ class Person extends \Faker\Provider\de_DE\Person * number is generally known as AHV13. * * @see \Faker\Provider\fr_CH\Person::avs13() + * * @return string */ public static function ahv13() @@ -108,6 +109,7 @@ public static function ahv13() * This function acts as an alias for the function defined in the fr_CH provider. * * @see \Faker\Provider\fr_CH\Person::avs13() + * * @return string */ public static function avs13() diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/PhoneNumber.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_CH/PhoneNumber.php index df11cb8..3e30330 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/PhoneNumber.php @@ -4,20 +4,20 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+41 (0)## ### ## ##', '+41(0)#########', '+41 ## ### ## ##', '0#########', '0## ### ## ##', - ); + ]; /** * An array of Swiss mobile (cell) phone number formats. * * @var array */ - protected static $mobileFormats = array( + protected static $mobileFormats = [ // Local '075 ### ## ##', '075#######', @@ -29,7 +29,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '078#######', '079 ### ## ##', '079#######', - ); + ]; + + protected static $e164Formats = [ + '+41##########', + ]; /** * Return a Swiss mobile phone number. diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_CH/Text.php index 9b85439..28230f2 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Text.php @@ -29,6 +29,7 @@ class Text extends \Faker\Provider\Text * mcicora@yahoo.com. * * @see http://www.gutenberg.org/cache/epub/2407/pg2407.txt + * * @var string */ protected static $baseText = <<<'EOT' @@ -1675,6 +1676,7 @@ class Text extends \Faker\Provider\Text hervor und sah noch dort unten im Schatten der hohen Lindenbäume ihr weisses Kleid nach der Gartentür schimmern, ich streckte meine Arme aus, und es verschwand. EOT; + /* End of the Project Gutenberg EBook of Die Leiden des jungen Werther--Buch 1, by Johann Wolfgang von Goethe diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Address.php similarity index 95% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_DE/Address.php index 84f6a30..d8dc5b4 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Address.php @@ -4,22 +4,23 @@ class Address extends \Faker\Provider\Address { - protected static $buildingNumber = array('%##', '%#', '%', '%/%', '%#[abc]', '%[abc]'); + protected static $buildingNumber = ['%##', '%#', '%', '%/%', '%#[abc]', '%[abc]']; - protected static $streetSuffixLong = array( - 'Gasse', 'Platz', 'Ring', 'Straße', 'Weg', 'Allee' - ); - protected static $streetSuffixShort = array( - 'gasse', 'platz', 'ring', 'straße', 'str.', 'weg', 'allee' - ); + protected static $streetSuffixLong = [ + 'Gasse', 'Platz', 'Ring', 'Straße', 'Weg', 'Allee', + ]; + protected static $streetSuffixShort = [ + 'gasse', 'platz', 'ring', 'straße', 'str.', 'weg', 'allee', + ]; - protected static $postcode = array('#####'); + protected static $postcode = ['#####']; /** * @var array + * * @see https://de.wikipedia.org/wiki/Liste_der_Gro%C3%9F-_und_Mittelst%C3%A4dte_in_Deutschland */ - protected static $cityNames = array( + protected static $cityNames = [ 'Aachen', 'Aalen', 'Achern', 'Achim', 'Ahaus', 'Ahlen', 'Ahrensburg', 'Aichach', 'Albstadt', 'Alfter', 'Alsdorf', 'Altenburg', 'Amberg', 'Andernach', 'Annaberg-Buchholz', 'Ansbach', 'Apolda', 'Arnsberg', 'Arnstadt', 'Aschaffenburg', 'Aschersleben', 'Attendorn', 'Augsburg', 'Aurich', 'Backnang', 'Bad Harzburg', 'Bad Hersfeld', 'Bad Homburg vor der Höhe', 'Bad Honnef', 'Bad Kissingen', 'Bad Kreuznach', 'Bad Mergentheim', 'Bad Nauheim', 'Bad Neuenahr-Ahrweiler', 'Bad Oeynhausen', 'Bad Oldesloe', 'Bad Rappenau', 'Bad Salzuflen', 'Bad Soden am Taunus', 'Bad Vilbel', 'Bad Waldsee', 'Bad Zwischenahn', 'Baden-Baden', 'Baesweiler', 'Balingen', 'Bamberg', 'Barsinghausen', 'Baunatal', 'Bautzen', 'Bayreuth', 'Beckum', 'Bedburg', 'Bensheim', 'Bergheim', 'Bergisch Gladbach', 'Bergkamen', 'Berlin', 'Bernau bei Berlin', 'Bernburg (Saale)', 'Biberach an der Riß', 'Bielefeld', 'Bietigheim-Bissingen', 'Bingen am Rhein', 'Bitterfeld-Wolfen', 'Blankenburg (Harz)', 'Blankenfelde-Mahlow', 'Blieskastel', 'Böblingen', 'Bocholt', 'Bochum', 'Bonn', 'Borken', 'Bornheim', 'Bottrop', 'Bramsche', 'Brandenburg an der Havel', 'Braunschweig', 'Bremen', 'Bremerhaven', 'Bretten', 'Brilon', 'Bruchköbel', 'Bruchsal', 'Brühl', 'Buchholz in der Nordheide', 'Büdingen', 'Bühl', 'Bünde', 'Büren', 'Burg', 'Burgdorf', 'Burgwedel', 'Butzbach', 'Buxtehude', 'Calw', 'Castrop-Rauxel', 'Celle', @@ -47,13 +48,13 @@ class Address extends \Faker\Provider\Address 'Wachtberg', 'Waghäusel', 'Waiblingen', 'Waldkirch', 'Waldkraiburg', 'Waldshut-Tiengen', 'Wallenhorst', 'Walsrode', 'Waltrop', 'Wandlitz', 'Wangen im Allgäu', 'Warburg', 'Waren (Müritz)', 'Warendorf', 'Warstein', 'Wedel', 'Wedemark', 'Wegberg', 'Weiden in der Oberpfalz', 'Weil am Rhein', 'Weilheim in Oberbayern', 'Weimar', 'Weingarten', 'Weinheim', 'Weinstadt', 'Weißenfels', 'Weiterstadt', 'Werdau', 'Werder (Havel)', 'Werl', 'Wermelskirchen', 'Werne', 'Wernigerode', 'Wertheim', 'Wesel', 'Wesseling', 'Westerstede', 'Westoverledingen', 'Wetter (Ruhr)', 'Wetzlar', 'Weyhe', 'Wiehl', 'Wiesbaden', 'Wiesloch', 'Wilhelmshaven', 'Willich', 'Wilnsdorf', 'Winnenden', 'Winsen (Luhe)', 'Wipperfürth', 'Wismar', 'Witten', 'Lutherstadt Wittenberg', 'Wittmund', 'Wolfenbüttel', 'Wolfsburg', 'Worms', 'Wülfrath', 'Wunstorf', 'Wuppertal', 'Würselen', 'Würzburg', 'Xanten', 'Zeitz', 'Zerbst/Anhalt', 'Zirndorf', 'Zittau', 'Zülpich', 'Zweibrücken', 'Zwickau', - ); + ]; - protected static $state = array( - 'Baden-Württemberg', 'Bayern', 'Berlin', 'Brandenburg', 'Bremen', 'Hamburg', 'Hessen', 'Mecklenburg-Vorpommern', 'Niedersachsen', 'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Saarland', 'Sachsen', 'Sachsen-Anhalt', 'Schleswig-Holstein', 'Thüringen' - ); + protected static $state = [ + 'Baden-Württemberg', 'Bayern', 'Berlin', 'Brandenburg', 'Bremen', 'Hamburg', 'Hessen', 'Mecklenburg-Vorpommern', 'Niedersachsen', 'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Saarland', 'Sachsen', 'Sachsen-Anhalt', 'Schleswig-Holstein', 'Thüringen', + ]; - protected static $country = array( + protected static $country = [ 'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äußeres Ozeanien', 'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi', 'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte d’Ivoire', @@ -77,23 +78,23 @@ class Address extends \Faker\Provider\Address 'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam', 'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara', 'Zentralafrikanische Republik', 'Zypern', - ); + ]; - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityName}}', - ); + ]; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{lastName}}{{streetSuffixShort}}', - '{{firstName}}-{{lastName}}-{{streetSuffixLong}}' - ); + '{{firstName}}-{{lastName}}-{{streetSuffixLong}}', + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; public function cityName() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Company.php similarity index 62% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_DE/Company.php index 9cc8766..3ac9a5c 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Company.php @@ -4,21 +4,21 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} {{lastName}} {{companySuffix}}', '{{lastName}}', '{{lastName}}', - ); + ]; /** - * @link http://www.personalseite.de/information/titel.htm + * @see http://www.personalseite.de/information/titel.htm */ - protected static $jobTitleFormat = array( + protected static $jobTitleFormat = [ 'Abteilungsdirektor', 'Arbeitsdirektor', 'Aufsichtsrat', 'Beirat', 'Bereichsleiter', 'Betriebsleiter', 'Finanzvorstand', 'Geschäftsführender Gesellschafter', 'Geschäftsführer', 'Gesellschafter', 'Handlungsbevollmächtigter', 'Kaufmännischer Vorstand', 'Leiter Rechtsabteilung', 'Mitglied des Aufsichtsrats', 'Personalleiter', 'Prokurist', 'Stellvertretender Vorsitzender des Vorstandes', - 'Vorsitzender der Geschäftsführung', 'Vorsitzender des Aufsichtsrats', 'Vorsitzender des Vorstandes', 'Vorstand Personal', 'Vorstand Technik', 'Vorstand Vertrieb', 'Vorstandsmitglied', 'Werksleiter' - ); + 'Vorsitzender der Geschäftsführung', 'Vorsitzender des Aufsichtsrats', 'Vorsitzender des Vorstandes', 'Vorstand Personal', 'Vorstand Technik', 'Vorstand Vertrieb', 'Vorstandsmitglied', 'Werksleiter', + ]; - protected static $companySuffix = array('e.G.', 'e.V.', 'GbR', 'GbR', 'OHG mbH', 'GmbH & Co. OHG', 'AG & Co. OHG', 'GmbH', 'GmbH', 'GmbH', 'GmbH', 'AG', 'AG', 'AG', 'AG', 'KG', 'KG', 'KG', 'GmbH & Co. KG', 'GmbH & Co. KG', 'AG & Co. KG', 'Stiftung & Co. KG', 'KGaA', 'GmbH & Co. KGaA', 'AG & Co. KGaA', 'Stiftung & Co. KGaA'); + protected static $companySuffix = ['e.G.', 'e.V.', 'GbR', 'GbR', 'OHG mbH', 'GmbH & Co. OHG', 'AG & Co. OHG', 'GmbH', 'GmbH', 'GmbH', 'GmbH', 'AG', 'AG', 'AG', 'AG', 'KG', 'KG', 'KG', 'GmbH & Co. KG', 'GmbH & Co. KG', 'AG & Co. KG', 'Stiftung & Co. KG', 'KGaA', 'GmbH & Co. KGaA', 'AG & Co. KGaA', 'Stiftung & Co. KGaA']; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Internet.php new file mode 100644 index 0000000..7e8124a --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Internet.php @@ -0,0 +1,26 @@ + + */ + protected static $areaCodeRegexes = [ + 2 => '(0[0-389]|0[4-6][1-68]|1[124]|1[0-9][0-9]|2[18]|2[0-9][1-9]|3[14]|3[0-35-9][0-9]|4[1]|4[02-8][0-9]|5[1]|5[02-9][0-9]|6[1]|6[02-9][0-9]|7[1]|7[2-7][0-9]|8[1]|8[02-7][0-9]|9[1]|9[02-9][0-9])', + 3 => '(0|3[15]|3[02-46-9][1-9]|3[02-46-9][02-9][0-9]|4[015]|4[2-4679][1-8]|4[2-4679][02-9][0-9]|5[15]|5[02-46-9][1-9]|5[02-46-9][02-9][0-9]|6[15]|6[02-46-9][1-9]|6[02-46-9][02-9][0-9]|7[15]|7[2-467][1-7]|7[2-467][02-689][0-9]|8[15]|8[2-46-8][013-9]|8[2-46-8][02-9][0-9]|9[15]|9[02-46-9][1-9]|9[02-46-9][02-9][0-9])', + 4 => '(0|1[02-9][0-9]|2[1]|2[02-9][0-9]|3[1]|3[02-9][0-9]|4[1]|4[0-9][0-9]|5[1]|5[02-6][0-9]|6[1]|6[02-8][0-9]|7[1]|7[02-79][0-9]|8[1]|8[02-9][0-9]|9[1]|9[02-7][0-9])', + 5 => '(0[2-8][0-9]|1[1]|1[02-9][0-9]|2[1]|2[02-9][1-9]|3[1]|3[02-8][0-9]|4[1]|4[02-9][1-9]|5[1]|5[02-9][0-9]|6[1]|6[02-9][0-9]|7[1]|7[02-7][1-9]|8[1]|8[02-8][0-9]|9[1]|9[0-7][1-9])', + 6 => '(0[02-9][0-9]|1[1]|1[02-9][0-9]|2[1]|2[02-9][0-9]|3[1]|3[02-9][0-9]|4[1]|4[0-8][0-9]|5[1]|5[02-9][0-9]|6[1]|6[2-9][0-9]|7[1]|7[02-8][1-9]|8[1]|8[02-9][1-9]|9)', + 7 => '(0[2-8][1-6]|1[1]|1[2-9][0-9]|2[1]|2[0-7][0-9]|3[1]|3[02-9][0-9]|4[1]|4[0-8][0-9]|5[1]|5[02-8][0-9]|6[1]|6[02-8][0-9]|7[1]|7[02-7][0-9]|8[1]|8[02-5][1-9]|9[1]|9[03-7][0-9])', + 8 => '(0[2-9][0-9]|1[1]|1[02-79][0-9]|2[1]|2[02-9][0-9]|3[1]|3[02-9][0-9]|4[1]|4[02-6][0-9]|5[1]|5[02-9][0-9]|6[1]|6[2-8][0-9]|7[1]|7[02-8][1-9]|8[1]|8[02-6][0-9]|9)', + 9 => '(0[6]|0[07-9][0-9]|1[1]|1[02-9][0-9]|2[1]|2[02-9][0-9]|3[1]|3[02-9][0-9]|4[1]|4[02-9][0-9]|5[1]|5[02-7][0-9]|6[1]|6[02-8][1-9]|7[1]|7[02-467][0-9]|8[1]|8[02-7][0-9]|9[1]|9[02-7][0-9])', + ]; + + /** + * @see https://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers#Germany + * @see https://www.itu.int/oth/T0202000051/en + * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Germany + */ + protected static $formats = [ + // International format + '+49 {{areaCode}} #######', + '+49 {{areaCode}} ### ####', + '+49 (0{{areaCode}}) #######', + '+49 (0{{areaCode}}) ### ####', + '+49{{areaCode}}#######', + '+49{{areaCode}}### ####', + + // Standard formats + '0{{areaCode}} ### ####', + '0{{areaCode}} #######', + '(0{{areaCode}}) ### ####', + '(0{{areaCode}}) #######', + ]; + + protected static $e164Formats = [ + '+49{{areaCode}}#######', + ]; + + /** + * @see https://en.wikipedia.org/wiki/Toll-free_telephone_number + */ + protected static $tollFreeAreaCodes = [ + 800, + ]; + + protected static $tollFreeFormats = [ + // Standard formats + '0{{tollFreeAreaCode}} ### ####', + '(0{{tollFreeAreaCode}}) ### ####', + '+49{{tollFreeAreaCode}} ### ####', + ]; + + public function tollFreeAreaCode() + { + return self::randomElement(static::$tollFreeAreaCodes); + } + + public function tollFreePhoneNumber() + { + $format = self::randomElement(static::$tollFreeFormats); + + return self::numerify($this->generator->parse($format)); + } + + protected static $mobileCodes = [ + 1511, 1512, 1514, 1515, 1516, 1517, + 1520, 1521, 1522, 1523, 1525, 1526, 1529, + 1570, 1573, 1575, 1577, 1578, 1579, + 1590, + ]; + + protected static $mobileFormats = [ + '+49{{mobileCode}}#######', + '+49 {{mobileCode}} ### ####', + '0{{mobileCode}}#######', + '0{{mobileCode}} ### ####', + '0 {{mobileCode}} ### ####', + ]; + + /** + * @see https://en.wikipedia.org/wiki/List_of_dialling_codes_in_Germany + * + * @return string + */ + public static function areaCode() + { + $firstDigit = self::numberBetween(2, 9); + + return $firstDigit . self::regexify(self::$areaCodeRegexes[$firstDigit]); + } + + /** + * Generate a code for a mobile number. + * + * @internal Used to generate mobile numbers. + * + * @return string + */ + public static function mobileCode() + { + return static::randomElement(static::$mobileCodes); + } + + /** + * Generate a mobile number. + * + * @example A mobile number: '015111234567' + * @example A mobile number with spaces: '01511 123 4567' + * @example A mobile number with international code prefix: '+4915111234567' + * @example A mobile number with international code prefix and spaces: '+49 1511 123 4567' + * + * @return string + */ + public function mobileNumber() + { + return ltrim(static::numerify($this->generator->parse( + static::randomElement(static::$mobileFormats), + ))); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/de_DE/Text.php index 979f4cf..55ed5a5 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Text.php @@ -29,6 +29,7 @@ class Text extends \Faker\Provider\Text * mcicora@yahoo.com. * * @see http://www.gutenberg.org/cache/epub/2407/pg2407.txt + * * @var string */ protected static $baseText = <<<'EOT' @@ -1675,6 +1676,7 @@ class Text extends \Faker\Provider\Text hervor und sah noch dort unten im Schatten der hohen Lindenbäume ihr weißes Kleid nach der Gartentür schimmern, ich streckte meine Arme aus, und es verschwand. EOT; + /* End of the Project Gutenberg EBook of Die Leiden des jungen Werther--Buch 1, by Johann Wolfgang von Goethe diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/el_CY/Address.php similarity index 87% rename from vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/el_CY/Address.php index 0935d80..4241b00 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/el_CY/Address.php @@ -4,26 +4,26 @@ class Address extends \Faker\Provider\Address { - protected static $citySuffix = array('Λευκωσία', 'Λεμεσός', 'Λάρνακα', 'Πάφος'); - protected static $streetSuffix = array(); - protected static $streetPrefix = array( + protected static $citySuffix = ['Λευκωσία', 'Λεμεσός', 'Λάρνακα', 'Πάφος']; + protected static $streetSuffix = []; + protected static $streetPrefix = [ 'Όδος', 'Οδός', 'Λεωφόρος', - ); - protected static $cityFormats = array( + ]; + protected static $cityFormats = [ '{{citySuffix}}', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ '{{streetPrefix}} {{lastName}}', '{{streetPrefix}} {{lastName}} {{lastName}}', '{{streetPrefix}} Αγίου {{lastName}}', '{{streetPrefix}} Βασιλέως {{lastName}}', - ); - protected static $streetAddressFormats = array( + ]; + protected static $streetAddressFormats = [ '{{streetName}}, {{buildingNumber}}', - ); - protected static $buildingNumber = array('##', '#'); - protected static $postcode = array('####'); - protected static $country = array( + ]; + protected static $buildingNumber = ['%#', '%']; + protected static $postcode = ['####']; + protected static $country = [ 'Ανγκόλα', 'Αζερμπαϊτζάν', 'Αίγυπτος', 'Αιθιοπία', 'Αϊτή', 'Αλβανία', 'Αλγερία', 'Αργεντινή', 'Αρμενία', 'Αυστραλία', 'Αυστρία', 'Αφγανιστάν', 'Βέλγιο', 'Βενεζουέλα', 'Βιετνάμ', 'Βολιβία', 'Βοσνία και Ερζεγοβίνη', 'Βουλγαρία', 'Βραζιλία', 'Γαλλία', 'Γερμανία', 'Γεωργία', 'Γροιλανδία', @@ -43,7 +43,7 @@ class Address extends \Faker\Provider\Address 'Υεμένη', 'Φιλιππίνες', 'Φινλανδία', 'Χιλή', - ); + ]; /** * @example 'Όδος' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/el_CY/Company.php similarity index 73% rename from vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/el_CY/Company.php index c2fa924..30e6d6d 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/el_CY/Company.php @@ -4,15 +4,15 @@ class Company extends \Faker\Provider\Company { - protected static $companySuffix = array( + protected static $companySuffix = [ 'ΛΤΔ', 'Δημόσια εταιρεία', '& Υιοι', '& ΣΙΑ', - ); + ]; - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}}-{{lastName}}', - ); + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/el_CY/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/el_CY/Internet.php new file mode 100644 index 0000000..29ff459 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/el_CY/Internet.php @@ -0,0 +1,9 @@ +generator->parse( + static::randomElement(static::$fixedLineFormats), + ))); + } + + /** + * Generate a code for a mobile number. + * + * @internal Used to generate mobile numbers. + * + * @return string + */ + public static function mobileCode() + { + return static::randomElement(static::$mobileCodes); + } + + /** + * Generate a mobile number. + * + * @example A mobile number: '6901234567' + * @example A mobile number with spaces: '690 123 4567' + * @example A mobile number with international code prefix: '+306901234567' + * @example A mobile number with international code prefix and spaces: '+30 690 123 4567' + * + * @return string + */ + public function mobileNumber() + { + return ltrim(static::numerify($this->generator->parse( + static::randomElement(static::$mobileFormats), + ))); + } + + /** + * @deprecated Use PhoneNumber::mobileNumber() instead. + */ + public static function mobilePhoneNumber() + { + return static::numerify( + strtr(static::randomElement(static::$mobileFormats), [ + '{{internationalCodePrefix}}' => static::internationalCodePrefix(), + '{{mobileCode}}' => static::mobileCode(), + ]), + ); + } + + /** + * Generate a personal number. + * + * @example A personal number: '7012345678' + * @example A personal number with spaces: '70 1234 5678' + * @example A personal number with international code prefix: '+307012345678' + * @example A personal number with international code prefix and spaces: '+30 70 1234 5678' + * + * @return string + */ + public function personalNumber() + { + return ltrim(static::numerify($this->generator->parse( + static::randomElement(static::$personalFormats), + ))); + } + + /** + * Generate a toll-free number. + * + * @example A toll-free number: '8001234567' + * @example A toll-free number with spaces: '800 123 4567' + * @example A toll-free number with international code prefix: '+308001234567' + * @example A toll-free number with international code prefix and spaces: '+30 800 123 4567' + * + * @return string + */ + public static function tollFreeNumber() + { + return ltrim(static::numerify( + strtr(static::randomElement(static::$tollFreeFormats), [ + '{{internationalCodePrefix}}' => static::internationalCodePrefix(), + ]), + )); + } + + /** + * Generate a code for a shared-cost number. + * + * @internal Used to generate shared-cost numbers. + * + * @return string + */ + public static function sharedCostCode() + { + return static::randomElement(static::$sharedCostCodes); + } + + /** + * Generate a shared-cost number. + * + * @example A shared-cost number: '8011234567' + * @example A shared-cost number with spaces: '801 123 4567' + * @example A shared-cost number with international code prefix: '+308011234567' + * @example A shared-cost number with international code prefix and spaces: '+30 801 123 4567' + * + * @return string + */ + public function sharedCostNumber() + { + return ltrim(static::numerify($this->generator->parse( + static::randomElement(static::$sharedCostFormats), + ))); + } + + /** + * Generate a code for a premium-rate number. + * + * @internal Used to generate premium-rate numbers. + * + * @return string + */ + public static function premiumRateCode() + { + return static::randomElement(static::$premiumRateCodes); + } + + /** + * Generate a premium-rate number. + * + * @example A premium-rate number: '9011234567' + * @example A premium-rate number with spaces: '901 123 4567' + * @example A premium-rate number with international code prefix: '+309011234567' + * @example A premium-rate number with international code prefix and spaces: '+30 901 123 4567' + * + * @return string + */ + public function premiumRateNumber() + { + return ltrim(static::numerify($this->generator->parse( + static::randomElement(static::$premiumRateFormats), + ))); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/el_GR/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/el_GR/Text.php index 8e3621e..f4be760 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/el_GR/Text.php @@ -24,7 +24,7 @@ class Text extends \Faker\Provider\Text * @licence Creative Commons Attribution-ShareAlike https://creativecommons.org/licenses/by-sa/3.0/deed.el * * @see https://wikimediafoundation.org/wiki/Terms_of_Use/ - * @link https://el.wikisource.org/wiki/%CE%A4%CF%81%CE%B5%CE%BB%CE%B1%CE%BD%CF%84%CF%8E%CE%BD%CE%B7%CF%82 + * @see https://el.wikisource.org/wiki/%CE%A4%CF%81%CE%B5%CE%BB%CE%B1%CE%BD%CF%84%CF%8E%CE%BD%CE%B7%CF%82 * * @var string */ @@ -2255,11 +2255,12 @@ class Text extends \Faker\Provider\Text - Θα ησυχάσετε, θηρία; Ή να φωνάξω τον μπαμπά να του πω πως έκανες μια τούμπα κι έσπασες το κρεβάτι; Θαρρείς πως δεν το κατάλαβε η κερα-Ρήνη, και ας μη μίλησε; Αντώνη, Τρελαντώνη, Ζουρλαντώνη, Λωλαντώνη, καλά σε λέγει η κερα-Ρήνη! Θα μας τρελάνεις όλους! Κοιμήσου αμέσως! Όλα τ' αδέλφια ζάρωσαν. Γύρισε και ο Αντώνης από τον τοίχο κι έκλεισε τα μάτια του. Αυτή η κερα-Ρήνη! Τίποτα ωστόσο δεν της ξέφευγε! Μα θα της ξεφύγει αυτός τώρα που θα πάγει σχολείο! Αχ! σαν πάγει σχολείο... Θα είναι πια με αγόρια... όλο με αγόρια... θα παίζουν πάλι σκλαβάκια... θα πολεμούν όλη μέρα... θα σπάζουν κεφάλια... θα παλεύουν, θα τραβούν σπαθιές, τουφεκιές, κανονιές... θα... θα... Και τον πήρε ο ύπνος με χίλια όνειρα ηρωικά. EOT; + /* *** START: FULL LICENSE *** Creative Commons Legal Code Attribution-ShareAlike 3.0 Unported - + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Address.php similarity index 84% rename from vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/en_AU/Address.php index 395162f..dec2490 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Address.php @@ -3,23 +3,21 @@ namespace Faker\Provider\en_AU; /** - * Class Address * @see http://www.ipaustralia.gov.au/about-us/corporate/address-standards/ - * @package Faker\Provider\en_AU */ class Address extends \Faker\Provider\en_US\Address { - protected static $cityPrefix = array('North', 'East', 'West', 'South', 'New', 'Lake', 'Port', 'St.'); + protected static $cityPrefix = ['North', 'East', 'West', 'South', 'New', 'Lake', 'Port', 'St.']; - protected static $buildingNumber = array('###', '##', '#'); + protected static $buildingNumber = ['%##', '%#', '%']; - protected static $buildingLetters = array('A','B','C','D'); + protected static $buildingLetters = ['A', 'B', 'C', 'D']; - protected static $streetSuffix = array( - 'Access', 'Alley', 'Alleyway', 'Amble', 'Anchorage', 'Approach', 'Arcade', 'Artery', 'Avenue', 'Basin', 'Beach', 'Bend', 'Block', 'Boulevard', 'Brace', 'Brae', 'Break', 'Bridge', 'Broadway', 'Brow', 'Bypass', 'Byway', 'Causeway', 'Centre', 'Centreway', 'Chase', 'Circle', 'Circlet', 'Circuit', 'Circus', 'Close', 'Colonnade', 'Common', 'Concourse', 'Copse', 'Corner', 'Corso', 'Court', 'Courtyard', 'Cove', 'Crescent', 'Crest', 'Cross', 'Crossing', 'Crossroad', 'Crossway', 'Cruiseway', 'Cul-de-sac', 'Cutting', 'Dale', 'Dell', 'Deviation', 'Dip', 'Distributor', 'Drive', 'Driveway', 'Edge', 'Elbow', 'End', 'Entrance', 'Esplanade', 'Estate', 'Expressway', 'Extension', 'Fairway', 'Fire Track', 'Firetrail', 'Flat', 'Follow', 'Footway', 'Foreshore', 'Formation', 'Freeway', 'Front', 'Frontage', 'Gap', 'Garden', 'Gardens', 'Gate', 'Gates', 'Glade', 'Glen', 'Grange', 'Green', 'Ground', 'Grove', 'Gully', 'Heights', 'Highroad', 'Highway', 'Hill', 'Interchange', 'Intersection', 'Junction', 'Key', 'Landing', 'Lane', 'Laneway', 'Lees', 'Line', 'Link', 'Little', 'Lookout', 'Loop', 'Lower', 'Mall', 'Meander', 'Mew', 'Mews', 'Motorway', 'Mount', 'Nook', 'Outlook', 'Parade', 'Park', 'Parklands', 'Parkway', 'Part', 'Pass', 'Path', 'Pathway', 'Piazza', 'Place', 'Plateau', 'Plaza', 'Pocket', 'Point', 'Port', 'Promenade', 'Quad', 'Quadrangle', 'Quadrant', 'Quay', 'Quays', 'Ramble', 'Ramp', 'Range', 'Reach', 'Reserve', 'Rest', 'Retreat', 'Ride', 'Ridge', 'Ridgeway', 'Right Of Way', 'Ring', 'Rise', 'River', 'Riverway', 'Riviera', 'Road', 'Roads', 'Roadside', 'Roadway', 'Ronde', 'Rosebowl', 'Rotary', 'Round', 'Route', 'Row', 'Rue', 'Run', 'Service Way', 'Siding', 'Slope', 'Sound', 'Spur', 'Square', 'Stairs', 'State Highway', 'Steps', 'Strand', 'Street', 'Strip', 'Subway', 'Tarn', 'Terrace', 'Thoroughfare', 'Tollway', 'Top', 'Tor', 'Towers', 'Track', 'Trail', 'Trailer', 'Triangle', 'Trunkway', 'Turn', 'Underpass', 'Upper', 'Vale', 'Viaduct', 'View', 'Villas', 'Vista', 'Wade', 'Walk', 'Walkway', 'Way', 'Wynd' - ); + protected static $streetSuffix = [ + 'Access', 'Alley', 'Alleyway', 'Amble', 'Anchorage', 'Approach', 'Arcade', 'Artery', 'Avenue', 'Basin', 'Beach', 'Bend', 'Block', 'Boulevard', 'Brace', 'Brae', 'Break', 'Bridge', 'Broadway', 'Brow', 'Bypass', 'Byway', 'Causeway', 'Centre', 'Centreway', 'Chase', 'Circle', 'Circlet', 'Circuit', 'Circus', 'Close', 'Colonnade', 'Common', 'Concourse', 'Copse', 'Corner', 'Corso', 'Court', 'Courtyard', 'Cove', 'Crescent', 'Crest', 'Cross', 'Crossing', 'Crossroad', 'Crossway', 'Cruiseway', 'Cul-de-sac', 'Cutting', 'Dale', 'Dell', 'Deviation', 'Dip', 'Distributor', 'Drive', 'Driveway', 'Edge', 'Elbow', 'End', 'Entrance', 'Esplanade', 'Estate', 'Expressway', 'Extension', 'Fairway', 'Fire Track', 'Firetrail', 'Flat', 'Follow', 'Footway', 'Foreshore', 'Formation', 'Freeway', 'Front', 'Frontage', 'Gap', 'Garden', 'Gardens', 'Gate', 'Gates', 'Glade', 'Glen', 'Grange', 'Green', 'Ground', 'Grove', 'Gully', 'Heights', 'Highroad', 'Highway', 'Hill', 'Interchange', 'Intersection', 'Junction', 'Key', 'Landing', 'Lane', 'Laneway', 'Lees', 'Line', 'Link', 'Little', 'Lookout', 'Loop', 'Lower', 'Mall', 'Meander', 'Mew', 'Mews', 'Motorway', 'Mount', 'Nook', 'Outlook', 'Parade', 'Park', 'Parklands', 'Parkway', 'Part', 'Pass', 'Path', 'Pathway', 'Piazza', 'Place', 'Plateau', 'Plaza', 'Pocket', 'Point', 'Port', 'Promenade', 'Quad', 'Quadrangle', 'Quadrant', 'Quay', 'Quays', 'Ramble', 'Ramp', 'Range', 'Reach', 'Reserve', 'Rest', 'Retreat', 'Ride', 'Ridge', 'Ridgeway', 'Right Of Way', 'Ring', 'Rise', 'River', 'Riverway', 'Riviera', 'Road', 'Roads', 'Roadside', 'Roadway', 'Ronde', 'Rosebowl', 'Rotary', 'Round', 'Route', 'Row', 'Rue', 'Run', 'Service Way', 'Siding', 'Slope', 'Sound', 'Spur', 'Square', 'Stairs', 'State Highway', 'Steps', 'Strand', 'Street', 'Strip', 'Subway', 'Tarn', 'Terrace', 'Thoroughfare', 'Tollway', 'Top', 'Tor', 'Towers', 'Track', 'Trail', 'Trailer', 'Triangle', 'Trunkway', 'Turn', 'Underpass', 'Upper', 'Vale', 'Viaduct', 'View', 'Villas', 'Vista', 'Wade', 'Walk', 'Walkway', 'Way', 'Wynd', + ]; - protected static $postcode = array( + protected static $postcode = [ // as per https://en.wikipedia.org/wiki/Postcodes_in_Australia // NSW '1###', @@ -45,23 +43,23 @@ class Address extends \Faker\Provider\en_US\Address // NT '08##', '09##', - ); + ]; - protected static $state = array( - 'Australian Capital Territory', 'New South Wales', 'Northern Territory', 'Queensland', 'South Australia', 'Tasmania', 'Victoria', 'Western Australia' - ); + protected static $state = [ + 'Australian Capital Territory', 'New South Wales', 'Northern Territory', 'Queensland', 'South Australia', 'Tasmania', 'Victoria', 'Western Australia', + ]; - protected static $stateAbbr = array( - 'ACT', 'NSW', 'NT', 'QLD', 'SA', 'TAS', 'VIC', 'WA' - ); + protected static $stateAbbr = [ + 'ACT', 'NSW', 'NT', 'QLD', 'SA', 'TAS', 'VIC', 'WA', + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{buildingNumber}} {{streetName}}', '{{buildingNumber}}{{buildingLetter}} {{streetName}}', '{{secondaryAddress}} {{buildingNumber}} {{streetName}}', - ); + ]; - protected static $secondaryAddressFormats = array( + protected static $secondaryAddressFormats = [ 'Apt. ###', 'Flat ##', 'Suite ###', @@ -70,10 +68,11 @@ class Address extends \Faker\Provider\en_US\Address '### /', '## /', '# /', - ); + ]; /** * Returns a sane building letter + * * @example B */ public static function buildingLetter() @@ -83,6 +82,7 @@ public static function buildingLetter() /** * Returns a sane city prefix + * * @example West */ public static function cityPrefix() @@ -92,6 +92,7 @@ public static function cityPrefix() /** * Returns a sane street suffix + * * @example Beach */ public static function streetSuffix() @@ -101,6 +102,7 @@ public static function streetSuffix() /** * Returns a sane state + * * @example New South Wales */ public static function state() diff --git a/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php new file mode 100644 index 0000000..39e6506 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php @@ -0,0 +1,9 @@ + 0) { + $sum -= 97; + } + $sum = $sum * -1; + + return str_pad((string) $sum, 2, '0', STR_PAD_LEFT); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Internet.php new file mode 100644 index 0000000..ef5934a --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Internet.php @@ -0,0 +1,9 @@ +generator->parse(static::randomElement(static::$societyNameFormat)); } + /** * @example Mumbai */ @@ -142,6 +145,7 @@ public function city() { return static::randomElement(static::$city); } + /** * @example Vaishali Nagar */ @@ -149,13 +153,15 @@ public function locality() { return $this->generator->parse(static::randomElement(static::$localityFormats)); } - /* + + /** * @example Kharadi */ public function localityName() { return $this->generator->parse(static::randomElement(static::$localityName)); } + /** * @example Nagar */ diff --git a/vendor/fakerphp/faker/src/Faker/Provider/en_IN/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/en_IN/Internet.php new file mode 100644 index 0000000..a543535 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_IN/Internet.php @@ -0,0 +1,9 @@ +format('y'); + $checksumArr = ['J', 'Z', 'I', 'H', 'G', 'F', 'E', 'D', 'C', 'B', 'A']; + } + + $length = count($weights); + + for ($i = strlen($result); $i < $length; ++$i) { + $result .= static::randomDigit(); + } + + $checksum = in_array($prefix, ['G', 'T'], true) ? 4 : 0; + + for ($i = 0; $i < $length; ++$i) { + $checksum += (int) $result[$i] * $weights[$i]; + } + + return $prefix . $result . $checksumArr[$checksum % 11]; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/en_SG/PhoneNumber.php similarity index 62% rename from vendor/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/en_SG/PhoneNumber.php index 9bcada8..f5e3ca6 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_SG/PhoneNumber.php @@ -4,67 +4,67 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $internationalCodePrefix = array( + protected static $internationalCodePrefix = [ '+65', '65', - ); + ]; - protected static $zeroToEight = array(0, 1, 2, 3, 4, 5, 6, 7, 8); + protected static $zeroToEight = [0, 1, 2, 3, 4, 5, 6, 7, 8]; - protected static $oneToEight = array(1, 2, 3, 4, 5, 6, 7, 8); + protected static $oneToEight = [1, 2, 3, 4, 5, 6, 7, 8]; - protected static $mobileNumberFormats = array( + protected static $mobileNumberFormats = [ '{{internationalCodePrefix}}9{{zeroToEight}}## ####', '{{internationalCodePrefix}} 9{{zeroToEight}}## ####', '9{{zeroToEight}}## ####', '{{internationalCodePrefix}}8{{oneToEight}}## ####', '{{internationalCodePrefix}} 8{{oneToEight}}## ####', '8{{oneToEight}}## ####', - ); + ]; - protected static $fixedLineNumberFormats = array( + protected static $fixedLineNumberFormats = [ '{{internationalCodePrefix}}6### ####', '{{internationalCodePrefix}} 6### ####', '6### ####', - ); + ]; // http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore#Numbering_plan - protected static $formats = array( + protected static $formats = [ '{{mobileNumber}}', '{{fixedLineNumber}}', - ); + ]; - protected static $voipNumber = array( + protected static $voipNumber = [ '{{internationalCodePrefix}}3### ####', '{{internationalCodePrefix}} 3### ####', '3### ####', - ); + ]; - protected static $tollFreeInternationalNumber = array( - '800 ### ####' - ); + protected static $tollFreeInternationalNumber = [ + '800 ### ####', + ]; - protected static $tollFreeLineNumber = array( - '1800 ### ####' - ); + protected static $tollFreeLineNumber = [ + '1800 ### ####', + ]; - protected static $premiumPhoneNumber = array( - '1900 ### ####' - ); + protected static $premiumPhoneNumber = [ + '1900 ### ####', + ]; public function tollFreeInternationalNumber() { - return static::randomElement(static::$tollFreeInternationalNumber); + return static::numerify(static::randomElement(static::$tollFreeInternationalNumber)); } public function tollFreeLineNumber() { - return static::randomElement(static::$tollFreeLineNumber); + return static::numerify(static::randomElement(static::$tollFreeLineNumber)); } public function premiumPhoneNumber() { - return static::randomElement(static::$premiumPhoneNumber); + return static::numerify(static::randomElement(static::$premiumPhoneNumber)); } public function mobileNumber() @@ -85,14 +85,12 @@ public function voipNumber() { $format = static::randomElement(static::$voipNumber); - return $this->generator->parse($format); + return static::numerify($this->generator->parse($format)); } public function internationalCodePrefix() { - $format = static::randomElement(static::$internationalCodePrefix); - - return $this->generator->parse($format); + return static::randomElement(static::$internationalCodePrefix); } public function zeroToEight() diff --git a/vendor/fakerphp/faker/src/Faker/Provider/en_UG/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/en_UG/Address.php new file mode 100644 index 0000000..9024b8b --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_UG/Address.php @@ -0,0 +1,101 @@ + + */ + protected static $areaCodeRegexes = [ + 2 => '(0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])', + 3 => '(0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[167]|5[12]|6[014]|8[056])', + 4 => '(0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])', + 5 => '(0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])', + 6 => '(0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[017]|6[0-279]|78|8[0-29])', + 7 => '(0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])', + 8 => '(0[1-68]|1[02-8]|2[08]|3[0-28]|4[3578]|5[046-9]|6[02-5]|7[028])', + 9 => '(0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69])', + ]; + /** * @see https://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers#United_States.2C_Canada.2C_and_other_NANP_countries */ - protected static $formats = array( + protected static $formats = [ // International format '+1-{{areaCode}}-{{exchangeCode}}-####', '+1 ({{areaCode}}) {{exchangeCode}}-####', @@ -25,8 +39,9 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '({{areaCode}}) {{exchangeCode}}-####', '1-{{areaCode}}-{{exchangeCode}}-####', '{{areaCode}}.{{exchangeCode}}.####', + ]; - // Extensions + protected static $formatsWithExtension = [ '{{areaCode}}-{{exchangeCode}}-#### x###', '({{areaCode}}) {{exchangeCode}}-#### x###', '1-{{areaCode}}-{{exchangeCode}}-#### x###', @@ -40,22 +55,26 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '{{areaCode}}-{{exchangeCode}}-#### x#####', '({{areaCode}}) {{exchangeCode}}-#### x#####', '1-{{areaCode}}-{{exchangeCode}}-#### x#####', - '{{areaCode}}.{{exchangeCode}}.#### x#####' - ); + '{{areaCode}}.{{exchangeCode}}.#### x#####', + ]; + + protected static $e164Formats = [ + '+1{{areaCode}}{{exchangeCode}}####', + ]; /** * @see https://en.wikipedia.org/wiki/Toll-free_telephone_number#United_States */ - protected static $tollFreeAreaCodes = array( - 800, 844, 855, 866, 877, 888 - ); - protected static $tollFreeFormats = array( + protected static $tollFreeAreaCodes = [ + 800, 844, 855, 866, 877, 888, + ]; + protected static $tollFreeFormats = [ // Standard formats '{{tollFreeAreaCode}}-{{exchangeCode}}-####', '({{tollFreeAreaCode}}) {{exchangeCode}}-####', '1-{{tollFreeAreaCode}}-{{exchangeCode}}-####', '{{tollFreeAreaCode}}.{{exchangeCode}}.####', - ); + ]; public function tollFreeAreaCode() { @@ -69,6 +88,16 @@ public function tollFreePhoneNumber() return self::numerify($this->generator->parse($format)); } + /** + * @return string + * + * @example '555-123-546 x123' + */ + public function phoneNumberWithExtension() + { + return static::numerify($this->generator->parse(static::randomElement(static::$formatsWithExtension))); + } + /** * NPA-format area code * @@ -78,11 +107,9 @@ public function tollFreePhoneNumber() */ public static function areaCode() { - $digits[] = self::numberBetween(2, 9); - $digits[] = self::randomDigit(); - $digits[] = self::randomDigitNot($digits[1]); + $firstDigit = self::numberBetween(2, 9); - return join('', $digits); + return $firstDigit . self::regexify(self::$areaCodeRegexes[$firstDigit]); } /** @@ -103,6 +130,6 @@ public static function exchangeCode() $digits[] = self::randomDigit(); } - return join('', $digits); + return implode('', $digits); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/en_US/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/en_US/Text.php index b3c5258..c15d89d 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_US/Text.php @@ -33,6 +33,7 @@ class Text extends \Faker\Provider\Text * THE MILLENNIUM FULCRUM EDITION 3.0 * * @see http://www.gutenberg.org/cache/epub/11/pg11.txt + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Address.php similarity index 80% rename from vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Address.php index 783bff4..881ba7b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Address.php @@ -4,37 +4,37 @@ class Address extends \Faker\Provider\en_US\Address { - protected static $cityPrefix = array('North', 'East', 'West', 'South', 'New', 'Lake', 'Port'); - protected static $citySuffix = array('fontein','town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt', 'chester', 'mouth', 'fort', 'haven', 'side', 'shire'); - protected static $buildingNumber = array('#####', '####', '###'); - protected static $streetSuffix = array( + protected static $cityPrefix = ['North', 'East', 'West', 'South', 'New', 'Lake', 'Port']; + protected static $citySuffix = ['fontein', 'town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt', 'chester', 'mouth', 'fort', 'haven', 'side', 'shire']; + protected static $buildingNumber = ['%####', '%###', '%##']; + protected static $streetSuffix = [ 'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape', 'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners', 'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve', 'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension', 'Extensions', 'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges', 'Fork', 'Forks', 'Fort', 'Freeway', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove', 'Groves', 'Harbor', 'Harbors', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Inlet', 'Island', 'Island', 'Islands', 'Islands', 'Isle', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake', 'Lakes', 'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop', 'Mall', 'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Mission', 'Mission', 'Motorway', 'Mount', 'Mountain', 'Mountain', 'Mountains', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks', 'Parkway', 'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plains', 'Plaza', 'Plaza', 'Point', 'Points', 'Port', 'Port', 'Ports', 'Ports', 'Prairie', 'Prairie', 'Radial', 'Ramp', 'Ranch', 'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue', 'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Skyway', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs', 'Square', 'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stravenue', 'Stravenue', 'Stream', 'Stream', 'Street', 'Street', 'Streets', 'Summit', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail', 'Trail', 'Tunnel', 'Tunnel', 'Turnpike', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via', 'Viaduct', 'View', 'Views', 'Village', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way', 'Ways', 'Well', 'Wells', - ); - protected static $postcode = array('####'); - protected static $province = array( + ]; + protected static $postcode = ['####']; + protected static $province = [ 'Eastern Cape', 'Free State', 'Gauteng', 'KwaZulu-Natal', 'Limpopo', 'Mpumalanga', 'North-West', 'Northern Cape', 'Western Cape', - ); - protected static $provinceAbbr = array( + ]; + protected static $provinceAbbr = [ 'EC', 'FS', 'GP', 'KZN', 'LP', 'MP', 'NW', 'NC', 'WC', - ); - protected static $cityFormats = array( + ]; + protected static $cityFormats = [ '{{cityPrefix}} {{firstName}}{{citySuffix}}', '{{cityPrefix}} {{firstName}}', '{{firstName}}{{citySuffix}}', '{{lastName}}{{citySuffix}}', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ '{{firstName}} {{streetSuffix}}', '{{lastName}} {{streetSuffix}}', - ); - protected static $streetAddressFormats = array( + ]; + protected static $streetAddressFormats = [ '{{buildingNumber}} {{streetName}}', '{{buildingNumber}} {{streetName}} {{secondaryAddress}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{city}}, {{provinceAbbr}} {{postcode}}", - ); - protected static $secondaryAddressFormats = array('Apt. ###', 'Suite ###'); + ]; + protected static $secondaryAddressFormats = ['Apt. ###', 'Suite ###']; /** * @example 'East' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Company.php similarity index 80% rename from vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Company.php index ddb987a..6480c69 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Company.php @@ -2,15 +2,12 @@ namespace Faker\Provider\en_ZA; -/** - * Class Company. - */ class Company extends \Faker\Provider\Company { - protected static $legalEntities = array( + protected static $legalEntities = [ '01', '02', '06', '07', '08', '09', '10', '11', '12', '14', '15', '16', '17', '20', '21', '22', '23', '24', '25', '26', '30', '31', '80', - ); + ]; /** * Return a valid company registration number. @@ -23,7 +20,7 @@ public function companyNumber() '%s/%s/%s', \Faker\Provider\DateTime::dateTimeBetween('-50 years', 'now')->format('Y'), static::randomNumber(6, true), - static::randomElement(static::$legalEntities) + static::randomElement(static::$legalEntities), ); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Internet.php new file mode 100644 index 0000000..c222227 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Internet.php @@ -0,0 +1,23 @@ +generator->dateTimeThisCentury(); } $birthDateString = $birthdate->format('ymd'); - switch (strtolower($gender)) { + + switch (strtolower($gender ?: '')) { case static::GENDER_FEMALE: $genderDigit = self::numberBetween(0, 4); + break; + case static::GENDER_MALE: $genderDigit = self::numberBetween(5, 9); + break; + default: $genderDigit = self::numberBetween(0, 9); } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/PhoneNumber.php similarity index 80% rename from vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/en_ZA/PhoneNumber.php index 02a364d..567631a 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/PhoneNumber.php @@ -4,31 +4,31 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+27({{areaCode}})#######', '+27{{areaCode}}#######', '0{{areaCode}}#######', '0{{areaCode}} ### ####', '0{{areaCode}}-###-####', - ); + ]; - protected static $cellphoneFormats = array( + protected static $cellphoneFormats = [ '+27{{cellphoneCode}}#######', '0{{cellphoneCode}}#######', '0{{cellphoneCode}} ### ####', '0{{cellphoneCode}}-###-####', - ); + ]; - protected static $specialFormats = array( + protected static $specialFormats = [ '{{specialCode}}#######', '{{specialCode}} ### ####', '{{specialCode}}-###-####', '({{specialCode}})###-####', - ); + ]; - protected static $tollFreeAreaCodes = array( + protected static $tollFreeAreaCodes = [ '0800', '0860', '0861', '0862', - ); + ]; /** * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_South_Africa @@ -36,24 +36,34 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber public static function areaCode() { $digits[] = self::numberBetween(1, 5); + switch ($digits[0]) { case 1: $digits[] = self::numberBetween(1, 8); + break; + case 2: $number = self::numberBetween(1, 8); - $digits[] = in_array($number, array(5, 6)) ? $number + 2 : $number; + $digits[] = in_array($number, [5, 6], false) ? $number + 2 : $number; + break; + case 3: $number = self::numberBetween(1, 8); - $digits[] = in_array($number, array(7, 8)) ? $number - 2 : $number; + $digits[] = in_array($number, [7, 8], false) ? $number - 2 : $number; + break; + case 4: $digits[] = self::numberBetween(1, 9); + break; + case 5: $number = self::numberBetween(1, 8); - $digits[] = in_array($number, array(2, 5)) ? $number + 2 : $number; + $digits[] = in_array($number, [2, 5], false) ? $number + 2 : $number; + break; } @@ -63,16 +73,22 @@ public static function areaCode() public static function cellphoneCode() { $digits[] = self::numberBetween(6, 8); + switch ($digits[0]) { case 6: $digits[] = self::numberBetween(0, 2); + break; + case 7: $number = self::numberBetween(1, 9); - $digits[] = in_array($number, array(5, 7)) ? $number + 1 : $number; + $digits[] = in_array($number, [5, 7], false) ? $number + 1 : $number; + break; + case 8: $digits[] = self::numberBetween(1, 9); + break; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Address.php similarity index 60% rename from vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/es_AR/Address.php index 70f503f..457f8ca 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Address.php @@ -4,35 +4,35 @@ class Address extends \Faker\Provider\es_ES\Address { - protected static $cityPrefix = array('San', 'Puerto', 'Villa', 'Gral.', 'Don'); - protected static $citySuffix = array('del Mar', 'del Norte', 'del Este', 'del Sur', 'del Oeste', 'del Mirador'); - protected static $buildingNumber = array('#####', '####', '###', '##', '#'); - protected static $streetSuffix = array(''); - protected static $postcode = array('####', '#####'); - protected static $state = array( - 'Buenos Aires', 'Catamarca', 'Chaco', 'Chubut', 'Córdoba', 'Corrientes', 'Entre Ríos', 'Formosa', 'Jujuy', 'La Pampa', 'La Rioja', 'Mendoza', 'Misiones', 'Neuquén', 'Río Negro', 'Salta', 'San Juan', 'San Luis', 'Santa Cruz', 'Santa Fe', 'Santiago del Estero', 'Tierra del Fuego, Antártida e Islas del Atlántico Sur', 'Tucumán' - ); - protected static $stateAbbr = array( - 'AR-B', 'AR-K', 'AR-H', 'AR-U', 'AR-X', 'AR-W', 'AR-E', 'AR-P', 'AR-Y', 'AR-L', 'AR-F', 'AR-M', 'AR-N', 'AR-Q', 'AR-R', 'AR-A', 'AR-J', 'AR-D', 'AR-Z', 'AR-S', 'AR-G', 'AR-V', 'AR-T' - ); - protected static $cityFormats = array( + protected static $cityPrefix = ['San', 'Puerto', 'Villa', 'Gral.', 'Don']; + protected static $citySuffix = ['del Mar', 'del Norte', 'del Este', 'del Sur', 'del Oeste', 'del Mirador']; + protected static $buildingNumber = ['%####', '%###', '%##', '%#', '%']; + protected static $streetSuffix = ['']; + protected static $postcode = ['####', '#####']; + protected static $state = [ + 'Buenos Aires', 'Catamarca', 'Chaco', 'Chubut', 'Córdoba', 'Corrientes', 'Entre Ríos', 'Formosa', 'Jujuy', 'La Pampa', 'La Rioja', 'Mendoza', 'Misiones', 'Neuquén', 'Río Negro', 'Salta', 'San Juan', 'San Luis', 'Santa Cruz', 'Santa Fe', 'Santiago del Estero', 'Tierra del Fuego, Antártida e Islas del Atlántico Sur', 'Tucumán', + ]; + protected static $stateAbbr = [ + 'AR-B', 'AR-K', 'AR-H', 'AR-U', 'AR-X', 'AR-W', 'AR-E', 'AR-P', 'AR-Y', 'AR-L', 'AR-F', 'AR-M', 'AR-N', 'AR-Q', 'AR-R', 'AR-A', 'AR-J', 'AR-D', 'AR-Z', 'AR-S', 'AR-G', 'AR-V', 'AR-T', + ]; + protected static $cityFormats = [ '{{cityPrefix}} {{firstName}} {{citySuffix}}', '{{cityPrefix}} {{firstName}}', '{{firstName}} {{citySuffix}}', '{{lastName}} {{citySuffix}}', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ '{{firstName}} {{streetSuffix}}', - '{{lastName}} {{streetSuffix}}' - ); - protected static $streetAddressFormats = array( + '{{lastName}} {{streetSuffix}}', + ]; + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', '{{streetName}} {{buildingNumber}} {{secondaryAddress}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{city}}, {{stateAbbr}} {{postcode}}", - ); - protected static $secondaryAddressFormats = array('Depto. ###', 'Hab. ###', 'Piso #', 'Piso ##', 'PB A', '# A', '# B', '# C', '# D', '# E', '# F', '## A', '## B', '## C', '## D', '## E', '## F', '# #', '## #'); + ]; + protected static $secondaryAddressFormats = ['Depto. ###', 'Hab. ###', 'Piso #', 'Piso ##', 'PB A', '# A', '# B', '# C', '# D', '# E', '# F', '## A', '## B', '## C', '## D', '## E', '## F', '# #', '## #']; /** * @example 'San' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Company.php similarity index 88% rename from vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/es_AR/Company.php index b255ef6..bc6211c 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Company.php @@ -4,51 +4,52 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}}-{{lastName}}', '{{lastName}} y {{lastName}}', '{{lastName}} de {{lastName}}', - '{{lastName}}, {{lastName}} y {{lastName}}' - ); + '{{lastName}}, {{lastName}} y {{lastName}}', + ]; - protected static $catchPhraseWords = array( - array( - 'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented' - ), - array( - '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance' - ), - array( - 'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce' - ) - ); + protected static $catchPhraseWords = [ + [ + 'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented', + ], + [ + '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'asymmetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance', + ], + [ + 'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce', + ], + ]; - protected static $bsWords = array( - array( - 'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize' - ), - array( - 'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich' - ), - array( - 'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies' - ) - ); + protected static $bsWords = [ + [ + 'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize', + ], + [ + 'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich', + ], + [ + 'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies', + ], + ]; - protected static $companySuffix = array('e Hijo', 'e Hija', 'e Hijos', 'y Asoc.', 'y Flia.', 'SRL', 'SA', 'S. de H.'); + protected static $companySuffix = ['e Hijo', 'e Hija', 'e Hijos', 'y Asoc.', 'y Flia.', 'SRL', 'SA', 'S. de H.']; /** * @example 'Robust full-range hub' */ public function catchPhrase() { - $result = array(); + $result = []; + foreach (static::$catchPhraseWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } /** @@ -56,11 +57,12 @@ public function catchPhrase() */ public function bs() { - $result = array(); + $result = []; + foreach (static::$bsWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Person.php similarity index 94% rename from vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/es_AR/Person.php index 1c16f38..30f6385 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Person.php @@ -4,7 +4,7 @@ class Person extends \Faker\Provider\Person { - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', @@ -12,9 +12,9 @@ class Person extends \Faker\Provider\Person '{{titleMale}} {{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}} {{suffix}}', '{{titleMale}} {{firstNameMale}} {{lastName}} {{suffix}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', @@ -22,9 +22,9 @@ class Person extends \Faker\Provider\Person '{{titleFemale}} {{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}} {{suffix}}', '{{titleFemale}} {{firstNameFemale}} {{lastName}} {{suffix}}', - ); + ]; - protected static $firstNameMale = array( + protected static $firstNameMale = [ 'Aarón', 'Adrián', 'Agustín', 'Alan', 'Alejandro', 'Alex', 'Alexander', 'Alonso', 'Andrés', 'Anthony', 'Antonio', 'Axel', 'Benjamín', 'Bruno', 'Camilo', 'Carlos', 'Christian', 'Christopher', 'Cristóbal', 'Damián', 'Daniel', 'Dante', 'David', 'Diego', 'Diego Alejandro', 'Dylan', 'Eduardo', 'Elías', 'Emiliano', 'Emilio', 'Emmanuel', 'Esteban', 'Facundo', 'Felipe', 'Fernando', 'Francisco', 'Franco', @@ -33,10 +33,10 @@ class Person extends \Faker\Provider\Person 'Juan Pablo', 'Juan Sebastián', 'Julián', 'Kevin', 'Lautaro', 'Leonardo', 'Lorenzo', 'Lucas', 'Luciano', 'Luis', 'Manuel', 'Mario', 'Martín', 'Mateo', 'Matthew', 'Matías', 'Maximiliano', 'Miguel', 'Miguel Ángel', 'Máximo', 'Nahuel', 'Pablo', 'Pedro', 'Rafael', 'Ricardo', 'Rodrigo', 'Samuel', 'Santiago', 'Santino', 'Sebastián', 'Sergio', 'Simón', 'Thiago', 'Tomas', 'Valentino', 'Valentín', - 'Vicente', 'Bautista', 'Juan Esteban', 'Hidalgo' - ); + 'Vicente', 'Bautista', 'Juan Esteban', 'Hidalgo', + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'Abigail', 'Abril', 'Adriana', 'Agustina', 'Alejandra', 'Alessandra', 'Alexa', 'Allison', 'Alma', 'Amanda', 'Amelia', 'Ana', 'Ana Paula', 'Ana Sofía', 'Andrea', 'Antonella', 'Antonia', 'Ariadna', 'Ariana', 'Ashley', 'Bianca', 'Camila', 'Carla', 'Carolina', 'Catalina', 'Clara', 'Constanza', 'Daniela', 'Delfina', 'Elena', 'Elizabeth', 'Emilia', 'Emily', 'Emma', 'Fabiana', 'Florencia', 'Fátima', @@ -45,10 +45,10 @@ class Person extends \Faker\Provider\Person 'Mariana', 'Mariangel', 'Martina', 'María', 'María Alejandra', 'María Camila', 'María Fernanda', 'María José', 'María Paula', 'Micaela', 'Michelle', 'Miranda', 'Montserrat', 'Mía', 'Nadia', 'Natalia', 'Nicole', 'Oliva', 'Olivia', 'Ornela', 'Paula', 'Paulina', 'Rafaela', 'Rebeca', 'Regina', 'Renata', 'Romina', 'Salomé', 'Samantha', 'Sara', 'Silvana', 'Sofía', 'Sophie', 'Valentina', 'Valeria', 'Valery', - 'Victoria', 'Violeta', 'Zoe', 'Aitana', 'Sara Sofía', 'Ximena' - ); + 'Victoria', 'Violeta', 'Zoe', 'Aitana', 'Sara Sofía', 'Ximena', + ]; - protected static $lastName = array( + protected static $lastName = [ 'Abeyta', 'Abrego', 'Abreu', 'Acevedo', 'Acosta', 'Acuña', 'Adame', 'Adorno', 'Agosto', 'Aguayo', 'Águilar', 'Aguilera', 'Aguirre', 'Alanis', 'Alaniz', 'Alarcón', 'Alba', 'Alcala', 'Alcántar', 'Alcaraz', 'Alejandro', 'Alemán', 'Alfaro', 'Alicea', 'Almanza', 'Almaraz', 'Almonte', 'Alonso', 'Alonzo', 'Altamirano', 'Alva', 'Alvarado', 'Álvarez', 'Amador', 'Amaya', 'Anaya', 'Anguiano', 'Angulo', 'Aparicio', 'Apodaca', 'Aponte', 'Aragón', 'Araña', 'Aranda', 'Arce', 'Archuleta', 'Arellano', 'Arenas', 'Arevalo', 'Arguello', 'Arias', 'Armas', 'Armendáriz', 'Armenta', 'Armijo', 'Arredondo', 'Arreola', 'Arriaga', 'Arroyo', 'Arteaga', 'Atencio', 'Ávalos', 'Ávila', 'Avilés', 'Ayala', 'Baca', 'Badillo', 'Báez', 'Baeza', 'Bahena', 'Balderas', 'Ballesteros', 'Banda', 'Bañuelos', 'Barajas', 'Barela', 'Barragán', 'Barraza', 'Barrera', 'Barreto', 'Barrientos', 'Barrios', 'Batista', 'Becerra', 'Beltrán', 'Benavides', 'Benavídez', 'Benítez', 'Bermúdez', 'Bernal', 'Berríos', 'Bétancourt', 'Blanco', 'Bonilla', 'Borrego', 'Botello', 'Bravo', 'Briones', 'Briseño', 'Brito', 'Bueno', 'Burgos', 'Bustamante', 'Bustos', 'Caballero', 'Cabán', 'Cabrera', 'Cadena', 'Caldera', 'Calderón', 'Calvillo', 'Camacho', 'Camarillo', 'Campos', 'Canales', 'Candelaria', 'Cano', 'Cantú', 'Caraballo', 'Carbajal', 'Cardenas', 'Cardona', 'Carmona', 'Carranza', 'Carrasco', 'Carrasquillo', 'Carreón', 'Carrera', 'Carrero', 'Carrillo', 'Carrion', 'Carvajal', 'Casanova', 'Casares', 'Casárez', 'Casas', 'Casillas', 'Castañeda', 'Castellanos', 'Castillo', 'Castro', 'Cavazos', 'Cazares', 'Ceballos', 'Cedillo', 'Ceja', 'Centeno', 'Cepeda', 'Cerda', 'Cervantes', 'Cervántez', 'Chacón', 'Chapa', 'Chavarría', 'Chávez', 'Cintrón', 'Cisneros', 'Collado', 'Collazo', 'Colón', 'Colunga', 'Concepción', 'Contreras', 'Cordero', 'Córdova', 'Cornejo', 'Corona', 'Coronado', 'Corral', 'Corrales', 'Correa', 'Cortés', 'Cortez', 'Cotto', 'Covarrubias', 'Crespo', 'Cruz', 'Cuellar', 'Curiel', @@ -71,14 +71,14 @@ class Person extends \Faker\Provider\Person 'Ulibarri', 'Ulloa', 'Urbina', 'Ureña', 'Urías', 'Uribe', 'Urrutia', 'Vaca', 'Valadez', 'Valdés', 'Valdez', 'Valdivia', 'Valencia', 'Valentín', 'Valenzuela', 'Valladares', 'Valle', 'Vallejo', 'Valles', 'Valverde', 'Vanegas', 'Varela', 'Vargas', 'Vásquez', 'Vázquez', 'Vega', 'Vela', 'Velasco', 'Velásquez', 'Velázquez', 'Vélez', 'Véliz', 'Venegas', 'Vera', 'Verdugo', 'Verduzco', 'Vergara', 'Viera', 'Vigil', 'Villa', 'Villagómez', 'Villalobos', 'Villalpando', 'Villanueva', 'Villareal', 'Villarreal', 'Villaseñor', 'Villegas', 'Yáñez', 'Ybarra', - 'Zambrano', 'Zamora', 'Zamudio', 'Zapata', 'Zaragoza', 'Zarate', 'Zavala', 'Zayas', 'Zelaya', 'Zepeda', 'Zúñiga' - ); + 'Zambrano', 'Zamora', 'Zamudio', 'Zapata', 'Zaragoza', 'Zarate', 'Zavala', 'Zayas', 'Zelaya', 'Zepeda', 'Zúñiga', + ]; - protected static $titleMale = array('Sr.', 'Dn.', 'Dr.', 'Lic.', 'Ing.'); + protected static $titleMale = ['Sr.', 'Dn.', 'Dr.', 'Lic.', 'Ing.']; - protected static $titleFemale = array('Sra.', 'Srita.', 'Dr.', 'Lic.', 'Ing.'); + protected static $titleFemale = ['Sra.', 'Srita.', 'Dr.', 'Lic.', 'Ing.']; - private static $suffix = array('Hijo', 'Segundo', 'Tercero'); + private static $suffix = ['Hijo', 'Segundo', 'Tercero']; /** * @example 'Hijo' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/PhoneNumber.php similarity index 95% rename from vendor/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/es_AR/PhoneNumber.php index c006dbd..7ee8a13 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/es_AR/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+##(#)##########', '+##(#)##########', '###-###-####', @@ -38,5 +38,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '(####)154#-####', '(####)154#-####', '(####)155#-####', - ); + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/es_ES/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/es_ES/Address.php new file mode 100644 index 0000000..d13901c --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/es_ES/Address.php @@ -0,0 +1,101 @@ +numberBetween(10000, 100000000); } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/es_VE/PhoneNumber.php similarity index 92% rename from vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/es_VE/PhoneNumber.php index 74caecc..cfe6438 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/es_VE/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+58 2## ### ####', '+58 2## #######', '+58 2#########', @@ -25,5 +25,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '4#########', '4##-###-####', '4##-#######', - ); + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/et_EE/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/et_EE/Person.php new file mode 100644 index 0000000..8eafe73 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/et_EE/Person.php @@ -0,0 +1,84 @@ + 1; $i--) { + for ($i = 10; $i > 1; --$i) { $sum += $subNationalCodeString[$count] * ($i); - $count++; + ++$count; } if (($sum % 11) < 2) { return $sum % 11; } + return 11 - ($sum % 11); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/fa_IR/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/fa_IR/PhoneNumber.php new file mode 100644 index 0000000..a9606d0 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/fa_IR/PhoneNumber.php @@ -0,0 +1,76 @@ +getConsecutiveWords($indexSize); - $result = array(); + $result = []; $resultLength = 0; // take a random starting point $next = static::randomKey($words); + while ($resultLength < $maxNbChars && isset($words[$next])) { // fetch a random word to append $word = static::randomElement($words[$next]); @@ -57,7 +61,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) // build result $result = implode(' ', $result); - return $result.'.'; + return $result . '.'; } /** @@ -68,6 +72,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) * Language: Persian * * @see http://fa.wikisource.org/wiki/%D9%85%D8%AF%DB%8C%D8%B1_%D9%85%D8%AF%D8%B1%D8%B3%D9%87 + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Address.php similarity index 81% rename from vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Address.php index 8e0829e..d72951b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Address.php @@ -4,17 +4,17 @@ class Address extends \Faker\Provider\Address { - protected static $cityPrefix = array('Pohjois', 'Etelä', 'Itä', 'Länsi', 'Uusi', 'Uus'); - protected static $citySuffix = array('kylä', 'niemi', 'järvi', 'joki', 'lampi', 'mäki', 'vesi', 'niemi', 'harju', 'lahti', 'harju', 'salmi', 'koski', 'pudas', 'saari'); - protected static $buildingNumber = array('####', '###', '##', '#', '#'); - protected static $streetSuffix = array( - 'tie', 'kuja', 'polku', 'kierros', 'kulma', 'katu', 'kaarre', 'kaari', 'rinne', 'kaarto', 'haka', 'silta', 'rinne', 'töyry' - ); - protected static $postcode = array('#####'); - protected static $state = array( - 'Ahvenanmaa', 'Etelä-Karjala', 'Etelä-Pohjanmaa', 'Etelä-Savo', 'Kainuu', 'Kanta-Häme', 'Keski-Pohjanmaa', 'Keski-Suomi', 'Kymenlaakso', 'Lappi', 'Pirkanmaa', 'Pohjanmaa', 'Pohjois-Karjala', 'Pohjois-Pohjanmaa', 'Pohjois-Savo', 'Päijät-Häme', 'Satakunta', 'Uusimaa', 'Varsinais-Suomi' - ); - protected static $country = array( + protected static $cityPrefix = ['Pohjois', 'Etelä', 'Itä', 'Länsi', 'Uusi', 'Uus']; + protected static $citySuffix = ['kylä', 'niemi', 'järvi', 'joki', 'lampi', 'mäki', 'vesi', 'niemi', 'harju', 'lahti', 'harju', 'salmi', 'koski', 'pudas', 'saari']; + protected static $buildingNumber = ['%###', '%##', '%#', '%']; + protected static $streetSuffix = [ + 'tie', 'kuja', 'polku', 'kierros', 'kulma', 'katu', 'kaarre', 'kaari', 'rinne', 'kaarto', 'haka', 'silta', 'rinne', 'töyry', + ]; + protected static $postcode = ['#####']; + protected static $state = [ + 'Ahvenanmaa', 'Etelä-Karjala', 'Etelä-Pohjanmaa', 'Etelä-Savo', 'Kainuu', 'Kanta-Häme', 'Keski-Pohjanmaa', 'Keski-Suomi', 'Kymenlaakso', 'Lappi', 'Pirkanmaa', 'Pohjanmaa', 'Pohjois-Karjala', 'Pohjois-Pohjanmaa', 'Pohjois-Savo', 'Päijät-Häme', 'Satakunta', 'Uusimaa', 'Varsinais-Suomi', + ]; + protected static $country = [ 'Afganistan', 'Alankomaat', 'Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua ja Barbuda', 'Argentiina', 'Armenia', 'Australia', 'Azerbaidẑan', 'Bahama', 'Bahrain', 'Bangladesh', 'Barbados', 'Belgia', 'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bosnia ja Hertsegovina', 'Botswana', 'Brasilia', 'Brunel', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Chile', 'Costa Rica', @@ -37,27 +37,27 @@ class Address extends \Faker\Provider\Address 'Uganda', 'Ukraina', 'Unkari', 'Uruguay', 'Uusi-Seelanti', 'Uzbekistan', 'Valko-Venäjä', 'Vanuatu', 'Vatikaanivaltio', 'Venzuela', 'Venäjä', 'Vietnam', 'Viro', 'Yhdistyneet Arabiemiirikunnat', 'Yhdistynyt kuningaskunta', 'Yhdysvallat', - 'Zimbabwe' - ); - protected static $cityFormats = array( + 'Zimbabwe', + ]; + protected static $cityFormats = [ '{{cityPrefix}}-{{firstName}}{{citySuffix}}', '{{cityPrefix}}-{{firstName}}', '{{firstName}}{{citySuffix}}', '{{lastName}}{{citySuffix}}', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ '{{firstName}}{{streetSuffix}}', - '{{lastName}}{{streetSuffix}}' - ); - protected static $streetAddressFormats = array( + '{{lastName}}{{streetSuffix}}', + ]; + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - '{{streetName}} {{buildingNumber}} {{secondaryAddress}}' - ); - protected static $addressFormats = array( + '{{streetName}} {{buildingNumber}} {{secondaryAddress}}', + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}, {{state}}", "{{streetAddress}}\n{{postcode}} {{city}}", - ); - protected static $secondaryAddressFormats = array('###'); + ]; + protected static $secondaryAddressFormats = ['###']; /** * @example 'Pohjois' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Company.php similarity index 80% rename from vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Company.php index 9640c24..ee60e8f 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Company.php @@ -4,49 +4,50 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}}-{{lastName}}', - '{{lastName}}, {{lastName}} and {{lastName}}' - ); + '{{lastName}}, {{lastName}} and {{lastName}}', + ]; - protected static $catchPhraseWords = array( - array( - 'Ainoa', 'Adaptiivinen', 'Automatisoitu', 'Avoin', 'Avoimen lähdekoodin', 'Digitalisoitu', 'Dynaaminen', 'Erikoistunut', 'Ennakoiva', 'Ergonominen', 'Hallittu', 'Hajautettu', 'Horisontaalinen', 'Integroitu', 'Innovatiivinen', 'Jaettava', 'Keskittynyt', 'Käyttäjäystävällinen', 'Laajenettu', 'Laajennettava', 'Lievittävä', 'Maailmanlaajuinen', 'Muokattava', 'Monitoroitu', 'Monikerroksinen', 'Ohjelmoitava', 'Optimoitu', 'Organisoitu', 'Orgaaninen', 'Rinnastettava', 'Räätälöitävä', 'Saumaton', 'Tasapainotettava', 'Täysin yhteensopiva', 'Yhteensopiva', 'Yksinomainen', 'Vaiheittainen', 'Virtuaalinen', 'Visionäärinen', 'Valinnainen', 'Verkostoitunut' - ), - array( - '24/7', '3. sukupolven', '4. sukupolven', '5. sukupolven', '6. sukupolven', 'alueellinen', 'analysoiva', 'assymmetrinen', 'asynkroninen', 'asiakaslähtöinen', 'dynaaminen', 'globaali', 'heuristinen', 'hybridi', 'inkrementaalinen', 'interaktiivinen', 'kahtiajakautuva', 'kaksisuuntainen', 'konkreettinen', 'korkean tason', 'logistinen', 'johdonmukainen', 'maksimaalinen', 'moniajettava', 'multimedia', 'optimaalinen', 'optimoiva', 'omistautunut', 'paikallinen', 'reaaliaikainen', 'seuraavan sukupolven', 'skaalautuva', 'systeeminen' - ), - array( - 'algoritmi', 'yhteisö', 'analysaattori', 'sovellus', 'lähestymistapa', 'arkkitehtuuri', 'arkisto', 'ryhmä', 'sovitin', 'benchmark', 'kapasiteetti', 'tietokanta', 'piiri', 'emulaatio', 'konsepti', 'firmware', 'rakenne', 'funktio', 'rauta', 'help-desk', 'hierarkia', 'hubi', 'implementaatio', 'intranet', 'malli', 'ohjelmisto', 'ratkaisu', 'strategia', 'menestys', 'projekti', 'tuote', 'tuki', 'www-sivusto', 'synergia', 'protokolla', 'koodaus', 'ennuste', 'joustavuus', 'extranet', 'salaus', 'kompleksisuus', 'ydin', 'asenne', 'liitto', 'internetratkaisu', 'asennus', 'monitorointi', 'infrastruktuuri' - ) - ); + protected static $catchPhraseWords = [ + [ + 'Ainoa', 'Adaptiivinen', 'Automatisoitu', 'Avoin', 'Avoimen lähdekoodin', 'Digitalisoitu', 'Dynaaminen', 'Erikoistunut', 'Ennakoiva', 'Ergonominen', 'Hallittu', 'Hajautettu', 'Horisontaalinen', 'Integroitu', 'Innovatiivinen', 'Jaettava', 'Keskittynyt', 'Käyttäjäystävällinen', 'Laajenettu', 'Laajennettava', 'Lievittävä', 'Maailmanlaajuinen', 'Muokattava', 'Monitoroitu', 'Monikerroksinen', 'Ohjelmoitava', 'Optimoitu', 'Organisoitu', 'Orgaaninen', 'Rinnastettava', 'Räätälöitävä', 'Saumaton', 'Tasapainotettava', 'Täysin yhteensopiva', 'Yhteensopiva', 'Yksinomainen', 'Vaiheittainen', 'Virtuaalinen', 'Visionäärinen', 'Valinnainen', 'Verkostoitunut', + ], + [ + '24/7', '3. sukupolven', '4. sukupolven', '5. sukupolven', '6. sukupolven', 'alueellinen', 'analysoiva', 'assymmetrinen', 'asynkroninen', 'asiakaslähtöinen', 'dynaaminen', 'globaali', 'heuristinen', 'hybridi', 'inkrementaalinen', 'interaktiivinen', 'kahtiajakautuva', 'kaksisuuntainen', 'konkreettinen', 'korkean tason', 'logistinen', 'johdonmukainen', 'maksimaalinen', 'moniajettava', 'multimedia', 'optimaalinen', 'optimoiva', 'omistautunut', 'paikallinen', 'reaaliaikainen', 'seuraavan sukupolven', 'skaalautuva', 'systeeminen', + ], + [ + 'algoritmi', 'yhteisö', 'analysaattori', 'sovellus', 'lähestymistapa', 'arkkitehtuuri', 'arkisto', 'ryhmä', 'sovitin', 'benchmark', 'kapasiteetti', 'tietokanta', 'piiri', 'emulaatio', 'konsepti', 'firmware', 'rakenne', 'funktio', 'rauta', 'help-desk', 'hierarkia', 'hubi', 'implementaatio', 'intranet', 'malli', 'ohjelmisto', 'ratkaisu', 'strategia', 'menestys', 'projekti', 'tuote', 'tuki', 'www-sivusto', 'synergia', 'protokolla', 'koodaus', 'ennuste', 'joustavuus', 'extranet', 'salaus', 'kompleksisuus', 'ydin', 'asenne', 'liitto', 'internetratkaisu', 'asennus', 'monitorointi', 'infrastruktuuri', + ], + ]; - protected static $bsWords = array( - array( - 'implementoi', 'käyttää', 'integroi', 'optimoi', 'kehittää', 'muuntaa', 'omaksuu', 'mahdollistaa', 'orkestoi', 'uudelleenkeksii', 'kerää', 'kokoaa', 'kasvattaa', 'parantaa', 'helpottaa', 'toimittaa', 'antaa', 'täyttää', 'vapauttaa', 'ajaa', 'jatkaa', 'mullistaa', 'iteroi', 'generoi', 'hyödyntää', 'brandaa', 'muokkaa', 'kasvattaa', 'kytkee', 'innovoi', 'viljelee', 'visualisoi' - ), - array( - 'maailmanluokan', '24/7', 'maailmanlaajuisia', 'interaktiivisia', 'seksikkäitä', 'rikkaita', 'visionäärisiä', 'parhaita', 'viraaleja', 'dynaamisia', 'strategisia', 'vallankumouksellisia', '24/365', 'e-bisnes', 'virtuaalisia', 'intuitiivisia', 'ennakoivia', 'kitkattomia', 'jaettuja', 'reaaliaikaisia', 'huippuluokan', 'tehokkaita', 'suorituskykyisiä', 'pystyviä', 'laajennettavissa olevia', 'venyviä', 'yhteisvaikutteisia', 'seuraavan sukupolven', 'plug-and-play', 'yhteistyökykyisiä', 'kustomoituja', 'langattomia', 'selkeitä', 'avoimen lähdekoodin' - ), - array( - 'kanavia', 'silmämunia', 'ratkaisuja', 'e-palveluja', 'portaaleja', 'teknologioita', 'käyttäjiä', 'verkkoja', 'palveluita', 'ohjelmia', 'web-ohjelmistoja', 'kokemuksia', 'systeemejä', 'rajapintoja', 'yhteisöjä', 'markkinarakoja', 'skeemoja', 'arkkitehtuureja', 'malleja', 'sisältöä', 'mainoksia' - ) - ); + protected static $bsWords = [ + [ + 'implementoi', 'käyttää', 'integroi', 'optimoi', 'kehittää', 'muuntaa', 'omaksuu', 'mahdollistaa', 'orkestoi', 'uudelleenkeksii', 'kerää', 'kokoaa', 'kasvattaa', 'parantaa', 'helpottaa', 'toimittaa', 'antaa', 'täyttää', 'vapauttaa', 'ajaa', 'jatkaa', 'mullistaa', 'iteroi', 'generoi', 'hyödyntää', 'brandaa', 'muokkaa', 'kasvattaa', 'kytkee', 'innovoi', 'viljelee', 'visualisoi', + ], + [ + 'maailmanluokan', '24/7', 'maailmanlaajuisia', 'interaktiivisia', 'seksikkäitä', 'rikkaita', 'visionäärisiä', 'parhaita', 'viraaleja', 'dynaamisia', 'strategisia', 'vallankumouksellisia', '24/365', 'e-bisnes', 'virtuaalisia', 'intuitiivisia', 'ennakoivia', 'kitkattomia', 'jaettuja', 'reaaliaikaisia', 'huippuluokan', 'tehokkaita', 'suorituskykyisiä', 'pystyviä', 'laajennettavissa olevia', 'venyviä', 'yhteisvaikutteisia', 'seuraavan sukupolven', 'plug-and-play', 'yhteistyökykyisiä', 'kustomoituja', 'langattomia', 'selkeitä', 'avoimen lähdekoodin', + ], + [ + 'kanavia', 'silmämunia', 'ratkaisuja', 'e-palveluja', 'portaaleja', 'teknologioita', 'käyttäjiä', 'verkkoja', 'palveluita', 'ohjelmia', 'web-ohjelmistoja', 'kokemuksia', 'systeemejä', 'rajapintoja', 'yhteisöjä', 'markkinarakoja', 'skeemoja', 'arkkitehtuureja', 'malleja', 'sisältöä', 'mainoksia', + ], + ]; - protected static $companySuffix = array('OY', 'AB', 'OY AB', 'RY', 'OYj', 'Tmi.', 'Inc.', 'Ltd'); + protected static $companySuffix = ['OY', 'AB', 'OY AB', 'RY', 'OYj', 'Tmi.', 'Inc.', 'Ltd']; /** * @example 'Ainoa 3.sukupolven ohjelmisto' */ public function catchPhrase() { - $result = array(); + $result = []; + foreach (static::$catchPhraseWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } /** @@ -54,11 +55,12 @@ public function catchPhrase() */ public function bs() { - $result = array(); + $result = []; + foreach (static::$bsWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Internet.php new file mode 100644 index 0000000..8fba5f2 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Internet.php @@ -0,0 +1,9 @@ +format('dmy'); - switch ((int)($birthdate->format('Y')/100)) { + switch ((int) ($birthdate->format('Y') / 100)) { case 18: $centurySign = '+'; + break; + case 19: $centurySign = '-'; + break; + case 20: $centurySign = 'A'; + break; + default: throw new \InvalidArgumentException('Year must be between 1800 and 2099 inclusive.'); } $randomDigits = self::numberBetween(0, 89); + if ($gender && $gender == static::GENDER_MALE) { if ($randomDigits === 0) { - $randomDigits .= static::randomElement(array(3,5,7,9)); + $randomDigits .= static::randomElement([3, 5, 7, 9]); } else { - $randomDigits .= static::randomElement(array(1,3,5,7,9)); + $randomDigits .= static::randomElement([1, 3, 5, 7, 9]); } } elseif ($gender && $gender == static::GENDER_FEMALE) { if ($randomDigits === 0) { - $randomDigits .= static::randomElement(array(2,4,6,8)); + $randomDigits .= static::randomElement([2, 4, 6, 8]); } else { - $randomDigits .= static::randomElement(array(0,2,4,6,8)); + $randomDigits .= static::randomElement([0, 2, 4, 6, 8]); } } else { if ($randomDigits === 0) { $randomDigits .= self::numberBetween(2, 9); } else { - $randomDigits .= (string)static::numerify('#'); + $randomDigits .= (string) static::numerify('#'); } } $randomDigits = str_pad($randomDigits, 3, '0', STR_PAD_LEFT); - $checksum = $checksumCharacters[(int)($datePart . $randomDigits) % strlen($checksumCharacters)]; + $checksum = $checksumCharacters[(int) ($datePart . $randomDigits) % strlen($checksumCharacters)]; return $datePart . $centurySign . $randomDigits . $checksum; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/PhoneNumber.php similarity index 74% rename from vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/fi_FI/PhoneNumber.php index a323074..db06ce2 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/PhoneNumber.php @@ -5,10 +5,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { /** - * @link https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/localcallsandtelecommunicationsareas/mapoftelecommunicationsareas.html + * @see https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/localcallsandtelecommunicationsareas/mapoftelecommunicationsareas.html + * * @var array */ - protected static $landLineareaCodes = array( + protected static $landLineareaCodes = [ '02', '03', '05', @@ -22,32 +23,33 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '017', '018', '019', - ); + ]; /** - * @link https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/mobilenetworks/mobilenetworkareacodes.html + * @see https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/mobilenetworks/mobilenetworkareacodes.html + * * @var array */ - protected static $mobileNetworkAreaCodes = array( + protected static $mobileNetworkAreaCodes = [ '040', '050', '044', '045', - ); + ]; - protected static $numberFormats = array( + protected static $numberFormats = [ '### ####', '#######', - ); + ]; - protected static $formats = array( + protected static $formats = [ '+358 ({{ e164MobileNetworkAreaCode }}) {{ numberFormat }}', '+358 {{ e164MobileNetworkAreaCode }} {{ numberFormat }}', '+358 ({{ e164landLineAreaCode }}) {{ numberFormat }}', '+358 {{ e164landLineAreaCode }} {{ numberFormat }}', '{{ mobileNetworkAreaCode }}{{ separator }}{{ numberFormat }}', '{{ landLineAreaCode }}{{ separator }}{{ numberFormat }}', - ); + ]; /** * @return string @@ -94,6 +96,6 @@ public function numberFormat() */ public function separator() { - return static::randomElement(array(' ', '-')); + return static::randomElement([' ', '-']); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/fr_BE/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/fr_BE/Address.php new file mode 100644 index 0000000..1796817 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/fr_BE/Address.php @@ -0,0 +1,72 @@ + 'Argovie'), - array('AI' => 'Appenzell Rhodes-Intérieures'), - array('AR' => 'Appenzell Rhodes-Extérieures'), - array('BE' => 'Berne'), - array('BL' => 'Bâle-Campagne'), - array('BS' => 'Bâle-Ville'), - array('FR' => 'Fribourg'), - array('GE' => 'Genève'), - array('GL' => 'Glaris'), - array('GR' => 'Grisons'), - array('JU' => 'Jura'), - array('LU' => 'Lucerne'), - array('NE' => 'Neuchâtel'), - array('NW' => 'Nidwald'), - array('OW' => 'Obwald'), - array('SG' => 'Saint-Gall'), - array('SH' => 'Schaffhouse'), - array('SO' => 'Soleure'), - array('SZ' => 'Schwytz'), - array('TG' => 'Thurgovie'), - array('TI' => 'Tessin'), - array('UR' => 'Uri'), - array('VD' => 'Vaud'), - array('VS' => 'Valais'), - array('ZG' => 'Zoug'), - array('ZH' => 'Zurich') - ); - - protected static $cityFormats = array( + protected static $canton = [ + ['AG' => 'Argovie'], + ['AI' => 'Appenzell Rhodes-Intérieures'], + ['AR' => 'Appenzell Rhodes-Extérieures'], + ['BE' => 'Berne'], + ['BL' => 'Bâle-Campagne'], + ['BS' => 'Bâle-Ville'], + ['FR' => 'Fribourg'], + ['GE' => 'Genève'], + ['GL' => 'Glaris'], + ['GR' => 'Grisons'], + ['JU' => 'Jura'], + ['LU' => 'Lucerne'], + ['NE' => 'Neuchâtel'], + ['NW' => 'Nidwald'], + ['OW' => 'Obwald'], + ['SG' => 'Saint-Gall'], + ['SH' => 'Schaffhouse'], + ['SO' => 'Soleure'], + ['SZ' => 'Schwytz'], + ['TG' => 'Thurgovie'], + ['TI' => 'Tessin'], + ['UR' => 'Uri'], + ['VD' => 'Vaud'], + ['VS' => 'Valais'], + ['ZG' => 'Zoug'], + ['ZH' => 'Zurich'], + ]; + + protected static $cityFormats = [ '{{cityName}}', - ); + ]; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{streetPrefix}} {{lastName}}', '{{streetPrefix}} de {{cityName}}', - '{{streetPrefix}} de {{lastName}}' - ); + '{{streetPrefix}} de {{lastName}}', + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; /** * Returns a random street prefix + * * @example Rue + * * @return string */ public static function streetPrefix() @@ -100,7 +102,9 @@ public static function streetPrefix() /** * Returns a random city name. + * * @example Luzern + * * @return string */ public function cityName() @@ -110,7 +114,9 @@ public function cityName() /** * Returns a canton + * * @example array('BE' => 'Bern') + * * @return array */ public static function canton() @@ -120,21 +126,25 @@ public static function canton() /** * Returns the abbreviation of a canton. + * * @return string */ public static function cantonShort() { $canton = static::canton(); + return key($canton); } /** * Returns the name of canton. + * * @return string */ public static function cantonName() { $canton = static::canton(); + return current($canton); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/fr_CH/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/fr_CH/Color.php new file mode 100644 index 0000000..6deb9f8 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/fr_CH/Color.php @@ -0,0 +1,7 @@ + 'Ain'), array('02' => 'Aisne'), array('03' => 'Allier'), array('04' => 'Alpes-de-Haute-Provence'), array('05' => 'Hautes-Alpes'), - array('06' => 'Alpes-Maritimes'), array('07' => 'Ardèche'), array('08' => 'Ardennes'), array('09' => 'Ariège'), array('10' => 'Aube'), - array('11' => 'Aude'), array('12' => 'Aveyron'), array('13' => 'Bouches-du-Rhône'), array('14' => 'Calvados'), array('15' => 'Cantal'), - array('16' => 'Charente'), array('17' => 'Charente-Maritime'), array('18' => 'Cher'), array('19' => 'Corrèze'), array('2A' => 'Corse-du-Sud'), - array('2B' => 'Haute-Corse'), array('21' => "Côte-d'Or"), array('22' => "Côtes-d'Armor"), array('23' => 'Creuse'), array('24' => 'Dordogne'), - array('25' => 'Doubs'), array('26' => 'Drôme'), array('27' => 'Eure'), array('28' => 'Eure-et-Loir'), array('29' => 'Finistère'), array('30' => 'Gard'), - array('31' => 'Haute-Garonne'), array('32' => 'Gers'), array('33' => 'Gironde'), array('34' => 'Hérault'), array('35' => 'Ille-et-Vilaine'), - array('36' => 'Indre'), array('37' => 'Indre-et-Loire'), array('38' => 'Isère'), array('39' => 'Jura'), array('40' => 'Landes'), array('41' => 'Loir-et-Cher'), - array('42' => 'Loire'), array('43' => 'Haute-Loire'), array('44' => 'Loire-Atlantique'), array('45' => 'Loiret'), array('46' => 'Lot'), - array('47' => 'Lot-et-Garonne'), array('48' => 'Lozère'), array('49' => 'Maine-et-Loire'), array('50' => 'Manche'), array('51' => 'Marne'), - array('52' => 'Haute-Marne'), array('53' => 'Mayenne'), array('54' => 'Meurthe-et-Moselle'), array('55' => 'Meuse'), array('56' => 'Morbihan'), - array('57' => 'Moselle'), array('58' => 'Nièvre'), array('59' => 'Nord'), array('60' => 'Oise'), array('61' => 'Orne'), array('62' => 'Pas-de-Calais'), - array('63' => 'Puy-de-Dôme'), array('64' => 'Pyrénées-Atlantiques'), array('65' => 'Hautes-Pyrénées'), array('66' => 'Pyrénées-Orientales'), - array('67' => 'Bas-Rhin'), array('68' => 'Haut-Rhin'), array('69' => 'Rhône'), array('70' => 'Haute-Saône'), array('71' => 'Saône-et-Loire'), - array('72' => 'Sarthe'), array('73' => 'Savoie'), array('74' => 'Haute-Savoie'), array('75' => 'Paris'), array('76' => 'Seine-Maritime'), - array('77' => 'Seine-et-Marne'), array('78' => 'Yvelines'), array('79' => 'Deux-Sèvres'), array('80' => 'Somme'), array('81' => 'Tarn'), - array('82' => 'Tarn-et-Garonne'), array('83' => 'Var'), array('84' => 'Vaucluse'), array('85' => 'Vendée'), array('86' => 'Vienne'), - array('87' => 'Haute-Vienne'), array('88' => 'Vosges'), array('89' => 'Yonne'), array('90' => 'Territoire de Belfort'), array('91' => 'Essonne'), - array('92' => 'Hauts-de-Seine'), array('93' => 'Seine-Saint-Denis'), array('94' => 'Val-de-Marne'), array('95' => "Val-d'Oise"), - array('971' => 'Guadeloupe'), array('972' => 'Martinique'), array('973' => 'Guyane'), array('974' => 'La Réunion'), array('976' => 'Mayotte') - ); - - protected static $secondaryAddressFormats = array('Apt. ###', 'Suite ###', 'Étage ###', "Bât. ###", "Chambre ###"); + 'Territoire britannique de l\'océan Indien', 'Territoires français du sud', 'Thailande', 'Timor', 'Togo', 'Tokelau', 'Tonga', 'Trinité et Tobago', 'Tunisie', 'Turkménistan', 'Turks et Caïques (Îles)', 'Turquie', 'Tuvalu', 'Ukraine', 'Uruguay', 'Vanuatu', 'Vatican (Etat du)', 'Venezuela', 'Vierges (Îles)', 'Vierges britanniques (Îles)', 'Vietnam', 'Wallis et Futuna (Îles)', 'Yemen', 'Yougoslavie', 'Zambie', 'Zaïre', 'Zimbabwe', + ]; + + /** + * @see https://en.wikipedia.org/wiki/Regions_of_France + */ + private static $regions = [ + 'Auvergne-Rhône-Alpes', 'Bourgogne-Franche-Comté', 'Bretagne', 'Centre-Val de Loire', 'Corse', 'Grand Est', 'Hauts-de-France', + 'Île-de-France', 'Normandie', 'Nouvelle-Aquitaine', 'Occitanie', 'Pays de la Loire', "Provence-Alpes-Côte d'Azur", + 'Guadeloupe', 'Martinique', 'Guyane', 'La Réunion', 'Mayotte', + ]; + + private static $departments = [ + ['01' => 'Ain'], ['02' => 'Aisne'], ['03' => 'Allier'], ['04' => 'Alpes-de-Haute-Provence'], ['05' => 'Hautes-Alpes'], + ['06' => 'Alpes-Maritimes'], ['07' => 'Ardèche'], ['08' => 'Ardennes'], ['09' => 'Ariège'], ['10' => 'Aube'], + ['11' => 'Aude'], ['12' => 'Aveyron'], ['13' => 'Bouches-du-Rhône'], ['14' => 'Calvados'], ['15' => 'Cantal'], + ['16' => 'Charente'], ['17' => 'Charente-Maritime'], ['18' => 'Cher'], ['19' => 'Corrèze'], ['2A' => 'Corse-du-Sud'], + ['2B' => 'Haute-Corse'], ['21' => "Côte-d'Or"], ['22' => "Côtes-d'Armor"], ['23' => 'Creuse'], ['24' => 'Dordogne'], + ['25' => 'Doubs'], ['26' => 'Drôme'], ['27' => 'Eure'], ['28' => 'Eure-et-Loir'], ['29' => 'Finistère'], ['30' => 'Gard'], + ['31' => 'Haute-Garonne'], ['32' => 'Gers'], ['33' => 'Gironde'], ['34' => 'Hérault'], ['35' => 'Ille-et-Vilaine'], + ['36' => 'Indre'], ['37' => 'Indre-et-Loire'], ['38' => 'Isère'], ['39' => 'Jura'], ['40' => 'Landes'], ['41' => 'Loir-et-Cher'], + ['42' => 'Loire'], ['43' => 'Haute-Loire'], ['44' => 'Loire-Atlantique'], ['45' => 'Loiret'], ['46' => 'Lot'], + ['47' => 'Lot-et-Garonne'], ['48' => 'Lozère'], ['49' => 'Maine-et-Loire'], ['50' => 'Manche'], ['51' => 'Marne'], + ['52' => 'Haute-Marne'], ['53' => 'Mayenne'], ['54' => 'Meurthe-et-Moselle'], ['55' => 'Meuse'], ['56' => 'Morbihan'], + ['57' => 'Moselle'], ['58' => 'Nièvre'], ['59' => 'Nord'], ['60' => 'Oise'], ['61' => 'Orne'], ['62' => 'Pas-de-Calais'], + ['63' => 'Puy-de-Dôme'], ['64' => 'Pyrénées-Atlantiques'], ['65' => 'Hautes-Pyrénées'], ['66' => 'Pyrénées-Orientales'], + ['67' => 'Bas-Rhin'], ['68' => 'Haut-Rhin'], ['69' => 'Rhône'], ['70' => 'Haute-Saône'], ['71' => 'Saône-et-Loire'], + ['72' => 'Sarthe'], ['73' => 'Savoie'], ['74' => 'Haute-Savoie'], ['75' => 'Paris'], ['76' => 'Seine-Maritime'], + ['77' => 'Seine-et-Marne'], ['78' => 'Yvelines'], ['79' => 'Deux-Sèvres'], ['80' => 'Somme'], ['81' => 'Tarn'], + ['82' => 'Tarn-et-Garonne'], ['83' => 'Var'], ['84' => 'Vaucluse'], ['85' => 'Vendée'], ['86' => 'Vienne'], + ['87' => 'Haute-Vienne'], ['88' => 'Vosges'], ['89' => 'Yonne'], ['90' => 'Territoire de Belfort'], ['91' => 'Essonne'], + ['92' => 'Hauts-de-Seine'], ['93' => 'Seine-Saint-Denis'], ['94' => 'Val-de-Marne'], ['95' => "Val-d'Oise"], + ['971' => 'Guadeloupe'], ['972' => 'Martinique'], ['973' => 'Guyane'], ['974' => 'La Réunion'], ['976' => 'Mayotte'], + ]; + + protected static $secondaryAddressFormats = ['Apt. ###', 'Suite ###', 'Étage ###', 'Bât. ###', 'Chambre ###']; /** * @example 'Appt. 350' @@ -85,7 +89,7 @@ public static function secondaryAddress() return static::numerify(static::randomElement(static::$secondaryAddressFormats)); } - /** + /** * @example 'rue' */ public static function streetPrefix() diff --git a/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Color.php new file mode 100644 index 0000000..a0048ac --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Color.php @@ -0,0 +1,40 @@ +numerify($nicFormat); $siret .= Luhn::computeCheckDigit($siret); + if ($formatted) { $siret = substr($siret, 0, 3) . ' ' . substr($siret, 3, 3) . ' ' . substr($siret, 6, 3) . ' ' . substr($siret, 9, 5); } @@ -127,12 +129,14 @@ public function siret($formatted = true) * Generates a siren number (9 digits) that passes the Luhn check. * * @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_entreprises + * * @return string */ public static function siren($formatted = true) { $siren = self::numerify('%#######'); $siren .= Luhn::computeCheckDigit($siren); + if ($formatted) { $siren = substr($siren, 0, 3) . ' ' . substr($siren, 3, 3) . ' ' . substr($siren, 6, 3); } @@ -143,14 +147,14 @@ public static function siren($formatted = true) /** * @var array An array containing string which should not appear twice in a catch phrase. */ - protected static $wordsWhichShouldNotAppearTwice = array('sécurité', 'simpl'); + protected static $wordsWhichShouldNotAppearTwice = ['sécurité', 'simpl']; /** * Validates a french catch phrase. * * @param string $catchPhrase The catch phrase to validate. * - * @return boolean (true if valid, false otherwise) + * @return bool (true if valid, false otherwise) */ protected static function isCatchPhraseValid($catchPhrase) { @@ -168,10 +172,11 @@ protected static function isCatchPhraseValid($catchPhrase) } /** - * @link http://www.pole-emploi.fr/candidat/le-code-rome-et-les-fiches-metiers-@/article.jspz?id=60702 + * @see http://www.pole-emploi.fr/candidat/le-code-rome-et-les-fiches-metiers-@/article.jspz?id=60702 + * * @note Randomly took 300 from this list */ - protected static $jobTitleFormat = array( + protected static $jobTitleFormat = [ 'Agent d\'accueil', 'Agent d\'enquêtes', 'Agent d\'entreposage', @@ -472,5 +477,5 @@ protected static function isCatchPhraseValid($catchPhrase) 'Verrier à main levée', 'Vidéo-jockey', 'Vitrier', - ); + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Internet.php new file mode 100644 index 0000000..679919d --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Internet.php @@ -0,0 +1,9 @@ +phoneNumber06WithSeparator(); + + return str_replace(' ', '', $phoneNumber); + } + + /** + * Only 0601 to 0638, 0640 to 0689, 0695 and 0698 to 0699 are acceptable prefixes with 06 + * + * @see https://www.arcep.fr/la-regulation/grands-dossiers-thematiques-transverses/la-numerotation.html#c8961 + * @see https://www.itu.int/itu-t/nnp/#/numbering-plans?country=France%C2%A0&code=33 + */ + public function phoneNumber06WithSeparator() + { + $regex = '([0-24-8]\d|3[0-8]|9[589])( \d{2}){3}'; + + return static::regexify($regex); + } public function phoneNumber07() { $phoneNumber = $this->phoneNumber07WithSeparator(); - $phoneNumber = str_replace(' ', '', $phoneNumber); - return $phoneNumber; + + return str_replace(' ', '', $phoneNumber); } /** - * Only 073 to 079 are acceptable prefixes with 07 + * Only 0730 to 0789 are acceptable prefixes with 07 * - * @see http://www.arcep.fr/index.php?id=8146 + * @see https://www.arcep.fr/la-regulation/grands-dossiers-thematiques-transverses/la-numerotation.html#c8961 + * @see https://www.itu.int/itu-t/nnp/#/numbering-plans?country=France%C2%A0&code=33 */ public function phoneNumber07WithSeparator() { - $phoneNumber = $this->generator->numberBetween(3, 9); - $phoneNumber .= $this->numerify('# ## ## ##'); - return $phoneNumber; + $regex = '([3-8]\d)( \d{2}){3}'; + + return static::regexify($regex); } public function phoneNumber08() { $phoneNumber = $this->phoneNumber08WithSeparator(); - $phoneNumber = str_replace(' ', '', $phoneNumber); - return $phoneNumber; + + return str_replace(' ', '', $phoneNumber); } /** @@ -116,8 +141,9 @@ public function phoneNumber08() */ public function phoneNumber08WithSeparator() { - $regex = '([012]{1}\d{1}|(9[1-357-9])( \d{2}){3}'; - return $this->regexify($regex); + $regex = '([012]\d|(9[1-357-9])( \d{2}){3}'; + + return static::regexify($regex); } /** @@ -129,6 +155,7 @@ public function mobileNumber() return static::numerify($this->generator->parse($format)); } + /** * @example '0891951357' */ diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Text.php index 9403f16..bcd3167 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Text.php @@ -27,6 +27,7 @@ class Text extends \Faker\Provider\Text * (1857) * * @see http://www.gutenberg.org/cache/epub/14155/pg14155.txt + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Address.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/he_IL/Address.php index 6cd9d2e..b16d612 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Address.php @@ -4,16 +4,16 @@ class Address extends \Faker\Provider\Address { - protected static $buildingNumber = array('#', '##', '###'); - protected static $streetSuffix = array( + protected static $buildingNumber = ['%', '%#', '%##']; + protected static $streetSuffix = [ 'רחוב', 'שדרות', 'סמטאת', - ); - protected static $postcode = array('#####', '#######'); + ]; + protected static $postcode = ['#####', '#######']; /** * {@link} https://data.gov.il/dataset/322 - **/ - protected static $citySuffix = array( + */ + protected static $citySuffix = [ 'אבו תלול', 'אבטין', 'אבטליון', 'אביאל', 'אביבים', 'אביגדור', 'אביחיל', 'אביטל', 'אביעזר', 'אבירים', 'אבן יהודה', 'אבן מנחם', 'אבן ספיר', 'אבן שמואל', 'אבני איתן', 'אבני חפץ', 'אבנת', 'אבשלום', 'אדורה', 'אדירים', 'אדמית', 'אדרת', 'אודים', 'אודם', 'אוהד', 'אום אל-פחם', 'אום אל-קוטוף', 'אום בטין', 'אומן', 'אומץ', 'אופקים', 'אור הגנוז', 'אור הנר', 'אור יהודה', 'אור עקיבא', 'אורה', 'אורות', 'אורטל', 'אורים', 'אורנים', 'אורנית', 'אושה', 'אזור', 'אחווה', 'אחוזם', 'אחוזת ברק', 'אחיהוד', 'אחיטוב', 'אחיסמך', 'אחיעזר', 'איבים', 'אייל', 'איילת השחר', 'אילון', 'אילות', 'אילניה', 'אילת', 'אירוס', 'איתמר', @@ -76,41 +76,41 @@ class Address extends \Faker\Provider\Address 'שלוחות', 'שלומי', 'שלומית', 'שמיר', 'שמעה', 'שמרת', 'שמשית', 'שני', 'שניר', 'שעב', 'שעורים', 'שעל', 'שעלבים', 'שער אפרים', 'שער הגולן', 'שער העמקים', 'שער מנשה', 'שערי תקווה', 'שפיים', 'שפיר', 'שפר', 'שפרעם', 'שקד', 'שקף', 'שרונה', 'שריד', 'שרשרת', 'שתולה', 'שתולים', 'תאשור', 'תדהר', 'תובל', 'תומר', 'תושיה', 'תימורים', 'תירוש', 'תל אביב - יפו', 'תל יוסף', 'תל יצחק', 'תל מונד', 'תל עדשים', 'תל קציר', 'תל שבע', 'תל תאומים', 'תלם', 'תלמי אליהו', 'תלמי אלעזר', 'תלמי ביל"ו', 'תלמי יוסף', 'תלמי יחיאל', 'תלמי יפה', 'תלמים', 'תמרת', 'תנובות', 'תעוז', 'תפרח', 'תקומה', 'תקוע', 'תרום', - ); + ]; /** * {@link} https://he.wikipedia.org/wiki/%D7%A4%D7%95%D7%A8%D7%98%D7%9C:%D7%9E%D7%93%D7%99%D7%A0%D7%95%D7%AA_%D7%94%D7%A2%D7%95%D7%9C%D7%9D/%D7%9E%D7%93%D7%99%D7%A0%D7%95%D7%AA_%D7%91%D7%9E%D7%99%D7%95%D7%A0%D7%99%D7%9D_%D7%A9%D7%95%D7%A0%D7%99%D7%9D - **/ - protected static $country = array( - 'אוגנדה', 'אוזבקיסטן', 'אוסטריה', 'אוסטרליה', 'אוקראינה', 'אורוגוואי', 'אזרבייג\'ן', 'איטליה', 'איי מרשל', 'סיישל', 'איי שלמה', 'אינדונזיה', - 'איסלנד', 'איראן', 'אירלנד', 'אל סלוודור', 'אלבניה', 'אלג\'יריה', 'אנגולה', 'אנדורה', 'אנטיגואה וברבודה', 'אסטוניה', 'אפגניסטן', 'אקוודור', - 'ארגנטינה', 'אריתריאה', 'ארמניה', 'ארצות הברית', 'אתיופיה', 'בהאמה', 'בהוטן', 'בוטסואנה', 'בולגריה', 'בוליביה', 'בוסניה והרצגובינה', 'בורונדי', 'בורקינה פאסו', 'בחריין', - 'בלגיה', 'בליז', 'בלארוס', 'בנגלדש', 'בנין', 'ברבדוס', 'ברוניי', 'ברזיל', 'גאורגיה', 'גאנה', 'גבון', 'גואטמלה', 'גיאנה', 'ג\'יבוטי', 'גינאה', 'גינאה ביסאו', 'גיניאה המשוונית', - 'גמביה', 'ג\'מייקה', 'גרמניה', 'גרנדה', 'דומיניקה', 'דנמרק', 'דרום אפריקה', 'דרום סודאן', 'האיטי', 'האמירויות הערביות המאוחדות', 'הודו', 'הולנד', 'הונגריה', 'הונדורס', - 'הממלכה המאוחדת', 'וייטנאם', 'ונואטו', 'ונצואלה', 'זימבבואה', 'זמביה', 'חוף השנהב', 'טג\'יקיסטן', 'טובאלו', 'טוגו', 'טונגה', 'טורקיה', 'טורקמניסטן', 'טנזניה', 'טרינידד וטובגו', - 'יוון', 'יפן', 'ירדן', 'ישראל', 'כווית', 'כף ורדה', 'לאוס', 'לבנון', 'לוב', 'לוקסמבורג', 'לטביה', 'ליבריה', 'ליטא', 'ליכטנשטיין', 'לסוטו', 'מאוריטניה', 'מאוריציוס', - 'מאלי', 'מדגסקר', 'מוזמביק', 'מולדובה', 'מונגוליה', 'מונטנגרו', 'מונאקו', 'מזרח טימור', 'מיאנמר', 'מיקרונזיה', 'מלאווי', 'המלדיביים', 'מלזיה', 'מלטה', 'מצרים', 'מקדוניה', - 'מקסיקו', 'מרוקו', 'נאורו', 'נורווגיה', 'ניגריה', 'ניו זילנד', 'ניז\'ר', 'ניקרגואה', 'נמיביה', 'נפאל', 'סאו טומה ופרינסיפה', 'סודאן', 'סווזילנד', 'סומליה', 'סוריה', 'סורינם', - 'סיירה לאון', 'סין', 'סינגפור', 'סלובניה', 'סלובקיה', 'סמואה', 'סן מרינו', 'סנגל', 'סנט וינסנט והגרנדינים', 'סנט לוסיה', 'סנט קיטס ונוויס', 'ספרד', 'סרביה', 'סרי לנקה', 'עומאן', - 'עיראק', 'ערב הסעודית', 'פולין', 'פורטוגל', 'פיג\'י', 'פיליפינים', 'פינלנד', 'פלאו', 'פנמה', 'פפואה גינאה החדשה', 'פקיסטן', 'פרגוואי', 'פרו', 'צ\'אד', 'צ\'ילה', 'צ\'כיה', 'צרפת', - 'קובה', 'קולומביה', 'קומורו', 'קונגו', 'קוסטה ריקה', 'קוריאה הדרומית', 'קוריאה הצפונית', 'קזחסטן', 'קטאר', 'קירגיזסטן', 'קיריבטי', 'קמבודיה', 'קמרון', 'קנדה', 'קניה', 'קפריסין', - 'קרואטיה', 'קריית הוותיקן', 'רואנדה', 'רומניה', 'רוסיה', 'הרפובליקה הדומיניקנית', 'הרפובליקה המרכז אפריקאית', 'הרפובליקה הסינית', 'שוודיה', 'שווייץ', 'תאילנד', 'תוניסיה', 'תימן', - ); - protected static $cityFormats = array( + */ + protected static $country = [ + 'אוגנדה', 'אוזבקיסטן', 'אוסטריה', 'אוסטרליה', 'אוקראינה', 'אורוגוואי', 'אזרבייג\'ן', 'איטליה', 'איי מרשל', 'סיישל', 'איי שלמה', 'אינדונזיה', + 'איסלנד', 'איראן', 'אירלנד', 'אל סלוודור', 'אלבניה', 'אלג\'יריה', 'אנגולה', 'אנדורה', 'אנטיגואה וברבודה', 'אסטוניה', 'אפגניסטן', 'אקוודור', + 'ארגנטינה', 'אריתריאה', 'ארמניה', 'ארצות הברית', 'אתיופיה', 'בהאמה', 'בהוטן', 'בוטסואנה', 'בולגריה', 'בוליביה', 'בוסניה והרצגובינה', 'בורונדי', 'בורקינה פאסו', 'בחריין', + 'בלגיה', 'בליז', 'בלארוס', 'בנגלדש', 'בנין', 'ברבדוס', 'ברוניי', 'ברזיל', 'גאורגיה', 'גאנה', 'גבון', 'גואטמלה', 'גיאנה', 'ג\'יבוטי', 'גינאה', 'גינאה ביסאו', 'גיניאה המשוונית', + 'גמביה', 'ג\'מייקה', 'גרמניה', 'גרנדה', 'דומיניקה', 'דנמרק', 'דרום אפריקה', 'דרום סודאן', 'האיטי', 'האמירויות הערביות המאוחדות', 'הודו', 'הולנד', 'הונגריה', 'הונדורס', + 'הממלכה המאוחדת', 'וייטנאם', 'ונואטו', 'ונצואלה', 'זימבבואה', 'זמביה', 'חוף השנהב', 'טג\'יקיסטן', 'טובאלו', 'טוגו', 'טונגה', 'טורקיה', 'טורקמניסטן', 'טנזניה', 'טרינידד וטובגו', + 'יוון', 'יפן', 'ירדן', 'ישראל', 'כווית', 'כף ורדה', 'לאוס', 'לבנון', 'לוב', 'לוקסמבורג', 'לטביה', 'ליבריה', 'ליטא', 'ליכטנשטיין', 'לסוטו', 'מאוריטניה', 'מאוריציוס', + 'מאלי', 'מדגסקר', 'מוזמביק', 'מולדובה', 'מונגוליה', 'מונטנגרו', 'מונאקו', 'מזרח טימור', 'מיאנמר', 'מיקרונזיה', 'מלאווי', 'המלדיביים', 'מלזיה', 'מלטה', 'מצרים', 'מקדוניה', + 'מקסיקו', 'מרוקו', 'נאורו', 'נורווגיה', 'ניגריה', 'ניו זילנד', 'ניז\'ר', 'ניקרגואה', 'נמיביה', 'נפאל', 'סאו טומה ופרינסיפה', 'סודאן', 'סווזילנד', 'סומליה', 'סוריה', 'סורינם', + 'סיירה לאון', 'סין', 'סינגפור', 'סלובניה', 'סלובקיה', 'סמואה', 'סן מרינו', 'סנגל', 'סנט וינסנט והגרנדינים', 'סנט לוסיה', 'סנט קיטס ונוויס', 'ספרד', 'סרביה', 'סרי לנקה', 'עומאן', + 'עיראק', 'ערב הסעודית', 'פולין', 'פורטוגל', 'פיג\'י', 'פיליפינים', 'פינלנד', 'פלאו', 'פנמה', 'פפואה גינאה החדשה', 'פקיסטן', 'פרגוואי', 'פרו', 'צ\'אד', 'צ\'ילה', 'צ\'כיה', 'צרפת', + 'קובה', 'קולומביה', 'קומורו', 'קונגו', 'קוסטה ריקה', 'קוריאה הדרומית', 'קוריאה הצפונית', 'קזחסטן', 'קטאר', 'קירגיזסטן', 'קיריבטי', 'קמבודיה', 'קמרון', 'קנדה', 'קניה', 'קפריסין', + 'קרואטיה', 'קריית הוותיקן', 'רואנדה', 'רומניה', 'רוסיה', 'הרפובליקה הדומיניקנית', 'הרפובליקה המרכז אפריקאית', 'הרפובליקה הסינית', 'שוודיה', 'שווייץ', 'תאילנד', 'תוניסיה', 'תימן', + ]; + protected static $cityFormats = [ '{{citySuffix}}', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ '{{streetSuffix}} {{firstName}}', '{{streetSuffix}} {{lastName}}', - ); - protected static $streetAddressFormats = array( + ]; + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}} ', '{{streetName}} {{buildingNumber}} {{secondaryAddress}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{city}}, {{postcode}}", - ); - protected static $secondaryAddressFormats = array('דירה ##', 'קומה ##'); + ]; + protected static $secondaryAddressFormats = ['דירה ##', 'קומה ##']; /** * @example 'Appt. 350' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Company.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/he_IL/Company.php index 2ebedfd..c7a989e 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Company.php @@ -4,11 +4,11 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} את {{lastName}} {{companySuffix}}', - '{{lastName}} ו{{lastName}}' - ); + '{{lastName}} ו{{lastName}}', + ]; - protected static $companySuffix = array('בע"מ', 'ובניו', 'סוכנויות', 'משווקים'); + protected static $companySuffix = ['בע"מ', 'ובניו', 'סוכנויות', 'משווקים']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/he_IL/Payment.php index aac85f2..962e21a 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'IL', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Person.php similarity index 92% rename from vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/he_IL/Person.php index 2cd363e..86370c0 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/Person.php @@ -4,28 +4,28 @@ class Person extends \Faker\Provider\Person { - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', '{{firstNameMale}} {{lastName}}', '{{titleMale}} {{firstNameMale}} {{lastName}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', '{{firstNameFemale}} {{lastName}}', '{{titleFemale}} {{firstNameFemale}} {{lastName}}', - ); + ]; /** * {@link} http://www.mamy.co.il/%D7%A9%D7%9E%D7%95%D7%AA-%D7%9C%D7%AA%D7%99%D7%A0%D7%95%D7%A7%D7%95%D7%AA - **/ - protected static $firstNameMale = array( + */ + protected static $firstNameMale = [ 'אבטו', 'אבי', 'אביאור', 'אביאל', 'אביאסף', 'אביב', 'אביגדור', 'אבידור', 'אבידן', 'אביה', 'אביהו', 'אביהוד', 'אביחי', 'אבי-חן', 'אבינועם', 'אביעד', 'אביעם', 'אביר', 'אבירז', 'אבירן', 'אבישי', 'אביתר', 'אבנר', 'אבקן', 'אברהם', 'אברון', 'אבשלום', 'אגם', 'אדיב', 'אדיר', 'אדם', 'אדר', 'אדריאן', 'אהוד', 'אהרון', 'אוהב', 'אוליאל', 'און', 'אוניל', 'אופז', 'אופיר', 'אופק', 'אור', 'אור אל', 'אוראל', 'אורון', 'אורטל', 'אורי', 'אוריאל', 'אוריאן', 'אוריה', 'אוריון', 'אורין', 'אורם', 'אורן', 'אושר', 'אושרי', 'אחי', 'אחיאסף', 'אחינועם', 'אייל', 'אייר', 'איל', 'אילאי', 'אילון', 'אילור', 'אילי', 'איליה', 'איליי', @@ -62,9 +62,9 @@ class Person extends \Faker\Provider\Person 'שוני', 'שוע', 'שוקי', 'שור', 'שושן', 'שחם', 'שחף', 'שחק', 'שחר', 'שי', 'שי-אל', 'שילה', 'שילו', 'שי-לי', 'שיר', 'שירון', 'שירן', 'שלו', 'שלום', 'שלומי', 'שלומי', 'שליו', 'שלמה', 'שלמון', 'שלמי', 'שם', 'שמגר', 'שמואל', 'שמחה', 'שמחון', 'שם-טוב', 'שמיר', 'שמעון', 'שמר', 'שמרון', 'שמריהו', 'שמרעם', 'שמש', 'שמשון', 'שנהב', 'שנהר', 'שני', 'שניאור', 'שניר', 'שפי', 'שפיר', 'שפע', 'שפריר', 'שקד', 'שר', 'שר- אל', 'שראל', 'שרון', 'שריג', 'שריד', 'ששון', 'תאי', 'תאיר', 'תבור', 'תבל', 'תדהר', 'תדמור', 'תו', 'תובל', 'תום', 'תומר', 'תור', 'תורן', 'תימור', 'תירוש', 'תכלת', 'תלם', 'תמוז', 'תמיר', - ); + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'אבוקה', 'אביאלה', 'אביב', 'אביבה', 'אביבית', 'אביגיל', 'אביגל', 'אביה', 'אביחיל', 'אביטל', 'אבישג', 'אגם', 'אדוה', 'אדל', 'אדלה', 'אדמונית', 'אדמית', 'אדר', 'אדרת', 'אהבה', 'אהובה', 'אהרונה', 'אודיה', 'אודית', 'אודליה', 'אוולין', 'אולגה', 'אופיר', 'אופירה', 'אופל', 'אופק', 'אור', 'אוראל', 'אור-אל', 'אורה', 'אור-חן', 'אורטל', 'אורי', 'אוריאלה', 'אוריאן', 'אוריאנה', 'אוריה', 'אוריין', 'אור-ים', 'אורין', 'אורית', 'אור-לב', 'אורלי', 'אורליה', 'אורליז', 'אורנה', 'אורנית', 'אורפז', 'אושר', 'אושרי', 'אושרית', 'אושרת', 'אחינועם', 'איב', 'איבון', 'איה', 'איזבל', 'אייר', 'אילה', 'אילונה', 'איליי', 'אילנה', @@ -112,21 +112,21 @@ class Person extends \Faker\Provider\Person 'שרונה', 'שרי', 'שרית', 'תאיר', 'תאנה', 'תבונה', 'תבל', 'תגיל', 'תגית', 'תדהר', 'תהילה', 'תהל', 'תו', 'תואם', 'תואר', 'תובל', 'תום', 'תומר', 'תור', 'תורה', 'תושיה', 'תות', 'תחיה', 'תימור', 'תימורה', 'תימנע', 'תיקי', 'תירוש', 'תכלת', 'תלמלה', 'תמוז', 'תמי', 'תמימה', 'תמירה', 'תמנה', 'תמנע', 'תמר', 'תמרה', 'תנאל', 'תניה', 'תפארה', 'תפילה', 'תפרח', 'תקוה', 'תקומה', 'תרז', 'תרזה', 'תרצה', 'תרשישה', 'תשובה', 'תשורה', - ); + ]; /** * {@link} http://toladot.blogspot.co.il/p/blog-page_28.html - **/ - protected static $lastName = array( - 'אויערבך', 'אולמן', 'אונגרישר', 'אונטרמן', 'אופנהיים', 'אזולאי', 'אטינגר', 'איגר', 'איגרא', 'אידלשטיין', 'אייבשיץ', 'אייגש', 'איידלש', 'אייזנשטאט', 'אייכנשטיין', 'איסרליש', 'אלטשולר', 'אלישיב', 'אפשטיין', - 'אשכנזי', 'בידרמן', 'בינדיגר', 'ברדוגו', 'ברודא', 'ברוידא', 'ברזובסקי', 'ברלין', 'ברנדיס', 'ברנדסדורפר', 'גוראריה', 'גורדון', 'גינצבורג', 'גרודזנסקי', 'גרוזובסקי', 'גרוסברד', 'גריינמן', 'גשטטנר', 'דון', - 'יחיא', 'דושינסקי', 'דיסקין', 'דרמברדיגר', 'הוטנר', 'הורוביץ', 'הילדסהיים', 'הינדס', 'הלברשטם', 'הלפרין', 'הלר', 'העשל', 'וינברג', 'ויסבלום', 'זוננפלד', 'זק', 'טברסקי', 'טייטלבוים', 'טייכטל', 'טרויב', - 'טרופ', 'ידלר', 'יונגרייז', 'יפה', 'כץ', 'כהן', 'לוברבוים', 'לוריא', 'ליפקין', 'ליפשיץ', 'לנדא', 'מייזליש', 'מירלש', 'מירקש', 'מישקובסקי', 'מלצר', 'מרגליות', 'משאש', 'סולובייציק', 'סורוצקין', 'סירקיש', - 'סלנט', 'ספרין', 'סרנא', 'פאדווא', 'פינס', 'קאליפארי', 'קוליץ', 'קוק', 'קנייבסקי', 'קצנלבוגן', 'קרליבך', 'רבינוביץ', 'רבקש', 'רובין', 'רוטשילד', 'רוקח', 'רפופורט', 'שטראשון', 'שך', 'שמלקיש', 'שפירא', - 'תאומים', - ); + */ + protected static $lastName = [ + 'אויערבך', 'אולמן', 'אונגרישר', 'אונטרמן', 'אופנהיים', 'אזולאי', 'אטינגר', 'איגר', 'איגרא', 'אידלשטיין', 'אייבשיץ', 'אייגש', 'איידלש', 'אייזנשטאט', 'אייכנשטיין', 'איסרליש', 'אלטשולר', 'אלישיב', 'אפשטיין', + 'אשכנזי', 'בידרמן', 'בינדיגר', 'ברדוגו', 'ברודא', 'ברוידא', 'ברזובסקי', 'ברלין', 'ברנדיס', 'ברנדסדורפר', 'גוראריה', 'גורדון', 'גינצבורג', 'גרודזנסקי', 'גרוזובסקי', 'גרוסברד', 'גריינמן', 'גשטטנר', 'דון', + 'יחיא', 'דושינסקי', 'דיסקין', 'דרמברדיגר', 'הוטנר', 'הורוביץ', 'הילדסהיים', 'הינדס', 'הלברשטם', 'הלפרין', 'הלר', 'העשל', 'וינברג', 'ויסבלום', 'זוננפלד', 'זק', 'טברסקי', 'טייטלבוים', 'טייכטל', 'טרויב', + 'טרופ', 'ידלר', 'יונגרייז', 'יפה', 'כץ', 'כהן', 'לוברבוים', 'לוריא', 'ליפקין', 'ליפשיץ', 'לנדא', 'מייזליש', 'מירלש', 'מירקש', 'מישקובסקי', 'מלצר', 'מרגליות', 'משאש', 'סולובייציק', 'סורוצקין', 'סירקיש', + 'סלנט', 'ספרין', 'סרנא', 'פאדווא', 'פינס', 'קאליפארי', 'קוליץ', 'קוק', 'קנייבסקי', 'קצנלבוגן', 'קרליבך', 'רבינוביץ', 'רבקש', 'רובין', 'רוטשילד', 'רוקח', 'רפופורט', 'שטראשון', 'שך', 'שמלקיש', 'שפירא', + 'תאומים', + ]; - protected static $titleMale = array('מר.', 'ד"ר', 'פרופ'); + protected static $titleMale = ['מר.', 'ד"ר', 'פרופ']; - protected static $titleFemale = array('גב.', 'ד"ר', 'פרופ'); + protected static $titleFemale = ['גב.', 'ד"ר', 'פרופ']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/PhoneNumber.php similarity index 74% rename from vendor/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/he_IL/PhoneNumber.php index d3626d3..0c50904 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/he_IL/PhoneNumber.php @@ -4,11 +4,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '05#-#######', '0#-#######', '972-5#-#######', '972-#-########', - '0#########' - ); + '0#########', + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Address.php similarity index 91% rename from vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Address.php index 370afb7..457e56a 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Address.php @@ -5,42 +5,41 @@ class Address extends \Faker\Provider\Address { /** - * @link https://hr.wikipedia.org/wiki/Dodatak:Popis_ulica_u_Baranji + * @see https://hr.wikipedia.org/wiki/Dodatak:Popis_ulica_u_Baranji */ - protected static $streets = array( - 'Baranjska ulica', 'Batina jug', 'Beljska ulica', 'Biljski sokak', 'Blatna ulica', 'Bračka ulica', 'Crkvena ulica', 'Daljok', 'Dravska ulica', 'Draž-planina', 'Dubrovačka ulica', 'Dunavska ulica', 'Glavna ulica', 'Grobljanska ulica', 'Jorgovanska ulica', 'Karanačka', 'Kenđija', 'Kod plota', 'Kolodvorska ulica', 'Komarčev prolaz', 'Konkološ', 'Kruševačka ulica', 'Lugarnica Šarkanj', 'Mirna ulica', 'Nova ulica', 'Osječka ulica', 'Partizanska ulica', 'Planina istok', 'Planina jug', 'Planina zapad', 'Planina', 'Planinska ulica', 'Popovačka ulica', 'Primoštenska ulica', 'Radnička ulica', 'Ribarska ulica', 'Ritska ulica', 'Salaši', 'Savska ulica', 'Slavonska ulica', 'Srednja ulica', 'Staklena ulica', 'Sunčana ulica', 'Trg Josipa bana Jelačića', 'Trg Slobode', 'Trg Stipe Đurina', 'Trg hrvatske mladeži', 'Ulica 1. svibnja', 'Ulica 30. svibnja', 'Ulica Adolfa Waldingera', 'Ulica Alojzija Stepinca', 'Ulica Ankice Dobrokes', 'Ulica Ante Kovačića', 'Ulica Ante Starčevića', 'Ulica Antuna Augustinčića', 'Ulica Antuna Gustava Matoša', 'Ulica Aranji Janoša', 'Ulica Augusta Cesarca', 'Ulica Augusta Šenoe', 'Ulica Bartoka Bele', 'Ulica Biljske satnije ZNH RH', 'Ulica Borisa Kidriča', 'Ulica Branka Gavelle', 'Ulica Branka Radičevića', 'Ulica Dore Pejačević', 'Ulica Dositeja Obradovića', 'Ulica Doža Đerđa', 'Ulica Dragutina Tadijanovića', 'Ulica Eugena Kvaternika', 'Ulica Eugena Savojskog', 'Ulica Frana Krste Frankopana', 'Ulica Franca Liszta', 'Ulica Franje Račkoga', 'Ulica Gustava Krkleca', 'Ulica Hrvatske vojske', 'Ulica Imre Nagya', 'Ulica Ivana Gorana Kovačića', 'Ulica Ivana Gundulića', 'Ulica Ivana Kozarca', 'Ulica Ivana Mažuranića', 'Ulica Ivana Meštrovića', 'Ulica Ivana Milutinovića', 'Ulica Ivane Brlić-Mažuranić', 'Ulica Ive Grgića', 'Ulica Ive Lole Ribara', 'Ulica Ive Petrušića', 'Ulica Izidora Kršnjavoga', 'Ulica Ištvana Vencela', 'Ulica Janka Draškovića', 'Ulica Janusa Pannoniusa', 'Ulica Jerka Zlatarića', 'Ulica Jokai Mora', 'Ulica Josipa Bösendorfera', 'Ulica Josipa Jurja Strossmayera', 'Ulica Josipa Kozarca', 'Ulica Josipa Kraša', 'Ulica Josipa Pančića', 'Ulica Josipa Runjanina', 'Ulica Jovana Jovanovića Zmaja', 'Ulica Jovana Lazića', 'Ulica Jozsefa Antala', 'Ulica Julija Benešića', 'Ulica Julija Klovića', 'Ulica Košut Lajoša', 'Ulica Lajoša Košuta', 'Ulica Lavoslava Ružičke', 'Ulica Ljudevita Gaja', 'Ulica Ljudevita Posavskog', 'Ulica Marije Jurić Zagorke', 'Ulica Marina Držića', 'Ulica Marka Marulića', 'Ulica Marka Oreškovića', 'Ulica Matije Antuna Relkovića', 'Ulica Matije Gupca', 'Ulica Matije Petra Katančića', 'Ulica Matka Peića', 'Ulica Mije Zlatarića', 'Ulica Miladina Popovića', 'Ulica Miroslava Krleže', 'Ulica Nikole Tesle', 'Ulica Obrada Ribića', 'Ulica Petefi Šandora', 'Ulica Petra Berislavića', 'Ulica Petra Dobrovića', 'Ulica Petra Drapšina', 'Ulica Petra Petrovića Njegoša', 'Ulica Petra Preradovića', 'Ulica Petra Zrinskog', 'Ulica Republike', 'Ulica Ruđera Boškovića', 'Ulica Sare Bertić', 'Ulica Silvija Strahimira Kranjčevića', 'Ulica Stipe Matovića', 'Ulica Stjepana Brodarića', 'Ulica Stjepana Radića', 'Ulica Stjepana Stjepanova', 'Ulica Svetozara Miletića', 'Ulica Tina Ujevića', 'Ulica Toldi Ferenca', 'Ulica Vasilja Gaćeše', 'Ulica Vatroslava Lisinskog', 'Ulica Vladana Desnice', 'Ulica Vladimira Filakovca', 'Ulica Vladimira Nazora', 'Ulica Vladimira Preloga', 'Ulica Vladka Mačeka', 'Ulica Vojina Bakića', 'Ulica Vuka Stefanovića Karadžića', 'Ulica Zvonka Brkića', 'Ulica bana Jelačića', 'Ulica bijelog lopoča', 'Ulica braće Radić', 'Ulica crne rode', 'Ulica domovinske zahvalnosti', 'Ulica dr Franje Tuđmana', 'Ulica dr. Ante Starčevića', 'Ulica dr. Franje Tuđmana', 'Ulica dr. Kamila Firingera', 'Ulica hrvatskih branitelja', 'Ulica kardinala Franje Šefera', 'Ulica kneza Branimira', 'Ulica kneza Domagoja', 'Ulica kneza Trpimira', 'Ulica kralja Krešimira', 'Ulica kralja Petra Krešimira IV', 'Ulica kralja Tomislava', 'Ulica kralja Zvonimira', 'Ulica republike', 'Ulica svetog Ivana Nepomuka', 'Ulica svetog Martina', 'Ulica svetog križa', 'Ulica Đure Đakovića', 'Ulica Šandora Petefija', 'Ulica Šovakova', 'Ulica športova', 'Ulica Žarka Zrenjanina', 'Ulica Žikice Jovanovića Španca', 'Ulica žrtava domovinskog rata', 'Vatrogasna ulica', 'Velebitska ulica', 'Vijenac Nikole Tesle', 'Vinogradska ulica', 'Virska ulica', 'Vukovarska ulica', 'Zagrebačka ulica', 'Šećeranska ulica', 'Školska ulica' - ); + protected static $streets = [ + 'Baranjska ulica', 'Batina jug', 'Beljska ulica', 'Biljski sokak', 'Blatna ulica', 'Bračka ulica', 'Crkvena ulica', 'Daljok', 'Dravska ulica', 'Draž-planina', 'Dubrovačka ulica', 'Dunavska ulica', 'Glavna ulica', 'Grobljanska ulica', 'Jorgovanska ulica', 'Karanačka', 'Kenđija', 'Kod plota', 'Kolodvorska ulica', 'Komarčev prolaz', 'Konkološ', 'Kruševačka ulica', 'Lugarnica Šarkanj', 'Mirna ulica', 'Nova ulica', 'Osječka ulica', 'Partizanska ulica', 'Planina istok', 'Planina jug', 'Planina zapad', 'Planina', 'Planinska ulica', 'Popovačka ulica', 'Primoštenska ulica', 'Radnička ulica', 'Ribarska ulica', 'Ritska ulica', 'Salaši', 'Savska ulica', 'Slavonska ulica', 'Srednja ulica', 'Staklena ulica', 'Sunčana ulica', 'Trg Josipa bana Jelačića', 'Trg Slobode', 'Trg Stipe Đurina', 'Trg hrvatske mladeži', 'Ulica 1. svibnja', 'Ulica 30. svibnja', 'Ulica Adolfa Waldingera', 'Ulica Alojzija Stepinca', 'Ulica Ankice Dobrokes', 'Ulica Ante Kovačića', 'Ulica Ante Starčevića', 'Ulica Antuna Augustinčića', 'Ulica Antuna Gustava Matoša', 'Ulica Aranji Janoša', 'Ulica Augusta Cesarca', 'Ulica Augusta Šenoe', 'Ulica Bartoka Bele', 'Ulica Biljske satnije ZNH RH', 'Ulica Borisa Kidriča', 'Ulica Branka Gavelle', 'Ulica Branka Radičevića', 'Ulica Dore Pejačević', 'Ulica Dositeja Obradovića', 'Ulica Doža Đerđa', 'Ulica Dragutina Tadijanovića', 'Ulica Eugena Kvaternika', 'Ulica Eugena Savojskog', 'Ulica Frana Krste Frankopana', 'Ulica Franca Liszta', 'Ulica Franje Račkoga', 'Ulica Gustava Krkleca', 'Ulica Hrvatske vojske', 'Ulica Imre Nagya', 'Ulica Ivana Gorana Kovačića', 'Ulica Ivana Gundulića', 'Ulica Ivana Kozarca', 'Ulica Ivana Mažuranića', 'Ulica Ivana Meštrovića', 'Ulica Ivana Milutinovića', 'Ulica Ivane Brlić-Mažuranić', 'Ulica Ive Grgića', 'Ulica Ive Lole Ribara', 'Ulica Ive Petrušića', 'Ulica Izidora Kršnjavoga', 'Ulica Ištvana Vencela', 'Ulica Janka Draškovića', 'Ulica Janusa Pannoniusa', 'Ulica Jerka Zlatarića', 'Ulica Jokai Mora', 'Ulica Josipa Bösendorfera', 'Ulica Josipa Jurja Strossmayera', 'Ulica Josipa Kozarca', 'Ulica Josipa Kraša', 'Ulica Josipa Pančića', 'Ulica Josipa Runjanina', 'Ulica Jovana Jovanovića Zmaja', 'Ulica Jovana Lazića', 'Ulica Jozsefa Antala', 'Ulica Julija Benešića', 'Ulica Julija Klovića', 'Ulica Košut Lajoša', 'Ulica Lajoša Košuta', 'Ulica Lavoslava Ružičke', 'Ulica Ljudevita Gaja', 'Ulica Ljudevita Posavskog', 'Ulica Marije Jurić Zagorke', 'Ulica Marina Držića', 'Ulica Marka Marulića', 'Ulica Marka Oreškovića', 'Ulica Matije Antuna Relkovića', 'Ulica Matije Gupca', 'Ulica Matije Petra Katančića', 'Ulica Matka Peića', 'Ulica Mije Zlatarića', 'Ulica Miladina Popovića', 'Ulica Miroslava Krleže', 'Ulica Nikole Tesle', 'Ulica Obrada Ribića', 'Ulica Petefi Šandora', 'Ulica Petra Berislavića', 'Ulica Petra Dobrovića', 'Ulica Petra Drapšina', 'Ulica Petra Petrovića Njegoša', 'Ulica Petra Preradovića', 'Ulica Petra Zrinskog', 'Ulica Republike', 'Ulica Ruđera Boškovića', 'Ulica Sare Bertić', 'Ulica Silvija Strahimira Kranjčevića', 'Ulica Stipe Matovića', 'Ulica Stjepana Brodarića', 'Ulica Stjepana Radića', 'Ulica Stjepana Stjepanova', 'Ulica Svetozara Miletića', 'Ulica Tina Ujevića', 'Ulica Toldi Ferenca', 'Ulica Vasilja Gaćeše', 'Ulica Vatroslava Lisinskog', 'Ulica Vladana Desnice', 'Ulica Vladimira Filakovca', 'Ulica Vladimira Nazora', 'Ulica Vladimira Preloga', 'Ulica Vladka Mačeka', 'Ulica Vojina Bakića', 'Ulica Vuka Stefanovića Karadžića', 'Ulica Zvonka Brkića', 'Ulica bana Jelačića', 'Ulica bijelog lopoča', 'Ulica braće Radić', 'Ulica crne rode', 'Ulica domovinske zahvalnosti', 'Ulica dr Franje Tuđmana', 'Ulica dr. Ante Starčevića', 'Ulica dr. Franje Tuđmana', 'Ulica dr. Kamila Firingera', 'Ulica hrvatskih branitelja', 'Ulica kardinala Franje Šefera', 'Ulica kneza Branimira', 'Ulica kneza Domagoja', 'Ulica kneza Trpimira', 'Ulica kralja Krešimira', 'Ulica kralja Petra Krešimira IV', 'Ulica kralja Tomislava', 'Ulica kralja Zvonimira', 'Ulica republike', 'Ulica svetog Ivana Nepomuka', 'Ulica svetog Martina', 'Ulica svetog križa', 'Ulica Đure Đakovića', 'Ulica Šandora Petefija', 'Ulica Šovakova', 'Ulica športova', 'Ulica Žarka Zrenjanina', 'Ulica Žikice Jovanovića Španca', 'Ulica žrtava domovinskog rata', 'Vatrogasna ulica', 'Velebitska ulica', 'Vijenac Nikole Tesle', 'Vinogradska ulica', 'Virska ulica', 'Vukovarska ulica', 'Zagrebačka ulica', 'Šećeranska ulica', 'Školska ulica', + ]; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{street}}', - ); + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - ); + ]; - protected static $addressFormats = array( + protected static $addressFormats = [ '{{streetAddress}}, {{postcode}} {{city}}', - ); + ]; - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityName}}', - ); - - protected static $postcode = array('#####'); + ]; + protected static $postcode = ['#####']; /** - * @link https://hr.wikipedia.org/wiki/Dodatak:Popis_gradova_u_Hrvatskoj + * @see https://hr.wikipedia.org/wiki/Dodatak:Popis_gradova_u_Hrvatskoj */ - protected static $cityNames = array( - 'Bakar', 'Beli Manastir', 'Belišće', 'Benkovac', 'Biograd na Moru', 'Bjelovar', 'Buje', 'Buzet', 'Cres', 'Crikvenica', 'Daruvar', 'Delnice', 'Dodatak:Imena europskih gradova na različitim jezicima', 'Donja Stubica', 'Donji Miholjac', 'Drniš', 'Dubrovnik', 'Duga Resa', 'Dugo Selo', 'Garešnica', 'Glina', 'Gospić', 'Grubišno Polje', 'Hrvatska Kostajnica', 'Hvar', 'Ilok', 'Imotski', 'Ivanec', 'Ivanić-Grad', 'Jastrebarsko', 'Karlovac', 'Kastav', 'Kaštela', 'Klanjec', 'Knin', 'Komiža', 'Koprivnica', 'Korčula', 'Kraljevica', 'Krapina', 'Križevci', 'Krk', 'Kutina', 'Kutjevo', 'Labin', 'Lepoglava', 'Lipik', 'Ludbreg', 'Makarska', 'Mali Lošinj', 'Metković', 'Mursko Središće', 'Našice', 'Nin', 'Nova Gradiška', 'Novalja', 'Novi Marof', 'Novi Vinodolski', 'Novigrad', 'Novska', 'Obrovac', 'Ogulin', 'Omiš', 'Opatija', 'Opuzen', 'Orahovica', 'Oroslavje', 'Osijek', 'Otok', 'Otočac', 'Ozalj', 'Pag', 'Pakrac', 'Pazin', 'Petrinja', 'Pleternica', 'Ploče', 'Popovača', 'Poreč', 'Požega', 'Pregrada', 'Prelog', 'Pula', 'Rab', 'Rijeka', 'Rovinj', 'Samobor', 'Senj', 'Sinj', 'Sisak', 'Skradin', 'Slatina', 'Slavonski Brod', 'Slunj', 'Solin', 'Split', 'Stari Grad', 'Supetar', 'Sveta Nedelja', 'Sveti Ivan Zelina', 'Trilj', 'Trogir', 'Umag', 'Valpovo', 'Varaždin', 'Varaždinske Toplice', 'Velika Gorica', 'Vinkovci', 'Virovitica', 'Vis', 'Vodice', 'Vodnjan', 'Vrbovec', 'Vrbovsko', 'Vrgorac', 'Vrlika', 'Vukovar', 'Zabok', 'Zadar', 'Zagreb', 'Zaprešić', 'Zlatar', 'Čabar', 'Čakovec', 'Čazma', 'Đakovo', 'Đurđevac', 'Šibenik', 'Županja' - ); + protected static $cityNames = [ + 'Bakar', 'Beli Manastir', 'Belišće', 'Benkovac', 'Biograd na Moru', 'Bjelovar', 'Buje', 'Buzet', 'Cres', 'Crikvenica', 'Daruvar', 'Delnice', 'Dodatak:Imena europskih gradova na različitim jezicima', 'Donja Stubica', 'Donji Miholjac', 'Drniš', 'Dubrovnik', 'Duga Resa', 'Dugo Selo', 'Garešnica', 'Glina', 'Gospić', 'Grubišno Polje', 'Hrvatska Kostajnica', 'Hvar', 'Ilok', 'Imotski', 'Ivanec', 'Ivanić-Grad', 'Jastrebarsko', 'Karlovac', 'Kastav', 'Kaštela', 'Klanjec', 'Knin', 'Komiža', 'Koprivnica', 'Korčula', 'Kraljevica', 'Krapina', 'Križevci', 'Krk', 'Kutina', 'Kutjevo', 'Labin', 'Lepoglava', 'Lipik', 'Ludbreg', 'Makarska', 'Mali Lošinj', 'Metković', 'Mursko Središće', 'Našice', 'Nin', 'Nova Gradiška', 'Novalja', 'Novi Marof', 'Novi Vinodolski', 'Novigrad', 'Novska', 'Obrovac', 'Ogulin', 'Omiš', 'Opatija', 'Opuzen', 'Orahovica', 'Oroslavje', 'Osijek', 'Otok', 'Otočac', 'Ozalj', 'Pag', 'Pakrac', 'Pazin', 'Petrinja', 'Pleternica', 'Ploče', 'Popovača', 'Poreč', 'Požega', 'Pregrada', 'Prelog', 'Pula', 'Rab', 'Rijeka', 'Rovinj', 'Samobor', 'Senj', 'Sinj', 'Sisak', 'Skradin', 'Slatina', 'Slavonski Brod', 'Slunj', 'Solin', 'Split', 'Stari Grad', 'Supetar', 'Sveta Nedelja', 'Sveti Ivan Zelina', 'Trilj', 'Trogir', 'Umag', 'Valpovo', 'Varaždin', 'Varaždinske Toplice', 'Velika Gorica', 'Vinkovci', 'Virovitica', 'Vis', 'Vodice', 'Vodnjan', 'Vrbovec', 'Vrbovsko', 'Vrgorac', 'Vrlika', 'Vukovar', 'Zabok', 'Zadar', 'Zagreb', 'Zaprešić', 'Zlatar', 'Čabar', 'Čakovec', 'Čazma', 'Đakovo', 'Đurđevac', 'Šibenik', 'Županja', + ]; /** - * @link https://github.com/umpirsky/country-list/blob/master/country/cldr/sr_Latn/country.php + * @see https://github.com/umpirsky/country-list/blob/master/country/cldr/sr_Latn/country.php */ - protected static $country = array( + protected static $country = [ 'Andora', 'Ujedinjeni Arapski Emirati', 'Afganistan', 'Albanija', 'Armenija', 'Nizozemski Antili', 'Angola', 'Antarktika', 'Argentina', 'Američka Samoa', 'Austrija', 'Australija', 'Azerbejdžan', 'Bosna i Hercegovina', 'Barbados', 'Bangladeš', 'Belgija', 'Burkina Faso', 'Bugarska', 'Bahrein', 'Burundi', 'Benin', 'Bolivija', @@ -55,7 +54,7 @@ class Address extends \Faker\Provider\Address 'Novi Zeland', 'Oman', 'Panama', 'Peru', 'Pakistan', 'Poljska', 'Portugal', 'Paragvaj', 'Katar', 'Rumunjska', 'Rusija', 'Saudijska Arabija', 'Švedska', 'Singapur', 'Slovenija', 'Slovačka', 'San Marino', 'Senegal', 'Tajland', 'Turska', 'Trinidad i Tobago', 'Ukrajina', 'Sjedinjene Američke Države', 'Urugvaj', 'Uzbekistan', - ); + ]; public static function street() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Company.php similarity index 64% rename from vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Company.php index 010d6f6..2a6a2f7 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Company.php @@ -4,19 +4,19 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{companyPrefix}} {{lastName}}', '{{companyPrefix}} {{firstName}}', - ); + ]; - protected static $companySuffix = array( - 'd.o.o.', 'j.d.o.o.', 'Security' - ); + protected static $companySuffix = [ + 'd.o.o.', 'j.d.o.o.', 'Security', + ]; - protected static $companyPrefix = array( - 'Autoškola', 'Cvjećarnica', 'Informatički obrt', 'Kamenorezački obrt', 'Kladionice', 'Market', 'Mesnica', 'Prijevoznički obrt', 'Suvenirnica', 'Turistička agencija', 'Voćarna' - ); + protected static $companyPrefix = [ + 'Autoškola', 'Cvjećarnica', 'Informatički obrt', 'Kamenorezački obrt', 'Kladionice', 'Market', 'Mesnica', 'Prijevoznički obrt', 'Suvenirnica', 'Turistička agencija', 'Voćarna', + ]; public static function companyPrefix() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Payment.php index 19bf63e..44684ae 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'HR', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Person.php similarity index 85% rename from vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Person.php index 5b04172..1cc372b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/Person.php @@ -5,23 +5,23 @@ class Person extends \Faker\Provider\Person { /** - * @link http://www.behindthename.com/top/lists/croatia/2009 + * @see http://www.behindthename.com/top/lists/croatia/2009 */ - protected static $firstNameMale = array( - 'Adam', 'Adrian', 'Aleksandar', 'Alen', 'Andrej', 'Andrija', 'Ante', 'Antonio', 'Antun', 'Bartol', 'Benjamin', 'Borna', 'Branislav', 'Bruno', 'Damjan', 'Daniel', 'Danijel', 'Dario', 'David', 'Denis', 'Dino', 'Domagoj', 'Dominik', 'Dorian', 'Dorijan', 'Duje', 'Emanuel', 'Emil', 'Filip', 'Fran', 'Frane', 'Franjo', 'Franko', 'Gabriel', 'Gabrijel', 'Hrvoje', 'Ilija', 'Ivan', 'Ivano', 'Ivor', 'Jakov', 'Josip', 'Juraj', 'Jure', 'Jurica', 'Karlo', 'Kristijan', 'Leo', 'Leon', 'Leonardo', 'Lovre', 'Lovro', 'Luka', 'Lukas', 'Marijan', 'Marin', 'Marino', 'Mario', 'Marko', 'Martin', 'Mate', 'Matej', 'Mateo', 'Matija', 'Matko', 'Mihael', 'Mislav', 'Niko', 'Nikola', 'Nino', 'Noa', 'Patrik', 'Petar', 'Rafael', 'Robert', 'Roko', 'Sebastijan', 'Stipe', 'Stjepan', 'Sven', 'Teo', 'Tin', 'Toma', 'Tomislav', 'Toni', 'Valentino', 'Vanja', 'Vedran', 'Vice', 'Vid', 'Viktor', 'Zvonimir', 'Šime', 'Šimun' - ); + protected static $firstNameMale = [ + 'Adam', 'Adrian', 'Aleksandar', 'Alen', 'Andrej', 'Andrija', 'Ante', 'Antonio', 'Antun', 'Bartol', 'Benjamin', 'Borna', 'Branislav', 'Bruno', 'Damjan', 'Daniel', 'Danijel', 'Dario', 'David', 'Denis', 'Dino', 'Domagoj', 'Dominik', 'Dorian', 'Dorijan', 'Duje', 'Emanuel', 'Emil', 'Filip', 'Fran', 'Frane', 'Franjo', 'Franko', 'Gabriel', 'Gabrijel', 'Hrvoje', 'Ilija', 'Ivan', 'Ivano', 'Ivor', 'Jakov', 'Josip', 'Juraj', 'Jure', 'Jurica', 'Karlo', 'Kristijan', 'Leo', 'Leon', 'Leonardo', 'Lovre', 'Lovro', 'Luka', 'Lukas', 'Marijan', 'Marin', 'Marino', 'Mario', 'Marko', 'Martin', 'Mate', 'Matej', 'Mateo', 'Matija', 'Matko', 'Mihael', 'Mislav', 'Niko', 'Nikola', 'Nino', 'Noa', 'Patrik', 'Petar', 'Rafael', 'Robert', 'Roko', 'Sebastijan', 'Stipe', 'Stjepan', 'Sven', 'Teo', 'Tin', 'Toma', 'Tomislav', 'Toni', 'Valentino', 'Vanja', 'Vedran', 'Vice', 'Vid', 'Viktor', 'Zvonimir', 'Šime', 'Šimun', + ]; /** - * @link http://www.behindthename.com/top/lists/croatia/2009 + * @see http://www.behindthename.com/top/lists/croatia/2009 */ - protected static $firstNameFemale = array( - 'Ana', 'Anamarija', 'Andrea', 'Anja', 'Antonela', 'Antonija', 'Anđela', 'Barbara', 'Dora', 'Dorotea', 'Dunja', 'Ela', 'Elena', 'Ella', 'Ema', 'Ena', 'Eva', 'Franka', 'Gabrijela', 'Hana', 'Helena', 'Ines', 'Iris', 'Ivana', 'Ivona', 'Jelena', 'Josipa', 'Karla', 'Katarina', 'Katja', 'Klara', 'Korina', 'Kristina', 'Lana', 'Lara', 'Laura', 'Lea', 'Lena', 'Leona', 'Lora', 'Lorena', 'Lucija', 'Magdalena', 'Maja', 'Manuela', 'Mara', 'Marija', 'Marina', 'Marta', 'Martina', 'Matea', 'Maša', 'Melani', 'Melanie', 'Mia', 'Mihaela', 'Mila', 'Monika', 'Nela', 'Nika', 'Nikolina', 'Nina', 'Nora', 'Paola', 'Patricia', 'Paula', 'Petra', 'Sara', 'Stela', 'Stella', 'Tamara', 'Tara', 'Tea', 'Tena', 'Tia', 'Tina', 'Valentina', 'Vanesa', 'Vanessa', 'Veronika', 'Viktorija' - ); + protected static $firstNameFemale = [ + 'Ana', 'Anamarija', 'Andrea', 'Anja', 'Antonela', 'Antonija', 'Anđela', 'Barbara', 'Dora', 'Dorotea', 'Dunja', 'Ela', 'Elena', 'Ella', 'Ema', 'Ena', 'Eva', 'Franka', 'Gabrijela', 'Hana', 'Helena', 'Ines', 'Iris', 'Ivana', 'Ivona', 'Jelena', 'Josipa', 'Karla', 'Katarina', 'Katja', 'Klara', 'Korina', 'Kristina', 'Lana', 'Lara', 'Laura', 'Lea', 'Lena', 'Leona', 'Lora', 'Lorena', 'Lucija', 'Magdalena', 'Maja', 'Manuela', 'Mara', 'Marija', 'Marina', 'Marta', 'Martina', 'Matea', 'Maša', 'Melani', 'Melanie', 'Mia', 'Mihaela', 'Mila', 'Monika', 'Nela', 'Nika', 'Nikolina', 'Nina', 'Nora', 'Paola', 'Patricia', 'Paula', 'Petra', 'Sara', 'Stela', 'Stella', 'Tamara', 'Tara', 'Tea', 'Tena', 'Tia', 'Tina', 'Valentina', 'Vanesa', 'Vanessa', 'Veronika', 'Viktorija', + ]; /** - * @link http://surnames.behindthename.com/names/usage/croatian + * @see http://surnames.behindthename.com/names/usage/croatian */ - protected static $lastName = array( - 'Abramović', 'Adamić', 'Antić', 'Babić', 'Blažević', 'Bogdanić', 'Bogdanović', 'Božić', 'Brož', 'Dragić', 'Dragović', 'Filipović', 'Franić', 'Franjić', 'Grgić', 'Horvat', 'Horvatinčić', 'Ivanović', 'Janković', 'Jurić', 'Juriša', 'Kasun', 'Knežević', 'Kovač', 'Kovačević', 'Kovačić', 'Košar', 'Kranjčar', 'Lovren', 'Mandžukić', 'Maras', 'Marić', 'Marković', 'Marušić', 'Matić', 'Milić', 'Mlakar', 'Modrić', 'Neretljak', 'Nikolić', 'Novak', 'Novaković', 'Pavić', 'Pavletić', 'Perić', 'Perković', 'Petrović', 'Radić', 'Raić-Sudar', 'Ratković', 'Srna', 'Stanković', 'Tomić', 'Tomčić', 'Vincetić', 'Vinković', 'Vlahović', 'Vlašić', 'Vuka', 'Vuković', 'Zorić', 'Ćorluka', 'Čupić', 'Župan' - ); + protected static $lastName = [ + 'Abramović', 'Adamić', 'Antić', 'Babić', 'Blažević', 'Bogdanić', 'Bogdanović', 'Božić', 'Brož', 'Dragić', 'Dragović', 'Filipović', 'Franić', 'Franjić', 'Grgić', 'Horvat', 'Horvatinčić', 'Ivanović', 'Janković', 'Jurić', 'Juriša', 'Kasun', 'Knežević', 'Kovač', 'Kovačević', 'Kovačić', 'Košar', 'Kranjčar', 'Lovren', 'Mandžukić', 'Maras', 'Marić', 'Marković', 'Marušić', 'Matić', 'Milić', 'Mlakar', 'Modrić', 'Neretljak', 'Nikolić', 'Novak', 'Novaković', 'Pavić', 'Pavletić', 'Perić', 'Perković', 'Petrović', 'Radić', 'Raić-Sudar', 'Ratković', 'Srna', 'Stanković', 'Tomić', 'Tomčić', 'Vincetić', 'Vinković', 'Vlahović', 'Vlašić', 'Vuka', 'Vuković', 'Zorić', 'Ćorluka', 'Čupić', 'Župan', + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/PhoneNumber.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/hr_HR/PhoneNumber.php index 74a9b27..ef1e083 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hr_HR/PhoneNumber.php @@ -4,11 +4,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+385 91 ### ####', '+385 92 ### ####', '+385 95 ### ####', '+385 98 ### ####', '+385 99 ### ####', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Address.php similarity index 87% rename from vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Address.php index 47abe74..5c99a1e 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Address.php @@ -4,26 +4,26 @@ class Address extends \Faker\Provider\Address { - protected static $cityFormats = array( + protected static $cityFormats = [ '{{capital}}', '{{capital}}', '{{capital}}', '{{bigCity}}', '{{bigCity}}', '{{smallerCity}}', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ '{{firstName}} {{streetSuffix}}', '{{lastName}} {{streetSuffix}}', - ); - protected static $streetAddressFormats = array( + ]; + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}.', '{{streetName}} {{buildingNumber}}. {{secondaryAddress}}', - ); - protected static $addressFormats = array( - "{{postcode}} {{city}}, {{streetAddress}}", - ); - protected static $secondaryAddressFormats = array('##. emelet', '##. ajtó'); + ]; + protected static $addressFormats = [ + '{{postcode}} {{city}}, {{streetAddress}}', + ]; + protected static $secondaryAddressFormats = ['##. emelet', '##. ajtó']; /** * @example '10. emelet' @@ -65,32 +65,31 @@ public static function smallerCity() return static::randomElement(static::$smallerCities); } - protected static $buildingNumber = array('###', '##', '##', '#'); + protected static $buildingNumber = ['%##', '%#', '%#', '%']; /** * Coordinates inside the border of Hungary * * @example array('47.049242', '18.355119') + * * @return array | latitude, longitude */ public static function localCoordinates() { - return array( + return [ 'latitude' => static::latitude(46.262740, 47.564721), - 'longitude' => static::longitude(17.077949, 20.604560) - ); + 'longitude' => static::longitude(17.077949, 20.604560), + ]; } - /* ----------- DATA -------------------- */ - - protected static $streetSuffix = array( - 'árok', 'átjáró', 'dűlősor', 'dűlőút', 'erdősor', 'fasor', 'forduló', 'gát', 'határsor', 'határút', 'híd', 'játszótér', 'kert', 'körönd', 'körtér', 'körút', 'köz', 'lakótelep', 'lejáró', 'lejtő', 'lépcső', 'liget', 'mélyút', 'orom', 'országút', 'ösvény', 'park', 'part', 'pincesor', 'rakpart', 'sétány', 'sétaút', 'sor', 'sugárút', 'tér', 'tere', 'turistaút', 'udvar', 'út', 'útja', 'utca', 'üdülőpart' - ); - protected static $postcode = array('####'); - protected static $state = array( - 'Budapest', 'Bács-Kiskun', 'Baranya', 'Békés', 'Borsod-Abaúj-Zemplén', 'Csongrád', 'Fejér', 'Győr-Moson-Sopron', 'Hajdú-Bihar', 'Heves', 'Jász-Nagykun-Szolnok', 'Komárom-Esztergom', 'Nógrád', 'Pest', 'Somogy', 'Szabolcs-Szatmár-Bereg', 'Tolna', 'Vas', 'Veszprém', 'Zala' - ); - protected static $country = array( + protected static $streetSuffix = [ + 'árok', 'átjáró', 'dűlősor', 'dűlőút', 'erdősor', 'fasor', 'forduló', 'gát', 'határsor', 'határút', 'híd', 'játszótér', 'kert', 'körönd', 'körtér', 'körút', 'köz', 'lakótelep', 'lejáró', 'lejtő', 'lépcső', 'liget', 'mélyút', 'orom', 'országút', 'ösvény', 'park', 'part', 'pincesor', 'rakpart', 'sétány', 'sétaút', 'sor', 'sugárút', 'tér', 'tere', 'turistaút', 'udvar', 'út', 'útja', 'utca', 'üdülőpart', + ]; + protected static $postcode = ['####']; + protected static $state = [ + 'Budapest', 'Bács-Kiskun', 'Baranya', 'Békés', 'Borsod-Abaúj-Zemplén', 'Csongrád', 'Fejér', 'Győr-Moson-Sopron', 'Hajdú-Bihar', 'Heves', 'Jász-Nagykun-Szolnok', 'Komárom-Esztergom', 'Nógrád', 'Pest', 'Somogy', 'Szabolcs-Szatmár-Bereg', 'Tolna', 'Vas', 'Veszprém', 'Zala', + ]; + protected static $country = [ 'Afganisztán', 'Albánia', 'Algéria', 'Amerikai Egyesült Államok', 'Andorra', 'Angola', 'Antigua és Barbuda', 'Argentína', 'Ausztria', 'Ausztrália', 'Azerbajdzsán', 'Bahama-szigetek', 'Bahrein', 'Banglades', 'Barbados', 'Belgium', 'Belize', 'Benin', 'Bhután', 'Bolívia', 'Bosznia-Hercegovina', 'Botswana', 'Brazília', 'Brunei', 'Bulgária', 'Burkina Faso', 'Burma', 'Burundi', 'Chile', 'Ciprus', 'Costa Rica', 'Csehország', 'Csád', @@ -112,18 +111,18 @@ public static function localCoordinates() 'Tadzsikisztán', 'Tanzánia', 'Thaiföld', 'Togo', 'Tonga', 'Trinidad és Tobago', 'Tunézia', 'Tuvalu', 'Törökország', 'Türkmenisztán', 'Uganda', 'Ukrajna', 'Uruguay', 'Vanuatu', 'Venezuela', 'Vietnám', - 'Zambia', 'Zimbabwe', 'Zöld-foki-szigetek', - 'Észak-Korea', 'Észtország', 'Írország', 'Örményország', 'Új-Zéland', 'Üzbegisztán' - ); + 'Zambia', 'Zimbabwe', 'Zöld-foki-szigetek', + 'Észak-Korea', 'Észtország', 'Írország', 'Örményország', 'Új-Zéland', 'Üzbegisztán', + ]; /** * Source: https://hu.wikipedia.org/wiki/Magyarorsz%C3%A1g_v%C3%A1rosainak_list%C3%A1ja */ - protected static $capitals = array('Budapest'); - protected static $bigCities = array( - 'Békéscsaba', 'Debrecen', 'Dunaújváros', 'Eger', 'Érd', 'Győr', 'Hódmezővásárhely', 'Kaposvár', 'Kecskemét', 'Miskolc', 'Nagykanizsa', 'Nyíregyháza', 'Pécs', 'Salgótarján', 'Sopron', 'Szeged', 'Székesfehérvár', 'Szekszárd', 'Szolnok', 'Szombathely', 'Tatabánya', 'Veszprém', 'Zalaegerszeg' - ); - protected static $smallerCities = array( + protected static $capitals = ['Budapest']; + protected static $bigCities = [ + 'Békéscsaba', 'Debrecen', 'Dunaújváros', 'Eger', 'Érd', 'Győr', 'Hódmezővásárhely', 'Kaposvár', 'Kecskemét', 'Miskolc', 'Nagykanizsa', 'Nyíregyháza', 'Pécs', 'Salgótarján', 'Sopron', 'Szeged', 'Székesfehérvár', 'Szekszárd', 'Szolnok', 'Szombathely', 'Tatabánya', 'Veszprém', 'Zalaegerszeg', + ]; + protected static $smallerCities = [ 'Ajka', 'Aszód', 'Bácsalmás', 'Baja', 'Baktalórántháza', 'Balassagyarmat', 'Balatonalmádi', 'Balatonfüred', 'Balmazújváros', 'Barcs', 'Bátonyterenye', 'Békés', 'Bélapátfalva', 'Berettyóújfalu', 'Bicske', 'Bóly', 'Bonyhád', 'Budakeszi', 'Cegléd', 'Celldömölk', 'Cigánd', 'Csenger', 'Csongrád', 'Csorna', 'Csurgó', @@ -144,6 +143,6 @@ public static function localCoordinates() 'Sárbogárd', 'Sarkad', 'Sárospatak', 'Sárvár', 'Sásd', 'Sátoraljaújhely', 'Sellye', 'Siklós', 'Siófok', 'Sümeg', 'Szarvas', 'Szécsény', 'Szeghalom', 'Szentendre', 'Szentes', 'Szentgotthárd', 'Szentlőrinc', 'Szerencs', 'Szigetszentmiklós', 'Szigetvár', 'Szikszó', 'Szob', 'Tab', 'Tamási', 'Tapolca', 'Tata', 'Tét', 'Tiszafüred', 'Tiszakécske', 'Tiszaújváros', 'Tiszavasvári', 'Tokaj', 'Tolna', 'Törökszentmiklós', 'Vác', 'Várpalota', 'Vásárosnamény', 'Vasvár', 'Vecsés', - 'Záhony', 'Zalaszentgrót', 'Zirc' - ); + 'Záhony', 'Zalaszentgrót', 'Zirc', + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Company.php similarity index 53% rename from vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Company.php index 7131654..7593199 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Company.php @@ -4,10 +4,10 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}}', - ); + ]; - protected static $companySuffix = array('Kft', 'és Tsa', 'Kht', 'ZRT', 'NyRT', 'BT'); + protected static $companySuffix = ['Kft.', 'és Tsa', 'Kht', 'Zrt.', 'Nyrt.', 'Bt.']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Payment.php index e2fdced..4a05a52 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'HU', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Person.php similarity index 58% rename from vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Person.php index 4bb11c3..76d84be 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Person.php @@ -2,71 +2,82 @@ namespace Faker\Provider\hu_HU; +/** + * More info about the hungarian names and hungarian name abbreviations can be found here: + * + * @see https://en.wikipedia.org/wiki/Hungarian_names and https://en.wiktionary.org/wiki/Category:Hungarian_abbreviations + */ class Person extends \Faker\Provider\Person { - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{lastName}} {{firstNameMale}}', '{{title}} {{lastName}} {{firstNameMale}}', '{{lastName}} {{firstNameMale}} {{suffix}}', '{{title}} {{lastName}} {{firstNameMale}} {{suffix}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{lastName}} {{firstNameFemale}}', '{{title}} {{lastName}} {{firstNameFemale}}', '{{lastName}} {{firstNameFemale}} {{suffix}}', '{{title}} {{lastName}} {{firstNameFemale}} {{suffix}}', - /* ..né*/ + '{{lastNameFemaleMarried}} {{lastName}} {{firstNameFemale}}', + '{{title}} {{lastNameFemaleMarried}} {{firstNameFemale}}', '{{lastName}} {{firstNameMaleNe}}', '{{title}} {{lastName}} {{firstNameMaleNe}}', - ); + '{{lastName}}-{{lastName}} {{firstNameFemale}}', + ]; - protected static $firstNameMale = array( + protected static $firstNameMale = [ 'Albert', 'Attila', 'Balázs', 'Bence', 'Botond', 'Dorián', 'Endre', 'Ernő', 'Gábor', 'Géza', 'Imre', 'István', 'Kevin', 'Kornél', 'Kristóf', 'László', 'Milán', 'Noel', 'Olivér', 'Ottó', 'Patrik', 'Péter', 'Richárd', 'Rudolf', 'Sándor', 'Vilmos', 'Vince', 'Zoltán', 'Zsolt', 'Ádám', 'Ármin', 'Áron', 'Antal', 'Barna', 'Barnabás', 'Bendegúz', 'Benedek', 'Hunor', 'Jenő', 'János', 'Mihály', 'Mátyás', 'Szervác', 'Zsombor', 'Zétény', 'Árpád', - ); + ]; - protected static $firstNameMaleNe = array( + protected static $firstNameMaleNe = [ 'Albertné', 'Attiláné', 'Balázsné', 'Bencéné', 'Botondné', 'Doriánné', 'Endrené', 'Ernőné', 'Gáborné', 'Gézané', 'Imréné', 'Istvánné', 'Kevinné', 'Kornélné', 'Kristófné', 'Lászlóné', 'Milánné', 'Noelné', 'Olivérné', 'Ottóné', 'Patrikné', 'Péterné', 'Richárdné', 'Rudolfné', 'Sándorné', 'Vilmosné', 'Vincéné', 'Zoltánné', 'Zsoltné', 'Ádámné', 'Árminné', 'Áronné', 'Antalné', 'Barnáné', 'Barnabásné', 'Bendegúz', 'Benedekné', 'Hunorné', 'Jenőné', 'Jánosné', 'Mihályné', 'Mátyásné', 'Szervácné', 'Zsomborné', 'Zétényné', 'Árpádné', - ); + ]; - protected static $firstNameFemale = array( + protected static $lastNameFemaleMarried = [ + 'Antalné', 'Bakosné', 'Balláné', 'Balogné', 'Baloghné', 'Balázsné', 'Barnáné', 'Bartáné', 'Biróné', 'Bodnárné', + 'Bogdánné', 'Bognárné', 'Borbélyné', 'Borosné', 'Budainé', 'Bálintné', 'Csonkáné', 'Deákné', 'Dobosné', 'Dudásné', + 'Faragóné', 'Farkasné', 'Fazekasné', 'Fehérné', 'Feketéné', 'Fodorné', 'Fábiánné', 'Fülöpné', 'Gulyásné', 'Gálné', + 'Gáspárné', 'Hajdúné', 'Halászné', 'Hegedűsné', 'Horváthné', 'Illésné', 'Jakabné', 'Juhászné', 'Jónásné', 'Katonáné', + 'Kelemenné', 'Kerekesné', 'Királyné', 'Kisné', 'Kissné', 'Kocsisné', 'Kovácsné', 'Kozmané', 'Lakatosné', 'Lengyelné', + 'Lukácsné', 'Lászlóné', 'Magyarné', 'Majorné', 'Molnárné', 'Máténé', 'Mészárosné', 'Nagyné', 'Nemesné', 'Novákné', + 'Némethné', 'Oláhné', 'Orbánné', 'Oroszné', 'Orsósné', 'Papné', 'Pappné', 'Patakiné', 'Pintérné', 'Pálné', 'Pásztorné', + 'Péterné', 'Ráczné', 'Simonné', 'Siposné', 'Somogyiné', 'Soósné', 'Szabóné', 'Szalainé', 'Szekeresné', 'Szilágyiné', + 'Székelyné', 'Szücsné', 'Szőkené', 'Szűcsné', 'Sándorné', 'Takácsné', 'Tamásné', 'Tóthné', 'Törökné', 'Vargáné', 'Vassné', + 'Veresné', 'Vinczéné', 'Virágné', 'Váradiné', 'Véghné', 'Vörösné', + ]; + + protected static $firstNameFemale = [ 'Adél', 'Alexa', 'Andrea', 'Angéla', 'Anikó', 'Beatrix', 'Bettina', 'Dalma', 'Dorina', 'Dorottya', 'Evelin', 'Fanni', 'Flóra', 'Gabriella', 'Georgina', 'Gitta', 'Gizella', 'Gréta', 'Henrietta', 'Izabella', 'Johanna', 'Judit', 'Julianna', 'Jázmin', 'Kata', 'Katalin', 'Katinka', 'Klaudia', 'Kíra', 'Liliána', 'Linda', 'Liza', 'Léna', 'Lívia', 'Maja', 'Marianna', 'Marietta', 'Martina', 'Mia', 'Milla', 'Mirella', 'Mária', 'Márton', 'Míra', 'Nikoletta', 'Olívia', 'Patrícia', 'Ramóna', 'Rebeka', 'Soma', 'Szandra', 'Sára', 'Valéria', 'Zita', 'Aranka', 'Boróka', 'Boglárka', 'Csenge', 'Emőke', 'Erzsébet', 'Hanga', 'Henriett', 'Kincső', 'Panna', 'Szabina', 'Szonja', 'Virág', 'Zsóka', - ); + ]; - protected static $lastName = array( - 'Antal', 'Bakos', 'Balla', 'Balog', 'Balogh', 'Balázs', 'Barna', 'Barta', 'Biró', 'Bodnár', 'Bogdán', 'Bognár', 'Borbély', 'Boros', 'Budai', 'Bálint', 'Csonka', 'Deák', 'Dobos', 'Dudás', 'Faragó', 'Farkas', 'Fazekas', 'Fehér', 'Fekete', 'Fodor', 'Fábián', 'Fülöp', 'Gulyás', 'Gál', 'Gáspár', 'Hajdu', 'Halász', 'Hegedüs', 'Hegedűs', 'Horváth', 'Illés', 'Jakab', 'Juhász', 'Jónás', 'Katona', 'Kelemen', 'Kerekes', 'Király', 'Kis', 'Kiss', 'Kocsis', 'Kovács', 'Kozma', 'Lakatos', 'Lengyel', 'Lukács', 'László', 'Magyar', 'Major', 'Molnár', 'Máté', 'Mészáros', 'Nagy', 'Nemes', 'Novák', 'Németh', 'Oláh', 'Orbán', 'Orosz', 'Orsós', 'Pap', 'Papp', 'Pataki', 'Pintér', 'Pál', 'Pásztor', 'Péter', 'Rácz', 'Simon', 'Sipos', 'Somogyi', 'Soós', 'Szabó', 'Szalai', 'Szekeres', 'Szilágyi', 'Székely', 'Szücs', 'Szőke', 'Szűcs', 'Sándor', 'Takács', 'Tamás', 'Tóth', 'Török', 'Varga', 'Vass', 'Veres', 'Vincze', 'Virág', 'Váradi', 'Végh', 'Vörös' - ); + protected static $lastName = [ + 'Antal', 'Bakos', 'Balla', 'Balog', 'Balogh', 'Balázs', 'Barna', 'Barta', 'Biró', 'Bodnár', 'Bogdán', 'Bognár', 'Borbély', 'Boros', 'Budai', 'Bálint', 'Csonka', 'Deák', 'Dobos', 'Dudás', 'Faragó', 'Farkas', 'Fazekas', 'Fehér', 'Fekete', 'Fodor', 'Fábián', 'Fülöp', 'Gulyás', 'Gál', 'Gáspár', 'Hajdu', 'Halász', 'Hegedüs', 'Hegedűs', 'Horváth', 'Illés', 'Jakab', 'Juhász', 'Jónás', 'Katona', 'Kelemen', 'Kerekes', 'Király', 'Kis', 'Kiss', 'Kocsis', 'Kovács', 'Kozma', 'Lakatos', 'Lengyel', 'Lukács', 'László', 'Magyar', 'Major', 'Molnár', 'Máté', 'Mészáros', 'Nagy', 'Nemes', 'Novák', 'Németh', 'Oláh', 'Orbán', 'Orosz', 'Orsós', 'Pap', 'Papp', 'Pataki', 'Pintér', 'Pál', 'Pásztor', 'Péter', 'Rácz', 'Simon', 'Sipos', 'Somogyi', 'Soós', 'Szabó', 'Szalai', 'Szekeres', 'Szilágyi', 'Székely', 'Szücs', 'Szőke', 'Szűcs', 'Sándor', 'Takács', 'Tamás', 'Tóth', 'Török', 'Varga', 'Vass', 'Veres', 'Vincze', 'Virág', 'Váradi', 'Végh', 'Vörös', + ]; - protected static $title = array('Dr.', 'Prof.', 'id.', 'ifj.'); + protected static $title = ['Dr.', 'Prof.', 'Id.', 'Ifj.', 'Báró', 'Gróf', 'Özv.']; - private static $suffix = array('PhD'); + protected static $titleFemale = ['Özv.', 'Dr.', 'Prof.']; - public function title($gender = null) - { - return static::titleMale(); - } + protected static $titleMale = ['Dr.', 'Prof.', 'Id.', 'Ifj.', 'Báró', 'Gróf']; - /** - * replaced by specific unisex hungarian title - */ - public static function titleMale() - { - return static::randomElement(static::$title); - } + private static $suffix = ['PhD']; /** - * specific Hungarian name format for females after marriage + * Specific Hungarian name format for females after marriage */ public static function firstNameMaleNe() { @@ -74,18 +85,17 @@ public static function firstNameMaleNe() } /** - * replaced by specific unisex hungarian title - */ - public static function titleFemale() - { - return static::titleMale(); - } - - /** + * Replaced by specific suffix + * * @example 'PhD' */ public static function suffix() { return static::randomElement(static::$suffix); } + + public static function lastNameFemaleMarried() + { + return static::randomElement(static::$lastNameFemaleMarried); + } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/PhoneNumber.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/hu_HU/PhoneNumber.php index bc047bc..2078f34 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/PhoneNumber.php @@ -4,11 +4,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+36-##-###-####', '+36#########', '+36(##)###-###', '06-##-###-####', '06(##)###-###', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Text.php similarity index 100% rename from vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Text.php index 21ef108..e3783d1 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hu_HU/Text.php @@ -5,7 +5,6 @@ class Text extends \Faker\Provider\Text { /** - * * Author: Rejtő Jenő * Title: Piszkos Fred, a kapitány * @@ -14,6 +13,7 @@ class Text extends \Faker\Provider\Text * License: Public Domain, since 2014.01.01 * * @see http://mek.oszk.hu/01000/01038/ + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Address.php new file mode 100644 index 0000000..c88d3bf --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Address.php @@ -0,0 +1,132 @@ +generator->parse($format); + } + + public static function country() + { + return static::randomElement(static::$country); + } + + public static function postcode() + { + return static::toUpper(static::bothify(static::randomElement(static::$postcode))); + } + + public static function regionSuffix() + { + return static::randomElement(static::$regionSuffix); + } + + public static function region() + { + return static::randomElement(static::$region); + } + + public static function cityPrefix() + { + return static::randomElement(static::$cityPrefix); + } + + public function city() + { + return static::randomElement(static::$city); + } + + public function streetPrefix() + { + return static::randomElement(static::$streetPrefix); + } + + public static function street() + { + return static::randomElement(static::$street); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Color.php similarity index 86% rename from vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Color.php index 16b68d8..ebdda0d 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Color.php @@ -4,9 +4,9 @@ class Color extends \Faker\Provider\Color { - protected static $safeColorNames = array( + protected static $safeColorNames = [ 'սև', 'դեղին', 'սպիտակ', 'մոխրագույն', 'կարմիր', 'կապույտ', 'երկնագույն', 'կանաչ', 'կապտականաչ', 'մանուշակագույն', 'շագանակագույն', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Company.php similarity index 71% rename from vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Company.php index 4315743..87f1ed1 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Company.php @@ -4,7 +4,7 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} {{companySuffix}}', '{{lastName}} {{companySuffix}}', @@ -14,29 +14,30 @@ class Company extends \Faker\Provider\Company '{{lastName}} {{companySuffix}}', '{{lastName}} {{companySuffix}}', '{{lastName}} եղբայրներ', - ); + ]; - protected static $catchPhraseWords = array( + protected static $catchPhraseWords = [ - ); + ]; - protected static $bsWords = array( + protected static $bsWords = [ - ); + ]; - protected static $companySuffix = array('ՍՊԸ','և որդիներ','ՓԲԸ','ԲԲԸ'); + protected static $companySuffix = ['ՍՊԸ', 'և որդիներ', 'ՓԲԸ', 'ԲԲԸ']; /** * @example 'Robust full-range hub' */ public function catchPhrase() { - $result = array(); + $result = []; + foreach (static::$catchPhraseWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } /** @@ -44,11 +45,12 @@ public function catchPhrase() */ public function bs() { - $result = array(); + $result = []; + foreach (static::$bsWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Internet.php new file mode 100644 index 0000000..64f24fa --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/hy_AM/Internet.php @@ -0,0 +1,9 @@ +generator->parse($format); + } + + public static function street() + { + return static::randomElement(static::$street); + } + + public static function buildingNumber() + { + return (string) self::numberBetween(1, 999); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/id_ID/Color.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/id_ID/Color.php index bb1444d..14995b6 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/id_ID/Color.php @@ -5,20 +5,19 @@ class Color extends \Faker\Provider\Color { /** - * @link https://id.wikipedia.org/wiki/Warna - * @link https://id.wikipedia.org/wiki/Kategori:Warna - * @link https://id.wikipedia.org/wiki/Warna_tersier - **/ - - protected static $safeColorNames = array('abu-abu', 'biru', 'biru dongker', 'biru laut', 'cokelat', + * @see https://id.wikipedia.org/wiki/Warna + * @see https://id.wikipedia.org/wiki/Kategori:Warna + * @see https://id.wikipedia.org/wiki/Warna_tersier + */ + protected static $safeColorNames = ['abu-abu', 'biru', 'biru dongker', 'biru laut', 'cokelat', 'emas', 'hijau', 'hitam', 'jingga', 'krem', 'kuning', 'magenta', 'mawar', 'merah', 'merah jambu', - 'merah marun', 'nila', 'perak', 'putih', 'sepia', 'teal', 'toska', 'ungu', 'violet', 'zaitun' - ); + 'merah marun', 'nila', 'perak', 'putih', 'sepia', 'teal', 'toska', 'ungu', 'violet', 'zaitun', + ]; /** - * @link https://id.wikipedia.org/wiki/Daftar_warna - **/ - protected static $allColorNames = array( + * @see https://id.wikipedia.org/wiki/Daftar_warna + */ + protected static $allColorNames = [ 'Abu-Abu', 'Abu-Abu Tua', 'Abu-Abu Muda', 'Abu-Abu Kecokelatan', 'Almond', 'Biru', 'Biru Baja', 'Biru Dongker', 'Biru Keabu-abuan', 'Biru Kehijauan', 'Biru Keunguan', 'Biru Laut', 'Biru Laut Gelap', 'Biru Laut Terang', 'Biru Langit', 'Biru Langit Muda', 'Biru Langit Tua', 'Biru Malam', 'Biru Muda', 'Biru Nilam', 'Biru Pucat', 'Biru Terang', 'Biru Tua', 'Chiffon', 'Cokelat', 'Cokelat Gandum', 'Cokelat Keemasan', 'Cokelat Kekuningan', 'Cokelat Kemerahan', 'Cokelat Tua', @@ -36,6 +35,6 @@ class Color extends \Faker\Provider\Color 'Salmon', 'Salmon Gelap', 'Salmon Terang', 'Sawo', 'Sawo Matang', 'Tembaga', 'Tomat', 'Ungu', 'Ungu Gelap', 'Ungu Kebiruan', 'Ungu Kecokelatan', 'Ungu Lembayung', 'Ungu Lembayung Muda', 'Ungu Muda', 'Ungu Terong', - 'Zaitun', 'Zaitun Hijau Gelap' - ); + 'Zaitun', 'Zaitun Hijau Gelap', + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/id_ID/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/id_ID/Company.php new file mode 100644 index 0000000..a4a8575 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/id_ID/Company.php @@ -0,0 +1,64 @@ +birthPlaceCode(); $nik .= $this->generator->numerify('##'); @@ -312,10 +312,10 @@ public function nik($gender = null, $birthDate = null) } if (!$gender) { - $gender = $this->generator->randomElement(array(self::GENDER_MALE, self::GENDER_FEMALE)); + $gender = $this->generator->randomElement([self::GENDER_MALE, self::GENDER_FEMALE]); } - # if gender is female, add 40 to days + // if gender is female, add 40 to days if ($gender == self::GENDER_FEMALE) { $nik .= $birthDate->format('d') + 40; } else { @@ -324,7 +324,7 @@ public function nik($gender = null, $birthDate = null) $nik .= $birthDate->format('my'); - # add last random digits + // add last random digits $nik .= $this->generator->numerify('####'); return $nik; @@ -333,8 +333,8 @@ public function nik($gender = null, $birthDate = null) /** * Generates birth place code for NIK * - * @link https://id.wikipedia.org/wiki/Nomor_Induk_Kependudukan - * @link http://informasipedia.com/wilayah-indonesia/daftar-kabupaten-kota-di-indonesia/ + * @see https://id.wikipedia.org/wiki/Nomor_Induk_Kependudukan + * @see http://informasipedia.com/wilayah-indonesia/daftar-kabupaten-kota-di-indonesia/ */ protected function birthPlaceCode() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/id_ID/PhoneNumber.php similarity index 96% rename from vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/id_ID/PhoneNumber.php index de5c969..c0bfaf5 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/id_ID/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ // regional numbers '02# #### ###', '02## #### ###', @@ -51,5 +51,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '(+62) 7## #### ####', '(+62) 8## #### ####', '(+62) 9## #### ####', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Address.php similarity index 89% rename from vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/is_IS/Address.php index f2a1948..60b5a1e 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Address.php @@ -2,15 +2,12 @@ namespace Faker\Provider\is_IS; -/** - * @author Birkir Gudjonsson - */ class Address extends \Faker\Provider\Address { /** * @var array Countries in icelandic */ - protected static $country = array( + protected static $country = [ 'Afganistan', 'Albanía', 'Alsír', 'Andorra', 'Angóla', 'Angvilla', 'Antígva og Barbúda', 'Argentína', 'Armenía', 'Arúba', 'Aserbaídsjan', 'Austur-Kongó', 'Austurríki', 'Austur-Tímor', 'Álandseyjar', 'Ástralía', 'Bahamaeyjar', 'Bandaríkin', 'Bandaríska Samóa', 'Bangladess', 'Barbados', 'Barein', @@ -42,13 +39,13 @@ class Address extends \Faker\Provider\Address 'Svartfjallaland', 'Svasíland', 'Sviss', 'Svíþjóð', 'Sýrland', 'Tadsjikistan', 'Taíland', 'Taívan', 'Tansanía', 'Tékkland', 'Tonga', 'Tógó', 'Tókelá', 'Trínidad og Tóbagó', 'Tsjad', 'Tsjetsjenía', 'Turks- og Caicos-eyjar', 'Túnis', 'Túrkmenistan', 'Túvalú', 'Tyrkland', 'Ungverjaland', 'Úganda', 'Úkraína', 'Úrúgvæ', 'Úsbekistan', - 'Vanúatú', 'Venesúela', 'Vestur-Kongó', 'Vestur-Sahara', 'Víetnam', 'Wales', 'Wallis- og Fútúnaeyjar', 'Þýskaland' - ); + 'Vanúatú', 'Venesúela', 'Vestur-Kongó', 'Vestur-Sahara', 'Víetnam', 'Wales', 'Wallis- og Fútúnaeyjar', 'Þýskaland', + ]; /** * @var array Icelandic cities. */ - protected static $cityNames = array( + protected static $cityNames = [ 'Reykjavík', 'Seltjarnarnes', 'Vogar', 'Kópavogur', 'Garðabær', 'Hafnarfjörður', 'Reykjanesbær', 'Grindavík', 'Sandgerði', 'Garður', 'Reykjanesbær', 'Mosfellsbær', 'Akranes', 'Borgarnes', 'Reykholt', 'Stykkishólmur', 'Flatey', 'Grundarfjörður', 'Ólafsvík', 'Snæfellsbær', 'Hellissandur', 'Búðardalur', 'Reykhólahreppur', @@ -60,81 +57,81 @@ class Address extends \Faker\Provider\Address 'Mjóifjörður', 'Borgarfjörður', 'Reyðarfjörður', 'Eskifjörður', 'Neskaupstaður', 'Fáskrúðsfjörður', 'Stöðvarfjörður', 'Breiðdalsvík', 'Djúpivogur', 'Höfn', 'Selfoss', 'Hveragerði', 'Þorlákshöfn', 'Ölfus', 'Eyrarbakki', 'Stokkseyri', 'Laugarvatn', 'Flúðir', 'Hella', 'Hvolsvöllur', 'Vík', 'Kirkjubæjarklaustur', - 'Vestmannaeyjar' - ); + 'Vestmannaeyjar', + ]; /** * @var array Street name suffix. */ - protected static $streetSuffix = array( + protected static $streetSuffix = [ 'ás', 'bakki', 'braut', 'bær', 'brún', 'berg', 'fold', 'gata', 'gróf', 'garðar', 'höfði', 'heimar', 'hamar', 'hólar', 'háls', 'kvísl', 'lækur', 'leiti', 'land', 'múli', 'nes', 'rimi', 'stígur', 'stræti', 'stekkur', 'slóð', 'skógar', 'sel', 'teigur', 'tún', 'vangur', 'vegur', 'vogur', - 'vað' - ); + 'vað', + ]; /** * @var array Street name prefix. */ - protected static $streetPrefix = array( + protected static $streetPrefix = [ 'Aðal', 'Austur', 'Bakka', 'Braga', 'Báru', 'Brunn', 'Fiski', 'Leifs', 'Týs', 'Birki', 'Suður', 'Norður', 'Vestur', 'Austur', 'Sanda', 'Skógar', 'Stór', 'Sunnu', 'Tungu', 'Tangar', 'Úlfarfells', 'Vagn', 'Vind', 'Ysti', - 'Þing', 'Hamra', 'Hóla', 'Kríu', 'Iðu', 'Spóa', 'Starra', 'Uglu', 'Vals' - ); + 'Þing', 'Hamra', 'Hóla', 'Kríu', 'Iðu', 'Spóa', 'Starra', 'Uglu', 'Vals', + ]; /** - * @var Icelandic zip code. - **/ - protected static $postcode = array( - '%##' - ); + * @var array Icelandic zip code. + */ + protected static $postcode = [ + '%##', + ]; /** * @var array Icelandic regions. */ - protected static $regionNames = array( - 'Höfuðborgarsvæðið', 'Norðurland', 'Suðurland', 'Vesturland', 'Vestfirðir', 'Austurland', 'Suðurnes' - ); + protected static $regionNames = [ + 'Höfuðborgarsvæðið', 'Norðurland', 'Suðurland', 'Vesturland', 'Vestfirðir', 'Austurland', 'Suðurnes', + ]; /** * @var array Icelandic building numbers. */ - protected static $buildingNumber = array( + protected static $buildingNumber = [ '%##', '%#', '%#', '%', '%', '%', '%?', '% ?', - ); + ]; /** * @var array Icelandic city format. */ - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityName}}', - ); + ]; /** * @var array Icelandic street's name formats. */ - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{streetPrefix}}{{streetSuffix}}', '{{streetPrefix}}{{streetSuffix}}', '{{firstNameMale}}{{streetSuffix}}', - '{{firstNameFemale}}{{streetSuffix}}' - ); + '{{firstNameFemale}}{{streetSuffix}}', + ]; /** * @var array Icelandic street's address formats. */ - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}' - ); + protected static $streetAddressFormats = [ + '{{streetName}} {{buildingNumber}}', + ]; /** * @var array Icelandic address format. */ - protected static $addressFormats = array( + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; /** * Randomly return a real city name. diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Company.php similarity index 84% rename from vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/is_IS/Company.php index 6b93451..1327fb8 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Company.php @@ -2,15 +2,12 @@ namespace Faker\Provider\is_IS; -/** - * @author Birkir Gudjonsson - */ class Company extends \Faker\Provider\Company { /** * @var array Danish company name formats. */ - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} {{companySuffix}}', '{{lastName}} {{companySuffix}}', @@ -27,15 +24,15 @@ class Company extends \Faker\Provider\Company '{{middleName}} og {{middleName}} {{companySuffix}}', '{{middleName}} & {{lastName}}', '{{middleName}} og {{lastName}}', - ); + ]; /** * @var array Company suffixes. */ - protected static $companySuffix = array('ehf.', 'hf.', 'sf.'); + protected static $companySuffix = ['ehf.', 'hf.', 'sf.']; /** - * @link http://www.rsk.is/atvinnurekstur/virdisaukaskattur/ + * @see http://www.rsk.is/atvinnurekstur/virdisaukaskattur/ * * @var string VSK number format. */ diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Internet.php similarity index 63% rename from vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/is_IS/Internet.php index a265da6..6ad5cfe 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Internet.php @@ -2,22 +2,19 @@ namespace Faker\Provider\is_IS; -/** - * @author Birkir Gudjonsson - */ class Internet extends \Faker\Provider\Internet { /** * @var array Some email domains in Denmark. */ - protected static $freeEmailDomain = array( - 'gmail.com', 'yahoo.com', 'hotmail.com', 'visir.is', 'simnet.is', 'internet.is' - ); + protected static $freeEmailDomain = [ + 'gmail.com', 'yahoo.com', 'hotmail.com', 'visir.is', 'simnet.is', 'internet.is', + ]; /** * @var array Some TLD. */ - protected static $tld = array( + protected static $tld = [ 'com', 'com', 'com', 'net', 'is', 'is', 'is', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/is_IS/Payment.php index c119c38..6ad2736 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'IS', $length = null) diff --git a/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Person.php new file mode 100644 index 0000000..517bd66 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/Person.php @@ -0,0 +1,142 @@ + Icelandic names for women. + */ + protected static $firstNameFemale = ['Aagot', 'Abela', 'Abigael', 'Ada', 'Adda', 'Addý', 'Adela', 'Adelía', 'Adríana', 'Aðalbjörg', 'Aðalbjört', 'Aðalborg', 'Aðaldís', 'Aðalfríður', 'Aðalheiður', 'Aðalrós', 'Aðalsteina', 'Aðalsteinunn', 'Aðalveig', 'Agata', 'Agatha', 'Agða', 'Agla', 'Agnea', 'Agnes', 'Agneta', 'Alanta', 'Alba', 'Alberta', 'Albína', 'Alda', 'Aldís', 'Aldný', 'Aleta', 'Aletta', 'Alexa', 'Alexandra', 'Alexandría', 'Alexis', 'Alexía', 'Alfa', 'Alfífa', 'Alice', 'Alida', 'Alída', 'Alína', 'Alís', 'Alísa', 'Alla', 'Allý', 'Alma', 'Alrún', 'Alva', 'Alvilda', 'Amadea', 'Amal', 'Amalía', 'Amanda', 'Amelía', 'Amilía', 'Amíra', 'Amy', 'Amý', 'Analía', 'Anastasía', 'Andra', 'Andrá', 'Andrea', 'Anetta', 'Angela', 'Angelíka', 'Anika', 'Anita', 'Aníka', 'Anína', 'Aníta', 'Anja', 'Ann', 'Anna', 'Annabella', 'Annalísa', 'Anne', 'Annelí', 'Annetta', 'Anney', 'Annika', 'Annía', 'Anný', 'Antonía', 'Apríl', 'Ardís', 'Arey', 'Arinbjörg', 'Aris', 'Arisa', 'Aría', 'Aríanna', 'Aríella', 'Arín', 'Arína', 'Arís', 'Armenía', 'Arna', 'Arnbjörg', 'Arnborg', 'Arndís', 'Arney', 'Arnfinna', 'Arnfríður', 'Arngerður', 'Arngunnur', 'Arnheiður', 'Arnhildur', 'Arnika', 'Arnkatla', 'Arnlaug', 'Arnleif', 'Arnlín', 'Arnljót', 'Arnóra', 'Arnrós', 'Arnrún', 'Arnþóra', 'Arnþrúður', 'Asírí', 'Askja', 'Assa', 'Astrid', 'Atalía', 'Atena', 'Athena', 'Atla', 'Atlanta', 'Auðbjörg', 'Auðbjört', 'Auðdís', 'Auðlín', 'Auðna', 'Auðný', 'Auðrún', 'Auður', 'Aurora', 'Axelía', 'Axelma', 'Aþena', 'Ágústa', 'Ágústína', 'Álfdís', 'Álfey', 'Álfgerður', 'Álfheiður', 'Álfhildur', 'Álfrós', 'Álfrún', 'Álfsól', 'Árbjörg', 'Árbjört', 'Árdís', 'Árelía', 'Árlaug', 'Ármey', 'Árna', 'Árndís', 'Árney', 'Árnheiður', 'Árnína', 'Árný', 'Áróra', 'Ársól', 'Ársæl', 'Árún', 'Árveig', 'Árvök', 'Árþóra', 'Ása', 'Ásbjörg', 'Ásborg', 'Ásdís', 'Ásfríður', 'Ásgerður', 'Áshildur', 'Áskatla', 'Ásla', 'Áslaug', 'Ásleif', 'Ásný', 'Ásrós', 'Ásrún', 'Ást', 'Ásta', 'Ástbjörg', 'Ástbjört', 'Ástdís', 'Ástfríður', 'Ástgerður', 'Ástheiður', 'Ásthildur', 'Ástríður', 'Ástrós', 'Ástrún', 'Ástveig', 'Ástþóra', 'Ástþrúður', 'Ásvör', 'Baldey', 'Baldrún', 'Baldvina', 'Barbara', 'Barbára', 'Bassí', 'Bára', 'Bebba', 'Begga', 'Belinda', 'Bella', 'Benedikta', 'Bengta', 'Benidikta', 'Benía', 'Beníta', 'Benna', 'Benney', 'Benný', 'Benta', 'Bentey', 'Bentína', 'Bera', 'Bergdís', 'Bergey', 'Bergfríður', 'Bergheiður', 'Berghildur', 'Berglaug', 'Berglind', 'Berglín', 'Bergljót', 'Bergmannía', 'Bergný', 'Bergrán', 'Bergrín', 'Bergrós', 'Bergrún', 'Bergþóra', 'Berit', 'Bernódía', 'Berta', 'Bertha', 'Bessí', 'Bestla', 'Beta', 'Betanía', 'Betsý', 'Bettý', 'Bil', 'Birgit', 'Birgitta', 'Birna', 'Birta', 'Birtna', 'Bíbí', 'Bína', 'Bjargdís', 'Bjargey', 'Bjargheiður', 'Bjarghildur', 'Bjarglind', 'Bjarkey', 'Bjarklind', 'Bjarma', 'Bjarndís', 'Bjarney', 'Bjarnfríður', 'Bjarngerður', 'Bjarnheiður', 'Bjarnhildur', 'Bjarnlaug', 'Bjarnrún', 'Bjarnveig', 'Bjarný', 'Bjarnþóra', 'Bjarnþrúður', 'Bjartey', 'Bjartmey', 'Björg', 'Björgey', 'Björgheiður', 'Björghildur', 'Björk', 'Björney', 'Björnfríður', 'Björt', 'Bláey', 'Blíða', 'Blín', 'Blómey', 'Blædís', 'Blær', 'Bobba', 'Boga', 'Bogdís', 'Bogey', 'Bogga', 'Boghildur', 'Borg', 'Borgdís', 'Borghildur', 'Borgný', 'Borgrún', 'Borgþóra', 'Botnía', 'Bóel', 'Bót', 'Bóthildur', 'Braga', 'Braghildur', 'Branddís', 'Brá', 'Brák', 'Brigitta', 'Brimdís', 'Brimhildur', 'Brimrún', 'Brit', 'Britt', 'Britta', 'Bríana', 'Bríanna', 'Bríet', 'Bryndís', 'Brynfríður', 'Bryngerður', 'Brynheiður', 'Brynhildur', 'Brynja', 'Brynný', 'Burkney', 'Bylgja', 'Camilla', 'Carla', 'Carmen', 'Cecilia', 'Cecilía', 'Charlotta', 'Charlotte', 'Christina', 'Christine', 'Clara', 'Daðey', 'Daðína', 'Dagbjörg', 'Dagbjört', 'Dagfríður', 'Daggrós', 'Dagheiður', 'Dagmar', 'Dagmey', 'Dagný', 'Dagrún', 'Daldís', 'Daley', 'Dalía', 'Dalla', 'Dallilja', 'Dalrós', 'Dana', 'Daney', 'Danfríður', 'Danheiður', 'Danhildur', 'Danía', 'Daníela', 'Daníella', 'Dara', 'Debora', 'Debóra', 'Dendý', 'Didda', 'Dilja', 'Diljá', 'Dimmblá', 'Dimmey', 'Día', 'Díana', 'Díanna', 'Díma', 'Dís', 'Dísa', 'Dísella', 'Donna', 'Doris', 'Dorothea', 'Dóa', 'Dómhildur', 'Dóra', 'Dórey', 'Dóris', 'Dórothea', 'Dórótea', 'Dóróthea', 'Drauma', 'Draumey', 'Drífa', 'Droplaug', 'Drótt', 'Dröfn', 'Dúa', 'Dúfa', 'Dúna', 'Dýrborg', 'Dýrfinna', 'Dýrleif', 'Dýrley', 'Dýrunn', 'Dæja', 'Dögg', 'Dögun', 'Ebba', 'Ebonney', 'Edda', 'Edel', 'Edil', 'Edit', 'Edith', 'Eðna', 'Efemía', 'Egedía', 'Eggrún', 'Egla', 'Eiðný', 'Eiðunn', 'Eik', 'Einbjörg', 'Eindís', 'Einey', 'Einfríður', 'Einhildur', 'Einína', 'Einrún', 'Eir', 'Eirdís', 'Eirfinna', 'Eiríka', 'Eirný', 'Eirún', 'Elba', 'Eldbjörg', 'Eldey', 'Eldlilja', 'Eldrún', 'Eleina', 'Elektra', 'Elena', 'Elenborg', 'Elfa', 'Elfur', 'Elina', 'Elinborg', 'Elisabeth', 'Elía', 'Elíana', 'Elín', 'Elína', 'Elíná', 'Elínbet', 'Elínbjörg', 'Elínbjört', 'Elínborg', 'Elíndís', 'Elíngunnur', 'Elínheiður', 'Elínrós', 'Elírós', 'Elísa', 'Elísabet', 'Elísabeth', 'Elka', 'Ella', 'Ellen', 'Elley', 'Ellisif', 'Ellín', 'Elly', 'Ellý', 'Elma', 'Elna', 'Elsa', 'Elsabet', 'Elsie', 'Elsí', 'Elsý', 'Elva', 'Elvi', 'Elvíra', 'Elvý', 'Embla', 'Emelía', 'Emelíana', 'Emelína', 'Emeralda', 'Emilía', 'Emilíana', 'Emilíanna', 'Emilý', 'Emma', 'Emmý', 'Emý', 'Enea', 'Eneka', 'Engilbjört', 'Engilráð', 'Engilrós', 'Engla', 'Enika', 'Enja', 'Enóla', 'Eres', 'Erika', 'Erin', 'Erla', 'Erlen', 'Erlín', 'Erna', 'Esja', 'Esmeralda', 'Ester', 'Esther', 'Estiva', 'Ethel', 'Etna', 'Eufemía', 'Eva', 'Evelyn', 'Evey', 'Evfemía', 'Evgenía', 'Evíta', 'Evlalía', 'Ey', 'Eybjörg', 'Eybjört', 'Eydís', 'Eyfríður', 'Eygerður', 'Eygló', 'Eyhildur', 'Eyja', 'Eyjalín', 'Eyleif', 'Eylín', 'Eyrós', 'Eyrún', 'Eyveig', 'Eyvör', 'Eyþóra', 'Eyþrúður', 'Fanndís', 'Fanney', 'Fannlaug', 'Fanny', 'Fanný', 'Febrún', 'Fema', 'Filipía', 'Filippa', 'Filippía', 'Finna', 'Finnbjörg', 'Finnbjörk', 'Finnboga', 'Finnborg', 'Finndís', 'Finney', 'Finnfríður', 'Finnlaug', 'Finnrós', 'Fía', 'Fídes', 'Fífa', 'Fjalldís', 'Fjóla', 'Flóra', 'Folda', 'Fransiska', 'Franziska', 'Frán', 'Fregn', 'Freydís', 'Freygerður', 'Freyja', 'Freylaug', 'Freyleif', 'Friðbjörg', 'Friðbjört', 'Friðborg', 'Friðdís', 'Friðdóra', 'Friðey', 'Friðfinna', 'Friðgerður', 'Friðjóna', 'Friðlaug', 'Friðleif', 'Friðlín', 'Friðmey', 'Friðný', 'Friðrika', 'Friðrikka', 'Friðrós', 'Friðrún', 'Friðsemd', 'Friðveig', 'Friðþóra', 'Frigg', 'Fríða', 'Fríður', 'Frostrós', 'Fróðný', 'Fura', 'Fönn', 'Gabríela', 'Gabríella', 'Gauja', 'Gauthildur', 'Gefjun', 'Gefn', 'Geira', 'Geirbjörg', 'Geirdís', 'Geirfinna', 'Geirfríður', 'Geirhildur', 'Geirlaug', 'Geirlöð', 'Geirný', 'Geirríður', 'Geirrún', 'Geirþrúður', 'Georgía', 'Gerða', 'Gerður', 'Gestheiður', 'Gestný', 'Gestrún', 'Gillý', 'Gilslaug', 'Gissunn', 'Gía', 'Gígja', 'Gísela', 'Gísla', 'Gísley', 'Gíslína', 'Gíslný', 'Gíslrún', 'Gíslunn', 'Gíta', 'Gjaflaug', 'Gloría', 'Gló', 'Glóa', 'Glóbjört', 'Glódís', 'Glóð', 'Glóey', 'Gná', 'Góa', 'Gógó', 'Grein', 'Gret', 'Greta', 'Grélöð', 'Grét', 'Gréta', 'Gríma', 'Grímey', 'Grímheiður', 'Grímhildur', 'Gróa', 'Guðbjörg', 'Guðbjört', 'Guðborg', 'Guðdís', 'Guðfinna', 'Guðfríður', 'Guðjóna', 'Guðlaug', 'Guðleif', 'Guðlín', 'Guðmey', 'Guðmunda', 'Guðmundína', 'Guðný', 'Guðríður', 'Guðrún', 'Guðsteina', 'Guðveig', 'Gullbrá', 'Gullveig', 'Gullý', 'Gumma', 'Gunnbjörg', 'Gunnbjört', 'Gunnborg', 'Gunndís', 'Gunndóra', 'Gunnella', 'Gunnfinna', 'Gunnfríður', 'Gunnharða', 'Gunnheiður', 'Gunnhildur', 'Gunnjóna', 'Gunnlaug', 'Gunnleif', 'Gunnlöð', 'Gunnrún', 'Gunnur', 'Gunnveig', 'Gunnvör', 'Gunný', 'Gunnþóra', 'Gunnþórunn', 'Gurrý', 'Gúa', 'Gyða', 'Gyðja', 'Gyðríður', 'Gytta', 'Gæfa', 'Gæflaug', 'Hadda', 'Haddý', 'Hafbjörg', 'Hafborg', 'Hafdís', 'Hafey', 'Hafliða', 'Haflína', 'Hafný', 'Hafrós', 'Hafrún', 'Hafsteina', 'Hafþóra', 'Halla', 'Hallbera', 'Hallbjörg', 'Hallborg', 'Halldís', 'Halldóra', 'Halley', 'Hallfríður', 'Hallgerður', 'Hallgunnur', 'Hallkatla', 'Hallný', 'Hallrún', 'Hallveig', 'Hallvör', 'Hanna', 'Hanney', 'Hansa', 'Hansína', 'Harpa', 'Hauður', 'Hákonía', 'Heba', 'Hedda', 'Hedí', 'Heiða', 'Heiðbjörg', 'Heiðbjörk', 'Heiðbjört', 'Heiðbrá', 'Heiðdís', 'Heiðlaug', 'Heiðlóa', 'Heiðný', 'Heiðrós', 'Heiðrún', 'Heiður', 'Heiðveig', 'Hekla', 'Helen', 'Helena', 'Helga', 'Hella', 'Helma', 'Hendrikka', 'Henný', 'Henrietta', 'Henrika', 'Henríetta', 'Hera', 'Herbjörg', 'Herbjört', 'Herborg', 'Herdís', 'Herfríður', 'Hergerður', 'Herlaug', 'Hermína', 'Hersilía', 'Herta', 'Hertha', 'Hervör', 'Herþrúður', 'Hilda', 'Hildegard', 'Hildibjörg', 'Hildigerður', 'Hildigunnur', 'Hildiríður', 'Hildisif', 'Hildur', 'Hilma', 'Himinbjörg', 'Hind', 'Hinrika', 'Hinrikka', 'Hjalta', 'Hjaltey', 'Hjálmdís', 'Hjálmey', 'Hjálmfríður', 'Hjálmgerður', 'Hjálmrós', 'Hjálmrún', 'Hjálmveig', 'Hjördís', 'Hjörfríður', 'Hjörleif', 'Hjörný', 'Hjörtfríður', 'Hlaðgerður', 'Hlédís', 'Hlíf', 'Hlín', 'Hlökk', 'Hólmbjörg', 'Hólmdís', 'Hólmfríður', 'Hrafna', 'Hrafnborg', 'Hrafndís', 'Hrafney', 'Hrafngerður', 'Hrafnheiður', 'Hrafnhildur', 'Hrafnkatla', 'Hrafnlaug', 'Hrafntinna', 'Hraundís', 'Hrefna', 'Hreindís', 'Hróðný', 'Hrólfdís', 'Hrund', 'Hrönn', 'Hugbjörg', 'Hugbjört', 'Hugborg', 'Hugdís', 'Hugljúf', 'Hugrún', 'Huld', 'Hulda', 'Huldís', 'Huldrún', 'Húnbjörg', 'Húndís', 'Húngerður', 'Hvönn', 'Hödd', 'Högna', 'Hörn', 'Ida', 'Idda', 'Iða', 'Iðunn', 'Ilmur', 'Immý', 'Ina', 'Inda', 'India', 'Indiana', 'Indía', 'Indíana', 'Indíra', 'Indra', 'Inga', 'Ingdís', 'Ingeborg', 'Inger', 'Ingey', 'Ingheiður', 'Inghildur', 'Ingibjörg', 'Ingibjört', 'Ingiborg', 'Ingifinna', 'Ingifríður', 'Ingigerður', 'Ingilaug', 'Ingileif', 'Ingilín', 'Ingimaría', 'Ingimunda', 'Ingiríður', 'Ingirós', 'Ingisól', 'Ingiveig', 'Ingrid', 'Ingrún', 'Ingunn', 'Ingveldur', 'Inna', 'Irena', 'Irene', 'Irja', 'Irma', 'Irmý', 'Irpa', 'Isabel', 'Isabella', 'Ída', 'Íma', 'Ína', 'Ír', 'Íren', 'Írena', 'Íris', 'Írunn', 'Ísabel', 'Ísabella', 'Ísadóra', 'Ísafold', 'Ísalind', 'Ísbjörg', 'Ísdís', 'Ísey', 'Ísfold', 'Ísgerður', 'Íshildur', 'Ísis', 'Íslaug', 'Ísleif', 'Ísmey', 'Ísold', 'Ísól', 'Ísrún', 'Íssól', 'Ísveig', 'Íunn', 'Íva', 'Jakobína', 'Jana', 'Jane', 'Janetta', 'Jannika', 'Jara', 'Jarún', 'Jarþrúður', 'Jasmín', 'Járnbrá', 'Járngerður', 'Jenetta', 'Jenna', 'Jenný', 'Jensína', 'Jessý', 'Jovina', 'Jóa', 'Jóanna', 'Jódís', 'Jófríður', 'Jóhanna', 'Jólín', 'Jóna', 'Jónanna', 'Jónasína', 'Jónbjörg', 'Jónbjört', 'Jóndís', 'Jóndóra', 'Jóney', 'Jónfríður', 'Jóngerð', 'Jónheiður', 'Jónhildur', 'Jóninna', 'Jónída', 'Jónína', 'Jónný', 'Jóný', 'Jóra', 'Jóríður', 'Jórlaug', 'Jórunn', 'Jósebína', 'Jósefín', 'Jósefína', 'Judith', 'Júdea', 'Júdit', 'Júlía', 'Júlíana', 'Júlíanna', 'Júlíetta', 'Júlírós', 'Júnía', 'Júníana', 'Jökla', 'Jökulrós', 'Jörgína', 'Kaðlín', 'Kaja', 'Kalla', 'Kamilla', 'Kamí', 'Kamma', 'Kapitola', 'Kapítóla', 'Kara', 'Karen', 'Karin', 'Karitas', 'Karí', 'Karín', 'Karína', 'Karítas', 'Karla', 'Karlinna', 'Karlína', 'Karlotta', 'Karolína', 'Karó', 'Karólín', 'Karólína', 'Kassandra', 'Kata', 'Katarína', 'Katerína', 'Katharina', 'Kathinka', 'Katinka', 'Katla', 'Katrín', 'Katrína', 'Katý', 'Kára', 'Kellý', 'Kendra', 'Ketilbjörg', 'Ketilfríður', 'Ketilríður', 'Kiddý', 'Kira', 'Kirsten', 'Kirstín', 'Kittý', 'Kjalvör', 'Klara', 'Kládía', 'Klementína', 'Kleópatra', 'Kolbjörg', 'Kolbrá', 'Kolbrún', 'Koldís', 'Kolfinna', 'Kolfreyja', 'Kolgríma', 'Kolka', 'Konkordía', 'Konný', 'Korka', 'Kormlöð', 'Kornelía', 'Kókó', 'Krista', 'Kristbjörg', 'Kristborg', 'Kristel', 'Kristensa', 'Kristey', 'Kristfríður', 'Kristgerður', 'Kristin', 'Kristine', 'Kristíana', 'Kristíanna', 'Kristín', 'Kristína', 'Kristjana', 'Kristjóna', 'Kristlaug', 'Kristlind', 'Kristlín', 'Kristný', 'Kristólína', 'Kristrós', 'Kristrún', 'Kristveig', 'Kristvina', 'Kristþóra', 'Kría', 'Kæja', 'Laila', 'Laíla', 'Lana', 'Lara', 'Laufey', 'Laufheiður', 'Laufhildur', 'Lauga', 'Laugey', 'Laugheiður', 'Lára', 'Lárensína', 'Láretta', 'Lárey', 'Lea', 'Leikný', 'Leila', 'Lena', 'Leonóra', 'Leóna', 'Leónóra', 'Lilja', 'Liljá', 'Liljurós', 'Lill', 'Lilla', 'Lillian', 'Lillý', 'Lily', 'Lilý', 'Lind', 'Linda', 'Linddís', 'Lingný', 'Lisbeth', 'Listalín', 'Liv', 'Líba', 'Líf', 'Lífdís', 'Lín', 'Lína', 'Línbjörg', 'Líndís', 'Líneik', 'Líney', 'Línhildur', 'Lísa', 'Lísabet', 'Lísandra', 'Lísbet', 'Lísebet', 'Lív', 'Ljósbjörg', 'Ljósbrá', 'Ljótunn', 'Lofn', 'Loftveig', 'Logey', 'Lokbrá', 'Lotta', 'Louisa', 'Lousie', 'Lovísa', 'Lóa', 'Lóreley', 'Lukka', 'Lúcía', 'Lúðvíka', 'Lúísa', 'Lúna', 'Lúsinda', 'Lúsía', 'Lúvísa', 'Lydia', 'Lydía', 'Lyngheiður', 'Lýdía', 'Læla', 'Maddý', 'Magda', 'Magdalena', 'Magðalena', 'Magga', 'Maggey', 'Maggý', 'Magna', 'Magndís', 'Magnea', 'Magnes', 'Magney', 'Magnfríður', 'Magnheiður', 'Magnhildur', 'Magnúsína', 'Magný', 'Magnþóra', 'Maía', 'Maídís', 'Maísól', 'Maj', 'Maja', 'Malen', 'Malena', 'Malía', 'Malín', 'Malla', 'Manda', 'Manúela', 'Mara', 'Mardís', 'Marela', 'Marella', 'Maren', 'Marey', 'Marfríður', 'Margit', 'Margot', 'Margret', 'Margrét', 'Margrjet', 'Margunnur', 'Marheiður', 'Maria', 'Marie', 'Marikó', 'Marinella', 'Marit', 'Marí', 'María', 'Maríam', 'Marían', 'Maríana', 'Maríanna', 'Marín', 'Marína', 'Marínella', 'Maríon', 'Marísa', 'Marísól', 'Marít', 'Maríuerla', 'Marja', 'Markrún', 'Marlaug', 'Marlena', 'Marlín', 'Marlís', 'Marólína', 'Marsa', 'Marselía', 'Marselína', 'Marsibil', 'Marsilía', 'Marsý', 'Marta', 'Martha', 'Martína', 'Mary', 'Marý', 'Matta', 'Mattea', 'Matthea', 'Matthilda', 'Matthildur', 'Matthía', 'Mattíana', 'Mattína', 'Mattý', 'Maxima', 'Mábil', 'Málfríður', 'Málhildur', 'Málmfríður', 'Mánadís', 'Máney', 'Mára', 'Meda', 'Mekkin', 'Mekkín', 'Melinda', 'Melissa', 'Melkorka', 'Melrós', 'Messíana', 'Metta', 'Mey', 'Mikaela', 'Mikaelína', 'Mikkalína', 'Milda', 'Mildríður', 'Milla', 'Millý', 'Minerva', 'Minna', 'Minney', 'Minný', 'Miriam', 'Mirja', 'Mirjam', 'Mirra', 'Mist', 'Mía', 'Mínerva', 'Míra', 'Míranda', 'Mítra', 'Mjaðveig', 'Mjalldís', 'Mjallhvít', 'Mjöll', 'Mona', 'Monika', 'Módís', 'Móeiður', 'Móey', 'Móheiður', 'Móna', 'Mónika', 'Móníka', 'Munda', 'Mundheiður', 'Mundhildur', 'Mundína', 'Myrra', 'Mýr', 'Mýra', 'Mýrún', 'Mörk', 'Nadia', 'Nadía', 'Nadja', 'Nana', 'Nanna', 'Nanný', 'Nansý', 'Naomí', 'Naómí', 'Natalie', 'Natalía', 'Náttsól', 'Nella', 'Nellý', 'Nenna', 'Nicole', 'Niðbjörg', 'Nikíta', 'Nikoletta', 'Nikólína', 'Ninja', 'Ninna', 'Nína', 'Níní', 'Njála', 'Njóla', 'Norma', 'Nóa', 'Nóra', 'Nótt', 'Nýbjörg', 'Odda', 'Oddbjörg', 'Oddfreyja', 'Oddfríður', 'Oddgerður', 'Oddhildur', 'Oddlaug', 'Oddleif', 'Oddný', 'Oddrún', 'Oddveig', 'Oddvör', 'Oktavía', 'Októvía', 'Olga', 'Ollý', 'Ora', 'Orka', 'Ormheiður', 'Ormhildur', 'Otkatla', 'Otta', 'Óda', 'Ófelía', 'Óla', 'Ólafía', 'Ólafína', 'Ólavía', 'Ólivía', 'Ólína', 'Ólöf', 'Ósa', 'Ósk', 'Ótta', 'Pamela', 'París', 'Patricia', 'Patrisía', 'Pála', 'Páldís', 'Páley', 'Pálfríður', 'Pálhanna', 'Pálheiður', 'Pálhildur', 'Pálín', 'Pálína', 'Pálmey', 'Pálmfríður', 'Pálrún', 'Perla', 'Peta', 'Petra', 'Petrea', 'Petrína', 'Petronella', 'Petrónella', 'Petrós', 'Petrún', 'Petrúnella', 'Pétrína', 'Pétrún', 'Pía', 'Polly', 'Pollý', 'Pría', 'Rafney', 'Rafnhildur', 'Ragna', 'Ragnbjörg', 'Ragney', 'Ragnfríður', 'Ragnheiður', 'Ragnhildur', 'Rakel', 'Ramóna', 'Randalín', 'Randíður', 'Randý', 'Ranka', 'Rannva', 'Rannveig', 'Ráðhildur', 'Rán', 'Rebekka', 'Reginbjörg', 'Regína', 'Rein', 'Renata', 'Reyn', 'Reyndís', 'Reynheiður', 'Reynhildur', 'Rikka', 'Ripley', 'Rita', 'Ríkey', 'Rín', 'Ríta', 'Ronja', 'Rorí', 'Roxanna', 'Róberta', 'Róbjörg', 'Rós', 'Rósa', 'Rósalind', 'Rósanna', 'Rósbjörg', 'Rósborg', 'Róselía', 'Rósey', 'Rósfríður', 'Róshildur', 'Rósinkara', 'Rósinkransa', 'Róska', 'Róslaug', 'Róslind', 'Róslinda', 'Róslín', 'Rósmary', 'Rósmarý', 'Rósmunda', 'Rósný', 'Runný', 'Rut', 'Ruth', 'Rúbý', 'Rún', 'Rúna', 'Rúndís', 'Rúnhildur', 'Rúrí', 'Röfn', 'Rögn', 'Röskva', 'Sabína', 'Sabrína', 'Saga', 'Salbjörg', 'Saldís', 'Salgerður', 'Salín', 'Salína', 'Salka', 'Salma', 'Salný', 'Salome', 'Salóme', 'Salvör', 'Sandra', 'Sanna', 'Santía', 'Sara', 'Sarína', 'Sefanía', 'Selja', 'Selka', 'Selma', 'Senía', 'Septíma', 'Sera', 'Serena', 'Seselía', 'Sesilía', 'Sesselía', 'Sesselja', 'Sessilía', 'Sif', 'Sigdís', 'Sigdóra', 'Sigfríð', 'Sigfríður', 'Sigga', 'Siggerður', 'Sigmunda', 'Signa', 'Signhildur', 'Signý', 'Sigríður', 'Sigrún', 'Sigurást', 'Sigurásta', 'Sigurbára', 'Sigurbirna', 'Sigurbjörg', 'Sigurbjört', 'Sigurborg', 'Sigurdís', 'Sigurdóra', 'Sigurdríf', 'Sigurdrífa', 'Sigurða', 'Sigurey', 'Sigurfinna', 'Sigurfljóð', 'Sigurgeira', 'Sigurhanna', 'Sigurhelga', 'Sigurhildur', 'Sigurjóna', 'Sigurlaug', 'Sigurleif', 'Sigurlilja', 'Sigurlinn', 'Sigurlín', 'Sigurlína', 'Sigurmunda', 'Sigurnanna', 'Sigurósk', 'Sigurrós', 'Sigursteina', 'Sigurunn', 'Sigurveig', 'Sigurvina', 'Sigurþóra', 'Sigyn', 'Sigþóra', 'Sigþrúður', 'Silfa', 'Silfá', 'Silfrún', 'Silja', 'Silka', 'Silla', 'Silva', 'Silvana', 'Silvía', 'Sirra', 'Sirrý', 'Siv', 'Sía', 'Símonía', 'Sísí', 'Síta', 'Sjöfn', 'Skarpheiður', 'Skugga', 'Skuld', 'Skúla', 'Skúlína', 'Snjáfríður', 'Snjáka', 'Snjófríður', 'Snjólaug', 'Snorra', 'Snót', 'Snæbjörg', 'Snæbjört', 'Snæborg', 'Snæbrá', 'Snædís', 'Snæfríður', 'Snælaug', 'Snærós', 'Snærún', 'Soffía', 'Sofie', 'Sofía', 'Solveig', 'Sonja', 'Sonný', 'Sophia', 'Sophie', 'Sól', 'Sóla', 'Sólbjörg', 'Sólbjört', 'Sólborg', 'Sólbrá', 'Sólbrún', 'Sóldís', 'Sóldögg', 'Sóley', 'Sólfríður', 'Sólgerður', 'Sólhildur', 'Sólín', 'Sólkatla', 'Sóllilja', 'Sólný', 'Sólrós', 'Sólrún', 'Sólveig', 'Sólvör', 'Sónata', 'Stefana', 'Stefanía', 'Stefánný', 'Steina', 'Steinbjörg', 'Steinborg', 'Steindís', 'Steindóra', 'Steiney', 'Steinfríður', 'Steingerður', 'Steinhildur', 'Steinlaug', 'Steinrós', 'Steinrún', 'Steinunn', 'Steinvör', 'Steinþóra', 'Stella', 'Stígheiður', 'Stígrún', 'Stína', 'Stjarna', 'Styrgerður', 'Sumarlína', 'Sumarrós', 'Sunna', 'Sunnefa', 'Sunneva', 'Sunniva', 'Sunníva', 'Susan', 'Súla', 'Súsan', 'Súsanna', 'Svafa', 'Svala', 'Svalrún', 'Svana', 'Svanbjörg', 'Svanbjört', 'Svanborg', 'Svandís', 'Svaney', 'Svanfríður', 'Svanheiður', 'Svanhildur', 'Svanhvít', 'Svanlaug', 'Svanrós', 'Svanþrúður', 'Svava', 'Svea', 'Sveina', 'Sveinbjörg', 'Sveinborg', 'Sveindís', 'Sveiney', 'Sveinfríður', 'Sveingerður', 'Sveinhildur', 'Sveinlaug', 'Sveinrós', 'Sveinrún', 'Sveinsína', 'Sveinveig', 'Sylgja', 'Sylva', 'Sylvía', 'Sæbjörg', 'Sæbjört', 'Sæborg', 'Sædís', 'Sæfinna', 'Sæfríður', 'Sæhildur', 'Sælaug', 'Sæmunda', 'Sæný', 'Særós', 'Særún', 'Sæsól', 'Sæunn', 'Sævör', 'Sölva', 'Sölvey', 'Sölvína', 'Tala', 'Talía', 'Tamar', 'Tamara', 'Tanía', 'Tanja', 'Tanya', 'Tanya', 'Tara', 'Tea', 'Teitný', 'Tekla', 'Telma', 'Tera', 'Teresa', 'Teresía', 'Thea', 'Thelma', 'Theodóra', 'Theódóra', 'Theresa', 'Tindra', 'Tinna', 'Tirsa', 'Tía', 'Tíbrá', 'Tína', 'Todda', 'Torbjörg', 'Torfey', 'Torfheiður', 'Torfhildur', 'Tóbý', 'Tóka', 'Tóta', 'Tristana', 'Trú', 'Tryggva', 'Tryggvína', 'Týra', 'Ugla', 'Una', 'Undína', 'Unna', 'Unnbjörg', 'Unndís', 'Unnur', 'Urður', 'Úa', 'Úlfa', 'Úlfdís', 'Úlfey', 'Úlfheiður', 'Úlfhildur', 'Úlfrún', 'Úlla', 'Úna', 'Úndína', 'Úranía', 'Úrsúla', 'Vagna', 'Vagnbjörg', 'Vagnfríður', 'Vaka', 'Vala', 'Valbjörg', 'Valbjörk', 'Valbjört', 'Valborg', 'Valdheiður', 'Valdís', 'Valentína', 'Valería', 'Valey', 'Valfríður', 'Valgerða', 'Valgerður', 'Valhildur', 'Valka', 'Vallý', 'Valný', 'Valrós', 'Valrún', 'Valva', 'Valý', 'Valþrúður', 'Vanda', 'Vár', 'Veig', 'Veiga', 'Venus', 'Vera', 'Veronika', 'Verónika', 'Veróníka', 'Vetrarrós', 'Vébjörg', 'Védís', 'Végerður', 'Vélaug', 'Véný', 'Vibeka', 'Victoría', 'Viðja', 'Vigdís', 'Vigný', 'Viktoria', 'Viktoría', 'Vilborg', 'Vildís', 'Vilfríður', 'Vilgerður', 'Vilhelmína', 'Villa', 'Villimey', 'Vilma', 'Vilný', 'Vinbjörg', 'Vinný', 'Vinsý', 'Virginía', 'Víbekka', 'Víf', 'Vígdögg', 'Víggunnur', 'Víóla', 'Víóletta', 'Vísa', 'Von', 'Von', 'Voney', 'Vordís', 'Ylfa', 'Ylfur', 'Ylja', 'Ylva', 'Ynja', 'Yrja', 'Yrsa', 'Ýja', 'Ýma', 'Ýr', 'Ýrr', 'Þalía', 'Þeba', 'Þeódís', 'Þeódóra', 'Þjóðbjörg', 'Þjóðhildur', 'Þoka', 'Þorbjörg', 'Þorfinna', 'Þorgerður', 'Þorgríma', 'Þorkatla', 'Þorlaug', 'Þorleif', 'Þorsteina', 'Þorstína', 'Þóra', 'Þóranna', 'Þórarna', 'Þórbjörg', 'Þórdís', 'Þórða', 'Þórelfa', 'Þórelfur', 'Þórey', 'Þórfríður', 'Þórgunna', 'Þórgunnur', 'Þórhalla', 'Þórhanna', 'Þórheiður', 'Þórhildur', 'Þórkatla', 'Þórlaug', 'Þórleif', 'Þórný', 'Þórodda', 'Þórsteina', 'Þórsteinunn', 'Þórstína', 'Þórunn', 'Þórveig', 'Þórvör', 'Þrá', 'Þrúða', 'Þrúður', 'Þula', 'Þura', 'Þurí', 'Þuríður', 'Þurý', 'Þúfa', 'Þyri', 'Þyrí', 'Þöll', 'Ægileif', 'Æsa', 'Æsgerður', 'Ögmunda', 'Ögn', 'Ölrún', 'Ölveig', 'Örbrún', 'Örk', 'Ösp']; + + /** + * @var array Icelandic names for men. + */ + protected static $firstNameMale = ['Aage', 'Abel', 'Abraham', 'Adam', 'Addi', 'Adel', 'Adíel', 'Adólf', 'Adrían', 'Adríel', 'Aðalberg', 'Aðalbergur', 'Aðalbert', 'Aðalbjörn', 'Aðalborgar', 'Aðalgeir', 'Aðalmundur', 'Aðalráður', 'Aðalsteinn', 'Aðólf', 'Agnar', 'Agni', 'Albert', 'Aldar', 'Alex', 'Alexander', 'Alexíus', 'Alfons', 'Alfred', 'Alfreð', 'Ali', 'Allan', 'Alli', 'Almar', 'Alrekur', 'Alvar', 'Alvin', 'Amír', 'Amos', 'Anders', 'Andreas', 'André', 'Andrés', 'Andri', 'Anes', 'Anfinn', 'Angantýr', 'Angi', 'Annar', 'Annarr', 'Annas', 'Annel', 'Annes', 'Anthony', 'Anton', 'Antoníus', 'Aran', 'Arent', 'Ares', 'Ari', 'Arilíus', 'Arinbjörn', 'Aríel', 'Aríus', 'Arnald', 'Arnaldur', 'Arnar', 'Arnberg', 'Arnbergur', 'Arnbjörn', 'Arndór', 'Arnes', 'Arnfinnur', 'Arnfreyr', 'Arngeir', 'Arngils', 'Arngrímur', 'Arnkell', 'Arnlaugur', 'Arnleifur', 'Arnljótur', 'Arnmóður', 'Arnmundur', 'Arnoddur', 'Arnold', 'Arnór', 'Arnsteinn', 'Arnúlfur', 'Arnviður', 'Arnþór', 'Aron', 'Arthur', 'Arthúr', 'Artúr', 'Asael', 'Askur', 'Aspar', 'Atlas', 'Atli', 'Auðbergur', 'Auðbert', 'Auðbjörn', 'Auðgeir', 'Auðkell', 'Auðmundur', 'Auðólfur', 'Auðun', 'Auðunn', 'Austar', 'Austmann', 'Austmar', 'Austri', 'Axel', 'Ágúst', 'Áki', 'Álfar', 'Álfgeir', 'Álfgrímur', 'Álfur', 'Álfþór', 'Ámundi', 'Árbjartur', 'Árbjörn', 'Árelíus', 'Árgeir', 'Árgils', 'Ármann', 'Árni', 'Ársæll', 'Ás', 'Ásberg', 'Ásbergur', 'Ásbjörn', 'Ásgautur', 'Ásgeir', 'Ásgils', 'Ásgrímur', 'Ási', 'Áskell', 'Áslaugur', 'Áslákur', 'Ásmar', 'Ásmundur', 'Ásólfur', 'Ásröður', 'Ástbjörn', 'Ástgeir', 'Ástmar', 'Ástmundur', 'Ástráður', 'Ástríkur', 'Ástvald', 'Ástvaldur', 'Ástvar', 'Ástvin', 'Ástþór', 'Ásvaldur', 'Ásvarður', 'Ásþór', 'Baldur', 'Baldvin', 'Baldwin', 'Baltasar', 'Bambi', 'Barði', 'Barri', 'Bassi', 'Bastían', 'Baugur', 'Bárður', 'Beinir', 'Beinteinn', 'Beitir', 'Bekan', 'Benedikt', 'Benidikt', 'Benjamín', 'Benoný', 'Benóní', 'Benóný', 'Bent', 'Berent', 'Berg', 'Bergfinnur', 'Berghreinn', 'Bergjón', 'Bergmann', 'Bergmar', 'Bergmundur', 'Bergsteinn', 'Bergsveinn', 'Bergur', 'Bergvin', 'Bergþór', 'Bernhard', 'Bernharð', 'Bernharður', 'Berni', 'Bernódus', 'Bersi', 'Bertel', 'Bertram', 'Bessi', 'Betúel', 'Bill', 'Birgir', 'Birkir', 'Birnir', 'Birtingur', 'Birtir', 'Bjargar', 'Bjargmundur', 'Bjargþór', 'Bjarkan', 'Bjarkar', 'Bjarki', 'Bjarmar', 'Bjarmi', 'Bjarnar', 'Bjarnfinnur', 'Bjarnfreður', 'Bjarnharður', 'Bjarnhéðinn', 'Bjarni', 'Bjarnlaugur', 'Bjarnleifur', 'Bjarnólfur', 'Bjarnsteinn', 'Bjarnþór', 'Bjartmann', 'Bjartmar', 'Bjartur', 'Bjartþór', 'Bjólan', 'Bjólfur', 'Björgmundur', 'Björgólfur', 'Björgúlfur', 'Björgvin', 'Björn', 'Björnólfur', 'Blængur', 'Blær', 'Blævar', 'Boði', 'Bogi', 'Bolli', 'Borgar', 'Borgúlfur', 'Borgþór', 'Bóas', 'Bói', 'Bótólfur', 'Bragi', 'Brandur', 'Breki', 'Bresi', 'Brestir', 'Brimar', 'Brimi', 'Brimir', 'Brími', 'Brjánn', 'Broddi', 'Bruno', 'Bryngeir', 'Brynjar', 'Brynjólfur', 'Brynjúlfur', 'Brynleifur', 'Brynsteinn', 'Bryntýr', 'Brynþór', 'Burkni', 'Búi', 'Búri', 'Bæring', 'Bæringur', 'Bæron', 'Böðvar', 'Börkur', 'Carl', 'Cecil', 'Christian', 'Christopher', 'Cýrus', 'Daði', 'Dagbjartur', 'Dagfari', 'Dagfinnur', 'Daggeir', 'Dagmann', 'Dagnýr', 'Dagur', 'Dagþór', 'Dalbert', 'Dalli', 'Dalmann', 'Dalmar', 'Dalvin', 'Damjan', 'Dan', 'Danelíus', 'Daniel', 'Danival', 'Daníel', 'Daníval', 'Dante', 'Daríus', 'Darri', 'Davíð', 'Demus', 'Deníel', 'Dennis', 'Diðrik', 'Díómedes', 'Dofri', 'Dolli', 'Dominik', 'Dómald', 'Dómaldi', 'Dómaldur', 'Dónald', 'Dónaldur', 'Dór', 'Dóri', 'Dósóþeus', 'Draupnir', 'Dreki', 'Drengur', 'Dufgus', 'Dufþakur', 'Dugfús', 'Dúi', 'Dúnn', 'Dvalinn', 'Dýri', 'Dýrmundur', 'Ebbi', 'Ebeneser', 'Ebenezer', 'Eberg', 'Edgar', 'Edilon', 'Edílon', 'Edvard', 'Edvin', 'Edward', 'Eðvald', 'Eðvar', 'Eðvarð', 'Efraím', 'Eggert', 'Eggþór', 'Egill', 'Eiðar', 'Eiður', 'Eikar', 'Eilífur', 'Einar', 'Einir', 'Einvarður', 'Einþór', 'Eiríkur', 'Eivin', 'Elberg', 'Elbert', 'Eldar', 'Eldgrímur', 'Eldjárn', 'Eldmar', 'Eldon', 'Eldór', 'Eldur', 'Elentínus', 'Elfar', 'Elfráður', 'Elimar', 'Elinór', 'Elis', 'Elí', 'Elías', 'Elíeser', 'Elímar', 'Elínbergur', 'Elínmundur', 'Elínór', 'Elís', 'Ellert', 'Elli', 'Elliði', 'Ellís', 'Elmar', 'Elvar', 'Elvin', 'Elvis', 'Emanúel', 'Embrek', 'Emerald', 'Emil', 'Emmanúel', 'Engilbert', 'Engilbjartur', 'Engiljón', 'Engill', 'Enok', 'Eric', 'Erik', 'Erlar', 'Erlendur', 'Erling', 'Erlingur', 'Ernestó', 'Ernir', 'Ernst', 'Eron', 'Erpur', 'Esekíel', 'Esjar', 'Esra', 'Estefan', 'Evald', 'Evan', 'Evert', 'Eyberg', 'Eyjólfur', 'Eylaugur', 'Eyleifur', 'Eymar', 'Eymundur', 'Eyríkur', 'Eysteinn', 'Eyvar', 'Eyvindur', 'Eyþór', 'Fabrisíus', 'Falgeir', 'Falur', 'Fannar', 'Fannberg', 'Fanngeir', 'Fáfnir', 'Fálki', 'Felix', 'Fengur', 'Fenrir', 'Ferdinand', 'Ferdínand', 'Fertram', 'Feykir', 'Filip', 'Filippus', 'Finn', 'Finnbjörn', 'Finnbogi', 'Finngeir', 'Finnjón', 'Finnlaugur', 'Finnur', 'Finnvarður', 'Fífill', 'Fjalar', 'Fjarki', 'Fjólar', 'Fjólmundur', 'Fjölnir', 'Fjölvar', 'Fjörnir', 'Flemming', 'Flosi', 'Flóki', 'Flórent', 'Flóvent', 'Forni', 'Fossmar', 'Fólki', 'Francis', 'Frank', 'Franklín', 'Frans', 'Franz', 'Fránn', 'Frár', 'Freybjörn', 'Freygarður', 'Freymar', 'Freymóður', 'Freymundur', 'Freyr', 'Freysteinn', 'Freyviður', 'Freyþór', 'Friðberg', 'Friðbergur', 'Friðbert', 'Friðbjörn', 'Friðfinnur', 'Friðgeir', 'Friðjón', 'Friðlaugur', 'Friðleifur', 'Friðmann', 'Friðmar', 'Friðmundur', 'Friðrik', 'Friðsteinn', 'Friður', 'Friðvin', 'Friðþjófur', 'Friðþór', 'Friedrich', 'Fritz', 'Frímann', 'Frosti', 'Fróði', 'Fróðmar', 'Funi', 'Fúsi', 'Fylkir', 'Gabriel', 'Gabríel', 'Gael', 'Galdur', 'Gamalíel', 'Garðar', 'Garibaldi', 'Garpur', 'Garri', 'Gaui', 'Gaukur', 'Gauti', 'Gautrekur', 'Gautur', 'Gautviður', 'Geir', 'Geirarður', 'Geirfinnur', 'Geirharður', 'Geirhjörtur', 'Geirhvatur', 'Geiri', 'Geirlaugur', 'Geirleifur', 'Geirmundur', 'Geirólfur', 'Geirröður', 'Geirtryggur', 'Geirvaldur', 'Geirþjófur', 'Geisli', 'Gellir', 'Georg', 'Gerald', 'Gerðar', 'Geri', 'Gestur', 'Gilbert', 'Gilmar', 'Gils', 'Gissur', 'Gizur', 'Gídeon', 'Gígjar', 'Gísli', 'Gjúki', 'Glói', 'Glúmur', 'Gneisti', 'Gnúpur', 'Gnýr', 'Goði', 'Goðmundur', 'Gottskálk', 'Gottsveinn', 'Gói', 'Grani', 'Grankell', 'Gregor', 'Greipur', 'Greppur', 'Gretar', 'Grettir', 'Grétar', 'Grímar', 'Grímkell', 'Grímlaugur', 'Grímnir', 'Grímólfur', 'Grímur', 'Grímúlfur', 'Guðberg', 'Guðbergur', 'Guðbjarni', 'Guðbjartur', 'Guðbjörn', 'Guðbrandur', 'Guðfinnur', 'Guðfreður', 'Guðgeir', 'Guðjón', 'Guðlaugur', 'Guðleifur', 'Guðleikur', 'Guðmann', 'Guðmar', 'Guðmon', 'Guðmundur', 'Guðni', 'Guðráður', 'Guðröður', 'Guðsteinn', 'Guðvarður', 'Guðveigur', 'Guðvin', 'Guðþór', 'Gumi', 'Gunnar', 'Gunnberg', 'Gunnbjörn', 'Gunndór', 'Gunngeir', 'Gunnhallur', 'Gunnlaugur', 'Gunnleifur', 'Gunnólfur', 'Gunnóli', 'Gunnröður', 'Gunnsteinn', 'Gunnvaldur', 'Gunnþór', 'Gustav', 'Gutti', 'Guttormur', 'Gústaf', 'Gústav', 'Gylfi', 'Gyrðir', 'Gýgjar', 'Gýmir', 'Haddi', 'Haddur', 'Hafberg', 'Hafgrímur', 'Hafliði', 'Hafnar', 'Hafni', 'Hafsteinn', 'Hafþór', 'Hagalín', 'Hagbarður', 'Hagbert', 'Haki', 'Hallberg', 'Hallbjörn', 'Halldór', 'Hallfreður', 'Hallgarður', 'Hallgeir', 'Hallgils', 'Hallgrímur', 'Hallkell', 'Hallmann', 'Hallmar', 'Hallmundur', 'Hallsteinn', 'Hallur', 'Hallvarður', 'Hallþór', 'Hamar', 'Hannes', 'Hannibal', 'Hans', 'Harald', 'Haraldur', 'Harri', 'Harry', 'Harrý', 'Hartmann', 'Hartvig', 'Hauksteinn', 'Haukur', 'Haukvaldur', 'Hákon', 'Háleygur', 'Hálfdan', 'Hálfdán', 'Hámundur', 'Hárekur', 'Hárlaugur', 'Hásteinn', 'Hávar', 'Hávarður', 'Hávarr', 'Hávarr', 'Heiðar', 'Heiðarr', 'Heiðberg', 'Heiðbert', 'Heiðlindur', 'Heiðmann', 'Heiðmar', 'Heiðmundur', 'Heiðrekur', 'Heikir', 'Heilmóður', 'Heimir', 'Heinrekur', 'Heisi', 'Hektor', 'Helgi', 'Helmút', 'Hemmert', 'Hendrik', 'Henning', 'Henrik', 'Henry', 'Henrý', 'Herbert', 'Herbjörn', 'Herfinnur', 'Hergeir', 'Hergill', 'Hergils', 'Herjólfur', 'Herlaugur', 'Herleifur', 'Herluf', 'Hermann', 'Hermóður', 'Hermundur', 'Hersir', 'Hersteinn', 'Hersveinn', 'Hervar', 'Hervarður', 'Hervin', 'Héðinn', 'Hilaríus', 'Hilbert', 'Hildar', 'Hildibergur', 'Hildibrandur', 'Hildigeir', 'Hildiglúmur', 'Hildimar', 'Hildimundur', 'Hildingur', 'Hildir', 'Hildiþór', 'Hilmar', 'Hilmir', 'Himri', 'Hinrik', 'Híram', 'Hjallkár', 'Hjalti', 'Hjarnar', 'Hjálmar', 'Hjálmgeir', 'Hjálmtýr', 'Hjálmur', 'Hjálmþór', 'Hjörleifur', 'Hjörtur', 'Hjörtþór', 'Hjörvar', 'Hleiðar', 'Hlégestur', 'Hlér', 'Hlini', 'Hlíðar', 'Hlíðberg', 'Hlífar', 'Hljómur', 'Hlynur', 'Hlöðmundur', 'Hlöður', 'Hlöðvarður', 'Hlöðver', 'Hnefill', 'Hnikar', 'Hnikarr', 'Holgeir', 'Holger', 'Holti', 'Hólm', 'Hólmar', 'Hólmbert', 'Hólmfastur', 'Hólmgeir', 'Hólmgrímur', 'Hólmkell', 'Hólmsteinn', 'Hólmþór', 'Hóseas', 'Hrafn', 'Hrafnar', 'Hrafnbergur', 'Hrafnkell', 'Hrafntýr', 'Hrannar', 'Hrappur', 'Hraunar', 'Hreggviður', 'Hreiðar', 'Hreiðmar', 'Hreimur', 'Hreinn', 'Hringur', 'Hrímnir', 'Hrollaugur', 'Hrolleifur', 'Hróaldur', 'Hróar', 'Hróbjartur', 'Hróðgeir', 'Hróðmar', 'Hróðólfur', 'Hróðvar', 'Hrói', 'Hrólfur', 'Hrómundur', 'Hrútur', 'Hrærekur', 'Hugberg', 'Hugi', 'Huginn', 'Hugleikur', 'Hugo', 'Hugó', 'Huldar', 'Huxley', 'Húbert', 'Húgó', 'Húmi', 'Húnbogi', 'Húni', 'Húnn', 'Húnröður', 'Hvannar', 'Hyltir', 'Hylur', 'Hængur', 'Hænir', 'Höður', 'Högni', 'Hörður', 'Höskuldur', 'Illugi', 'Immanúel', 'Indriði', 'Ingberg', 'Ingi', 'Ingiberg', 'Ingibergur', 'Ingibert', 'Ingibjartur', 'Ingibjörn', 'Ingileifur', 'Ingimagn', 'Ingimar', 'Ingimundur', 'Ingivaldur', 'Ingiþór', 'Ingjaldur', 'Ingmar', 'Ingólfur', 'Ingvaldur', 'Ingvar', 'Ingvi', 'Ingþór', 'Ismael', 'Issi', 'Ían', 'Ígor', 'Ími', 'Ísak', 'Ísar', 'Ísarr', 'Ísbjörn', 'Íseldur', 'Ísgeir', 'Ísidór', 'Ísleifur', 'Ísmael', 'Ísmar', 'Ísólfur', 'Ísrael', 'Ívan', 'Ívar', 'Jack', 'Jafet', 'Jaki', 'Jakob', 'Jakop', 'Jamil', 'Jan', 'Janus', 'Jarl', 'Jason', 'Járngrímur', 'Játgeir', 'Játmundur', 'Játvarður', 'Jenni', 'Jens', 'Jeremías', 'Jes', 'Jesper', 'Jochum', 'Johan', 'John', 'Joshua', 'Jóakim', 'Jóann', 'Jóel', 'Jóhann', 'Jóhannes', 'Jói', 'Jómar', 'Jómundur', 'Jón', 'Jónar', 'Jónas', 'Jónatan', 'Jónbjörn', 'Jóndór', 'Jóngeir', 'Jónmundur', 'Jónsteinn', 'Jónþór', 'Jósafat', 'Jósavin', 'Jósef', 'Jósep', 'Jósteinn', 'Jósúa', 'Jóvin', 'Julian', 'Júlí', 'Júlían', 'Júlíus', 'Júní', 'Júníus', 'Júrek', 'Jökull', 'Jörfi', 'Jörgen', 'Jörmundur', 'Jörri', 'Jörundur', 'Jörvar', 'Jörvi', 'Kaj', 'Kakali', 'Kaktus', 'Kaldi', 'Kaleb', 'Kali', 'Kalman', 'Kalmann', 'Kalmar', 'Kaprasíus', 'Karel', 'Karim', 'Karkur', 'Karl', 'Karles', 'Karli', 'Karvel', 'Kaspar', 'Kasper', 'Kastíel', 'Katarínus', 'Kató', 'Kár', 'Kári', 'Keran', 'Ketilbjörn', 'Ketill', 'Kilían', 'Kiljan', 'Kjalar', 'Kjallakur', 'Kjaran', 'Kjartan', 'Kjarval', 'Kjárr', 'Kjói', 'Klemens', 'Klemenz', 'Klængur', 'Knútur', 'Knörr', 'Koðrán', 'Koggi', 'Kolbeinn', 'Kolbjörn', 'Kolfinnur', 'Kolgrímur', 'Kolmar', 'Kolskeggur', 'Kolur', 'Kolviður', 'Konráð', 'Konstantínus', 'Kormákur', 'Kornelíus', 'Kort', 'Kópur', 'Kraki', 'Kris', 'Kristall', 'Kristberg', 'Kristbergur', 'Kristbjörn', 'Kristdór', 'Kristens', 'Krister', 'Kristfinnur', 'Kristgeir', 'Kristian', 'Kristinn', 'Kristján', 'Kristjón', 'Kristlaugur', 'Kristleifur', 'Kristmann', 'Kristmar', 'Kristmundur', 'Kristofer', 'Kristófer', 'Kristvaldur', 'Kristvarður', 'Kristvin', 'Kristþór', 'Krummi', 'Kveldúlfur', 'Lambert', 'Lars', 'Laufar', 'Laugi', 'Lauritz', 'Lár', 'Lárent', 'Lárentíus', 'Lárus', 'Leiðólfur', 'Leif', 'Leifur', 'Leiknir', 'Leo', 'Leon', 'Leonard', 'Leonhard', 'Leó', 'Leópold', 'Leví', 'Lér', 'Liljar', 'Lindar', 'Lindberg', 'Línberg', 'Líni', 'Ljósálfur', 'Ljótur', 'Ljúfur', 'Loðmundur', 'Loftur', 'Logi', 'Loki', 'Lórens', 'Lórenz', 'Ludvig', 'Lundi', 'Lúðvíg', 'Lúðvík', 'Lúkas', 'Lúter', 'Lúther', 'Lyngar', 'Lýður', 'Lýtingur', 'Maggi', 'Magngeir', 'Magni', 'Magnús', 'Magnþór', 'Makan', 'Manfred', 'Manfreð', 'Manúel', 'Mar', 'Marbjörn', 'Marel', 'Margeir', 'Margrímur', 'Mari', 'Marijón', 'Marinó', 'Marías', 'Marínó', 'Marís', 'Maríus', 'Marjón', 'Markó', 'Markús', 'Markþór', 'Maron', 'Marri', 'Mars', 'Marsellíus', 'Marteinn', 'Marten', 'Marthen', 'Martin', 'Marvin', 'Mathías', 'Matthías', 'Matti', 'Mattías', 'Max', 'Maximus', 'Máni', 'Már', 'Márus', 'Mekkinó', 'Melkíor', 'Melkólmur', 'Melrakki', 'Mensalder', 'Merkúr', 'Methúsalem', 'Metúsalem', 'Meyvant', 'Michael', 'Mikael', 'Mikjáll', 'Mikkael', 'Mikkel', 'Mildinberg', 'Mías', 'Mímir', 'Míó', 'Mír', 'Mjöllnir', 'Mjölnir', 'Moli', 'Morgan', 'Moritz', 'Mosi', 'Móði', 'Móri', 'Mórits', 'Móses', 'Muggur', 'Muni', 'Muninn', 'Múli', 'Myrkvi', 'Mýrkjartan', 'Mörður', 'Narfi', 'Natan', 'Natanael', 'Nataníel', 'Náttmörður', 'Náttúlfur', 'Neisti', 'Nenni', 'Neptúnus', 'Nicolas', 'Nikanor', 'Nikolai', 'Nikolas', 'Nikulás', 'Nils', 'Níels', 'Níls', 'Njáll', 'Njörður', 'Nonni', 'Norbert', 'Norðmann', 'Normann', 'Nóam', 'Nóel', 'Nói', 'Nóni', 'Nóri', 'Nóvember', 'Númi', 'Nývarð', 'Nökkvi', 'Oddbergur', 'Oddbjörn', 'Oddfreyr', 'Oddgeir', 'Oddi', 'Oddkell', 'Oddleifur', 'Oddmar', 'Oddsteinn', 'Oddur', 'Oddvar', 'Oddþór', 'Oktavíus', 'Októ', 'Októvíus', 'Olaf', 'Olav', 'Olgeir', 'Oliver', 'Olivert', 'Orfeus', 'Ormar', 'Ormur', 'Orri', 'Orvar', 'Otkell', 'Otri', 'Otti', 'Ottó', 'Otur', 'Óðinn', 'Ófeigur', 'Ólafur', 'Óli', 'Óliver', 'Ólíver', 'Ómar', 'Ómi', 'Óskar', 'Ósvald', 'Ósvaldur', 'Ósvífur', 'Óttar', 'Óttarr', 'Parmes', 'Patrek', 'Patrekur', 'Patrick', 'Patrik', 'Páll', 'Pálmar', 'Pálmi', 'Pedró', 'Per', 'Peter', 'Pétur', 'Pjetur', 'Príor', 'Rafael', 'Rafn', 'Rafnar', 'Rafnkell', 'Ragnar', 'Ragúel', 'Randver', 'Rannver', 'Rasmus', 'Ráðgeir', 'Ráðvarður', 'Refur', 'Reginbaldur', 'Reginn', 'Reidar', 'Reifnir', 'Reimar', 'Reinar', 'Reinhart', 'Reinhold', 'Reynald', 'Reynar', 'Reynir', 'Reyr', 'Richard', 'Rikharð', 'Rikharður', 'Ríkarður', 'Ríkharð', 'Ríkharður', 'Ríó', 'Robert', 'Rolf', 'Ronald', 'Róbert', 'Rólant', 'Róman', 'Rómeó', 'Rósant', 'Rósar', 'Rósberg', 'Rósenberg', 'Rósi', 'Rósinberg', 'Rósinkar', 'Rósinkrans', 'Rósmann', 'Rósmundur', 'Rudolf', 'Runi', 'Runólfur', 'Rúbar', 'Rúben', 'Rúdólf', 'Rúnar', 'Rúrik', 'Rútur', 'Röðull', 'Rögnvald', 'Rögnvaldur', 'Rögnvar', 'Rökkvi', 'Safír', 'Sakarías', 'Salmann', 'Salmar', 'Salómon', 'Salvar', 'Samson', 'Samúel', 'Sandel', 'Sandri', 'Sandur', 'Saxi', 'Sebastian', 'Sebastían', 'Seifur', 'Seimur', 'Sesar', 'Sesil', 'Sigbergur', 'Sigbert', 'Sigbjartur', 'Sigbjörn', 'Sigdór', 'Sigfastur', 'Sigfinnur', 'Sigfreður', 'Sigfús', 'Siggeir', 'Sighvatur', 'Sigjón', 'Siglaugur', 'Sigmann', 'Sigmar', 'Sigmundur', 'Signar', 'Sigri', 'Sigríkur', 'Sigsteinn', 'Sigtryggur', 'Sigtýr', 'Sigur', 'Sigurbaldur', 'Sigurberg', 'Sigurbergur', 'Sigurbjarni', 'Sigurbjartur', 'Sigurbjörn', 'Sigurbrandur', 'Sigurdór', 'Sigurður', 'Sigurfinnur', 'Sigurgeir', 'Sigurgestur', 'Sigurgísli', 'Sigurgrímur', 'Sigurhans', 'Sigurhjörtur', 'Sigurjón', 'Sigurkarl', 'Sigurlaugur', 'Sigurlás', 'Sigurleifur', 'Sigurliði', 'Sigurlinni', 'Sigurmann', 'Sigurmar', 'Sigurmon', 'Sigurmundur', 'Sigurnýas', 'Sigurnýjas', 'Siguroddur', 'Siguróli', 'Sigurpáll', 'Sigursteinn', 'Sigursveinn', 'Sigurvaldi', 'Sigurvin', 'Sigurþór', 'Sigvaldi', 'Sigvarður', 'Sigþór', 'Silli', 'Sindri', 'Símon', 'Sírnir', 'Sírus', 'Sívar', 'Sjafnar', 'Skafti', 'Skapti', 'Skarphéðinn', 'Skefill', 'Skeggi', 'Skíði', 'Skírnir', 'Skjöldur', 'Skorri', 'Skuggi', 'Skúli', 'Skúta', 'Skær', 'Skæringur', 'Smári', 'Smiður', 'Smyrill', 'Snjóki', 'Snjólaugur', 'Snjólfur', 'Snorri', 'Snæbjartur', 'Snæbjörn', 'Snæhólm', 'Snælaugur', 'Snær', 'Snæringur', 'Snævar', 'Snævarr', 'Snæþór', 'Soffanías', 'Sophanías', 'Sophus', 'Sófónías', 'Sófus', 'Sókrates', 'Sólberg', 'Sólbergur', 'Sólbjartur', 'Sólbjörn', 'Sólimann', 'Sólmar', 'Sólmundur', 'Sólon', 'Sólver', 'Sólvin', 'Spartakus', 'Sporði', 'Spói', 'Stanley', 'Stapi', 'Starkaður', 'Starri', 'Stefan', 'Stefán', 'Stefnir', 'Steinar', 'Steinarr', 'Steinberg', 'Steinbergur', 'Steinbjörn', 'Steindór', 'Steinfinnur', 'Steingrímur', 'Steini', 'Steinkell', 'Steinmann', 'Steinmar', 'Steinmóður', 'Steinn', 'Steinólfur', 'Steinröður', 'Steinvarður', 'Steinþór', 'Stirnir', 'Stígur', 'Stormur', 'Stórólfur', 'Sturla', 'Sturlaugur', 'Sturri', 'Styr', 'Styrbjörn', 'Styrkár', 'Styrmir', 'Styrr', 'Sumarliði', 'Svafar', 'Svali', 'Svan', 'Svanberg', 'Svanbergur', 'Svanbjörn', 'Svangeir', 'Svanhólm', 'Svani', 'Svanlaugur', 'Svanmundur', 'Svanur', 'Svanþór', 'Svavar', 'Sváfnir', 'Sveinar', 'Sveinberg', 'Sveinbjartur', 'Sveinbjörn', 'Sveinjón', 'Sveinlaugur', 'Sveinmar', 'Sveinn', 'Sveinungi', 'Sveinþór', 'Svend', 'Sverre', 'Sverrir', 'Svölnir', 'Svörfuður', 'Sýrus', 'Sæberg', 'Sæbergur', 'Sæbjörn', 'Sæi', 'Sælaugur', 'Sæmann', 'Sæmundur', 'Sær', 'Sævald', 'Sævaldur', 'Sævar', 'Sævarr', 'Sævin', 'Sæþór', 'Sölmundur', 'Sölvar', 'Sölvi', 'Sören', 'Sörli', 'Tandri', 'Tarfur', 'Teitur', 'Theodór', 'Theódór', 'Thomas', 'Thor', 'Thorberg', 'Thór', 'Tindar', 'Tindri', 'Tindur', 'Tinni', 'Tími', 'Tímon', 'Tímoteus', 'Tímóteus', 'Tístran', 'Tjaldur', 'Tjörfi', 'Tjörvi', 'Tobías', 'Tolli', 'Tonni', 'Torfi', 'Tóbías', 'Tói', 'Tóki', 'Tómas', 'Tór', 'Trausti', 'Tristan', 'Trostan', 'Trúmann', 'Tryggvi', 'Tumas', 'Tumi', 'Tyrfingur', 'Týr', 'Ubbi', 'Uggi', 'Ulrich', 'Uni', 'Unnar', 'Unnbjörn', 'Unndór', 'Unnsteinn', 'Unnþór', 'Urðar', 'Uxi', 'Úddi', 'Úlfar', 'Úlfgeir', 'Úlfhéðinn', 'Úlfkell', 'Úlfljótur', 'Úlftýr', 'Úlfur', 'Úlrik', 'Úranus', 'Vagn', 'Vakur', 'Valberg', 'Valbergur', 'Valbjörn', 'Valbrandur', 'Valdemar', 'Valdi', 'Valdimar', 'Valdór', 'Valentín', 'Valentínus', 'Valgarð', 'Valgarður', 'Valgeir', 'Valíant', 'Vallaður', 'Valmar', 'Valmundur', 'Valsteinn', 'Valter', 'Valtýr', 'Valur', 'Valves', 'Valþór', 'Varmar', 'Vatnar', 'Váli', 'Vápni', 'Veigar', 'Veigur', 'Ver', 'Vermundur', 'Vernharð', 'Vernharður', 'Vestar', 'Vestmar', 'Veturliði', 'Vébjörn', 'Végeir', 'Vékell', 'Vélaugur', 'Vémundur', 'Vésteinn', 'Victor', 'Viðar', 'Vigfús', 'Viggó', 'Vignir', 'Vigri', 'Vigtýr', 'Vigur', 'Vikar', 'Viktor', 'Vilberg', 'Vilbergur', 'Vilbert', 'Vilbjörn', 'Vilbogi', 'Vilbrandur', 'Vilgeir', 'Vilhelm', 'Vilhjálmur', 'Vili', 'Viljar', 'Vilji', 'Villi', 'Vilmar', 'Vilmundur', 'Vincent', 'Vinjar', 'Virgill', 'Víðar', 'Víðir', 'Vífill', 'Víglundur', 'Vígmar', 'Vígmundur', 'Vígsteinn', 'Vígþór', 'Víkingur', 'Vopni', 'Vorm', 'Vöggur', 'Völundur', 'Vörður', 'Vöttur', 'Walter', 'Werner', 'Wilhelm', 'Willard', 'William', 'Willum', 'Ylur', 'Ymir', 'Yngvar', 'Yngvi', 'Yrkill', 'Ýmir', 'Ýrar', 'Zakaría', 'Zakarías', 'Zophanías', 'Zophonías', 'Zóphanías', 'Zóphonías', 'Þangbrandur', 'Þengill', 'Þeyr', 'Þiðrandi', 'Þiðrik', 'Þinur', 'Þjálfi', 'Þjóðann', 'Þjóðbjörn', 'Þjóðgeir', 'Þjóðleifur', 'Þjóðmar', 'Þjóðólfur', 'Þjóðrekur', 'Þjóðvarður', 'Þjóstar', 'Þjóstólfur', 'Þorberg', 'Þorbergur', 'Þorbjörn', 'Þorbrandur', 'Þorfinnur', 'Þorgarður', 'Þorgautur', 'Þorgeir', 'Þorgestur', 'Þorgils', 'Þorgísl', 'Þorgnýr', 'Þorgrímur', 'Þorkell', 'Þorlaugur', 'Þorlákur', 'Þorleifur', 'Þorleikur', 'Þormar', 'Þormóður', 'Þormundur', 'Þorri', 'Þorsteinn', 'Þorvaldur', 'Þorvar', 'Þorvarður', 'Þór', 'Þórar', 'Þórarinn', 'Þórbergur', 'Þórbjörn', 'Þórður', 'Þórgnýr', 'Þórgrímur', 'Þórhaddur', 'Þórhalli', 'Þórhallur', 'Þórir', 'Þórlaugur', 'Þórleifur', 'Þórlindur', 'Þórmar', 'Þórmundur', 'Þóroddur', 'Þórormur', 'Þórólfur', 'Þórsteinn', 'Þórörn', 'Þrastar', 'Þráinn', 'Þrándur', 'Þróttur', 'Þrúðmar', 'Þrymur', 'Þröstur', 'Þyrnir', 'Ægir', 'Æsir', 'Ævar', 'Ævarr', 'Ögmundur', 'Ögri', 'Ölnir', 'Ölver', 'Ölvir', 'Öndólfur', 'Önundur', 'Örlaugur', 'Örlygur', 'Örn', 'Örnólfur', 'Örvar', 'Össur', 'Öxar']; + + /** + * @var array Icelandic middle names. + */ + protected static $middleName = [ + 'Aðaldal', 'Aldan', 'Arnberg', 'Arnfjörð', 'Austan', 'Austdal', 'Austfjörð', 'Áss', 'Bakkdal', 'Bakkmann', 'Bald', 'Ben', 'Bergholt', 'Bergland', 'Bíldsfells', 'Bjarg', 'Bjarndal', 'Bjarnfjörð', 'Bláfeld', 'Blómkvist', 'Borgdal', 'Brekkmann', 'Brim', 'Brúnsteð', 'Dalhoff', 'Dan', 'Diljan', 'Ektavon', 'Eldberg', 'Elísberg', 'Elvan', 'Espólín', 'Eyhlíð', 'Eyvík', 'Falk', 'Finndal', 'Fossberg', 'Freydal', 'Friðhólm', 'Giljan', 'Gilsfjörð', 'Gnarr', 'Gnurr', 'Grendal', 'Grindvík', 'Gull', 'Haffjörð', 'Hafnes', 'Hafnfjörð', 'Har', 'Heimdal', 'Heimsberg', 'Helgfell', 'Herberg', 'Hildiberg', 'Hjaltdal', 'Hlíðkvist', 'Hnappdal', 'Hnífsdal', 'Hofland', 'Hofteig', 'Hornfjörð', 'Hólmberg', 'Hrafnan', 'Hrafndal', 'Hraunberg', 'Hreinberg', 'Hreindal', 'Hrútfjörð', 'Hvammdal', 'Hvítfeld', 'Höfðdal', 'Hörðdal', 'Íshólm', 'Júl', 'Kjarrval', 'Knaran', 'Knarran', 'Krossdal', 'Laufkvist', 'Laufland', 'Laugdal', 'Laxfoss', 'Liljan', 'Linddal', 'Línberg', 'Ljós', 'Loðmfjörð', 'Lyngberg', 'Magdal', 'Magg', 'Matt', 'Miðdal', 'Miðvík', 'Mjófjörð', 'Móberg', 'Mýrmann', 'Nesmann', 'Norðland', 'Núpdal', 'Ólfjörð', 'Ósland', 'Ósmann', 'Reginbald', 'Reykfell', 'Reykfjörð', 'Reynholt', 'Salberg', 'Sandhólm', 'Seljan', 'Sigurhólm', 'Skagalín', 'Skíðdal', 'Snæberg', 'Snædahl', 'Sólan', 'Stardal', 'Stein', 'Steinbekk', 'Steinberg', 'Storm', 'Straumberg', 'Svanhild', 'Svarfdal', 'Sædal', 'Val', 'Valagils', 'Vald', 'Varmdal', 'Vatnsfjörð', 'Vattar', 'Vattnes', 'Viðfjörð', 'Vídalín', 'Víking', 'Vopnfjörð', 'Yngling', 'Þor', 'Önfjörð', 'Örbekk', 'Öxdal', 'Öxndal', + ]; + + /** + * Randomly return an Icelandic middle name. + * + * @return string + */ + public static function middleName() + { + return static::randomElement(static::$middleName); + } + + /** + * Generate prepared last name for further processing. + * + * @return string + */ + public function lastName() + { + $name = static::firstNameMale(); + + if (substr($name, -2) === 'ur') { + $name = substr($name, 0, strlen($name) - 2); + } + + if (substr($name, -1) !== 's') { + $name .= 's'; + } + + return $name; + } + + /** + * Randomly return an Icelandic last name for a woman. + * + * @return string + */ + public function lastNameMale() + { + return $this->lastName() . 'son'; + } + + /** + * Randomly return an Icelandic last name for a man. + * + * @return string + */ + public function lastNameFemale() + { + return $this->lastName() . 'dóttir'; + } + + /** + * Return a random Icelandic Kennitala (Social Security number). + * + * @see http://en.wikipedia.org/wiki/Kennitala + * + * @return string + */ + public static function ssn() + { + // random birth date + $birthdate = DateTime::dateTimeThisCentury(); + + // last four buffer + $lastFour = null; + + // security variable reference + $ref = '32765432'; + + // valid flag + $valid = false; + + while (!$valid) { + // make two random numbers + $rand = static::randomDigit() . static::randomDigit(); + + // 8 char string with birth date and two random numbers + $tmp = $birthdate->format('dmy') . $rand; + + // loop through temp string + for ($i = 7, $sum = 0; $i >= 0; --$i) { + // calculate security variable + $sum += ($tmp[$i] * $ref[$i]); + } + + // subtract 11 if not 11 + $chk = ($sum % 11 === 0) ? 0 : (11 - ($sum % 11)); + + if ($chk < 10) { + $lastFour = $rand . $chk . substr($birthdate->format('Y'), 1, 1); + + $valid = true; + } + } + + return sprintf('%s-%s', $birthdate->format('dmy'), $lastFour); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/PhoneNumber.php similarity index 70% rename from vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/is_IS/PhoneNumber.php index de91f74..7118666 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/is_IS/PhoneNumber.php @@ -2,19 +2,16 @@ namespace Faker\Provider\is_IS; -/** - * @author Birkir Gudjonsson - */ class PhoneNumber extends \Faker\Provider\PhoneNumber { /** * @var array Icelandic phone number formats. */ - protected static $formats = array( + protected static $formats = [ '+354 ### ####', '+354 #######', '+354#######', '### ####', '#######', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/it_CH/Address.php similarity index 64% rename from vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/it_CH/Address.php index 1eee3b6..79ee691 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/it_CH/Address.php @@ -4,16 +4,16 @@ class Address extends \Faker\Provider\it_IT\Address { - protected static $buildingNumber = array('###', '##', '#', '#a', '#b', '#c'); + protected static $buildingNumber = ['%##', '%#', '%', '#a', '#b', '#c']; - protected static $streetPrefix = array('Piazza', 'Strada', 'Via', 'Borgo', 'Contrada', 'Rotonda', 'Incrocio'); + protected static $streetPrefix = ['Piazza', 'Strada', 'Via', 'Borgo', 'Contrada', 'Rotonda', 'Incrocio']; - protected static $postcode = array('####'); + protected static $postcode = ['####']; /** - * @link https://it.wikipedia.org/wiki/Citt%C3%A0_svizzere + * @see https://it.wikipedia.org/wiki/Citt%C3%A0_svizzere */ - protected static $cityNames = array( + protected static $cityNames = [ 'Aarau', 'Adliswil', 'Aesch', 'Affoltern am Albis', 'Allschwil', 'Altstätten', 'Amriswil', 'Arbon', 'Arth', 'Baar', 'Baden', 'Basilea', 'Bassersdorf', 'Bellinzona', 'Belp', 'Berna', 'Bienne', 'Binningen', 'Birsfelden', 'Briga-Glis', 'Brugg', 'Buchs', 'Bulle', 'Burgdorf', 'Bülach', 'Carouge', 'Cham', 'Chêne-Bougeries', 'Coira', @@ -36,60 +36,62 @@ class Address extends \Faker\Provider\it_IT\Address 'Val-de-Travers', 'Vernier', 'Versoix', 'Vevey', 'Veyrier', 'Villars-sur-Glâne', 'Volketswil', 'Wallisellen', 'Weinfelden', 'Wettingen', 'Wetzikon', 'Wil', 'Winterthur', 'Wohlen', 'Worb', 'Wädenswil', 'Yverdon-les-Bains', - 'Zofingen', 'Zollikon', 'Zugo', 'Zurigo' - ); + 'Zofingen', 'Zollikon', 'Zugo', 'Zurigo', + ]; /** - * @link https://it.wikipedia.org/wiki/Cantoni_della_Svizzera + * @see https://it.wikipedia.org/wiki/Cantoni_della_Svizzera */ - protected static $canton = array( - array('AG' => 'Argovia'), - array('AI' => 'Appenzello Interno'), - array('AR' => 'Appenzello Esterno'), - array('BE' => 'Berna'), - array('BL' => 'Basilea Campagna'), - array('BS' => 'Basilea Città'), - array('FR' => 'Friburgo'), - array('GE' => 'Ginevra'), - array('GL' => 'Glarona'), - array('GR' => 'Grigioni'), - array('JU' => 'Giura'), - array('LU' => 'Lucerna'), - array('NE' => 'Neuchâtel'), - array('NW' => 'Nidvaldo'), - array('OW' => 'Obvaldo'), - array('SG' => 'San Gallo'), - array('SH' => 'Sciaffusa'), - array('SO' => 'Soletta'), - array('SZ' => 'Svitto'), - array('TG' => 'Turgovia'), - array('TI' => 'Ticino'), - array('UR' => 'Uri'), - array('VD' => 'Vaud'), - array('VS' => 'Vallese'), - array('ZG' => 'Zugo'), - array('ZH' => 'Zurigo') - ); - - protected static $cityFormats = array( + protected static $canton = [ + ['AG' => 'Argovia'], + ['AI' => 'Appenzello Interno'], + ['AR' => 'Appenzello Esterno'], + ['BE' => 'Berna'], + ['BL' => 'Basilea Campagna'], + ['BS' => 'Basilea Città'], + ['FR' => 'Friburgo'], + ['GE' => 'Ginevra'], + ['GL' => 'Glarona'], + ['GR' => 'Grigioni'], + ['JU' => 'Giura'], + ['LU' => 'Lucerna'], + ['NE' => 'Neuchâtel'], + ['NW' => 'Nidvaldo'], + ['OW' => 'Obvaldo'], + ['SG' => 'San Gallo'], + ['SH' => 'Sciaffusa'], + ['SO' => 'Soletta'], + ['SZ' => 'Svitto'], + ['TG' => 'Turgovia'], + ['TI' => 'Ticino'], + ['UR' => 'Uri'], + ['VD' => 'Vaud'], + ['VS' => 'Vallese'], + ['ZG' => 'Zugo'], + ['ZH' => 'Zurigo'], + ]; + + protected static $cityFormats = [ '{{cityName}}', - ); + ]; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{streetSuffix}} {{firstName}}', - '{{streetSuffix}} {{lastName}}' - ); + '{{streetSuffix}} {{lastName}}', + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; /** * Returns a random street prefix + * * @example Via + * * @return string */ public static function streetPrefix() @@ -99,7 +101,9 @@ public static function streetPrefix() /** * Returns a random city name. + * * @example Luzern + * * @return string */ public function cityName() @@ -109,7 +113,9 @@ public function cityName() /** * Returns a canton + * * @example array('BE' => 'Bern') + * * @return array */ public static function canton() @@ -119,21 +125,25 @@ public static function canton() /** * Returns the abbreviation of a canton. + * * @return string */ public static function cantonShort() { $canton = static::canton(); + return key($canton); } /** * Returns the name of canton. + * * @return string */ public static function cantonName() { $canton = static::canton(); + return current($canton); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/it_CH/Company.php similarity index 69% rename from vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/it_CH/Company.php index 9a42b1c..bb5f946 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/it_CH/Company.php @@ -4,12 +4,12 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} {{lastName}} {{companySuffix}}', '{{lastName}}', '{{lastName}}', - ); + ]; - protected static $companySuffix = array('SA', 'Sarl'); + protected static $companySuffix = ['SA', 'Sarl']; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/it_CH/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/it_CH/Internet.php new file mode 100644 index 0000000..db23451 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/it_CH/Internet.php @@ -0,0 +1,9 @@ + 'კვირა', 'Monday' => 'ორშაბათი', 'Tuesday' => 'სამშაბათი', @@ -15,14 +14,15 @@ public static function dayOfWeek($max = 'now') 'Thursday' => 'ხუთშაბათი', 'Friday' => 'პარასკევი', 'Saturday' => 'შაბათი', - ); + ]; $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; + + return $map[$week] ?? $week; } public static function monthName($max = 'now') { - $map = array( + $map = [ 'January' => 'იანვარი', 'February' => 'თებერვალი', 'March' => 'მარტი', @@ -35,8 +35,9 @@ public static function monthName($max = 'now') 'October' => 'ოქტომბერი', 'November' => 'ნოემბერი', 'December' => 'დეკემბერი', - ); + ]; $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; + + return $map[$month] ?? $month; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Internet.php similarity index 69% rename from vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Internet.php index 01b15c7..d07e41c 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Internet.php @@ -4,12 +4,12 @@ class Internet extends \Faker\Provider\Internet { - protected static $freeEmailDomain = array( - 'posta.ge', 'boom.ge', 'hotmail.com', 'gmail.com', 'yahoo.com', 'mail.ru', 'avoe.ge' - ); + protected static $freeEmailDomain = [ + 'posta.ge', 'boom.ge', 'hotmail.com', 'gmail.com', 'yahoo.com', 'mail.ru', 'avoe.ge', + ]; - protected static $tld = array( + protected static $tld = [ 'ge', 'ge', 'ge', 'ge', 'ge', 'com.ge', 'edu.ge', 'net.ge', 'org.ge', - 'pvt.ge', 'gov.ge', 'mil.ge', 'com', 'biz', 'info', 'net', 'org' - ); + 'pvt.ge', 'gov.ge', 'mil.ge', 'com', 'biz', 'info', 'net', 'org', + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Payment.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Payment.php index e8962d6..5ed3ce3 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Payment.php @@ -4,11 +4,10 @@ class Payment extends \Faker\Provider\Payment { - /** * @see list of Georgian banks (2015-12-26), source: https://www.nbg.gov.ge/index.php?m=403 */ - protected static $banks = array( + protected static $banks = [ 'ბანკი რესპუბლიკა', 'თიბისი ბანკი', 'საქართველოს ბანკი', @@ -28,7 +27,7 @@ class Payment extends \Faker\Provider\Payment 'ხალიკ ბანკი საქართველო ', 'პაშა ბანკი საქართველო', 'ფინკა ბანკი საქართველო', - ); + ]; /** * @example 'თიბისი ბანკი' @@ -40,10 +39,13 @@ public static function bank() /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'GE', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Person.php similarity index 95% rename from vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Person.php index 5462014..8c4b9e3 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Person.php @@ -4,15 +4,15 @@ class Person extends \Faker\Provider\Person { - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{firstNameMale}} {{lastName}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{firstNameFemale}} {{lastName}}', - ); + ]; - protected static $firstNameMale = array( + protected static $firstNameMale = [ 'გიორგი', 'დავითი', 'ზურაბი', 'ალექსანდრე', 'ირაკლი', 'ლევანი', 'გოჩა', 'მამუკა', 'ზაზა', 'გივი', 'ავთანდილ', 'მიხეილი', 'გელა', 'თამაზი', 'ლაშა', 'შოთა', 'თეიმურაზი', 'შალვა', 'გურამი', 'ნიკოლოზი', 'ნოდარი', 'ვლადიმერი', 'ვაჟა', 'მერაბი', 'თენგიზი', 'გია', 'ბადრი', 'კობა', 'ვახტანგი', 'ივანე', 'მალხაზი', 'ნუგზარი', 'ამირანი', 'პაატა', @@ -20,9 +20,9 @@ class Person extends \Faker\Provider\Person 'ელგუჯა', 'ჯემალი', 'იოსები', 'რამაზი', 'ბექა', 'რომანი', 'კახა', 'თორნიკე', 'ბესიკი', 'არჩილი', 'ალექსი', 'ხვიჩა', 'კონსტანტინე', 'ანზორი', 'ვასილი', 'სულიკო', 'ვალერი', 'რეზო', 'ზაური', 'ნიკა', 'დოდო', 'ომარი', 'მურმანი', 'სოსო', 'გრიგოლი', 'გენადი', 'ავთანდილი', 'ემზარი', 'ჯუმბერი', 'გიგა', 'გოდერძი', - ); + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'ნინო', 'მაია', 'თამარი', 'ნანა', 'მანანა', 'ნათელა', 'ნათია', 'მარინე', 'ქეთევან', 'ხათუნა', 'მარინა', 'ლალი', 'ლიანა', 'მზია', 'ლია', 'ეკატერინე', 'ანა', 'მარიამი', 'ირმა', 'ლეილა', 'ნანული', 'მერი', 'ლელა', 'თეა', 'სოფიო', 'ინგა', 'ეთერი', 'ნონა', 'თეონა', 'შორენა', 'მაყვალა', 'ციალა', 'ლამარა', 'მაკა', 'თინა', 'ნელი', 'რუსუდანი', 'დალი', @@ -31,9 +31,9 @@ class Person extends \Faker\Provider\Person 'თამილა', 'ნაირა', 'სოფიკო', 'ცისანა', 'ელისო', 'ზაირა', 'ციური', 'დიანა', 'ელენა', 'იამზე', 'როზა', 'მედეა', 'ცირა', 'ზოია', 'სულიკო', 'ლენა', 'ვერა', 'ლუიზა', 'ლარისა', 'ბელა', 'ნორა', 'დოდო', 'ვალენტინა', 'ქეთო', 'ზინა', 'ტატიანა', 'მარია', 'მაგული', 'თამთა', 'ნაზიკო', 'ხატია', 'მარიკა', 'ელზა', 'ანნა', 'გვანცა', 'გალინა', 'ჯულიეტა', - ); + ]; - protected static $lastName = array( + protected static $lastName = [ 'აბაშიძე', 'აბესაძე', 'აბრამიშვილი', 'აბულაძე', 'ალიევა', 'ალიევი', 'ასათიანი', 'აფციაური', 'ახალაია', 'ახვლედიანი', 'ახმედოვა', 'ახმედოვი', 'ბაირამოვა', 'ბაირამოვი', 'ბარამიძე', 'ბარბაქაძე', 'ბაქრაძე', 'ბახტაძე', 'ბერაძე', 'ბერიშვილი', 'ბერიძე', 'ბერუაშვილი', 'ბექაური', 'ბიწაძე', 'ბლიაძე', 'ბოლქვაძე', 'ბოჭორიშვილი', 'ბრეგვაძე', 'გაბუნია', 'გაგნიძე', @@ -55,9 +55,9 @@ class Person extends \Faker\Provider\Person 'ჩხიკვაძე', 'ცერცვაძე', 'ცეცხლაძე', 'ცინცაძე', 'ცუცქირიძე', 'წერეთელი', 'წიკლაური', 'წულაია', 'წურწუმია', 'ჭანტურია', 'ჭელიძე', 'ჭიღლაძე', 'ჭკადუა', 'ჭუმბურიძე', 'ხარაიშვილი', 'ხაჩიძე', 'ხვედელიძე', 'ხურცილავა', 'ხურციძე', 'ხუციშვილი', 'ჯავახიშვილი', 'ჯალაღონია', 'ჯანაშია', 'ჯანელიძე', 'ჯაფარიძე', 'ჯინჭარაძე', 'ჯიქია', 'ჯოხაძე', 'ჯოჯუა', - ); + ]; - protected static $titleMale = array('ბნ.', 'დოქ.', 'პროფ.'); + protected static $titleMale = ['ბნ.', 'დოქ.', 'პროფ.']; - protected static $titleFemale = array('ქნ.', 'დოქ.', 'პროფ.'); + protected static $titleFemale = ['ქნ.', 'დოქ.', 'პროფ.']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/PhoneNumber.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/ka_GE/PhoneNumber.php index 8f02a41..05a80db 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/PhoneNumber.php @@ -4,11 +4,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+995 ### ## ## ##', '### ## ## ##', '#########', '(###) ## ## ##', '+995(##)#######', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Text.php index 99b5e7b..2c4d171 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ka_GE/Text.php @@ -4,9 +4,8 @@ class Text extends \Faker\Provider\Text { - protected static $textStartsWithUppercase = false; - + /** * License: Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) * @@ -17,6 +16,7 @@ class Text extends \Faker\Provider\Text * About Author: http://en.wikipedia.org/wiki/Ilia_Chavchavadze * * @see http://www.nplg.gov.ge/gsdl/cgi-bin/library.exe?e=q-00000-00---off-0vertwo--00-1----0-10-0---0---0direct-10-DT--4----Doc---0-1l--11-en-50---20-about-%E1%83%AD%E1%83%90%E1%83%95%E1%83%AD%E1%83%90%E1%83%95%E1%83%90%E1%83%AB%E1%83%94+%E1%83%99%E1%83%90%E1%83%AA%E1%83%98%E1%83%90+%E1%83%90%E1%83%93%E1%83%90%E1%83%9B%E1%83%98%E1%83%90%E1%83%9C%E1%83%98--00-3-1-00-0-0-11-1-0utfZz-8-00&a=d&c=vertwo&srp=0&srn=0&cl=search&d=HASH81409ccfa8b32143543b5f + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Address.php similarity index 71% rename from vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Address.php index 3402a25..1491750 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Address.php @@ -4,22 +4,22 @@ class Address extends \Faker\Provider\Address { - protected static $citySuffix = array('қаласы'); + protected static $citySuffix = ['қаласы']; - protected static $regionSuffix = array('облысы'); - protected static $streetSuffix = array( + protected static $regionSuffix = ['облысы']; + protected static $streetSuffix = [ 'көшесі', 'даңғылы', - ); + ]; - protected static $buildingNumber = array('###'); - protected static $postcode = array('0#####'); + protected static $buildingNumber = ['%##']; + protected static $postcode = ['0#####']; // TODO list all country names in the world - protected static $country = array( + protected static $country = [ 'Қазақстан', 'Ресей', - ); + ]; - protected static $region = array( + protected static $region = [ 'Алматы', 'Ақтау', 'Ақтөбе', @@ -38,9 +38,9 @@ class Address extends \Faker\Provider\Address 'Орал', 'Өскемен', 'Шымкент', - ); + ]; - protected static $city = array( + protected static $city = [ 'Алматы', 'Ақтау', 'Ақтөбе', @@ -59,24 +59,24 @@ class Address extends \Faker\Provider\Address 'Орал', 'Өскемен', 'Шымкент', - ); + ]; - protected static $street = array( + protected static $street = [ 'Абай', 'Гоголь', 'Кенесары', 'Бейбітшілік', 'Достық', 'Бұқар жырау', - ); + ]; - protected static $addressFormats = array( - "{{postcode}}, {{region}} {{regionSuffix}}, {{city}} {{citySuffix}}, {{street}} {{streetSuffix}}, {{buildingNumber}}", - ); + protected static $addressFormats = [ + '{{postcode}}, {{region}} {{regionSuffix}}, {{city}} {{citySuffix}}, {{street}} {{streetSuffix}}, {{buildingNumber}}', + ]; - protected static $streetAddressFormats = array( - "{{street}} {{streetSuffix}}, {{buildingNumber}}" - ); + protected static $streetAddressFormats = [ + '{{street}} {{streetSuffix}}, {{buildingNumber}}', + ]; public static function buildingNumber() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Color.php similarity index 76% rename from vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Color.php index 082a9d6..3702b2d 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Color.php @@ -4,9 +4,9 @@ class Color extends \Faker\Provider\Color { - protected static $safeColorNames = array( + protected static $safeColorNames = [ 'қара', 'қою қызыл', 'жасыл', 'қара көк', 'сарғыш түс', 'күлгін', 'көк', 'көк', 'күміс', - 'сұр', 'сары', 'қызылкүрең түс', 'теңіз толқыны түс', 'ақ' - ); + 'сұр', 'сары', 'қызылкүрең түс', 'теңіз толқыны түс', 'ақ', + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Company.php similarity index 65% rename from vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Company.php index f8f8d15..2ba58b9 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Company.php @@ -4,25 +4,25 @@ class Company extends \Faker\Provider\Company { - protected static $companyNameFormats = array( + protected static $companyNameFormats = [ '{{companyPrefix}} {{companyNameElement}}', '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}', '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}', '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}{{companyNameSuffix}}', - ); + ]; - protected static $companyPrefixes = array( - 'АҚ', 'ЖШС', 'ЖАҚ' - ); + protected static $companyPrefixes = [ + 'АҚ', 'ЖШС', 'ЖАҚ', + ]; - protected static $companyNameSuffixes = array( - 'Құрылыс', 'Машина', 'Бұзу', '-М', 'Лизинг', 'Страх', 'Ком', 'Телеком' - ); + protected static $companyNameSuffixes = [ + 'Құрылыс', 'Машина', 'Бұзу', '-М', 'Лизинг', 'Страх', 'Ком', 'Телеком', + ]; - protected static $companyElements = array( + protected static $companyElements = [ 'Қазақ', 'Кітап', 'Цемент', 'Лифт', 'Креп', 'Авто', 'Теле', 'Транс', 'Алмаз', 'Метиз', 'Мотор', 'Қаз', 'Тех', 'Сантех', 'Алматы', 'Астана', 'Электро', - ); + ]; /** * @example 'ЖШС АлматыТелеком' @@ -52,20 +52,20 @@ public static function companyNameSuffix() /** * National Business Identification Numbers * - * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fbus_business%2Ffor_businessmen%2Farticle%2Fbusiness_identification_number&lang=en - * @param \DateTime $registrationDate + * @see http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fbus_business%2Ffor_businessmen%2Farticle%2Fbusiness_identification_number&lang=en + * * @return string 12 digits, like 150140000019 */ - public static function businessIdentificationNumber(\DateTime $registrationDate = null) + public static function businessIdentificationNumber(?\DateTime $registrationDate = null) { if (!$registrationDate) { $registrationDate = \Faker\Provider\DateTime::dateTimeThisYear(); } - $dateAsString = $registrationDate->format('ym'); - $legalEntityType = (string) static::numberBetween(4, 6); - $legalEntityAdditionalType = (string) static::numberBetween(0, 3); - $randomDigits = (string) static::numerify('######'); + $dateAsString = $registrationDate->format('ym'); + $legalEntityType = (string) self::numberBetween(4, 6); + $legalEntityAdditionalType = (string) self::numberBetween(0, 3); + $randomDigits = (string) static::numerify('######'); return $dateAsString . $legalEntityType . $legalEntityAdditionalType . $randomDigits; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Internet.php new file mode 100644 index 0000000..0328da0 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Internet.php @@ -0,0 +1,9 @@ + array( + public static $genderCenturyMap = [ + self::GENDER_MALE => [ self::CENTURY_19TH => self::MALE_CENTURY_19TH, self::CENTURY_20TH => self::MALE_CENTURY_20TH, self::CENTURY_21ST => self::MALE_CENTURY_21ST, - ), - self::GENDER_FEMALE => array( + ], + self::GENDER_FEMALE => [ self::CENTURY_19TH => self::FEMALE_CENTURY_19TH, self::CENTURY_20TH => self::FEMALE_CENTURY_20TH, self::CENTURY_21ST => self::FEMALE_CENTURY_21ST, - ), - ); + ], + ]; /** * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F * * @var array */ - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{lastName}}ұлы {{firstNameMale}}', - ); + ]; /** * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F * * @var array */ - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{lastName}}қызы {{firstNameFemale}}', - ); + ]; /** * @see http://koshpendi.kz/index.php/nomad/imena/ * * @var array */ - protected static $firstNameMale = array( + protected static $firstNameMale = [ 'Аылғазы', 'Әбдіқадыр', 'Бабағожа', @@ -100,14 +99,14 @@ class Person extends \Faker\Provider\Person 'Шаттық', 'Ыстамбақы', 'Ібни', - ); + ]; /** * @see http://koshpendi.kz/index.php/nomad/imena/ * * @var array */ - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'Асылтас', 'Әужа', 'Бүлдіршін', @@ -137,7 +136,7 @@ class Person extends \Faker\Provider\Person 'Шырынгүл', 'Ырысты', 'Іңкәр', - ); + ]; /** * @see http://koshpendi.kz/index.php/nomad/imena/ @@ -145,7 +144,7 @@ class Person extends \Faker\Provider\Person * * @var array */ - protected static $lastName = array( + protected static $lastName = [ 'Адырбай', 'Әжібай', 'Байбөрі', @@ -174,43 +173,52 @@ class Person extends \Faker\Provider\Person 'Шілдебай', 'Ыстамбақы', 'Ісмет', - ); + ]; /** - * @param integer $year + * Note! When calculating individual identification number + * 2000-01-01 - 2000-12-31 counts as 21th century + * 1900-01-01 - 1900-12-31 counts as 20th century + * + * @param int $year * - * @return integer|null + * @return int */ private static function getCenturyByYear($year) { - if ($year >= 2000 && $year <= DateTime::year()) { + if (($year >= 2100) || ($year < 1800)) { + throw new \InvalidArgumentException('Unexpected century'); + } + + if ($year >= 2000) { return self::CENTURY_21ST; - } elseif ($year >= 1900) { + } + + if ($year >= 1900) { return self::CENTURY_20TH; - } elseif ($year >= 1800) { - return self::CENTURY_19TH; } + + return self::CENTURY_19TH; } /** * National Individual Identification Numbers * - * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fcitizen_migration%2Fpassport_id_card%2Farticle%2Fiin_info&lang=en - * @link https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80 + * @see http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fcitizen_migration%2Fpassport_id_card%2Farticle%2Fiin_info&lang=en + * @see https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80 * - * @param \DateTime $birthDate - * @param integer $gender + * @param int $gender * * @return string 12 digits, like 780322300455 */ - public static function individualIdentificationNumber(\DateTime $birthDate = null, $gender = self::GENDER_MALE) + public static function individualIdentificationNumber(?\DateTime $birthDate = null, $gender = self::GENDER_MALE) { if (!$birthDate) { $birthDate = DateTime::dateTimeBetween(); } do { - $population = mt_rand(1000, 2000); + $population = self::numberBetween(1000, 2000); $century = self::getCenturyByYear((int) $birthDate->format('Y')); $iin = $birthDate->format('ymd'); @@ -225,7 +233,7 @@ public static function individualIdentificationNumber(\DateTime $birthDate = nul /** * @param string $iinValue * - * @return integer + * @return int */ public static function checkSum($iinValue) { @@ -240,15 +248,15 @@ public static function checkSum($iinValue) /** * @param string $iinValue - * @param array $sequence + * @param array $sequence * - * @return integer + * @return int */ protected static function getControlDigit($iinValue, $sequence) { $sum = 0; - for ($i = 0; $i <= 10; $i++) { + for ($i = 0; $i <= 10; ++$i) { $sum += (int) $iinValue[$i] * $sequence[$i]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php similarity index 86% rename from vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php index edb38dd..c5d6440 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+7 (701) #######', '+7 (702) #######', '+7 (705) #######', @@ -12,5 +12,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '+7 (727) 239####', '+7 (747) #######', '+7 (7172) 745###', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Text.php index 9b3db5b..733a889 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Text.php @@ -19,8 +19,10 @@ class Text extends \Faker\Provider\Text * Language: Kazakh * * @licence Creative Commons Attribution-ShareAlike http://creativecommons.org/licenses/by-sa/3.0/deed.ru + * * @see https://wikimediafoundation.org/wiki/Terms_of_Use/ - * @link http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D0%B8_Creative_Commons_Attribution-ShareAlike_3.0_Unported + * @see http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D0%B8_Creative_Commons_Attribution-ShareAlike_3.0_Unported + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Address.php similarity index 93% rename from vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Address.php index 9b5398d..d0f7990 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Address.php @@ -4,31 +4,31 @@ class Address extends \Faker\Provider\Address { - protected static $postcode = array('#####'); - protected static $buildingNumber = array('####', '###'); - protected static $metropolitanCity = array( + protected static $postcode = ['#####']; + protected static $buildingNumber = ['%###', '%##']; + protected static $metropolitanCity = [ '서울특별시', '부산광역시', '대구광역시', '인천광역시', '광주광역시', '대전광역시', '울산광역시', - ); - protected static $province = array( + ]; + protected static $province = [ '경기도', '강원도', '충청북도', '충청남도', '전라북도', '전라남도', '경상북도', '경상남도', '제주특별자치도', - ); - protected static $city = array( + ]; + protected static $city = [ '파주시', '수원시', '수원시 권선구', '수원시 팔달구', '수원시 영통구', '성남시', '성남시 수정구', '성남시 중원구', '화성시', '성남시 분당구', '안양시', '안양시 만안구', '안양시 동안구', '부천시', '부천시 원미구', '부천시 소사구', '부천시 오정구', '광명시', '평택시', '이천시', '동두천시', '안산시', '안산시 상록구', '안산시 단원구', '안성시', '고양시', '고양시 덕양구', '고양시 일산동구', '고양시 일산서구', '과천시', '구리시', '남양주시', '오산시', '시흥시', '군포시', '의왕시', '하남시', '김포시', '용인시', '용인시 처인구', '용인시 기흥구', '용인시 수지구', '연천군', '가평군', '양평군', '광주시', '포천시', '양주시', '수원시 장안구', '의정부시', '여주시', - ); - protected static $borough = array( + ]; + protected static $borough = [ '종로구', '중구', '용산구', '성동구', '광진구', '동대문구', '중랑구', '성북구', '강북구', '도봉구', '노원구', '은평구', '서대문구', '마포구', '양천구', '강서구', '구로구', '금천구', '영등포구', '동작구', '관악구', '서초구', '강남구', '송파구', '강동구', '동구', '서구', '남구', '북구', '중구', - ); - protected static $streetName = array( + ]; + protected static $streetName = [ '압구정로', '도산대로', '학동로', '봉은사로', '테헤란로', '역삼로', '논현로', '언주로', '강남대로', '양재천로', '삼성로', '영동대로', '개포로', '선릉로', '반포대로', '서초중앙로', '서초대로', '잠실로', '석촌호수로', '백제고분로', '가락로', '오금로', - ); - protected static $country = array( + ]; + protected static $country = [ '가나', '가봉', '가이아나', '감비아', '과테말라', '그레나다', '그리스', '기니', '기니비사우', '나고르노카라바흐 공화국', '나미비아', '나우루', '나이지리아', '남수단', '남아프리카 공화국', '남오세티야', '네덜란드', '네팔', '노르웨이', '뉴질랜드', '니제르', '니카라과', '대한민국', '덴마크', '도미니카', '도미니카 공화국', '독일', '동티모르', '라오스', '라이베리아', '라트비아', '러시아', '레바논', '레소토', @@ -48,11 +48,11 @@ class Address extends \Faker\Provider\Address '콩고 민주 공화국', '쿠바', '쿠웨이트', '크로아티아', '키르기스스탄', '키리바시', '키프로스', '타이', '타지키스탄', '탄자니아', '터키', '토고', '통가', '투르크메니스탄', '투발루', '튀니지', '트란스니스트리아', '트리니다드 토바고', '파나마', '파라과이', '파키스탄', '파푸아 뉴기니', '팔라우', '팔레스타인국', '페루', '포르투갈', '폴란드', '프랑스', '피지', '핀란드', '필리핀', '헝가리', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ '{{metropolitanCity}} {{borough}} {{streetName}} {{buildingNumber}}', '{{province}} {{city}} {{streetName}} {{buildingNumber}}', - ); + ]; /** * @example '서울특별시' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Company.php similarity index 81% rename from vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Company.php index 8db79f4..72435c8 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Company.php @@ -4,20 +4,20 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{companyPrefix}}{{firstName}}', '{{companyPrefix}}{{firstName}}{{companySuffix}}', '{{firstName}}{{companySuffix}}', '{{firstName}}{{companySuffix}}', '{{firstName}}{{companySuffix}}', '{{firstName}}{{companySuffix}}', - ); + ]; - protected static $companyPrefix = array('(주)', '(주)', '(주)', '(유)'); + protected static $companyPrefix = ['(주)', '(주)', '(주)', '(유)']; - protected static $companySuffix = array( + protected static $companySuffix = [ '전자', '건설', '식품', '인터넷', '그룹', '은행', '보험', '제약', '금융', '네트웍스', '기획', '미디어', '연구소', '모바일', '스튜디오', '캐피탈', - ); + ]; public static function companyPrefix() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Internet.php similarity index 94% rename from vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Internet.php index 1c3dfb5..6d7dac3 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Internet.php @@ -4,31 +4,31 @@ class Internet extends \Faker\Provider\Internet { - protected static $userNameFormats = array( + protected static $userNameFormats = [ '{{lastNameAscii}}.{{firstNameAscii}}', '{{firstNameAscii}}.{{lastNameAscii}}', '{{firstNameAscii}}##', '?{{lastNameAscii}}', - ); + ]; - protected static $safeEmailTld = array( + protected static $safeEmailTld = [ 'com', 'kr', 'me', 'net', 'org', - ); + ]; - protected static $tld = array( + protected static $tld = [ 'biz', 'com', 'info', 'kr', 'net', 'org', - ); + ]; /** * {@link} http://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%9D%B8%EA%B5%AC%EC%88%9C_%EC%84%B1%EC%94%A8_%EB%AA%A9%EB%A1%9D */ - protected static $lastNameAscii = array( + protected static $lastNameAscii = [ 'ahn', 'bae', 'baek', 'chang', 'cheon', 'cho', 'choi', 'chung', 'gang', 'go', 'gwak', 'gwon', 'ha', 'han', 'heo', 'hong', 'hwang', 'jang', 'jeon', 'jo', 'jung', 'kang', 'kim', 'ko', 'kwak', 'kwon', 'lee', 'lim', 'moon', 'nam', 'no', 'oh', 'park', 'ryu', 'seo', 'shim', 'shin', 'son', 'song', 'yang', 'yoon', 'yu', - ); + ]; /** * {@link} http://ko.wikipedia.org/wiki/%ED%95%9C%EA%B5%AD%EC%9D%98_%EC%84%B1%EC%94%A8%EC%99%80_%EC%9D%B4%EB%A6%84#.EC.8B.9C.EB.8C.80.EB.B3.84_.EA.B0.80.EC.9E.A5_.ED.9D.94.ED.95.9C_.EC.9D.B4.EB.A6.84_10.EC.84.A0.28.E9.81.B8.29 */ - protected static $firstNameAscii = array( + protected static $firstNameAscii = [ 'areum', 'arin', 'banhee', 'bom', 'bomi', 'bomin', 'boram', 'byungcheol', 'byungho', 'chaehyun', 'chaewon', 'changyoung', 'daesoo', 'daesun', 'dayoung', 'dohyunn', 'dongha', 'donghyun', 'donghyun', 'dongyoon', 'doyoon', 'doyoun', 'eunae', 'eunhee', 'eunhye', 'eunhyoung', 'eunji', 'eunjin', 'eunju', 'eunjung', 'eunkyoung', 'eunmi', @@ -53,8 +53,8 @@ class Internet extends \Faker\Provider\Internet 'suran', 'suwon', 'suwon', 'suyoun', 'taehee', 'taeho', 'taehyun', 'wonhee', 'wonjin', 'wonjun', 'woojin', 'yeji', 'yejin', 'yejun', 'yeojin', 'yeon', 'yewon', 'youngcheol', 'younggil', 'youngha', 'youngho', 'younghun', 'younghwa', 'youngil', 'youngjin', 'youngjin', 'youngshik', 'youngsoo', 'youngtae', 'youngwhan', 'youngwhan', - 'younhee', 'younsun', 'yujin', 'yujung', 'yunkyoung', 'yunmi', 'yunseo', 'yunyoung', 'yuri' - ); + 'younhee', 'younsun', 'yujin', 'yujung', 'yunkyoung', 'yunmi', 'yunseo', 'yunyoung', 'yuri', + ]; public static function lastNameAscii() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Person.php similarity index 94% rename from vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Person.php index 92d858f..71f6175 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Person.php @@ -7,19 +7,18 @@ class Person extends \Faker\Provider\Person /** * This provider uses wikipedia's top Korean last names. These cover more than 90% of Korean population. */ - - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{lastName}}{{firstNameMale}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{lastName}}{{firstNameFemale}}', - ); + ]; /** * {@link} http://ko.wikipedia.org/wiki/%ED%95%9C%EA%B5%AD%EC%9D%98_%EC%84%B1%EC%94%A8%EC%99%80_%EC%9D%B4%EB%A6%84#.EC.8B.9C.EB.8C.80.EB.B3.84_.EA.B0.80.EC.9E.A5_.ED.9D.94.ED.95.9C_.EC.9D.B4.EB.A6.84_10.EC.84.A0.28.E9.81.B8.29 */ - protected static $firstNameMale = array( + protected static $firstNameMale = [ '건우', '건호', '경석', '경수', '경춘', '경환', '광수', '광현', '구범', '규산', '기수', '남수', '남호', '대선', '대수', '도윤', '도현', '동윤', '동하', '동현', '명식', '명호', '문용', '문창', '민석', '민성', '민수', '민재', '민준', '민철', '민환', '병철', '병호', '상선', '상수', '상우', '상욱', '상준', '상철', '상현', '상호', '상훈', '서준', '서호', '선엽', '성곤', '성령', '성민', @@ -28,9 +27,9 @@ class Person extends \Faker\Provider\Person '재혁', '재현', '재호', '재훈', '정남', '정수', '정식', '정웅', '정호', '정훈', '종수', '종주', '종훈', '주원', '주형', '준', '준범', '준서', '준영', '준혁', '준형', '준호', '중수', '지후', '지훈', '진수', '진우', '진호', '창용', '채현', '태현', '태호', '혁상', '현규', '현우', '현종', '현준', '형민', '형철', '호민', '호진', '홍선', '효일', - ); + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ '가람', '강은', '강희', '경은', '경주', '근영', '기연', '나루', '나리', '나연', '나은', '나형', '누리', '다영', '도연', '동현', '미경', '미라', '미란', '미영', '미정', '민서', '민아', '민지', '민형', '민희', '반희', '보람', '보미', '보민', '봄', '상명', '새미', '서연', '서영', '서윤', '서현', '선영', '선우', '선정', '선호', '성미', '성민', '성은', '세원', '소민', '소연', '소영', @@ -40,16 +39,16 @@ class Person extends \Faker\Provider\Person '정화', '주명', '주미', '주연', '주희', '지민', '지선', '지숙', '지아', '지연', '지영', '지예', '지우', '지원', '지은', '지현', '지혜', '지희', '진아', '진희', '채원', '태희', '하나', '하윤', '하은', '한나', '헤선', '현영', '현정', '현주', '현지', '혜나', '혜림', '혜민', '혜숙', '혜연', '혜진', '효진', '희경', '희원', - ); + ]; /** * {@link} http://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%9D%B8%EA%B5%AC%EC%88%9C_%EC%84%B1%EC%94%A8_%EB%AA%A9%EB%A1%9D */ - protected static $lastName = array( + protected static $lastName = [ '김', '이', '박', '최', '정', '강', '조', '윤', '장', '임', '오', '한', '신', '서', '권', '황', '안', '송', '류', '홍', '전', '고', '문', '손', '양', '배', '조', '백', '허', '남', '심', '유', '노', '하', '전', '정', '곽', '성', '차', '유', '구', '우', '주', '임', '나', '신', '민', '진', '지', '엄', '원', '채', '강', '천', '양', '공', '현', '방', '변', '함', '노', '염', '여', '추', '변', '도', '석', '신', '소', '선', '주', '설', '방', '마', '정', '길', '위', '연', '표', '명', '기', '금', '왕', '반', '옥', '육', '진', '인', '맹', '제', '탁', '모', '남궁', '여', '장', '어', '유', '국', '은', '편', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/PhoneNumber.php similarity index 91% rename from vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/ko_KR/PhoneNumber.php index 6008bbf..32326b4 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/PhoneNumber.php @@ -5,8 +5,8 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { //reference : https://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%A0%84%ED%99%94%EB%B2%88%ED%98%B8_%EC%B2%B4%EA%B3%84 - - protected static $formats = array( + + protected static $formats = [ //local area phone format '070-####-####', '02-####-####', @@ -14,25 +14,23 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '04#-####-####', '05#-####-####', '06#-####-####', - + //cell phone format '010-####-####', - + //others: Intelligent Network(기간통신사업자) '15##-####', '16##-####', '18##-####', - ); - + ]; + public function localAreaPhoneNumber() { $format = self::randomElement(array_slice(static::$formats, 0, 6)); return self::numerify($this->generator->parse($format)); } - - - + public function cellPhoneNumber() { $format = self::randomElement(array_slice(static::$formats, 6, 1)); diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Text.php index 5f5148e..8182f89 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ko_KR/Text.php @@ -14,8 +14,10 @@ class Text extends \Faker\Provider\Text * Language: Korean * * @licence https://creativecommons.org/licenses/by-sa/3.0/deed.ko + * * @see https://wikimediafoundation.org/wiki/Terms_of_Use/ - * @link https://ko.wikisource.org/wiki/유정 + * @see https://ko.wikisource.org/wiki/유정 + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Address.php new file mode 100644 index 0000000..f8967ff --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Address.php @@ -0,0 +1,209 @@ +generator->parse($format); + } + + public static function country() + { + return static::randomElement(static::$country); + } + + public static function postcode() + { + return static::toUpper(static::bothify(static::randomElement(static::$postcode))); + } + + public static function regionSuffix() + { + return static::randomElement(static::$regionSuffix); + } + + public static function region() + { + return static::randomElement(static::$region); + } + + public static function citySuffix() + { + return static::randomElement(static::$citySuffix); + } + + public function city() + { + return static::randomElement(static::$city); + } + + public static function streetSuffix() + { + return static::randomElement(static::$streetSuffix); + } + + public static function street() + { + return static::randomElement(static::$street); + } + + /** + * Lithuania municipality + * + * @see https://en.wikipedia.org/wiki/Municipality + * + * @return string + */ + public function municipality() + { + return static::randomElement(static::$municipality); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Company.php similarity index 71% rename from vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Company.php index 4a110c2..89370b3 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Company.php @@ -4,12 +4,12 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{companySuffix}} {{lastNameMale}}', '{{companySuffix}} {{lastNameMale}} ir {{lastNameMale}}', '{{companySuffix}} "{{lastNameMale}} ir {{lastNameMale}}"', '{{companySuffix}} "{{lastNameMale}}"', - ); + ]; - protected static $companySuffix = array('UAB', 'AB', 'IĮ', 'MB', 'VŠĮ'); + protected static $companySuffix = ['UAB', 'AB', 'IĮ', 'MB', 'VŠĮ']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Internet.php similarity index 57% rename from vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Internet.php index f98ccc4..f6bc0e1 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Internet.php @@ -4,15 +4,15 @@ class Internet extends \Faker\Provider\Internet { - protected static $userNameFormats = array( + protected static $userNameFormats = [ '{{lastNameMale}}.{{firstNameMale}}', '{{lastNameFemale}}.{{firstNameFemale}}', '{{firstNameMale}}##', '{{firstNameFemale}}##', '?{{lastNameFemale}}', '?{{lastNameMale}}', - ); + ]; - protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com'); - protected static $tld = array('com', 'com', 'net', 'org', 'lt', 'lt', 'lt', 'lt', 'lt'); + protected static $freeEmailDomain = ['gmail.com', 'yahoo.com', 'hotmail.com']; + protected static $tld = ['com', 'com', 'net', 'org', 'lt', 'lt', 'lt', 'lt', 'lt']; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Payment.php index a0ebe25..92e31f0 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'LT', $length = null) diff --git a/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php new file mode 100644 index 0000000..0908f80 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php @@ -0,0 +1,390 @@ +generator->parse(static::randomElement(static::$lastNameFormat)); + } + + /** + * Return male last name + * + * @return string + * + * @example 'Vasiliauskas' + */ + public function lastNameMale() + { + return static::randomElement(static::$lastNameMale); + } + + /** + * Return female last name + * + * @return string + * + * @example 'Žukauskaitė' + */ + public function lastNameFemale() + { + return static::randomElement(static::$lastNameFemale); + } + + /** + * Return driver license number + * + * @return string + * + * @example 12345678 + */ + public function driverLicence() + { + return $this->bothify('########'); + } + + /** + * Return passport number + * + * @return string + * + * @example 12345678 + */ + public function passportNumber() + { + return $this->bothify('########'); + } + + /** + * National Personal Identity number (asmens kodas) + * + * @see https://en.wikipedia.org/wiki/National_identification_number#Lithuania + * @see https://lt.wikipedia.org/wiki/Asmens_kodas + * + * @param string $gender [male|female] + * @param string $randomNumber three integers + * + * @return string on format XXXXXXXXXXX + */ + public function personalIdentityNumber($gender = 'male', ?\DateTime $birthdate = null, $randomNumber = '') + { + if (!$birthdate) { + $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury(); + } + + $genderNumber = ($gender == 'male') ? 1 : 0; + $firstNumber = (int) floor($birthdate->format('Y') / 100) * 2 - 34 - $genderNumber; + + $datePart = $birthdate->format('ymd'); + $randomDigits = (string) (!$randomNumber || strlen($randomNumber) < 3) ? static::numerify('###') : substr($randomNumber, 0, 3); + $partOfPerosnalCode = $firstNumber . $datePart . $randomDigits; + + $sum = self::calculateSum($partOfPerosnalCode, 1); + $liekana = $sum % 11; + + if ($liekana !== 10) { + $lastNumber = $liekana; + + return $firstNumber . $datePart . $randomDigits . $lastNumber; + } + + $sum = self::calculateSum($partOfPerosnalCode, 2); + $liekana = $sum % 11; + + $lastNumber = ($liekana !== 10) ? $liekana : 0; + + return $firstNumber . $datePart . $randomDigits . $lastNumber; + } + + /** + * Calculate the sum of personal code + * + * @see https://en.wikipedia.org/wiki/National_identification_number#Lithuania + * @see https://lt.wikipedia.org/wiki/Asmens_kodas + * + * @param string $numbers + * @param int $time [1|2] + * + * @return int + */ + private static function calculateSum($numbers, $time = 1) + { + if ($time == 1) { + $multipliers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]; + } else { + $multipliers = [3, 4, 5, 6, 7, 8, 9, 1, 2, 3]; + } + + $sum = 0; + + for ($i = 1; $i <= 10; ++$i) { + $sum += ((int) $numbers[$i - 1]) * $multipliers[$i - 1]; + } + + return (int) $sum; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/PhoneNumber.php similarity index 86% rename from vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/lt_LT/PhoneNumber.php index 752eb78..05e32d3 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '86#######', '8 6## #####', '+370 6## ## ###', @@ -13,5 +13,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '+370 5 ### ####', '+370 46 ## ## ##', '(8 46) ## ## ##', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Address.php similarity index 82% rename from vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Address.php index 6f53770..0bddcc5 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Address.php @@ -4,20 +4,20 @@ class Address extends \Faker\Provider\Address { - protected static $cityPrefix = array('pilsēta'); + protected static $cityPrefix = ['pilsēta']; - protected static $regionSuffix = array('reģions'); - protected static $streetPrefix = array( + protected static $regionSuffix = ['reģions']; + protected static $streetPrefix = [ 'iela', 'bulvāris', 'skvērs', 'gāte', - ); + ]; - protected static $buildingNumber = array('##'); - protected static $postcode = array('LV ####'); + protected static $buildingNumber = ['%#']; + protected static $postcode = ['LV-####']; /** - * @link https://lv.wikipedia.org/wiki/Suver%C4%93no_valstu_uzskait%C4%ABjums + * @see https://lv.wikipedia.org/wiki/Suver%C4%93no_valstu_uzskait%C4%ABjums */ - protected static $country = array( + protected static $country = [ 'Afganistāna', 'Albānija', 'Alžīrija', 'Amerikas Savienotās Valstis', 'Andora', 'Angola', 'Antigva un Barbuda', 'Apvienotie Arābu Emirāti', 'Argentīna', 'Armēnija', 'Austrālija', 'Austrija', 'Austrumtimora', 'Azerbaidžāna', 'Bahamas', 'Bahreina', 'Baltkrievija', 'Bangladeša', 'Barbadosa', 'Beliza', 'Beļģija', 'Benina', 'Bolīvija', @@ -42,26 +42,26 @@ class Address extends \Faker\Provider\Address 'Tunisija', 'Turcija', 'Turkmenistāna', 'Tuvalu', 'Uganda', 'Ukraina', 'Ungārija', 'Urugvaja', 'Uzbekistāna', 'Vācija', 'Vanuatu', 'Vatikāns', 'Venecuēla', 'Vjetnama', 'Zālamana Salas', 'Zambija', 'Ziemeļkoreja', 'Zimbabve', 'Zviedrija', - ); + ]; - protected static $region = array( - 'Kurzemes', 'Latgales', 'Rīgas', 'Vidzemes', 'Zemgales' - ); + protected static $region = [ + 'Kurzemes', 'Latgales', 'Rīgas', 'Vidzemes', 'Zemgales', + ]; - protected static $city = array('Aizkraukle' ,'Aluksne','Balvi', 'Bauska','Cesis', - 'Daugavpils', 'Dobele','Gulbene', 'Jekabpils', 'Jelgava', 'Kraslava', 'Kuldiga', 'Liepaja', - 'Limbazi', 'Ludza', 'Madona', 'Mobile Phones', 'Ogre', 'Preili', 'Rezekne', 'Rīga', 'Ventspils' - ); + protected static $city = ['Aizkraukle', 'Aluksne', 'Balvi', 'Bauska', 'Cesis', + 'Daugavpils', 'Dobele', 'Gulbene', 'Jekabpils', 'Jelgava', 'Kraslava', 'Kuldiga', 'Liepaja', + 'Limbazi', 'Ludza', 'Madona', 'Mobile Phones', 'Ogre', 'Preili', 'Rezekne', 'Rīga', 'Ventspils', + ]; - protected static $street = array( + protected static $street = [ 'Alfrēda Kalniņa', 'Alksnāja', 'Amatu', 'Anglikāņu', 'Arhitektu', 'Arsenāla', 'Artilērijas', 'Aspazijas', 'Atgriežu', 'Audēju', 'Basteja', 'Baumaņa', 'Bīskapa', 'Blaumaņa', 'Brīvības', 'Brīvības', - 'Bruņinieku', 'Dainas', 'Daugavas' - ); + 'Bruņinieku', 'Dainas', 'Daugavas', + ]; - protected static $addressFormats = array( - "{{postcode}}, {{region}} {{regionSuffix}}, {{city}} {{cityPrefix}}, {{street}} {{streetPrefix}}, {{buildingNumber}}", - ); + protected static $addressFormats = [ + '{{postcode}}, {{region}} {{regionSuffix}}, {{city}} {{cityPrefix}}, {{street}} {{streetPrefix}}, {{buildingNumber}}', + ]; public static function buildingNumber() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Color.php similarity index 68% rename from vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Color.php index 99e681b..04c895f 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Color.php @@ -4,16 +4,16 @@ class Color extends \Faker\Provider\Color { - protected static $safeColorNames = array( + protected static $safeColorNames = [ 'balts', 'melns', 'sarkans', 'zaļš', 'dzeltens', 'zils', - 'brūns', 'purpurs', 'rozā', 'oranžs', 'pelēks' + 'brūns', 'purpurs', 'rozā', 'oranžs', 'pelēks', - ); + ]; - protected static $allColorNames = array( + protected static $allColorNames = [ 'bēšs', 'palss šatens', 'bordo', 'marengo', 'mēļš', 'sirms', 'ruds', 'rūsgans', 'ābolains', 'bērs', 'dūkans', 'loss', 'pāts', 'salns', - 'zelts', 'sudrabs', 'varš', 'bronza', 'zeltains', 'subrabains' - ); + 'zelts', 'sudrabs', 'varš', 'bronza', 'zeltains', 'subrabains', + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Internet.php new file mode 100644 index 0000000..b72804e --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Internet.php @@ -0,0 +1,9 @@ +format('Y'); + + if ($year >= 2000 && $year <= 2099) { + $century = 2; + } elseif ($year >= 1900 && $year <= 1999) { + $century = 1; + } else { + $century = 0; + } + $datePart = $birthdate->format('dmy'); - $randomDigits = (string) static::numerify('####'); + $serialNumber = static::numerify('###'); + + $partialNumberSplit = str_split($datePart . $century . $serialNumber); + + $idDigitValidator = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + $total = 0; + + foreach ($partialNumberSplit as $key => $digit) { + if (isset($idDigitValidator[$key])) { + $total += $idDigitValidator[$key] * (int) $digit; + } + } - $checksum = Luhn::computeCheckDigit($datePart . $randomDigits); + $checksumDigit = (1101 - $total) % 11 % 10; - return $datePart . '-' . $randomDigits . $checksum; + return $datePart . '-' . $century . $serialNumber . $checksumDigit; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/PhoneNumber.php similarity index 81% rename from vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/lv_LV/PhoneNumber.php index 29c19f6..2cfdcb5 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/PhoneNumber.php @@ -6,10 +6,10 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { /** * {@link} https://en.wikipedia.org/wiki/Telephone_numbers_in_Latvia - **/ - protected static $formats = array( + */ + protected static $formats = [ '########', '## ### ###', '+371 ########', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/me_ME/Address.php similarity index 91% rename from vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/me_ME/Address.php index 422207e..3a21cf2 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/me_ME/Address.php @@ -4,16 +4,16 @@ class Address extends \Faker\Provider\Address { - protected static $postcode = array('#####'); + protected static $postcode = ['#####']; - protected static $streetPrefix = array( + protected static $streetPrefix = [ '', - ); + ]; /** - * @link http://podgorica.mapa.in.rs/ + * @see http://podgorica.mapa.in.rs/ */ - protected static $street = array( + protected static $street = [ '1. crnogorske brigade narodne odbrane', '1. maja', '1. proleterske brigade', '10. crnogorske brigade', '13. jula', '18. februara', '18. jula', '19. decembra', '2. crnogorskog bataljona', '2. proleterske dalmatinske brigade', '27. marta', '3. sandžačke proleterske brigade', '4. jula', '4. proleterske brigade', '5. proleterske brigade', '6. crnogorske udarne brigade', '7. omladinske brigade', '8. crnogorske udarne brigade', '8. jula', '8. marta', '9. crnogorske brigade', 'Admirala Zmajevića', 'Aerodromska', 'Aleksandra Ace Prijića', 'Aleksandra Lesa Ivanovića', 'Aleksandra Puškina', 'Alekse Šantića', 'Alfreda Tenisona', 'Andrije Paltašića', 'Andrijevička', 'Antona Čehova', 'Arhitekte Milana Popovića', 'Arsenija Čarnojevića', 'Atinska', 'AVNOJ-a', 'Balkanska', 'Balšića', 'Barska', 'Belvederska', 'Beogradska', 'Berska', 'Bjelasička', 'Bjelopoljska', 'Blaža Jovanovića', 'Bohinjska', 'Bokeljske mornarice', 'Bokeška', 'Bore i Ramiza', 'Borisa Kidriča', 'Boška Buhe', 'Botunska', 'Bracana Bracanovića', 'Braće Ribar', 'Branislava Lekića', 'Branka Ćopića', 'Branka Deletića', 'Branka Radičevića', 'Bratonožićka', 'Bratstva i jedinstva', 'Bregalnička', 'Buda Tomovića', 'Budvanska', 'Bulevar Džordža Vašingtona', 'Bulevar Ivana Crnojevića', 'Bulevar Mihaila Lalića', 'Bulevar revolucije', 'Bulevar Save Kovačevića', @@ -36,37 +36,37 @@ class Address extends \Faker\Provider\Address 'Ulcinjska', 'Užička', 'Valtazara Bogišića', 'Vardarska', 'Vasa Raičkovića', 'Velimira Stojanovića', 'Velimira Terzića', 'Veljka Jankovića', 'Vezirov most', 'Vinogradska', 'Vitomira Vita Nikolića', 'Vlada Ćetkovića', 'Vlada Martinovića', 'Vladike Danila', 'Vladike Petra I', 'Vladike Vasilija Petrovića', 'Vojisavljevića', 'Vojislava Grujića', 'Vojvode Ilije Plamenca', 'Vojvode Mijajla Nišina', 'Vojvode Mirka Petrovića', 'Vojvode Raduna', 'Vojvode Vase Bracanova', 'Vojvođanska', 'Vrela 2.', 'Vrela 3.', 'Vrela 4.', 'Vrela 5.', 'Vrela 6.', 'Vučedolska', 'Vuka Đurovića', 'Vuka Karadžića', 'Vuka Mandušića', 'Vuka Mićunovića', 'Vukice Mitrović', 'Vukosava Božovića', 'Zagrebačka', 'Zetskih vladara', 'Zetskog odreda', 'Zmaj Jovina', 'Žabljačka', 'Žarka Zrenjanina', 'Žikice Jovanovića Španca', 'Žrtava fašizma', - ); + ]; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{street}}', '{{streetPrefix}} {{street}}', - ); + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}} {{buildingNumber}}', - ); + ]; - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityName}}', - ); + ]; /** - * @link http://sh.wikipedia.org/wiki/Popis_gradova_u_Crnoj_Gori + * @see http://sh.wikipedia.org/wiki/Popis_gradova_u_Crnoj_Gori */ - protected static $cityNames = array( - 'Bar', 'Budva', 'Herceg Novi', - 'Kotor', 'Tivat', 'Ulcinj', 'Podgorica', - 'Cetinje', 'Nikšić', 'Danilovgrad', 'Žabljak', - 'Kolašin', 'Andrijevica', 'Berane', 'Bijelo Polje', - 'Mojkovac', 'Plav', 'Plužine', 'Pljevlja', 'Rožaje', - 'Šavnik', 'Petnjica', 'Gusinje', 'Petrovac','Sutomore', - ); + protected static $cityNames = [ + 'Bar', 'Budva', 'Herceg Novi', + 'Kotor', 'Tivat', 'Ulcinj', 'Podgorica', + 'Cetinje', 'Nikšić', 'Danilovgrad', 'Žabljak', + 'Kolašin', 'Andrijevica', 'Berane', 'Bijelo Polje', + 'Mojkovac', 'Plav', 'Plužine', 'Pljevlja', 'Rožaje', + 'Šavnik', 'Petnjica', 'Gusinje', 'Petrovac', 'Sutomore', + ]; /** - * @link https://github.com/umpirsky/country-list/blob/master/country/cldr/sr_Latn/country.php + * @see https://github.com/umpirsky/country-list/blob/master/country/cldr/sr_Latn/country.php */ - protected static $country = array( + protected static $country = [ 'Alandska ostrva', 'Albanija', 'Alžir', 'Američka Samoa', 'Andora', 'Angola', 'Angvila', 'Antarktika', 'Antigva i Barbuda', 'Argentina', 'Armenija', 'Aruba', 'Australija', 'Austrija', 'Avganistan', 'Azerbejdžan', 'Bahami', 'Bahrein', 'Bangladeš', 'Barbados', 'Belgija', 'Belise', 'Belorusija', 'Benin', 'Bermuda', 'Bocvana', 'Bolivija', 'Bosna i Hercegovina', 'Božićna Ostrva', 'Brazil', 'Britanska Devičanska Ostrva', 'Britansko Indijska Okeanska Teritorija', 'Brunej', 'Bugarska', 'Burkina Faso', 'Burundi', 'Butan', 'Buve Ostrva', 'Čad', 'Centralno Afrička Republika', 'Češka', 'Čile', @@ -92,7 +92,7 @@ class Address extends \Faker\Provider\Address 'Uganda', 'Ujedinjeni Arapski Emirati', 'Ukrajina', 'Urugvaj', 'Uzbekistan', 'Valis i Futuna Ostrva', 'Vanuatu', 'Vatikan', 'Velika Britanija', 'Venecuela', 'Vijetnam', 'Zambija', 'Zapadna Sahara', 'Zimbabve', - ); + ]; public static function streetPrefix() { @@ -111,9 +111,9 @@ public function cityName() public static function localCoordinates() { - return array( + return [ 'latitude' => static::latitude(42.43, 42.45), - 'longitude' => static::longitude(19.16, 19.27) - ); + 'longitude' => static::longitude(19.16, 19.27), + ]; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/me_ME/Company.php similarity index 91% rename from vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/me_ME/Company.php index 1f80312..2483c20 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/me_ME/Company.php @@ -4,14 +4,14 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( - '{{companyName}} {{companyType}}' - ); + protected static $formats = [ + '{{companyName}} {{companyType}}', + ]; /** * Source: extracted from http://www.crps.me/index.php/predraga */ - protected static $names = array( + protected static $names = [ '13 Jul - Plantaže ', '19 Decembar Podgorica', 'Agrokombinat 13 Jul', 'Agrokombinat 13 Jul', 'Atlas Banka', 'Autoremont Osmanagić', 'Božur-Velexport', 'Businessmontenegro Podgorica', @@ -30,12 +30,12 @@ class Company extends \Faker\Provider\Company 'Tehnomarketi', 'Tpc Ražnatović', 'Trend A.D.', 'Trgopress', 'Unifarm ', 'Utip Crna Gora', 'Vatrostalna Podgorica', 'Velepromet Podgorica', 'Veletrgovina-Kolašin', 'Velimport Podgorica', 'Volumentrade Podgorica', - 'Željeznica Crne Gore', 'Zetatrans' - ); + 'Željeznica Crne Gore', 'Zetatrans', + ]; - protected static $types = array( - 'A.D.', 'A.D PODGORICA' - ); + protected static $types = [ + 'A.D.', 'A.D PODGORICA', + ]; public static function companyType() { diff --git a/vendor/fakerphp/faker/src/Faker/Provider/me_ME/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/me_ME/Payment.php new file mode 100644 index 0000000..a9361f1 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/me_ME/Payment.php @@ -0,0 +1,22 @@ + Townships + * @see https://en.wikipedia.org/wiki/Template:Johor > Townships + * @see https://en.wikipedia.org/wiki/Template:Kedah > Townships + * @see https://en.wikipedia.org/wiki/Template:Kelantan > Townships + * @see https://en.wikipedia.org/wiki/Template:Melaka > Townships + * @see https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships + * @see https://en.wikipedia.org/wiki/Template:Perak > Townships + * @see https://en.wikipedia.org/wiki/Template:Penang > Townships + * @see https://en.wikipedia.org/wiki/Template:Selangor > Townships + * @see https://en.wikipedia.org/wiki/Template:Terengganu > Townships + */ + protected static $townshipPrefix = [ + 'Alam', 'Apartment', 'Ara', + 'Bandar', 'Bandar', 'Bandar', 'Bandar', 'Bandar', 'Bandar', + 'Bandar Bukit', 'Bandar Seri', 'Bandar Sri', 'Bandar Baru', 'Batu', 'Bukit', + 'Desa', 'Damansara', + 'Kampung', 'Kampung Baru', 'Kampung Baru', 'Kondominium', 'Kota', + 'Laman', 'Lembah', + 'Medan', + 'Pandan', 'Pangsapuri', 'Petaling', 'Puncak', + 'Seri', 'Sri', + 'Taman', 'Taman', 'Taman', 'Taman', 'Taman', 'Taman', + 'Taman Desa', + ]; + protected static $townshipSuffix = [ + 'Aman', 'Amanjaya', 'Anggerik', 'Angkasa', 'Antarabangsa', 'Awan', + 'Bahagia', 'Bangsar', 'Baru', 'Belakong', 'Bendahara', 'Bestari', 'Bintang', 'Brickfields', + 'Casa', 'Changkat', 'Country Heights', + 'Damansara', 'Damai', 'Dato Harun', 'Delima', 'Duta', + 'Flora', + 'Gembira', 'Genting', + 'Harmoni', 'Hartamas', + 'Impian', 'Indah', 'Intan', + 'Jasa', 'Jaya', + 'Keramat', 'Kerinchi', 'Kiara', 'Kinrara', 'Kuchai', + 'Laksamana', + 'Mahkota', 'Maluri', 'Manggis', 'Maxwell', 'Medan', 'Melawati', 'Menjalara', 'Meru', 'Mulia', 'Mutiara', + 'Pahlawan', 'Perdana', 'Pertama', 'Permai', 'Pelangi', 'Petaling', 'Pinang', 'Puchong', 'Puteri', 'Putra', + 'Rahman', 'Rahmat', 'Raya', 'Razak', 'Ria', + 'Saujana', 'Segambut', 'Selamat', 'Selatan', 'Semarak', 'Sentosa', 'Seputeh', 'Setapak', 'Setia Jaya', 'Sinar', 'Sungai Besi', 'Sungai Buaya', 'Sungai Long', 'Suria', + 'Tasik Puteri', 'Tengah', 'Timur', 'Tinggi', 'Tropika', 'Tun Hussein Onn', 'Tun Perak', 'Tunku', + 'Ulu', 'Utama', 'Utara', + 'Wangi', + ]; + + /** + * @see https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur + * @see https://en.wikipedia.org/wiki/Template:Johor + * @see https://en.wikipedia.org/wiki/Template:Kedah + * @see https://en.wikipedia.org/wiki/Template:Kelantan + * @see https://en.wikipedia.org/wiki/Template:Labuan + * @see https://en.wikipedia.org/wiki/Template:Melaka + * @see https://en.wikipedia.org/wiki/Template:Negeri_Sembilan + * @see https://en.wikipedia.org/wiki/Template:Pahang + * @see https://en.wikipedia.org/wiki/Template:Perak + * @see https://en.wikipedia.org/wiki/Template:Perlis + * @see https://en.wikipedia.org/wiki/Template:Penang + * @see https://en.wikipedia.org/wiki/Template:Sabah + * @see https://en.wikipedia.org/wiki/Template:Sarawak + * @see https://en.wikipedia.org/wiki/Template:Selangor + * @see https://en.wikipedia.org/wiki/Template:Terengganu + */ + protected static $towns = [ + 'johor' => [ + 'Ayer Hitam', + 'Batu Pahat', 'Bukit Gambir', 'Bukit Kepong', 'Bukit Naning', + 'Desaru', + 'Endau', + 'Gelang Patah', 'Gemas Baharu', + 'Iskandar Puteri', + 'Jementah', 'Johor Lama', 'Johor Bahru', + 'Kempas', 'Kluang', 'Kota Iskandar', 'Kota Tinggi', 'Kukup', 'Kulai', + 'Labis ', 'Larkin', 'Layang-Layang', + 'Mersing', 'Muar', + 'Pagoh', 'Paloh', 'Parit Jawa', 'Pasir Gudang', 'Pekan Nanas', 'Permas Jaya', 'Pontian Kechil', + 'Renggam', + 'Segamat', 'Senai', 'Simpang Renggam', 'Skudai', 'Sri Gading', + 'Tangkak', 'Tebrau', + 'Ulu Tiram', + 'Yong Peng', + ], + 'kedah' => [ + 'Alor Setar', + 'Baling', 'Bukit Kayu Hitam', + 'Changlun', + 'Durian Burung', + 'Gurun', + 'Jitra', + 'Kepala Batas', 'Kuah', 'Kuala Kedah', 'Kuala Ketil', 'Kulim', + 'Langgar', 'Lunas', + 'Merbok', + 'Padang Serai', 'Pendang', + 'Serdang', 'Sintok', 'Sungai Petani', + 'Tawar, Baling', + 'Yan', + ], + 'kelantan' => [ + 'Bachok', 'Bunut Payong', + 'Dabong', + 'Gua Musang', + 'Jeli', + 'Ketereh', 'Kota Bharu', 'Kuala Krai', + 'Lojing', + 'Machang', + 'Pasir Mas', 'Pasir Puteh', + 'Rantau Panjang', + 'Salor', + 'Tok Bali', + 'Wakaf Bharu', 'Wakaf Che Yeh', + ], + 'kl' => [ + 'Ampang', + 'Bandar Tasik Selatan', 'Bandar Tun Razak', 'Bangsar', 'Batu', 'Brickfields', 'Bukit Bintang', 'Bukit Jalil', 'Bukit Tunku', + 'Cheras', 'Chow Kit', + 'Damansara Town Centre', 'Dang Wangi', 'Desa Petaling', 'Desa Tun Hussein Onn', + 'Jinjang', + 'Kampung Baru', 'Kampung Kasipillay', 'Kampung Pandan', 'Kampung Sungai Penchala', 'Kepong', 'KLCC', 'Kuchai Lama', + 'Lake Gardens', 'Lembah Pantai', + 'Medan Tuanku', 'Mid Valley City', 'Mont Kiara', + 'Pantai Dalam', 'Pudu', + 'Salak South', 'Segambut', 'Semarak', 'Sentul', 'Setapak', 'Setiawangsa', 'Seputeh', 'Sri Hartamas', 'Sri Petaling', 'Sungai Besi', + 'Taman Desa', 'Taman Melawati', 'Taman OUG', 'Taman Tun Dr Ismail', 'Taman U-Thant', 'Taman Wahyu', 'Titiwangsa', 'Tun Razak Exchange', + 'Wangsa Maju', + ], + 'labuan' => [ + 'Batu Manikar', + 'Kiamsam', + 'Layang-Layang', + 'Rancha-Rancha', + ], + 'melaka' => [ + 'Alor Gajah', + 'Bandaraya Melaka', 'Batu Berendam', 'Bukit Beruang', 'Bukit Katil', + 'Cheng', + 'Durian Tunggal', + 'Hang Tuah Jaya', + 'Jasin', + 'Klebang', + 'Lubuk China', + 'Masjid Tanah', + 'Naning', + 'Pekan Asahan', + 'Ramuan China', + 'Simpang Ampat', + 'Tanjung Bidara', 'Telok Mas', + 'Umbai', + ], + 'nsembilan' => [ + 'Ayer Kuning', 'Ampangan', + 'Bahau', 'Batang Benar', + 'Chembong', + 'Dangi', + 'Gemas', + 'Juasseh', + 'Kuala Pilah', + 'Labu', 'Lenggeng', 'Linggi', + 'Mantin', + 'Nilai', + 'Pajam', 'Pedas', 'Pengkalan Kempas', 'Port Dickson', + 'Rantau', 'Rompin', + 'Senawang', 'Seremban', 'Sungai Gadut', + 'Tampin', 'Tiroi', + ], + 'pahang' => [ + 'Bandar Tun Razak', 'Bentong', 'Brinchang', 'Bukit Fraser', 'Bukit Tinggi', + 'Chendor', + 'Gambang', 'Genting Highlands', 'Genting Sempah', + 'Jerantut', + 'Karak', 'Kemayan', 'Kota Shahbandar', 'Kuala Lipis', 'Kuala Pahang', 'Kuala Rompin', 'Kuantan', + 'Lanchang', 'Lubuk Paku', + 'Maran', 'Mengkuang', 'Mentakab', + 'Nenasi', + 'Panching', + 'Pekan', 'Penor', + 'Raub', + 'Sebertak', 'Sungai Lembing', + 'Tanah Rata', 'Tanjung Sepat', 'Tasik Chini', 'Temerloh', 'Teriang', 'Tringkap', + ], + 'penang' => [ + 'Air Itam', + 'Balik Pulau', 'Batu Ferringhi', 'Batu Kawan', 'Bayan Lepas', 'Bukit Mertajam', 'Butterworth', + 'Gelugor', 'George Town', + 'Jelutong', + 'Kepala Batas', + 'Nibong Tebal', + 'Permatang Pauh', 'Pulau Tikus', + 'Simpang Ampat', + 'Tanjung Bungah', 'Tanjung Tokong', + ], + 'perak' => [ + 'Ayer Tawar', + 'Bagan Serai', 'Batu Gajah', 'Behrang', 'Bidor', 'Bukit Gantang', 'Bukit Merah', + 'Changkat Jering', 'Chemor', 'Chenderiang', + 'Damar Laut', + 'Gerik', 'Gopeng', 'Gua Tempurung', + 'Hutan Melintang', + 'Ipoh', + 'Jelapang', + 'Kamunting', 'Kampar', 'Kuala Kangsar', + 'Lekir', 'Lenggong', 'Lumut', + 'Malim Nawar', 'Manong', 'Menglembu', + 'Pantai Remis', 'Parit', 'Parit Buntar', 'Pasir Salak', 'Proton City', + 'Simpang Pulai', 'Sitiawan', 'Slim River', 'Sungai Siput', 'Sungkai', + 'Taiping', 'Tambun', 'Tanjung Malim', 'Tanjung Rambutan', 'Tapah', 'Teluk Intan', + 'Ulu Bernam', + ], + 'perlis' => [ + 'Arau', + 'Beseri', + 'Chuping', + 'Kaki Bukit', 'Kangar', 'Kuala Perlis', + 'Mata Ayer', + 'Padang Besar', + 'Sanglang', 'Simpang Empat', + 'Wang Kelian', + ], + 'putrajaya' => [ + 'Precinct 1', 'Precinct 4', 'Precinct 5', + 'Precinct 6', 'Precinct 8', 'Precinct 10', + 'Precinct 11', 'Precinct 12', 'Precinct 13', + 'Precinct 16', 'Precinct 18', 'Precinct 19', + ], + 'sabah' => [ + 'Beaufort', 'Bingkor', + 'Donggongon', + 'Inanam', + 'Kinabatangan', 'Kota Belud', 'Kota Kinabalu', 'Kuala Penyu', 'Kimanis', 'Kundasang', + 'Lahad Datu', 'Likas', 'Lok Kawi', + 'Manggatal', + 'Nabawan', + 'Papar', 'Pitas', + 'Ranau', + 'Sandakan', 'Sapulut', 'Semporna', 'Sepanggar', + 'Tambunan', 'Tanjung Aru', 'Tawau', 'Tenom', 'Tuaran', + 'Weston', + ], + 'sarawak' => [ + 'Asajaya', + 'Ba\'kelalan', 'Bario', 'Batu Kawa', 'Batu Niah', 'Betong', 'Bintulu', + 'Dalat', 'Daro', + 'Engkilili', + 'Julau', + 'Kapit', 'Kota Samarahan', 'Kuching', + 'Lawas', 'Limbang', 'Lubok Antu', + 'Marudi', 'Matu', 'Miri', + 'Oya', + 'Pakan', + 'Sadong Jaya', 'Sematan', 'Sibu', 'Siburan', 'Song', 'Sri Aman', 'Sungai Tujoh', + 'Tanjung Kidurong', 'Tanjung Manis', 'Tatau', + ], + 'selangor' => [ + 'Ampang', 'Assam Jawa', + 'Balakong', 'Bandar Baru Bangi', 'Bandar Baru Selayang', 'Bandar Sunway', 'Bangi', 'Banting', 'Batang Kali', 'Batu Caves', 'Bestari Jaya', 'Bukit Lanjan', + 'Cheras', 'Cyberjaya', + 'Damansara', 'Dengkil', + 'Ijok', + 'Jenjarom', + 'Kajang', 'Kelana Jaya', 'Klang', 'Kuala Kubu Bharu', 'Kuala Selangor', 'Kuang', + 'Lagong', + 'Morib', + 'Pandamaran', 'Paya Jaras', 'Petaling Jaya', 'Port Klang', 'Puchong', + 'Rasa', 'Rawang', + 'Salak Tinggi', 'Sekinchan', 'Selayang', 'Semenyih', 'Sepang', 'Serendah', 'Seri Kembangan', 'Shah Alam', 'Subang', 'Subang Jaya', 'Sungai Buloh', + 'Tanjung Karang', 'Tanjung Sepat', + 'Ulu Klang', 'Ulu Yam', + ], + 'terengganu' => [ + 'Ajil', + 'Bandar Ketengah Jaya', 'Bandar Permaisuri', 'Bukit Besi', 'Bukit Payong', + 'Chukai', + 'Jerteh', + 'Kampung Raja', 'Kerteh', 'Kijal', 'Kuala Besut', 'Kuala Berang', 'Kuala Dungun', 'Kuala Terengganu', + 'Marang', 'Merchang', + 'Pasir Raja', + 'Rantau Abang', + 'Teluk Kalung', + 'Wakaf Tapai', + ], + ]; + + /** + * @see https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia + */ + protected static $states = [ + 'johor' => [ + 'Johor Darul Ta\'zim', + 'Johor', + ], + 'kedah' => [ + 'Kedah Darul Aman', + 'Kedah', + ], + 'kelantan' => [ + 'Kelantan Darul Naim', + 'Kelantan', + ], + 'kl' => [ + 'KL', + 'Kuala Lumpur', + 'WP Kuala Lumpur', + ], + 'labuan' => [ + 'Labuan', + ], + 'melaka' => [ + 'Malacca', + 'Melaka', + ], + 'nsembilan' => [ + 'Negeri Sembilan Darul Khusus', + 'Negeri Sembilan', + ], + 'pahang' => [ + 'Pahang Darul Makmur', + 'Pahang', + ], + 'penang' => [ + 'Penang', + 'Pulau Pinang', + ], + 'perak' => [ + 'Perak Darul Ridzuan', + 'Perak', + ], + 'perlis' => [ + 'Perlis Indera Kayangan', + 'Perlis', + ], + 'putrajaya' => [ + 'Putrajaya', + ], + 'sabah' => [ + 'Sabah', + ], + 'sarawak' => [ + 'Sarawak', + ], + 'selangor' => [ + 'Selangor Darul Ehsan', + 'Selangor', + ], + 'terengganu' => [ + 'Terengganu Darul Iman', + 'Terengganu', + ], + ]; + + /** + * @see https://ms.wikipedia.org/wiki/Senarai_negara_berdaulat + */ + protected static $country = [ + 'Abkhazia', 'Afghanistan', 'Afrika Selatan', 'Republik Afrika Tengah', 'Akrotiri dan Dhekelia', 'Albania', 'Algeria', 'Amerika Syarikat', 'Andorra', 'Angola', 'Antigua dan Barbuda', 'Arab Saudi', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaijan', + 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belanda', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bonaire', 'Bosnia dan Herzegovina', 'Botswana', 'Brazil', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi', + 'Cameroon', 'Chad', 'Chile', 'Republik Rakyat China', 'Republik China di Taiwan', 'Colombia', 'Comoros', 'Republik Demokratik Congo', 'Republik Congo', 'Kepulauan Cook', 'Costa Rica', 'Côte d\'Ivoire (Ivory Coast)', 'Croatia', 'Cuba', 'Curaçao', 'Cyprus', 'Republik Turki Cyprus Utara', 'Republik Czech', + 'Denmark', 'Djibouti', 'Dominika', 'Republik Dominika', + 'Ecuador', 'El Salvador', 'Emiriah Arab Bersatu', 'Eritrea', 'Estonia', + 'Kepulauan Faroe', 'Fiji', 'Filipina', 'Finland', + 'Gabon', 'Gambia', 'Georgia', 'Ghana', 'Grenada', 'Greece (Yunani)', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guinea Khatulistiwa', 'Guiana Perancis', 'Guyana', + 'Habsyah (Etiopia)', 'Haiti', 'Honduras', 'Hungary', + 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Itali', + 'Jamaika', 'Jepun', 'Jerman', 'Jordan', + 'Kanada', 'Kazakhstan', 'Kemboja', 'Kenya', 'Kiribati', 'Korea Selatan', 'Korea Utara', 'Kosovo', 'Kuwait', 'Kyrgyzstan', + 'Laos', 'Latvia', 'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania', 'Lubnan', 'Luxembourg', + 'Macedonia', 'Madagaskar', 'Maghribi', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Kepulauan Marshall', 'Mauritania', 'Mauritius', 'Mesir', 'Mexico', 'Persekutuan Micronesia', 'Moldova', 'Monaco', 'Montenegro', 'Mongolia', 'Mozambique', 'Myanmar', + 'Namibia', 'Nauru', 'Nepal', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norway', + 'Oman', 'Ossetia Selatan', + 'Pakistan', 'Palau', 'Palestin', 'Panama', 'Papua New Guinea', 'Paraguay', 'Perancis', 'Peru', 'Poland', 'Portugal', + 'Qatar', + 'Romania', 'Russia', 'Rwanda', + 'Sahara Barat', 'Saint Kitts dan Nevis', 'Saint Lucia', 'Saint Vincent dan Grenadines', 'Samoa', 'San Marino', 'São Tomé dan Príncipe', 'Scotland', 'Senegal', 'Sepanyol', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapura', 'Slovakia', 'Slovenia', 'Kepulauan Solomon', 'Somalia', 'Somaliland', 'Sri Lanka', 'Sudan', 'Sudan Selatan', 'Suriname', 'Swaziland', 'Sweden', 'Switzerland', 'Syria', + 'Tajikistan', 'Tanjung Verde', 'Tanzania', 'Thailand', 'Timor Leste', 'Togo', 'Tonga', 'Transnistria', 'Trinidad dan Tobago', 'Tunisia', 'Turki', 'Turkmenistan', 'Tuvalu', + 'Uganda', 'Ukraine', 'United Kingdom', 'Uruguay', 'Uzbekistan', + 'Vanuatu', 'Kota Vatican', 'Venezuela', 'Vietnam', + 'Yaman', + 'Zambia', 'Zimbabwe', + ]; + + /** + * Return a building prefix + * + * @example 'No.' + * + * @return string + */ + public static function buildingPrefix() + { + return static::randomElement(static::$buildingPrefix); + } + + /** + * Return a building number + * + * @example '123' + * + * @return string + */ + public static function buildingNumber() + { + return static::toUpper(static::lexify(static::numerify(static::randomElement(static::$buildingNumber)))); + } + + /** + * Return a street prefix + * + * @example 'Jalan' + */ + public function streetPrefix() + { + $format = static::randomElement(static::$streetPrefix); + + return $this->generator->parse($format); + } + + /** + * Return a complete streename + * + * @example 'Jalan Utama 7' + * + * @return string + */ + public function streetName() + { + $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$streetNameFormats)))); + + return $this->generator->parse($format); + } + + /** + * Return a randown township + * + * @example Taman Bahagia + * + * @return string + */ + public function township() + { + $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$townshipFormats)))); + + return $this->generator->parse($format); + } + + /** + * Return a township prefix abbreviation + * + * @example 'USJ' + * + * @return string + */ + public function townshipPrefixAbbr() + { + return static::randomElement(static::$townshipPrefixAbbr); + } + + /** + * Return a township prefix + * + * @example 'Taman' + * + * @return string + */ + public function townshipPrefix() + { + return static::randomElement(static::$townshipPrefix); + } + + /** + * Return a township suffix + * + * @example 'Bahagia' + */ + public function townshipSuffix() + { + return static::randomElement(static::$townshipSuffix); + } + + /** + * Return a postcode based on state + * + * @example '55100' + * + * @see https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States + * + * @param string|null $state 'state' or null + * + * @return string + */ + public static function postcode($state = null) + { + $format = [ + 'perlis' => [ // (01000 - 02800) + '0' . self::numberBetween(1000, 2800), + ], + 'kedah' => [ // (05000 - 09810) + '0' . self::numberBetween(5000, 9810), + ], + 'penang' => [ // (10000 - 14400) + self::numberBetween(10000, 14400), + ], + 'kelantan' => [ // (15000 - 18500) + self::numberBetween(15000, 18500), + ], + 'terengganu' => [ // (20000 - 24300) + self::numberBetween(20000, 24300), + ], + 'pahang' => [ // (25000 - 28800 | 39000 - 39200 | 49000, 69000) + self::numberBetween(25000, 28800), + self::numberBetween(39000, 39200), + self::numberBetween(49000, 69000), + ], + 'perak' => [ // (30000 - 36810) + self::numberBetween(30000, 36810), + ], + 'selangor' => [ // (40000 - 48300 | 63000 - 68100) + self::numberBetween(40000, 48300), + self::numberBetween(63000, 68100), + ], + 'kl' => [ // (50000 - 60000) + self::numberBetween(50000, 60000), + ], + 'putrajaya' => [ // (62000 - 62988) + self::numberBetween(62000, 62988), + ], + 'nsembilan' => [ // (70000 - 73509) + self::numberBetween(70000, 73509), + ], + 'melaka' => [ // (75000 - 78309) + self::numberBetween(75000, 78309), + ], + 'johor' => [ // (79000 - 86900) + self::numberBetween(79000, 86900), + ], + 'labuan' => [ // (87000 - 87033) + self::numberBetween(87000, 87033), + ], + 'sabah' => [ // (88000 - 91309) + self::numberBetween(88000, 91309), + ], + 'sarawak' => [ // (93000 - 98859) + self::numberBetween(93000, 98859), + ], + ]; + + $postcode = null === $state ? static::randomElement($format) : $format[$state]; + + return (string) static::randomElement($postcode); + } + + /** + * Return the complete town address with matching postcode and state + * + * @example 55100 Bukit Bintang, Kuala Lumpur + * + * @return string + */ + public function townState() + { + $state = static::randomElement(array_keys(static::$states)); + $postcode = static::postcode($state); + $town = static::randomElement(static::$towns[$state]); + $state = static::randomElement(static::$states[$state]); + + return $postcode . ' ' . $town . ', ' . $state; + } + + /** + * Return a random city (town) + * + * @example 'Ampang' + * + * @return string + */ + public function city() + { + $state = static::randomElement(array_keys(static::$towns)); + + return static::randomElement(static::$towns[$state]); + } + + /** + * Return a random state + * + * @example 'Johor' + * + * @return string + */ + public function state() + { + $state = static::randomElement(array_keys(static::$states)); + + return static::randomElement(static::$states[$state]); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Company.php new file mode 100644 index 0000000..4dc8b2c --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Company.php @@ -0,0 +1,105 @@ +generator->parse(static::randomElement($formats)); + } + + /** + * Return a Malaysian I.C. No. + * + * @example '890123-45-6789' + * + * @see https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_(NRIC) + * + * @param string|null $gender 'male', 'female' or null for any + * @param bool|string|null $hyphen true, false, or any separator characters + * + * @return string + */ + public static function myKadNumber($gender = null, $hyphen = false) + { + // year of birth + $yy = self::numberBetween(0, 99); + + // month of birth + $mm = DateTime::month(); + + // day of birth + $dd = DateTime::dayOfMonth(); + + // place of birth (1-59 except 17-20) + while (in_array($pb = self::numberBetween(1, 59), [17, 18, 19, 20], false)) { + } + + // random number + $nnn = self::numberBetween(0, 999); + + // gender digit. Odd = MALE, Even = FEMALE + $g = self::numberBetween(0, 9); + + //Credit: https://gist.github.com/mauris/3629548 + if ($gender === static::GENDER_MALE) { + $g = $g | 1; + } elseif ($gender === static::GENDER_FEMALE) { + $g = $g & ~1; + } + + // formatting with hyphen + if ($hyphen === true) { + $hyphen = '-'; + } elseif ($hyphen === false) { + $hyphen = ''; + } + + return sprintf('%02d%02d%02d%s%02d%s%03d%01d', $yy, $mm, $dd, $hyphen, $pb, $hyphen, $nnn, $g); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/PhoneNumber.php similarity index 69% rename from vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/ms_MY/PhoneNumber.php index f89111d..7cce02f 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/PhoneNumber.php @@ -4,31 +4,31 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '{{mobileNumber}}', '{{fixedLineNumber}}', - '{{voipNumber}}' - ); + '{{voipNumber}}', + ]; - protected static $plusSymbol = array( - '+' - ); + protected static $plusSymbol = [ + '+', + ]; - protected static $countryCodePrefix = array( - '6' - ); + protected static $countryCodePrefix = [ + '6', + ]; /** - * @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony + * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony */ - protected static $zeroOneOnePrefix = array('10','11','12','13','14','15','16','17','18','19','20','22','23','32'); - protected static $zeroOneFourPrefix = array('2','3','4','5','6','7','8','9'); - protected static $zeroOneFivePrefix = array('1','2','3','4','5','6','9'); + protected static $zeroOneOnePrefix = ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '22', '23', '32']; + protected static $zeroOneFourPrefix = ['2', '3', '4', '5', '6', '7', '8', '9']; + protected static $zeroOneFivePrefix = ['1', '2', '3', '4', '5', '6', '9']; /** - * @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony + * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony */ - protected static $mobileNumberFormatsWithFormatting = array( + protected static $mobileNumberFormatsWithFormatting = [ '010-### ####', '011-{{zeroOneOnePrefix}}## ####', '012-### ####', @@ -38,9 +38,9 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '017-### ####', '018-### ####', '019-### ####', - ); + ]; - protected static $mobileNumberFormats = array( + protected static $mobileNumberFormats = [ '010#######', '011{{zeroOneOnePrefix}}######', '012#######', @@ -50,12 +50,12 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '017#######', '018#######', '019#######', - ); + ]; /** - * @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Geographic_area_codes + * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Geographic_area_codes */ - protected static $fixedLineNumberFormatsWithFormatting = array( + protected static $fixedLineNumberFormatsWithFormatting = [ '03-#### ####', '04-### ####', '05-### ####', @@ -63,9 +63,9 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '07-### ####', '08#-## ####', '09-### ####', - ); + ]; - protected static $fixedLineNumberFormats = array( + protected static $fixedLineNumberFormats = [ '03########', '04#######', '05#######', @@ -73,18 +73,18 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '07#######', '08#######', '09#######', - ); + ]; /** - * @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony + * @see https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony */ - protected static $voipNumberWithFormatting = array( - '015-{{zeroOneFivePrefix}}## ####' - ); + protected static $voipNumberWithFormatting = [ + '015-{{zeroOneFivePrefix}}## ####', + ]; - protected static $voipNumber = array( - '015{{zeroOneFivePrefix}}######' - ); + protected static $voipNumber = [ + '015{{zeroOneFivePrefix}}######', + ]; /** * Return a Malaysian Mobile Phone Number. @@ -92,7 +92,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber * @example '+6012-345-6789' * * @param bool $countryCodePrefix true, false - * @param bool $formatting true, false + * @param bool $formatting true, false * * @return string */ @@ -106,9 +106,9 @@ public function mobileNumber($countryCodePrefix = true, $formatting = true) if ($countryCodePrefix) { return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); - } else { - return static::numerify($this->generator->parse($format)); } + + return static::numerify($this->generator->parse($format)); } /** @@ -153,7 +153,7 @@ public static function zeroOneFivePrefix() * @example '+603-4567-8912' * * @param bool $countryCodePrefix true, false - * @param bool $formatting true, false + * @param bool $formatting true, false * * @return string */ @@ -167,9 +167,9 @@ public function fixedLineNumber($countryCodePrefix = true, $formatting = true) if ($countryCodePrefix) { return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); - } else { - return static::numerify($this->generator->parse($format)); } + + return static::numerify($this->generator->parse($format)); } /** @@ -178,7 +178,7 @@ public function fixedLineNumber($countryCodePrefix = true, $formatting = true) * @example '+6015-678-9234' * * @param bool $countryCodePrefix true, false - * @param bool $formatting true, false + * @param bool $formatting true, false * * @return string */ @@ -192,9 +192,9 @@ public function voipNumber($countryCodePrefix = true, $formatting = true) if ($countryCodePrefix) { return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); - } else { - return static::numerify($this->generator->parse($format)); } + + return static::numerify($this->generator->parse($format)); } /** @@ -210,8 +210,8 @@ public static function countryCodePrefix($formatting = true) { if ($formatting) { return static::randomElement(static::$plusSymbol) . static::randomElement(static::$countryCodePrefix); - } else { - return static::randomElement(static::$countryCodePrefix); } + + return static::randomElement(static::$countryCodePrefix); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Address.php new file mode 100644 index 0000000..cbc39d7 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Address.php @@ -0,0 +1,197 @@ +format('dmy'); + + /** + * @todo These number should be random based on birth year + * + * @see http://no.wikipedia.org/wiki/F%C3%B8dselsnummer + */ + $randomDigits = (string) static::numerify('##'); + + switch ($gender) { + case static::GENDER_MALE: + $genderDigit = static::randomElement([1, 3, 5, 7, 9]); + + break; + + case static::GENDER_FEMALE: + $genderDigit = static::randomElement([0, 2, 4, 6, 8]); + + break; + + default: + $genderDigit = (string) static::numerify('#'); + } + + $digits = $datePart . $randomDigits . $genderDigit; + + /** + * @todo Calculate modulo 11 of $digits + * + * @see http://no.wikipedia.org/wiki/F%C3%B8dselsnummer + */ + $checksum = (string) static::numerify('##'); + + return $digits . $checksum; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/PhoneNumber.php similarity index 82% rename from vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/nb_NO/PhoneNumber.php index c97e720..4767db4 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/PhoneNumber.php @@ -5,9 +5,9 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { /** - * @var array Norwegian phone number formats - */ - protected static $formats = array( + * @var array Norwegian phone number formats + */ + protected static $formats = [ '+47#########', '+47 ## ## ## ##', '## ## ## ##', @@ -18,19 +18,19 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '4## ## ###', '9#######', '4#######', - ); + ]; /** * @var array Norweign mobile number formats */ - protected static $mobileFormats = array( + protected static $mobileFormats = [ '+474#######', '+479#######', '9## ## ###', '4## ## ###', '9#######', '4#######', - ); + ]; public function mobileNumber() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Address.php similarity index 93% rename from vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Address.php index ee81af2..59b31de 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Address.php @@ -4,21 +4,22 @@ class Address extends \Faker\Provider\Address { - protected static $wardNumber = array('##', '#'); - protected static $streetSuffix = array( - 'bagh', 'bazaar', 'besi', 'chowk', 'gaun', 'kot', 'mandir', 'marg', 'nagar', 'sahar', 'sthan', 'tar' - ); + protected static $wardNumber = ['##', '#']; + protected static $streetSuffix = [ + 'bagh', 'bazaar', 'besi', 'chowk', 'gaun', 'kot', 'mandir', 'marg', 'nagar', 'sahar', 'sthan', 'tar', + ]; - protected static $postcode = array('#####'); + protected static $postcode = ['#####']; /** - * @link http://en.wikipedia.org/wiki/List_of_districts_of_Nepal + * @see http://en.wikipedia.org/wiki/List_of_districts_of_Nepal */ - protected static $district = array( + protected static $district = [ 'Achham', 'Arghakhanchi', 'Baglung', 'Baitadi', 'Bajhang', 'Bajura', 'Banke', 'Bara', 'Bardiya', 'Bhaktapur', 'Bhojpur', 'Chitwan', 'Dadeldhura', 'Dailekh', 'Dang Deukhuri', 'Darchula', 'Dhading', 'Dhankuta', 'Dhanusa', 'Dolakha', 'Dolpa', 'Doti', + 'Eastern Rukum', 'Gorkha', 'Gulmi', 'Humla', 'Ilam', @@ -26,19 +27,20 @@ class Address extends \Faker\Provider\Address 'Kailali', 'Kalikot', 'Kanchanpur', 'Kapilvastu', 'Kaski', 'Kathmandu', 'Kavrepalanchok', 'Khotang', 'Lalitpur', 'Lamjung', 'Mahottari', 'Makwanpur', 'Manang', 'Morang', 'Mugu', 'Mustang', 'Myagdi', - 'Nawalparasi', 'Nuwakot', + 'Nawalpur', 'Nuwakot', 'Okhaldhunga', - 'Palpa', 'Panchthar', 'Parbat', 'Parsa', 'Pyuthan', - 'Ramechhap', 'Rasuwa', 'Rautahat', 'Rolpa', 'Rukum', 'Rupandehi', + 'Palpa', 'Panchthar', 'Parasi', 'Parbat', 'Parsa', 'Pyuthan', + 'Ramechhap', 'Rasuwa', 'Rautahat', 'Rolpa', 'Rupandehi', 'Salyan', 'Sankhuwasabha', 'Saptari', 'Sarlahi', 'Sindhuli', 'Sindhupalchok', 'Siraha', 'Solukhumbu', 'Sunsari', 'Surkhet', 'Syangja', 'Tanahu', 'Taplejung', 'Terhathum', - 'Udayapur' - ); + 'Udayapur', + 'Western Rukum', + ]; /** - * @link http://www.fallingrain.com/world/NP/ + * @see http://www.fallingrain.com/world/NP/ */ - protected static $cityName = array( + protected static $cityName = [ 'Achham', 'Aiselukharka', 'Amardaha', 'Amariya', 'Amlekhganj', 'Amraia', 'Andia', 'Andruli', 'Angbung', 'Arghkot', 'Arughatbazaar', 'Asaina', 'Ataria', 'Atrauli', 'Aulgurta', 'Bachhuwa', 'Badirpatti', 'Bagar', 'Bagarchhap', 'Baglungbazaar', 'Bahadurganj', 'Bahrabise', 'Bahsi', 'Baijnathpurwa', 'Baindoli', 'Bairia', 'Baitadi', 'Bajhang', 'Bajura', 'Bakarkot', 'Balapur', 'Baldenggarhi', 'Balkot', 'Balma', 'Bandipur', 'Banepa', 'Banepabazaar', 'Baneshore', 'Banghi', 'Banke', 'Bansangu', 'Barbatta', 'Bardiya', 'Barhamjia', 'Basbeti', 'Batarbazaar', 'Bathala', 'Battar', 'Baudha', 'Baudhatinchule', 'Baugachia', 'Beding', 'Belahia', 'Belgaon', 'Belwa', 'Beni', 'Benighat', 'Berhampuri', 'Besisahar', 'Beteni', 'Bethari', 'Betrwati', 'Bhadgaon', 'Bhadrapur', 'Bhagaura', 'Bhagwanpur', 'Bhainsah', 'Bhainse', 'Bhainsedobhn', 'Bhairahawa', 'Bhajni', 'Bhaktapur', 'Bhandar', 'Bharatpur', 'Bhartbs', 'Bhata', 'Bhataulia', 'Bhawanipur', 'Bhikhnatdjori', 'Bhiknathor', 'Bhimkothi', 'Bhimphedi', 'Bhingrigaon', 'Bhitania', 'Bhojpur', 'Bholi', 'Bhopatpur', 'Bhowa', 'Bhujauli', 'Bhurchaur', 'Bhurkia', 'Bijulpura', 'Bilauri', 'Binayakgaon', 'Biprat', 'Biratnagar', 'Birendranagar', 'Birgunj', 'Birkot', 'Birta', 'Bishunpura', 'Bithara', 'Bogri', 'Boradandi', 'Bramhadeumandi', 'Budanilkantha', 'Budhabare', 'Bungmati', 'Burili', 'Burthum', 'Burtibang', 'Butwal', 'Captainganj', 'Chainpur', 'Chaitya', 'Champapur', 'Chandragadhi', 'Changrang', 'Chapagaun', 'Charikot', 'Chaturale', 'Chaubisho', 'Chaukle', 'Chaukun', 'Chaunrikharka', 'Chautara', 'Chautha', 'Chepang', 'Chepti', 'Chepuwa', 'Chhapia', 'Chhapre', 'Chharkabhot', 'Chhibro', 'Chhintapu', 'Chhokang', 'Chhrkbhotgaon', 'Chhukgaon', 'Chhule', 'Chilankha', 'Chilha', 'Chilkhaya', 'Chisapani', 'Chisapanigadhi', 'Chiybri', 'Chobhar', 'Cholpa', 'Chong', 'Choutar', 'Chuchekanda', 'Chukhung', 'Chumikgyatsa', 'Chunemari', 'Chyabari', 'Chyamtang', 'Chyangthapu', 'Colonelbari', @@ -60,9 +62,9 @@ class Address extends \Faker\Provider\Address 'Udaypur', 'Udaypurgadhi', 'Umari', 'Uppardangadhi', 'Uwagaon', 'Waling', 'Walungchunggola', 'Wapsakhani', 'Yala', 'Yalbang', 'Yamphodin', 'Yrsa', - ); + ]; - protected static $country = array( + protected static $country = [ 'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil', 'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic', @@ -87,21 +89,21 @@ class Address extends \Faker\Provider\Address 'Vanuatu', 'Venezuela', 'Vietnam', 'Wallis and Futuna', 'Western Sahara', 'Yemen', - 'Zambia', 'Zimbabwe' - ); - protected static $cityFormats = array( - '{{cityName}}' - ); - protected static $streetNameFormats = array( + 'Zambia', 'Zimbabwe', + ]; + protected static $cityFormats = [ + '{{cityName}}', + ]; + protected static $streetNameFormats = [ '{{firstName}}{{streetSuffix}}', - '{{lastName}}{{streetSuffix}}' - ); - protected static $streetAddressFormats = array( + '{{lastName}}{{streetSuffix}}', + ]; + protected static $streetAddressFormats = [ '{{streetName}}', - ); - protected static $addressFormats = array( - "{{city}}-{{wardNumber}}, {{streetAddress}}, {{district}} {{postcode}}", - ); + ]; + protected static $addressFormats = [ + '{{city}}-{{wardNumber}}, {{streetAddress}}, {{district}} {{postcode}}', + ]; /** * @example 'Kalaiya' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Internet.php similarity index 75% rename from vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Internet.php index e505a41..74580c1 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Internet.php @@ -4,19 +4,19 @@ class Internet extends \Faker\Provider\Internet { - protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com'); - protected static $tld = array('com', 'com', 'com', 'net', 'org'); + protected static $freeEmailDomain = ['gmail.com', 'yahoo.com', 'hotmail.com']; + protected static $tld = ['com', 'com', 'com', 'net', 'org']; - protected static $emailFormats = array( + protected static $emailFormats = [ '{{userName}}@{{domainName}}', '{{userName}}@{{domainName}}', '{{userName}}@{{freeEmailDomain}}', '{{userName}}@{{domainName}}.np', '{{userName}}@{{domainName}}.np', '{{userName}}@{{domainName}}.np', - ); + ]; - protected static $urlFormats = array( + protected static $urlFormats = [ 'http://www.{{domainName}}.np/', 'http://www.{{domainName}}.np/', 'http://{{domainName}}.np/', @@ -28,5 +28,5 @@ class Internet extends \Faker\Provider\Internet 'http://{{domainName}}/{{slug}}.html', 'http://www.{{domainName}}/', 'http://{{domainName}}/', - ); + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Payment.php new file mode 100644 index 0000000..0bd9bdd --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/ne_NP/Payment.php @@ -0,0 +1,316 @@ +format('ymd')); $help = $date->format('Y') >= 2000 ? 2 : null; - $check = intval($help.$dob.$middle); + $check = (int) ($help . $dob . $middle); $rest = sprintf('%02d', 97 - ($check % 97)); - - return $dob.$middle.$rest; + + return $dob . $middle . $rest; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/PhoneNumber.php similarity index 88% rename from vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/nl_BE/PhoneNumber.php index ac17f1b..9e4a391 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+32(0)########', '+32(0)### ######', '+32(0)# #######', @@ -16,5 +16,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '0## ## ## ##', '0# #######', '0# ### ## ##', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Text.php index d41104d..de129b8 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Text.php @@ -25,6 +25,7 @@ class Text extends \Faker\Provider\Text * Language: Dutch * * @see http://www.gutenberg.org/cache/epub/11208/pg11208.txt + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Address.php similarity index 97% rename from vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Address.php index 6e91dc0..e256ae1 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Address.php @@ -4,9 +4,9 @@ class Address extends \Faker\Provider\Address { - protected static $buildingNumber = array('%', '%#', '%##', '%###', '%-?', '%#-?', '%?', '%#?', '%-#', '%#-##'); + protected static $buildingNumber = ['%', '%#', '%##', '%###', '%-?', '%#-?', '%?', '%#?', '%-#', '%#-##']; - protected static $postcodes = array( + protected static $postcodes = [ '1013PT', '1015GZ', '1053GS', '1058EG', '1060PM', '1068NE', '1072NL', '1073SK', '1074JA', '1078NH', '1111LW', '1121JC', '1141RP', '1141VM', '1161TC', '1183CH', '1187RK', '1188LP', '1271KZ', '1312SG', '1323CW', '1325EZ', '1333EJ', '1334DP', '1339VJ', '1351AC', '1352AC', '1354LM', '1356AC', '1391RX', '1406MZ', '1411JM', '1435GS', @@ -42,29 +42,29 @@ class Address extends \Faker\Provider\Address '8802VB', '8861KZ', '8862AC', '8933EK', '9057LC', '9061AS', '9073LK', '9164LC', '9201TM', '9203PZ', '9269SV', '9269SZ', '9289ZH', '9354VD', '9401MA', '9406BM', '9431GV', '9501AM', '9502CX', '9642EA', '9651AR', '9675LR', '9712LJ', '9742GT', '9745EH', '9751TA', '9751TS', '9752BK', '9752GE', '9801TA', '9901EH', '9991EG', '9999XK', - ); + ]; - protected static $streetNameFormats = array('{{lastName}}{{streetSuffix}}'); + protected static $streetNameFormats = ['{{lastName}}{{streetSuffix}}']; - protected static $streetAddressFormats = array('{{streetName}} {{buildingNumber}}'); + protected static $streetAddressFormats = ['{{streetName}} {{buildingNumber}}']; - protected static $cityFormats = array('{{cityName}}'); + protected static $cityFormats = ['{{cityName}}']; - protected static $addressFormats = array( + protected static $addressFormats = [ "{{streetAddress}}\n{{postcode}} {{city}}", - ); + ]; - protected static $streetSuffix = array( + protected static $streetSuffix = [ 'baan', 'boulevard', 'dreef', 'hof', 'laan', 'pad', 'ring', 'singel', 'steeg', 'straat', 'weg', - ); + ]; /** - * Export of BAG (http://bag.vrom.nl/) - * last updated 2012/11/09 - * - * @var array - */ - protected static $cityNames = array( + * Export of BAG (http://bag.vrom.nl/) + * last updated 2012/11/09 + * + * @var array + */ + protected static $cityNames = [ "'s Gravenmoer", "'s-Graveland", "'s-Gravendeel", "'s-Gravenhage", "'s-Gravenpolder", "'s-Gravenzande", "'s-Heer Abtskerke", "'s-Heer Arendskerke", "'s-Heer Hendrikskinderen", "'s-Heerenberg", "'s-Heerenbroek", "'s-Heerenhoek", "'s-Hertogenbosch", "'t Goy", "'t Haantje", "'t Harde", "'t Loo Oldebroek", "'t Veld", "'t Waar", "'t Zand", "'t Zandt", '2e Valthermond', 'Aadorp', 'Aagtekerke', 'Aalden', 'Aalsmeer', 'Aalsmeerderbrug', 'Aalst', 'Aalsum', 'Aalten', 'Aardenburg', 'Aarlanderveen', 'Aarle-Rixtel', 'Aartswoud', 'Abbega', 'Abbekerk', 'Abbenbroek', 'Abbenes', 'Abcoude', 'Achlum', 'Achterveld', 'Achterveld', 'Achthuizen', 'Achtmaal', 'Acquoy', 'Adorp', 'Aduard', 'Aerdenhout', 'Aerdt', 'Afferden L', 'Afferden', 'Agelo', 'Akersloot', 'Akkrum', 'Akmarijp', 'Albergen', 'Alblasserdam', 'Alde Leie', 'Aldeboarn', 'Aldtsjerk', 'Alem', 'Alkmaar', 'Allingawier', 'Almelo', 'Almen', 'Almere', 'Almkerk', 'Alphen aan den Rijn', 'Alphen', 'Alphen', 'Alteveer gem Hoogeveen', 'Alteveer', 'Alteveer', 'Alteveer', 'Altforst', 'Ambt Delden', 'Ameide', 'Amen', 'America', 'Amerongen', 'Amersfoort', 'Ammerstol', 'Ammerzoden', 'Amstelhoek', 'Amstelveen', 'Amstenrade', 'Amsterdam Zuidoost', 'Amsterdam', 'Andel', 'Andelst', 'Anderen', 'Andijk', 'Ane', 'Anerveen', 'Anevelde', 'Angeren', 'Angerlo', 'Anjum', 'Ankeveen', 'Anloo', 'Anna Paulowna', 'Annen', 'Annerveenschekanaal', 'Ansen', 'Ansen', 'Apeldoorn', 'Apeldoorn', 'Appelscha', 'Appeltern', 'Appingedam', 'Arcen', 'Arkel', 'Arnemuiden', 'Arnhem', 'Arum', 'Asch', 'Asperen', 'Assen', 'Assendelft', 'Asten', 'Augsbuurt', 'Augustinusga', 'Austerlitz', 'Avenhorn', 'Axel', 'Azewijn', 'Baaiduinen', 'Baaium', 'Baak', 'Baambrugge', 'Baard', 'Baarland', 'Baarle-Nassau', 'Baarlo', 'Baarlo', 'Baarn', 'Baars', 'Babberich', 'Babyloniënbroek', 'Bad Nieuweschans', 'Badhoevedorp', 'Baexem', 'Baflo', 'Bakel', 'Bakhuizen', 'Bakkeveen', 'Balgoij', 'Balinge', 'Balk', 'Balkbrug', 'Balloo', 'Balloërveld', 'Ballum', 'Baneheide', 'Banholt', 'Bant', 'Bantega', 'Barchem', 'Barendrecht', 'Barger-Compascuum', 'Barneveld', 'Barsingerhorn', 'Basse', 'Batenburg', 'Bathmen', 'Bavel AC', 'Bavel', 'Bears', 'Bedum', 'Beegden', 'Beek en Donk', 'Beek', 'Beek', 'Beek', 'Beekbergen', 'Beemte Broekland', 'Beers NB', 'Beerta', 'Beerze', 'Beerzerveld', 'Beesd', 'Beesel', 'Beets', 'Beetsterzwaag', 'Beilen', 'Beinsdorp', 'Belfeld', 'Bellingwolde', 'Belt-Schutsloot', 'Beltrum', 'Bemelen', 'Bemmel', 'Beneden-Leeuwen', 'Bennebroek', 'Bennekom', 'Benneveld', 'Benningbroek', 'Benschop', 'Bentelo', 'Benthuizen', 'Bentveld', 'Berg en Dal', 'Berg en Dal', 'Berg en Terblijt', 'Bergambacht', 'Bergeijk', 'Bergen (NH)', 'Bergen L', 'Bergen aan Zee', 'Bergen op Zoom', 'Bergentheim', 'Bergharen', 'Berghem', 'Bergschenhoek', 'Beringe', 'Berkel en Rodenrijs', 'Berkel-Enschot', 'Berkenwoude', 'Berkhout', 'Berlicum', 'Berltsum', 'Bern', 'Best', 'Beugen', 'Beuningen Gld', 'Beuningen', 'Beusichem', 'Beutenaken', 'Beverwijk', 'Biddinghuizen', 'Bierum', 'Biervliet', 'Biervliet', 'Biest-Houtakker', 'Biezenmortel', 'Biggekerke', 'Bilthoven', 'Bingelrade', 'Bitgum', 'Bitgummole', 'Bladel', 'Blankenham', 'Blaricum', 'Blauwestad', 'Blauwhuis', 'Bleiswijk', 'Blesdijke', 'Bleskensgraaf ca', 'Blessum', 'Blije', 'Blijham', 'Blitterswijck', 'Bloemendaal', 'Blokker', 'Blokzijl', 'Boazum', 'Bocholtz', 'Bodegraven', 'Boekel', 'Boelenslaan', 'Boer', 'Boerakker', 'Boerakker', 'Boesingheliede', 'Boijl', 'Boksum', 'Bolsward', 'Bontebok', 'Boornbergum', 'Boornzwaag', 'Borculo', 'Borger', 'Borgercompagnie', 'Borgercompagnie', 'Borgsweer', 'Born', 'Borne', 'Bornerbroek', 'Bornwird', 'Borssele', 'Bosch en Duin', 'Boschoord', 'Boskoop', 'Bosschenhoofd', 'Botlek Rotterdam', 'Bourtange', 'Boven-Leeuwen', 'Bovenkarspel', 'Bovensmilde', 'Boxmeer', 'Boxtel', 'Braamt', 'Brakel', 'Brandwijk', 'Brantgum', 'Breda', 'Bredevoort', 'Breedenbroek', 'Breezand', 'Breezanddijk', 'Breskens', 'Breukelen', 'Breukeleveen', 'Brielle', 'Briltil', 'Britsum', 'Britswert', 'Broek in Waterland', 'Broek op Langedijk', 'Broek', 'Broekhuizen', 'Broekhuizen', 'Broekhuizenvorst', 'Broekland', 'Bronkhorst', 'Bronneger', 'Bronnegerveen', 'Brouwershaven', 'Bruchem', 'Brucht', 'Bruchterveld', 'Bruinehaar', 'Bruinisse', 'Brummen', 'Brunssum', 'Bruntinge', 'Buchten', 'Budel', 'Budel-Dorplein', 'Budel-Schoot', 'Buggenum', 'Buinen', 'Buinerveen', 'Buitenkaag', 'Buitenpost', 'Bunde', 'Bunne', 'Bunnik', 'Bunschoten-Spakenburg', 'Burdaard', 'Buren', 'Buren', 'Burgerbrug', 'Burgerveen', 'Burgh-Haamstede', 'Burgum', 'Burgwerd', 'Burum', 'Bussum', 'Buurmalsen', 'Buurmalsen', @@ -89,13 +89,13 @@ class Address extends \Faker\Provider\Address 'Waaksens', 'Waal', 'Waalre', 'Waalwijk', 'Waarde', 'Waardenburg', 'Waarder', 'Waardhuizen', 'Waarland', 'Waaxens', 'Wachtum', 'Waddinxveen', 'Wadenoijen', 'Wagenberg', 'Wagenborgen', 'Wageningen', 'Walem', 'Walsoorden', 'Wamel', 'Wanneperveen', 'Wanroij', 'Wanssum', 'Wapenveld', 'Wapse', 'Wapserveen', 'Warder', 'Warffum', 'Warfhuizen', 'Warfstermolen', 'Warmenhuizen', 'Warmond', 'Warns', 'Warnsveld', 'Warstiens', 'Warten', 'Waskemeer', 'Waspik', 'Wassenaar', 'Wateren', 'Watergang', 'Waterhuizen', 'Wateringen', 'Waterlandkerkje', 'Waverveen', 'Wedde', 'Weerselo', 'Weert', 'Weesp', 'Wehe-den Hoorn', 'Wehl', 'Weidum', 'Weiteveen', 'Wekerom', 'Well L', 'Well', 'Wellerlooi', 'Welsum', 'Wemeldinge', 'Wenum Wiesel', 'Wenum Wiesel', 'Wergea', 'Werkendam', 'Werkhoven', 'Wernhout', 'Wervershoof', 'Wesepe', 'Wessem', 'West-Graftdijk', 'West-Terschelling', 'Westbeemster', 'Westbroek', 'Westdorp', 'Westdorpe', 'Westendorp', 'Westerbeek', 'Westerbork', 'Westerbroek', 'Westeremden', 'Westergeest', 'Westerhaar-Vriezenveensewijk', 'Westerhoven', 'Westerland', 'Westerlee', 'Westernieland', 'Westervelde', 'Westervoort', 'Westerwijtwerd', 'Westhem', 'Westhoek', 'Westkapelle', 'Westknollendam', 'Westmaas', 'Westwoud', 'Westzaan', 'Wetering', 'Weteringbrug', 'Wetsens', 'Wetsinge', 'Weurt', 'Wezep', 'Wezup', 'Wezuperbrug', 'Wichmond', 'Wier', 'Wierden', 'Wieringerwaard', 'Wieringerwerf', 'Wierum', 'Wijchen', 'Wijckel', 'Wijdenes', 'Wijdewormer', 'Wijhe', 'Wijk aan Zee', 'Wijk bij Duurstede', 'Wijk en Aalburg', 'Wijlre', 'Wijnaldum', 'Wijnandsrade', 'Wijnbergen', 'Wijngaarden', 'Wijnjewoude', 'Wijster', 'Wilbertoord', 'Wildervank', 'Wilhelminadorp', 'Wilhelminaoord', 'Willemsoord', 'Willemstad', 'Wilnis', 'Wilp', 'Wilsum', 'Winde', 'Windraak', 'Winkel', 'Winneweer', 'Winschoten', 'Winssen', 'Winsum', 'Winsum', 'Wintelre', 'Winterswijk Brinkheurne', 'Winterswijk Corle', 'Winterswijk Henxel', 'Winterswijk Huppel', 'Winterswijk Kotten', 'Winterswijk Meddo', 'Winterswijk Miste', 'Winterswijk Ratum', 'Winterswijk Woold', 'Winterswijk', 'Wirdum Gn', 'Wirdum', 'Wissenkerke', 'Witharen', 'Witmarsum', 'Witte Paarden', 'Wittelte', 'Wittem', 'Witteveen', 'Wiuwert', 'Wjelsryp', 'Woensdrecht', 'Woerden', 'Woerdense Verlaat', 'Wognum', 'Woldendorp', 'Wolfheze', 'Wolphaartsdijk', 'Wolsum', 'Woltersum', 'Wolvega', 'Wommels', 'Wons', 'Workum', 'Wormer', 'Wormerveer', 'Woubrugge', 'Woudbloem', 'Woudenberg', 'Woudrichem', 'Woudsend', 'Wouw', 'Wouwse Plantage', 'Wyns', 'Wytgaard', 'Wâlterswâld', 'Wânswert', 'Yde', 'Yerseke', 'Ypecolsga', 'Ysbrechtum', 'Ysselsteyn', 'Zaamslag', 'Zaandam', 'Zaandijk', 'Zalk', 'Zaltbommel', 'Zandberg', 'Zandeweer', 'Zandhuizen', 'Zandpol', 'Zandvoort', 'Zeddam', 'Zeegse', 'Zeeland', 'Zeerijp', 'Zeewolde', 'Zegge', 'Zegveld', 'Zeijen', 'Zeijerveen', 'Zeijerveld', 'Zeist', 'Zelhem', 'Zenderen', 'Zennewijnen', 'Zennewijnen', 'Zetten', 'Zevenaar', 'Zevenbergen', 'Zevenbergschen Hoek', 'Zevenbergschen Hoek', 'Zevenhoven', 'Zevenhuizen', 'Zevenhuizen', 'Zierikzee', 'Zieuwent', 'Zijderveld', 'Zijdewind', 'Zijldijk', 'Zoelen', 'Zoelmond', 'Zoetermeer', 'Zoeterwoude', 'Zonnemaire', 'Zorgvlied', 'Zoutelande', 'Zoutkamp', 'Zuid-Beijerland', 'Zuid-Scharwoude', 'Zuidbroek', 'Zuiddorpe', 'Zuidermeer', 'Zuiderwoude', 'Zuidhorn', 'Zuidlaarderveen', 'Zuidland', 'Zuidlaren', 'Zuidoostbeemster', 'Zuidschermer', 'Zuidveen', 'Zuidveld', 'Zuidvelde', 'Zuidwolde', 'Zuidwolde', 'Zuidzande', 'Zuilichem', 'Zuna', 'Zundert', 'Zurich', 'Zutphen', 'Zuurdijk', 'Zwaag', 'Zwaagdijk-Oost', 'Zwaagdijk-West', 'Zwaanshoek', 'Zwagerbosch', 'Zwammerdam', 'Zwanenburg', 'Zwartebroek', 'Zwartemeer', 'Zwartewaal', 'Zwartsluis', 'Zweeloo', 'Zweins', 'Zwiggelte', 'Zwijndrecht', 'Zwinderen', 'Zwolle', 'de Hoef', 'de Lutte', 'de Wijk', 'de Woude', - ); + ]; - protected static $state = array( - 'Drenthe', 'Gelderland', 'Groningen', 'Flevoland', 'Friesland', 'Noord-Brabant', 'Noord-Holland', 'Overijssel', 'Limburg', 'Utrecht', 'Zeeland', 'Zuid-Holland' - ); + protected static $state = [ + 'Drenthe', 'Gelderland', 'Groningen', 'Flevoland', 'Friesland', 'Noord-Brabant', 'Noord-Holland', 'Overijssel', 'Limburg', 'Utrecht', 'Zeeland', 'Zuid-Holland', + ]; - protected static $country = array( + protected static $country = [ 'Afghanistan', 'Albanië', 'Algerije', 'Amerikaans-Samoa', 'Andorra', 'Angola', 'Amerikaanse Virgineilanden', 'Anguilla', 'Antartica', 'Antigua en Barbuda', 'Argentinië', 'Armenië', 'Aruba', 'Australië', 'Azerbeidzjan', 'Bahamas', 'Bahrein', 'Bangladesh', 'Barbados', 'België', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnië-Herzegovina', 'Botswana', 'Bouvet Eiland (Bouvetøya)', 'Brazilië', 'Britse Maagdeneilanden', 'Brunei Darussalam', 'Bulgarije', 'Burkina Faso', 'Burundi', 'Cambodja', 'Canada', 'Centraal-Afrikaanse Republiek', 'Chili', 'China', 'Christmaseiland', 'Cocoseilanden', 'Colombia', 'Comoren', 'Congo', 'Cookeilanden', 'Costa Rica', 'Cuba', 'Cyprus', @@ -119,12 +119,12 @@ class Address extends \Faker\Provider\Address 'Uruguay', 'Vanuatu', 'Venezuela', 'Verenigde Arabische Emiraten', 'Verenigd Koninkrijk', 'Verenigde Staten van Amerika', 'Vaticaanstad', 'Vietnam', 'Wallis en Futuna', 'Westerlijke Shara', 'Wit-Rusland', - 'Zambia', 'Zuid-Afrika', 'Zuid-Georgia en de Zuidelijke Sandwicheilanden', 'Zimbabwe' - ); + 'Zambia', 'Zuid-Afrika', 'Zuid-Georgia en de Zuidelijke Sandwicheilanden', 'Zimbabwe', + ]; /** - * @see parent - */ + * @see parent + */ public static function buildingNumber() { return static::bothify(static::randomElement(static::$buildingNumber)); @@ -139,13 +139,13 @@ public static function state() } /** - * @see parent - */ + * @see parent + */ public function cityName() { return static::randomElement(static::$cityNames); } - + public static function postcode() { return static::randomElement(static::$postcodes); diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Color.php similarity index 90% rename from vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Color.php index 99ce901..38ebea6 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Color.php @@ -4,13 +4,13 @@ class Color extends \Faker\Provider\Color { - protected static $safeColorNames = array( + protected static $safeColorNames = [ 'zwart', 'kastanjebruin', 'donkergroen', 'marine', 'olijfgroen', 'purper', 'groenblauw', 'limoen', 'blauw', 'zilver', 'grijs', 'geel', 'fuchsia', 'cyaan', 'wit', - ); + ]; - protected static $allColorNames = array( + protected static $allColorNames = [ 'Cyaan', 'Aquamarijn', 'Aquamarijn', 'Ultramarijn', 'Beige', 'Zwart', 'Blauw', 'Blauwviolet', 'Bruin', 'Groen', 'Chocoladebruin', 'Koraal', 'Korenbloemblauw', 'Vermiljoen', 'Cyaan', 'Donkerblauw', @@ -18,7 +18,7 @@ class Color extends \Faker\Provider\Color 'Donkerkaki', 'Donkermagenta', 'Donkerolijfgroen', 'Donkeroranje', 'Donkerrood', 'Donkerzalm', 'Donkerzeegroen', 'Donkerleigrijs', 'Donkerleigrijs', 'Donkerturkoois', 'Donkerviolet', 'Dieproze', - 'Diep hemelsblauw', 'Vuurvaste baksteen', 'Fluweelwit', 'Bosgroen', + 'Diep hemelsblauw', 'Vuurvaste baksteen', 'Fluweelwit', 'Bosgroen', 'Fuchsia', 'Goud', 'Grijs', 'Donkergroen', 'Groengeel', 'Grijs', 'Acaciaroze', 'Indisch rood', 'Indigo', 'Ivoor', 'Kaki', 'Lavendel', 'Grasgroen', 'Lichtblauw', 'Lichtkoraal', 'Lichtcyaan', 'Lichtgrijs', @@ -32,5 +32,5 @@ class Color extends \Faker\Provider\Color 'Zilver', 'Hemelsblauw', 'Leigrijs', 'Leigrijs', 'Sneeuwwit', 'Lentegroen', 'Donkerstaalblauw', 'Groenblauw', 'Distel', 'Tomaat', 'Transparant', 'Turkoois', 'Violet', 'Wit', 'Rookwit', 'Geel', 'Groengeel', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Company.php similarity index 93% rename from vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Company.php index bb8c90d..04e7f6b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Company.php @@ -2,12 +2,14 @@ namespace Faker\Provider\nl_NL; +use Faker\Provider\Miscellaneous; + class Company extends \Faker\Provider\Company { /** * @see https://nl.wikipedia.org/wiki/Lijst_van_beroepen */ - protected static $jobTitleFormat = array( + protected static $jobTitleFormat = [ 'Aankondiger', 'Acceptant', 'Accountant', 'Accountmanager', 'Acrobaat', 'Acteur', 'Activiteitenbegeleider', 'Actuaris', 'Acupuncturist', 'Adjudant', 'Administrateur', 'Advertentiezetter', 'Adviseur', 'Advocaat', 'Agent', 'Agrariër', 'Akoepedist', 'Akoesticus', 'Alchemist', 'Allergoloog', 'Altist', 'Amanuensis', 'Ambtenaar', 'Ambulancebegeleider', 'Ambulancechauffeur', 'Ambulanceverpleegkundige', 'Analist', 'Anatoom', 'Andragoog', 'Androloog', 'Anesthesist', 'Anesthesiemedewerker', 'Animeermeisje', 'Antiquaar', 'Antiquair', 'Apotheker', 'Apothekersassistent', 'Applicatieontwikkelaar', 'Arbeidsanalist', 'Arbeidsbemiddelaar', 'Arbeidsdeskundige', 'Arbeidsfysioloog', 'Arbeidsgeneesheer', 'Arbeidshygiënist', 'Archeoloog', 'Architect', 'Archivaris', 'Archivist', 'Arrangeur', 'Artdirector', 'Artiest', 'Arts', 'Assuradeur', 'Astrofysicus', 'Astroloog', 'Astronaut', 'Astronoom', 'Audioloog', 'Audiometrist', 'Audiotherapeut', 'Auditor', 'Autohandelaar', 'Automonteur', 'Autoplaatwerker', 'Autospuiter', 'Bacterioloog', 'Badmeester', 'Baggermachinist', 'Baggermolenarbeider', 'Baker', 'Bakker', 'Baliemedewerker', 'Balletdanser', 'Ballroomdanser', 'Bandagist', 'Bandenmonteur', 'Bankbediende', 'Bankdirecteur', 'Banketbakker', 'Bankmakelaar', 'Bankwerker', 'Barbediende', 'Barhouder', 'Barman', 'Basketballer', 'Bassist', 'Beademingsassistent', 'Bedienaar', 'Bediener', 'Bedrijfsbrandweer', 'Bedrijfseconoom', 'Bedrijfshoofd', 'Bedrijfsjurist', 'Bedrijfskassier', 'Bedrijfskundige', 'Bedrijfsleermeester', 'Bedrijfsleider', 'Bedrijfsorganisatiedeskundige', 'Bedrijfspolitieagent', 'Bedrijfsrecherche', 'Bedrijfsverpleegkundige', 'Beeldapparatuurbediener', 'Beeldhouwer', 'Beenhouwer', 'Begeleider', 'Begrafenispersoneel', 'Begrotingscalculator', 'Behanger', 'Beheerder', 'Beiaardier', 'Bejaardenverzorgende', 'Belastingambtenaar', 'Belastingconsulent', 'Beleidsambtenaar', 'Beleidsmedewerker', 'Belichter', 'Bergingsduiker', 'Beroepskeuzeadviseur', 'Beroepsmilitair', 'Beroepssporter', 'Bestekschrijver', 'Besteksorteerder', 'Bestekzoeker', 'Bestuurder', 'Bestuurskundige', 'Betonmolenbaas', 'Betontimmerman', 'Betonstaalvlechter', 'Betonwerker', 'Beul', 'Beveiligingsapparatuur', 'Beveiligingsbeambte', 'Bewaarder', 'Bewaker', 'Bewegingstherapeut', 'Bezorger', 'Bibliothecaris', 'Bibliotheekassistent', 'Bierbrouwer', 'Bijenkorfvlechter', 'Bijenkweker', 'Bijkantoorhouder', 'Binderijpersoneel', 'Binnenhuisarchitect', 'Biochemicus', 'Biograaf', 'Bioloog', 'Bioscoopoperateur', 'Bitumineerder', 'Bloemist', 'Bloemkweker', 'Bloemschikker', 'Bloemsierkunstenaar', 'Bode', 'Boekbinder', 'Boekhouder', 'Boekillustrator', 'Boer', 'Bontkleermaker', 'Bontsnijder', 'Bookmaker', 'Boomchirurg', 'Boomkweker', 'Boomverzorger', 'Boordwerktuigkundige', 'Boormachinist', 'Boorpersoneel', 'Bootsman', 'Bosbaas', 'Bosbouwkundige', 'Boswachter', 'Botenbouwer', 'Bouwcalculator', 'Bouwhistoricus', 'Bouwkundig tekenaar', 'Bouwliftbediener', 'Bouwpromotor', 'Bouwopzichter', 'Bouwvakker', 'Bouwvaktimmerman', 'Brandmeester', 'Brandveiligheidsdeskundige', 'Brandwacht', 'Brandweerman', 'Brandweercommandant', 'Brandweeronderofficier', 'Breimachinesteller', 'Bromfietshersteller', 'Bronboorder', 'Buffetbediende', 'Buikspreker', 'Buitenbandenvulkaniseur', 'Buitendienstmedewerker', 'Burgemeester', 'Buschauffeur', 'Budgetcoach', 'Butler', 'Cabaretier', 'Caféhouder', 'Cafetariamedewerker', 'Caissière', 'Calculator', 'Callgirl', 'Cameraman', 'Cardioloog', 'Cargadoor', 'Carrosseriebouwer', 'Cartograaf', 'Cellist', 'Chauffeur', 'Chef', 'Chemicus', 'Chiropodist', 'Chirurg', 'Chocolademaker', 'Chocolatier', 'Choreograaf', 'Cilindermaker', 'Cineast', 'Cipier', 'Circusartiest', 'Circusdirecteur', 'Civiel ingenieur', 'Classicus', 'Clown', 'Coach', 'Codeur', 'Collationist', 'Colporteur', 'Columnist', 'Combinatiefunctionaris', 'Commentator', 'Commissaris', 'Commissionair', 'Completeerder', 'Compliance officer', 'Componist', 'Computeroperator', 'Computerprogrammeur', 'Conciërge', 'Conducteur', 'Conservator', 'Constructeur', 'Constructiebankwerker', 'Constructiesamenbouwer', 'Constructieschilder', 'Consulent', 'Contactlensspecialist', 'Controleur', 'Controller', 'Coördinator', 'Copywriter', 'Counselor', 'Corrector', 'Correpetitor', 'Correspondent', 'Creatief therapeut', 'Crècheleidster', 'Criminoloog', 'Criticus', 'Croupeur', 'Croupier', 'Cultuurtechnicus', 'Curator', 'Cursuscoördinator', 'Cursusleider', @@ -23,7 +25,7 @@ class Company extends \Faker\Provider\Company 'Maatnemer', 'Maatschappelijk medewerker', 'Maatschappelijk werker', 'Maatschoenmaker', 'Machine vouwer', 'Machinebankwerker', 'Machinebediende', 'Machinesteller', 'Manegehouder', 'Machinist', 'Magazijnbediende', 'Magazijnbeheerder', 'Magazijnknecht', 'Magnetiseur', 'Makelaar', 'Managementassistent', 'Manager', 'Mandenmaker', 'Mannequin', 'Manueel therapeut', 'Marconist', 'Marinier', 'Maritiem Officier', 'Marechaussee', 'Marketingadviseur', 'Marketingassistent', 'Marktkoopman', 'Masseur', 'Mathematicus', 'Matroos', 'Mattenmaker', 'Medewerker', 'Mediatrainer', 'Meester restauratiestukadoor', 'Meettechnicus', 'Melkboer', 'Metaalbewerker', 'Metaalbrander', 'Metaalbuiger', 'Metaalfrezer', 'Metaalgieter', 'Metaalkundige', 'Meteoroloog', 'Meteropnemer', 'Metselaar', 'Meubelbeeldhouwer', 'Meubelmaker', 'Meubelstoffeerder', 'Meubelstoffennaaister', 'Meubeltekenaar', 'Mijnbouwkundige', 'Middenstander', 'Mijnwerker', 'Milieudeskundige', 'Milieuhygiënist', 'Militair', 'Mimespeler', 'Min', 'Mineralenbewerker', 'Minister', 'Minister-president', 'Model', 'Modelmaker', 'Modelnaaister', 'Molenaar', 'Modeontwerper', 'Mondhygiënist', 'Monnik', 'Monteur', 'Mosselman', 'Motordemonteur', 'Motordrijver', 'Motormonteur', 'Mouldroomtechnicus', 'Munter', 'Muntmeester', 'Museumconservator', 'Museumgids', 'Museumhouder', 'Museummedewerker', 'Musicus', 'Muziekinstrumentenmaker', 'Muziekprogrammeur', 'Naaister', 'Nachtwaker', 'Nagelstyliste', 'Nasynchronisatieregisseur', 'Natuurkundeleraar', 'Natuurkundige', 'Natuurwetenschapper', 'Navigator', 'Neonatoloog', 'Nettenboeter', 'Netwerkbeheerder', 'Neurochirurg', 'Neuroloog', 'Neurofysioloog', 'Nieuwslezer', 'Nijverheidsconsulent', 'Nko-arts', 'Nopster', 'Notaris', 'Nucleair geneeskundige', 'Ober', 'Oberkelner', 'Objectleider', 'Oceanoloog', 'Octrooigemachtigde', 'Officier', 'Officier van justitie', 'Olieslager', 'Omroeper', 'Omsteller', 'Oncoloog', 'Onderhoudsloodgieter', 'Onderhoudsman', 'Onderhoudsmedewerker', 'Onderhoudsmonteur', 'Ondernemer', 'Onderofficier', 'Ondersteunende', 'Onderwaterwerker', 'Onderwijsassistent', 'Onderwijstechnicus', 'Onderwijzer', 'Onderzoeker', 'Onderzoeker in opleiding', 'Ontdekkingsreiziger', 'Ontmijner', 'Ontvlekker', 'Ontwerper', 'Oogarts', 'Operateur', 'Operatieassistent', 'Operational auditor', 'Operator', 'Opkoper', 'Opperman', 'Opsporingsambtenaar', 'Opsporingsingenieur', 'Opticien', 'Optometrist', 'Opvoedingsconsulent', 'Opvoedingsvoorlichter', 'Opzichter', 'Organist', 'Organizer', 'Ornitholoog', 'Orthodontist', 'Orthopedagoog', 'Orthopeed', 'Orthoptist', 'ORL-arts', 'Osteopaat', 'Ouvreuse', 'Ovenman', - 'Paardenfokker', 'Pakhuischef', 'Paleontoloog', 'Palfrenier', 'Pandjesbaas', 'Papierschepper', 'Papiervernisser', 'Parkeerwachter', 'Parketvloerenlegger', 'Parketwacht', 'Pastoor', 'Paswerker', 'Patholoog', 'Patholoog-anatoom', 'Patissier', 'Patroonmaker', 'Patroontekenaar', 'Pedagoog', 'Pedicure', 'Perronopzichter', 'Perser', 'Personeelsfunctionaris', 'Peuterwerker', 'Pianist', 'Pianostemmer', 'Piccolo', 'Pijpfitter', 'Pikeur', 'Piloot', 'Plaatwerker', 'Planner', 'Plantenteeltdeskundige', 'Plantsoenmedewerker', 'Plasticvormer', 'Pleitbezorger', 'Poelier', 'Poepruimer', 'Poetser', 'Podiatrist', 'Podoloog', 'Poffertjesbakker', 'Polisopmaker', 'Politicus', 'Politieagent', 'Politiecommissaris', 'Politie-inspecteur', 'Politiek analist', 'Pontschipper', 'Pooier', 'Porder', 'Portier', 'Portretfotograaf', 'Postbediende', 'Postbesteller', 'Postbode', 'Postcommandant', 'Postexpediteur', 'Postsorteerder', 'Pottenbakker', 'Predikant', 'Premier', 'Presentator', 'President', 'Priester', 'Probleemanalist', 'Procesmanager', 'Procesoperator', 'Procureur', 'Procureur des Konings', 'Producer', 'Productenmaker', 'Productensorteerder', 'Productiebegeleider', 'Productieleider', 'Productiemedewerker', 'Productieplanner', 'Professor', 'Professioneel worstelaar', 'Programmamaker', 'Programmeur', 'Projectadviseur', 'Projectleider', 'Projectmanager', 'Projectontwikkelaar', 'Promovendus', 'Prostitué', 'Prostituee', 'Pruikenmaker', 'Psychiater', 'Psychologisch assistent', 'Psycholoog', 'Psychotherapeut', 'Psychomotorisch kindertherapeut', 'Purser', 'Putjesschepper', + 'Paardenfokker', 'Pakhuischef', 'Paleontoloog', 'Palfrenier', 'Pandjesbaas', 'Papierschepper', 'Papiervernisser', 'Parkeerwachter', 'Parketvloerenlegger', 'Parketwacht', 'Pastoor', 'Paswerker', 'Patholoog', 'Patholoog-anatoom', 'Patissier', 'Patroonmaker', 'Patroontekenaar', 'Pedagoog', 'Pedicure', 'Perronopzichter', 'Perser', 'Personeelsfunctionaris', 'Peuterwerker', 'Pianist', 'Pianostemmer', 'Piccolo', 'Pijpfitter', 'Pikeur', 'Piloot', 'Plaatwerker', 'Planner', 'Plantenteeltdeskundige', 'Plantsoenmedewerker', 'Plasticvormer', 'Pleitbezorger', 'Poelier', 'Poepruimer', 'Poetser', 'Podiatrist', 'Podoloog', 'Poffertjesbakker', 'Polisopmaker', 'Politicus', 'Politieagent', 'Politiecommissaris', 'Politie-inspecteur', 'Politiek analist', 'Pontschipper', 'Porder', 'Portier', 'Portretfotograaf', 'Postbediende', 'Postbesteller', 'Postbode', 'Postcommandant', 'Postexpediteur', 'Postsorteerder', 'Pottenbakker', 'Predikant', 'Premier', 'Presentator', 'President', 'Priester', 'Probleemanalist', 'Procesmanager', 'Procesoperator', 'Procureur', 'Procureur des Konings', 'Producer', 'Productenmaker', 'Productensorteerder', 'Productiebegeleider', 'Productieleider', 'Productiemedewerker', 'Productieplanner', 'Professor', 'Professioneel worstelaar', 'Programmamaker', 'Programmeur', 'Projectadviseur', 'Projectleider', 'Projectmanager', 'Projectontwikkelaar', 'Promovendus', 'Pruikenmaker', 'Psychiater', 'Psychologisch assistent', 'Psycholoog', 'Psychotherapeut', 'Psychomotorisch kindertherapeut', 'Purser', 'Putjesschepper', 'Quarantaine-beambte', 'Quizmaster', 'Quantity surveyor', 'Raadsman', 'Radarwaarnemer', 'Radiotherapeutisch laborant', 'Radiograaf', 'Radiolaborant', 'Radiotechnicus', 'Radiotelegrafist', 'Rangeerder', 'Recensent', 'Receptionist', 'Recherchekundige', 'Rechercheur', 'Rechtbanktekenaar', 'Rechter', 'Reclame-ontwerper', 'Reclameacquisiteur', 'Reclamedeskundige', 'Reclametekenaar', 'Redacteur', 'Redactiechef', 'Regisseur', 'Registeraccountant', 'Reiniger', 'Reinigingsdienstarbeider', 'Reisleider', 'Reisprogrammeur', 'Reisverkoper', 'Rekenaar', 'Rekwisietenmaker', 'Rentmeester', 'Reparateur', 'Ridder', 'Repetitor', 'Reproductietekenaar', 'Restauranthouder', 'Rietmeubelmaker', 'Rietwerker', 'Rijtuigspuiter', 'Rijwielhersteller', 'Rolluikentimmerman', 'Rondvaartgids', 'Röntgenoloog', 'Ruimtevaarder', 'Samensteller', 'Saunahouder', 'Scenarioschrijver', 'Schaaldierenkweker', 'Schaaldierenpeller', 'Schaapherder', 'Schadecorrespondent', 'Schadetaxateur', 'Schakelbordwachter', 'Schaker', 'Schapenscheerder', 'Scharensliep', 'Scheepskapitein', 'Scheepskok', 'Scheepspurser', 'Scheepsschilder', 'Scheepstimmerman', 'Scheidsrechter', 'Scheikundige', 'Schillenboer', 'Schipper', 'Schoenfabrieksarbeider', 'Schoenhersteller', 'Schoenmaker', 'Schoolbegeleider', 'Schooldecaan', 'Schooldirecteur', 'Schoolinspecteur', 'Schoonheidsmasseur', 'Schoonheidsspecialiste', 'Schoonmaker', 'Schoorsteenveger', 'Schotter', 'Schrijftolk', 'Schrijver', 'Schuurder', 'Secretaresse', 'Secretariaatsmedewerker', 'Secretaris', 'Seismoloog', 'Seizoenarbeider', 'Seksuoloog', 'Selecteur', 'Sergeant', 'Seroloog', 'Serveerster', 'Setdresser', 'Sigarenmaker', 'Sinoloog', 'Sjorder', 'Sjouwer', 'Slachter', 'Slager', 'Slagwerker', 'Slijter', 'Sloper', 'Sluiswachter', 'Smeerder', 'Smelter', 'Smid', 'Snackbarbediende', 'Snackbarhouder', 'Snijder', 'Sociotherapeut', 'Softwareontwikkelaar', 'Soldaat', 'Soldeerder', 'Sommelier', 'Sondeerder', 'Songwriter', 'Souschef', 'Spoeler', 'Souffleur', 'Specialist', 'Spelersmakelaar', 'Speltherapeut', 'Spindoppenmonteur', 'Spion', 'Sportinstructeur', 'Stadsomroeper', 'Stadstimmerman', 'Stanser', 'Stationschef', 'Statisticus', 'Stedenbouwkundige', 'Steenbewerker', 'Steenfabrikant', 'Steenhouwer', 'Steenzetter', 'Steigerbouwer', 'Steigermaker', 'Stenotypist', 'Stereotypeur', 'Sterilisatieassistent', 'Stewardess', 'Stoelenmatter', 'Stoffeerder', 'Storingsmonteur', 'Straatverkoper', 'Strandjutter', 'Stratenmaker', 'Stripper', 'Stucwerker', 'Stukadoor', 'Stuurman', 'Stuwadoor', 'Stylist', 'Stypengalvaniseur', 'Surinamist', 'Systeemanalist', 'Systeembeheerder', 'Systeemontwerper', 'Systeemprogrammeur', @@ -34,33 +36,32 @@ class Company extends \Faker\Provider\Company 'Xylofonist', 'Yogaleraar', 'Zaakwaarnemer', 'Zakenman', 'Zanger', 'Zeefdrukker', 'Zeeman', 'Zeepzieder', 'Zeilmaker', 'Zelfstandig ondernemer', 'Zetter', 'Ziekenhuisapotheker', 'Ziekenhuishygiënist', 'Ziekenverzorgende', 'Zilversmid', 'Zweminstructeur', 'Zoöloog', - ); + ]; - protected static $companySuffix = array( - 'VOF', 'CV', 'LLP', 'BV', 'NV', 'IBC', 'CSL','EESV', 'SE', 'CV', 'Stichting', '& Zonen', '& Zn' - ); + protected static $companySuffix = [ + 'VOF', 'CV', 'LLP', 'BV', 'NV', 'IBC', 'CSL', 'EESV', 'SE', 'CV', 'Stichting', '& Zonen', '& Zn', + ]; - protected static $product = array( + protected static $product = [ 'Keuken', 'Media', 'Meubel', 'Sanitair', 'Elektronica', 'Schoenen', 'Zorg', 'Muziek', 'Audio', 'Televisie', 'Pasta', 'Lunch', 'Boeken', 'Cadeau', 'Kunst', 'Tuin', 'Klus', 'Video', 'Sieraden', 'Kook', 'Woon', 'Pizza', 'Mode', 'Haar', 'Kleding', 'Antiek', 'Interieur', 'Gadget', 'Foto', 'Computer', 'Witgoed', 'Bruingoed', 'Broeken', 'Pakken', 'Maatpak', 'Fietsen', 'Speelgoed', 'Barbecue', 'Sport', 'Fitness', 'Brillen', 'Bakkers', 'Drank', 'Zuivel', 'Pret', 'Vis', 'Wijn', 'Salade', - 'Terras', 'Borrel', 'Dieren', 'Aquaria', 'Verf', 'Behang', 'Tegel', 'Badkamer', 'Decoratie' - ); + 'Terras', 'Borrel', 'Dieren', 'Aquaria', 'Verf', 'Behang', 'Tegel', 'Badkamer', 'Decoratie', + ]; - protected static $type = array( + protected static $type = [ 'Markt', 'Kampioen', 'Expert', 'Concurrent', 'Shop', 'Expert', 'Magazijn', 'Dump', 'Store', 'Studio', 'Boulevard', 'Fabriek', 'Groep', 'Huis', 'Salon', 'Vakhuis', 'Winkel', 'Gigant', - 'Reus', 'Plaza', 'Park', 'Tuin' - ); + 'Reus', 'Plaza', 'Park', 'Tuin', + ]; - protected static $store = array( + protected static $store = [ 'Boekhandel', 'Super', 'Tabakzaak', 'Schoenmaker', 'Kaashandel', 'Slagerij', 'Smederij', 'Bakkerij', 'Bierbrouwer', 'Kapperszaak', 'Groenteboer', 'Bioboer', 'Fietsenmaker', 'Opticien', - 'Café', 'Garage' - ); - + 'Café', 'Garage', + ]; /** * @example 'Fietsenmaker Zijlemans' @@ -69,20 +70,26 @@ class Company extends \Faker\Provider\Company */ public function company() { - $determinator = static::numberBetween(0, 2); + $determinator = self::numberBetween(0, 2); + switch ($determinator) { case 0: $companyName = static::randomElement(static::$product) . ' ' . static::randomElement(static::$type); + break; + case 1: $companyName = static::randomElement(static::$product) . strtolower(static::randomElement(static::$type)); + break; + case 2: - $companyName = static::randomElement(static::$store) . ' ' . $this->generator->lastName; + $companyName = static::randomElement(static::$store) . ' ' . $this->generator->lastName(); + break; } - if (0 !== static::numberBetween(0, 1)) { + if (Miscellaneous::boolean()) { return $companyName . ' ' . static::randomElement(static::$companySuffix); } @@ -94,13 +101,13 @@ public function company() * * @example 'NL123456789B01' * - * @see http://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakelijk/btw/administratie_bijhouden/btw_nummers_controleren/uw_btw_nummer + * @see https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakelijk/btw/administratie_bijhouden/btw_nummers_controleren/uw_btw_nummer * * @return string VAT Number */ public static function vat() { - return sprintf("%s%d%s%d", 'NL', self::randomNumber(9, true), 'B', self::randomNumber(2, true)); + return sprintf('%s%d%s%d', 'NL', self::randomNumber(9, true), 'B', self::randomNumber(2, true)); } /** diff --git a/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Internet.php new file mode 100644 index 0000000..bf30e79 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Internet.php @@ -0,0 +1,9 @@ + 9) { if ($nr[1] > 0) { $nr[0] = 8; - $nr[1]--; + --$nr[1]; } else { $nr[0] = 1; - $nr[1]++; + ++$nr[1]; } } + return implode('', array_reverse($nr)); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/PhoneNumber.php similarity index 94% rename from vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/nl_NL/PhoneNumber.php index c27fe9b..5d4163a 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '06 ########', '06-########', '+316-########', @@ -35,5 +35,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '+3188 #######', '0900 ######', '+31900 ######', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Text.php index 4ac1f0b..5002c81 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/nl_NL/Text.php @@ -40,6 +40,7 @@ class Text extends \Faker\Provider\Text * 1911. "Titaantjes" in "Groot-Nederland" van Juni 1915. * * @see http://www.gutenberg.org/cache/epub/29719/pg29719.txt + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php new file mode 100644 index 0000000..a7b01bb --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php @@ -0,0 +1,209 @@ + ['D', 'V'], + 'kujawsko-pomorskie' => ['C'], + 'lubelskie' => ['L'], + 'lubuskie' => ['F'], + 'łódzkie' => ['E'], + 'małopolskie' => ['K', 'J'], + 'mazowieckie' => ['W', 'A'], + 'opolskie' => ['O'], + 'podkarpackie' => ['R', 'Y'], + 'podlaskie' => ['B'], + 'pomorskie' => ['G', 'X'], + 'śląskie' => ['S', 'I'], + 'świętokrzyskie' => ['T'], + 'warmińsko-mazurskie' => ['N'], + 'wielkopolskie' => ['P', 'M'], + 'zachodniopomorskie' => ['Z'], + ]; + + /** + * @var array list of special vehicle registration number prefixes. + */ + protected static $specials = [ + 'army' => ['U'], + 'services' => ['H'], + ]; + + /** + * @var array list of Polish counties and respective vehicle registration number prefixes. + */ + protected static $counties = [ + 'dolnośląskie' => [ + 'Jelenia Góra' => ['J'], + 'Legnica' => ['L'], + 'Wałbrzych' => ['B'], + 'Wrocław' => ['W', 'X'], + 'bolesławiecki' => ['BL'], + 'dzierżoniowski' => ['DZ'], + 'głogowski' => ['GL'], + 'górowski' => ['GR'], + 'jaworski' => ['JA'], + 'jeleniogórski' => ['JE'], + 'kamiennogórski' => ['KA'], + 'kłodzki' => ['KL'], + 'legnicki' => ['LE'], + 'lubański' => ['LB'], + 'lubiński' => ['LU'], + 'lwówecki' => ['LW'], + 'milicki' => ['MI'], + 'oleśnicki' => ['OL'], + 'oławski' => ['OA'], + 'polkowicki' => ['PL'], + 'strzeliński' => ['ST'], + 'średzki' => ['SR'], + 'świdnicki' => ['SW'], + 'trzebnicki' => ['TR'], + 'wałbrzyski' => ['BA'], + 'wołowski' => ['WL'], + 'wrocławski' => ['WR'], + 'ząbkowicki' => ['ZA'], + 'zgorzelecki' => ['ZG'], + 'złotoryjski' => ['ZL'], + ], + 'kujawsko-pomorskie' => [ + 'Bydgoszcz' => ['B'], + 'Grudziądz' => ['G'], + 'Toruń' => ['T'], + 'Włocławek' => ['W'], + 'aleksandrowski' => ['AL'], + 'brodnicki' => ['BR'], + 'bydgoski' => ['BY'], + 'chełmiński' => ['CH'], + 'golubsko-dobrzyński' => ['GD'], + 'grudziądzki' => ['GR'], + 'inowrocławski' => ['IN'], + 'lipnowski' => ['LI'], + 'mogileński' => ['MG'], + 'nakielski' => ['NA'], + 'radziejowski' => ['RA'], + 'rypiński' => ['RY'], + 'sępoleński' => ['SE'], + 'świecki' => ['SW'], + 'toruński' => ['TR'], + 'tucholski' => ['TU'], + 'wąbrzeski' => ['WA'], + 'włocławski' => ['WL'], + 'żniński' => ['ZN'], + ], + 'lubelskie' => [ + 'Biała Podlaska' => ['B'], + 'Chełm' => ['C'], + 'Lublin' => ['U'], + 'Zamość' => ['Z'], + 'bialski' => ['BI'], + 'biłgorajski' => ['BL'], + 'chełmski' => ['CH'], + 'hrubieszowski' => ['HR'], + 'janowski' => ['JA'], + 'krasnostawski' => ['KS'], + 'kraśnicki' => ['KR'], + 'lubartowski' => ['LB'], + 'lubelski' => ['UB'], + 'łęczyński' => ['LE'], + 'łukowski' => ['LU'], + 'opolski' => ['OP'], + 'parczewski' => ['PA'], + 'puławski' => ['PU'], + 'radzyński' => ['RA'], + 'rycki' => ['RY'], + 'świdnicki' => ['SW'], + 'tomaszowski' => ['TM'], + 'włodawski' => ['WL'], + 'zamojski' => ['ZA'], + ], + 'lubuskie' => [ + 'Gorzów Wielkopolski' => ['G'], + 'Zielona Góra' => ['Z'], + 'gorzowski' => ['GW'], + 'krośnieński' => ['KR'], + 'międzyrzecki' => ['MI'], + 'nowosolski' => ['NW'], + 'słubicki' => ['SL'], + 'strzelecko-drezdenecki' => ['SD'], + 'sulęciński' => ['SU'], + 'świebodziński' => ['SW'], + 'wschowski' => ['WS'], + 'zielonogórski' => ['ZI'], + 'żagański' => ['ZG'], + 'żarski' => ['ZA'], + ], + 'łódzkie' => [ + 'Łódź' => ['L', 'D'], + 'Piotrków Trybunalski' => ['P'], + 'Skierniewice' => ['S'], + 'brzeziński' => ['BR'], + 'bełchatowski' => ['BE'], + 'kutnowski' => ['KU'], + 'łaski' => ['LA'], + 'łęczycki' => ['LE'], + 'łowicki' => ['LC'], + 'łódzki wschodni' => ['LW'], + 'opoczyński' => ['OP'], + 'pabianicki' => ['PA'], + 'pajęczański' => ['PJ'], + 'piotrkowski' => ['PI'], + 'poddębicki' => ['PD'], + 'radomszczański' => ['RA'], + 'rawski' => ['RW'], + 'sieradzki' => ['SI'], + 'skierniewicki' => ['SK'], + 'tomaszowski' => ['TM'], + 'wieluński' => ['WI'], + 'wieruszowski' => ['WE'], + 'zduńskowolski' => ['ZD'], + 'zgierski' => ['ZG'], + ], + 'małopolskie' => [ + 'Kraków' => ['R', 'K'], + 'Nowy Sącz' => ['N'], + 'Tarnów' => ['T'], + 'bocheński' => ['BA', 'BC'], + 'brzeski' => ['BR'], + 'chrzanowski' => ['CH'], + 'dąbrowski' => ['DA'], + 'gorlicki' => ['GR'], + 'krakowski' => ['RA', 'RK'], + 'limanowski' => ['LI'], + 'miechowski' => ['MI'], + 'myślenicki' => ['MY'], + 'nowosądecki' => ['NS'], + 'nowotarski' => ['NT'], + 'olkuski' => ['OL'], + 'oświęcimski' => ['OS'], + 'proszowicki' => ['PR'], + 'suski' => ['SU'], + 'tarnowski' => ['TA'], + 'tatrzański' => ['TT'], + 'wadowicki' => ['WA'], + 'wielicki' => ['WI'], + ], + 'mazowieckie' => [ + 'Ostrołęka' => ['O'], + 'Płock' => ['P'], + 'Radom' => ['R'], + 'Siedlce' => ['S'], + 'białobrzeski' => ['BR'], + 'ciechanowski' => ['CI'], + 'garwoliński' => ['G'], + 'gostyniński' => ['GS'], + 'grodziski' => ['GM'], + 'grójecki' => ['GR'], + 'kozienicki' => ['KZ'], + 'legionowski' => ['L'], + 'lipski' => ['LI'], + 'łosicki' => ['LS'], + 'makowski' => ['MA'], + 'miński' => ['M'], + 'mławski' => ['ML'], + 'nowodworski' => ['ND'], + 'ostrołęcki' => ['OS'], + 'ostrowski' => ['OR'], + 'otwocki' => ['OT'], + 'piaseczyński' => ['PA', 'PI', 'PW', 'PX'], + 'płocki' => ['PL'], + 'płoński' => ['PN'], + 'pruszkowski' => ['PP', 'PR', 'PS'], + 'przasnyski' => ['PZ'], + 'przysuski' => ['PY'], + 'pułtuski' => ['PU'], + 'radomski' => ['RA'], + 'siedlecki' => ['SI'], + 'sierpecki' => ['SE'], + 'sochaczewski' => ['SC'], + 'sokołowski' => ['SK'], + 'szydłowiecki' => ['SZ'], + 'warszawski' => ['A', 'B', 'D', 'E', 'F', 'H', 'I', 'J', 'K', 'N', 'T', 'U', 'W', 'X', 'Y'], + 'warszawski zachodni' => ['Z'], + 'węgrowski' => ['WE'], + 'wołomiński' => ['WL', 'V'], + 'wyszkowski' => ['WY'], + 'zwoleński' => ['ZW'], + 'żuromiński' => ['ZU'], + 'żyrardowski' => ['ZY'], + ], + 'opolskie' => [ + 'Opole' => ['P'], + 'brzeski' => ['B'], + 'głubczycki' => ['GL'], + 'kędzierzyńsko-kozielski' => ['K'], + 'kluczborski' => ['KL'], + 'krapkowicki' => ['KR'], + 'namysłowski' => ['NA'], + 'nyski' => ['NY'], + 'oleski' => ['OL'], + 'opolski' => ['PO'], + 'prudnicki' => ['PR'], + 'strzelecki' => ['ST'], + ], + 'podkarpackie' => [ + 'Krosno' => ['K'], + 'Przemyśl' => ['P'], + 'Rzeszów' => ['Z'], + 'Tarnobrzeg' => ['T'], + 'bieszczadzki' => ['BI'], + 'brzozowski' => ['BR'], + 'dębicki' => ['DE'], + 'jarosławski' => ['JA'], + 'jasielski' => ['JS'], + 'kolbuszowski' => ['KL'], + 'krośnieński' => ['KR'], + 'leski' => ['LS'], + 'leżajski' => ['LE'], + 'lubaczowski' => ['LU'], + 'łańcucki' => ['LA'], + 'mielecki' => ['MI'], + 'niżański' => ['NI'], + 'przemyski' => ['PR'], + 'przeworski' => ['PZ'], + 'ropczycko-sędziszowski' => ['RS'], + 'rzeszowski' => ['ZE', 'ZR', 'ZZ'], + 'sanocki' => ['SA'], + 'stalowowolski' => ['ST'], + 'strzyżowski' => ['SR'], + 'tarnobrzeski' => ['TA'], + ], + 'podlaskie' => [ + 'Białystok' => ['I'], + 'Łomża' => ['L'], + 'Suwałki' => ['S'], + 'augustowski' => ['AU'], + 'białostocki' => ['IA', 'IB'], + 'bielski' => ['BI'], + 'grajewski' => ['GR'], + 'hajnowski' => ['HA'], + 'kolneński' => ['KL'], + 'łomżyński' => ['LM'], + 'moniecki' => ['MN'], + 'sejneński' => ['SE'], + 'siemiatycki' => ['SI'], + 'sokólski' => ['SK'], + 'suwalski' => ['SU'], + 'wysokomazowiecki' => ['WM'], + 'zambrowski' => ['ZA'], + ], + 'pomorskie' => [ + 'Gdańsk' => ['D'], + 'Gdynia' => ['A'], + 'Słupsk' => ['S'], + 'Sopot' => ['SP'], + 'bytowski' => ['BY'], + 'chojnicki' => ['CH'], + 'człuchowski' => ['CZ'], + 'gdański' => ['DA'], + 'kartuski' => ['KA', 'KY', 'KZ'], + 'kościerski' => ['KS'], + 'kwidzyński' => ['KW'], + 'lęborski' => ['LE'], + 'malborski' => ['MB'], + 'nowodworski' => ['ND'], + 'pucki' => ['PU'], + 'słupski' => ['SL'], + 'starogardzki' => ['ST'], + 'sztumski' => ['SZ'], + 'tczewski' => ['TC'], + 'wejherowski' => ['WE', 'WO'], + ], + 'śląskie' => [ + 'Bielsko-Biała' => ['B'], + 'Bytom' => ['Y'], + 'Chorzów' => ['H'], + 'Częstochowa' => ['C'], + 'Dąbrowa Górnicza' => ['D'], + 'Gliwice' => ['G'], + 'Jastrzębie-Zdrój' => ['JZ'], + 'Jaworzno' => ['J'], + 'Katowice' => ['K'], + 'Mysłowice' => ['M'], + 'Piekary Śląskie' => ['PI'], + 'Ruda Śląska,' => ['L', 'RS'], + 'Rybnik' => ['R'], + 'Siemianowice Śląskie' => ['I'], + 'Sosnowiec' => ['O'], + 'Świętochłowice' => ['W'], + 'Tychy' => ['T'], + 'Zabrze' => ['Z'], + 'Żory' => ['ZO'], + 'będziński' => ['BE', 'BN', 'E'], + 'bielski' => ['BI'], + 'cieszyński' => ['CI', 'CN'], + 'częstochowski' => ['CZ'], + 'gliwicki' => ['GL'], + 'kłobucki' => ['KL'], + 'lubliniecki' => ['LU'], + 'mikołowski' => ['MI'], + 'myszkowski' => ['MY'], + 'pszczyński' => ['PS'], + 'raciborski' => ['RC'], + 'rybnicki' => ['RB'], + 'tarnogórski' => ['TA'], + 'bieruńsko - lędziński' => ['BL'], + 'wodzisławski' => ['WD', 'WZ'], + 'zawierciański' => ['ZA'], + 'żywiecki' => ['ZY'], + ], + 'świętokrzyskie' => [ + 'Kielce' => ['K'], + 'buski' => ['BU'], + 'jędrzejowski' => ['JE'], + 'kazimierski' => ['KA'], + 'kielecki' => ['KI'], + 'konecki' => ['KN'], + 'opatowski' => ['OP'], + 'ostrowiecki' => ['OS'], + 'pińczowski' => ['PI'], + 'sandomierski' => ['SA'], + 'skarżyski' => ['SK'], + 'starachowicki' => ['ST'], + 'staszowski' => ['SZ'], + 'włoszczowski' => ['LW'], + ], + 'warmińsko-mazurskie' => [ + 'Elbląg' => ['E'], + 'Olsztyn' => ['O'], + 'bartoszycki' => ['BA'], + 'braniewski' => ['BR'], + 'działdowski' => ['DZ'], + 'elbląski' => ['EB'], + 'ełcki' => ['EL'], + 'giżycki' => ['GI'], + 'iławski' => ['IL'], + 'kętrzyński' => ['KE'], + 'lidzbarski' => ['LI'], + 'mrągowski' => ['MR'], + 'nidzicki' => ['NI'], + 'nowomiejski' => ['NM'], + 'olecki' => ['OE'], + 'gołdapski' => ['GO'], + 'olsztyński' => ['OL'], + 'ostródzki' => ['OS'], + 'piski' => ['PI'], + 'szczycieński' => ['SZ'], + 'węgorzewski' => ['WE'], + ], + 'wielkopolskie' => [ + 'Kalisz' => ['A', 'K'], + 'Konin' => ['KO', 'N'], + 'Leszno' => ['L'], + 'Poznań' => ['O', 'Y'], + 'chodzieski' => ['CH'], + 'czarnkowsko-trzcianecki' => ['CT'], + 'gnieźnieński' => ['GN'], + 'gostyński' => ['GS'], + 'grodziski' => ['GO'], + 'jarociński' => ['JA'], + 'kaliski' => ['KA'], + 'kępiński' => ['KE'], + 'kolski' => ['KL'], + 'koniński' => ['KN'], + 'kościański' => ['KS'], + 'krotoszyński' => ['KR'], + 'leszczyński' => ['LE'], + 'międzychodzki' => ['MI'], + 'nowotomyski' => ['NT'], + 'obornicki' => ['OB'], + 'ostrowski' => ['OS'], + 'ostrzeszowski' => ['OT'], + 'pilski' => ['P'], + 'pleszewski' => ['PL'], + 'poznański' => ['OZ', 'Z'], + 'rawicki' => ['RA'], + 'słupecki' => ['SL'], + 'szamotulski' => ['SZ'], + 'średzki' => ['SR'], + 'śremski' => ['SE'], + 'turecki' => ['TU'], + 'wągrowiecki' => ['WA'], + 'wolsztyński' => ['WL'], + 'wrzesiński' => ['WR'], + 'złotowski' => ['ZL'], + ], + 'zachodniopomorskie' => [ + 'Koszalin' => ['K'], + 'Szczecin' => ['S', 'Z'], + 'Świnoujście' => ['SW'], + 'białogardzki' => ['BI'], + 'choszczeński' => ['CH'], + 'drawski' => ['DR'], + 'goleniowski' => ['GL'], + 'gryficki' => ['GY'], + 'gryfiński' => ['GR'], + 'kamieński' => ['KA'], + 'kołobrzeski' => ['KL'], + 'koszaliński' => ['KO'], + 'łobeski' => ['LO'], + 'myśliborski' => ['MY'], + 'policki' => ['PL'], + 'pyrzycki' => ['PY'], + 'sławieński' => ['SL'], + 'stargardzki' => ['ST'], + 'szczecinecki' => ['SZ'], + 'świdwiński' => ['SD'], + 'wałecki' => ['WA'], + ], + 'army' => [ + 'Siły Zbrojne Rzeczypospolitej Polskiej' => ['A', 'B', 'C', 'D', 'E', 'G', 'I', 'J', 'K', 'L'], + ], + 'services' => [ + 'Centralne Biuro Antykorupcyjne' => ['A'], + 'Służba Ochrony Państwa' => ['BA', 'BB', 'BE', 'BF', 'BG'], + 'Służba Celno-Skarbowa' => ['CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CR'], + 'Agencja Bezpieczeństwa Wewnętrznego' => ['K'], + 'Agencja Wywiadu' => ['K'], + 'Służba Kontrwywiadu Wojskowego' => ['M'], + 'Służba Wywiadu Wojskowego' => ['M'], + 'Policja' => ['PA', 'PB', 'PC', 'PD', 'PE', 'PF', 'PG', 'PH', 'PJ', 'PK', 'PL', 'PL', 'PL', 'PL', 'PL', 'PM', 'PN', 'PP', 'PS', 'PT', 'PU', 'PW', 'PZ'], + 'Straż Graniczna' => ['WA', 'WK'], + ], + ]; + + /** + * @var array list of regex expressions matching Polish license plate suffixess when county code is 1 character long. + */ + protected static $plateSuffixesGroup1 = [ + '\d{5}', + '\d{4}[A-PR-Z]', + '\d{3}[A-PR-Z]{2}', + '[1-9][A-PR-Z]\d{3}', + '[1-9][A-PR-Z]{2}\d{2}', + ]; + + /** + * @var array list of regex expressions matching Polish license plate suffixess when county code is 2 characters long. + */ + protected static $plateSuffixesGroup2 = [ + '[A-PR-Z]\d{3}', + '\d{2}[A-PR-Z]{2}', + '[1-9][A-PR-Z]\d{2}', + '\d{2}[A-PR-Z][1-9]', + '[1-9][A-PR-Z]{2}[1-9]', + '[A-PR-Z]{2}\d{2}', + '\d{5}', + '\d{4}[A-PR-Z]', + '\d{3}[A-PR-Z]{2}', + '[A-PR-Z]\d{2}[A-PR-Z]', + '[A-PR-Z][1-9][A-PR-Z]{2}', + ]; + + /** + * Generates random license plate. + * + * @param bool $special whether special license plates should be included + * @param array|null $voivodeships list of voivodeships license plate should be generated from + * @param array|null $counties list of counties license plate should be generated from + */ + public static function licensePlate( + bool $special = false, + ?array $voivodeships = null, + ?array $counties = null + ): string { + $voivodeshipsAvailable = static::$voivodeships + ($special ? static::$specials : []); + $voivodeshipSelected = static::selectRandomArea($voivodeshipsAvailable, $voivodeships); + $voivodeshipCode = static::randomElement($voivodeshipsAvailable[$voivodeshipSelected]); + + $countiesAvailable = static::$counties[$voivodeshipSelected]; + $countySelected = self::selectRandomArea($countiesAvailable, $counties); + + $countyCode = static::randomElement(static::$counties[$voivodeshipSelected][$countySelected]); + + $suffix = static::regexify(static::randomElement(strlen($countyCode) === 1 ? static::$plateSuffixesGroup1 : static::$plateSuffixesGroup2)); + + return "{$voivodeshipCode}{$countyCode} {$suffix}"; + } + + /** + * Selects random area from the list of available and requested. + * + * @return string + */ + protected static function selectRandomArea(array $available, ?array $requested) + { + $requested = array_intersect(array_keys($available), $requested ?? []); + + if (empty($requested)) { + $requested = array_keys($available); + } + + return static::randomElement($requested); + } +} diff --git a/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Payment.php new file mode 100644 index 0000000..f2a6030 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Payment.php @@ -0,0 +1,120 @@ + 'Narodowy Bank Polski', + '102' => 'Powszechna Kasa Oszczędności Bank Polski Spółka Akcyjna', + '103' => 'Bank Handlowy w Warszawie Spółka Akcyjna', + '105' => 'ING Bank Śląski Spółka Akcyjna', + '106' => 'Bank BPH Spółka Akcyjna', + '109' => 'Santander Bank Polska Spółka Akcyjna', + '113' => 'Bank Gospodarstwa Krajowego', + '114' => 'mBank Spółka Akcyjna', + '116' => 'Bank Millennium Spółka Akcyjna', + '122' => 'Bank Handlowo-Kredytowy Spółka Akcyjna w Katowicach w likwidacji', + '124' => 'Bank Polska Kasa Opieki Spółka Akcyjna', + '132' => 'Bank Pocztowy Spółka Akcyjna', + '154' => 'Bank Ochrony Środowiska Spółka Akcyjna', + '158' => 'Mercedes-Benz Bank Polska Spółka Akcyjna', + '161' => 'SGB-Bank Spółka Akcyjna', + '168' => 'PLUS BANK Spółka Akcyjna', + '184' => 'Société Générale Spółka Akcyjna Oddział w Polsce', + '187' => 'Nest Bank Spółka Akcyjna', + '189' => 'Pekao Bank Hipoteczny Spółka Akcyjna', + '191' => 'Deutsche Bank Polska Spółka Akcyjna', + '193' => 'BANK POLSKIEJ SPÓŁDZIELCZOŚCI SPÓŁKA AKCYJNA', + '194' => 'Credit Agricole Bank Polska Spółka Akcyjna', + '195' => 'Idea Bank Spółka Akcyjna', + '203' => 'BNP Paribas Bank Polska Spółka Akcyjna', + '212' => 'Santander Consumer Bank Spółka Akcyjna', + '215' => 'mBank Hipoteczny Spółka Akcyjna', + '216' => 'Toyota Bank Polska Spółka Akcyjna', + '219' => 'DNB Bank Polska Spółka Akcyjna', + '224' => 'Banque PSA Finance Spółka Akcyjna Oddział w Polsce', + '225' => 'Svenska Handelsbanken AB Spółka Akcyjna Oddział w Polsce', + '235' => 'BNP Paribas S.A. Oddział w Polsce ', + '236' => 'Danske Bank A/S Spółka Akcyjna Oddział w Polsce', + '237' => 'Skandinaviska Enskilda Banken AB (Spółka Akcyjna) - Oddział w Polsce', + '239' => 'CAIXABANK, S.A. (SPÓŁKA AKCYJNA) ODDZIAŁ W POLSCE', + '241' => 'Elavon Financial Services Designated Activity Company (Spółka z O.O. o Wyznaczonym Przedmiocie Działalności) Oddział w Polsce', + '243' => 'BNP Paribas Securities Services Spółka Komandytowo - Akcyjna Oddział w Polsce', + '247' => 'HAITONG BANK, S.A. Spółka Akcyjna Oddział w Polsce', + '248' => 'Getin Noble Bank Spółka Akcyjna', + '249' => 'Alior Bank Spółka Akcyjna', + '251' => 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce', + '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce', + '255' => 'Ikano Bank AB (publ) Spółka Akcyjna Oddział w Polsce', + '256' => 'Nordea Bank Abp Spółka Akcyjna Oddział w Polsce', + '258' => 'J.P. Morgan Europe Limited Spółka z ograniczoną odpowiedzialnością Oddział w Polsce', + '260' => 'Bank of China (Luxembourg) S.A. Spółka Akcyjna Oddział w Polsce', + '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', + '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce', + '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce', + '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce', + '267' => 'Western Union International Bank GmbH, Sp. z o.o. Oddział w Polsce', + '269' => 'PKO Bank Hipoteczny Spółka Akcyjna', + '270' => 'TF BANK AB (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', + '271' => 'FCE Bank Spółka Akcyjna Oddział w Polsce', + '272' => 'AS Inbank Spółka Akcyjna - Oddział w Polsce', + '273' => 'China Construction Bank (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', + '274' => 'MUFG Bank (Europe) N.V. S.A. Oddział w Polsce', + '275' => 'John Deere Bank S.A. Spółka Akcyjna Oddział w Polsce ', + '277' => 'Volkswagen Bank GmbH Spółka z ograniczoną odpowiedzialnością Oddział w Polsce', + '278' => 'ING Bank Hipoteczny Spółka Akcyjna', + '279' => 'Raiffeisen Bank International AG (Spółka Akcyjna) Oddział w Polsce', + '280' => 'HSBC France (Spółka Akcyjna) Oddział w Polsce', + '281' => 'Goldman Sachs Bank Europe SE Spółka Europejska Oddział w Polsce', + '283' => 'J.P. Morgan AG (Spółka Akcyjna) Oddział w Polsce', + '284' => 'UBS Europe SE (Spółka Europejska) Oddział w Polsce', + '285' => 'Banca Farmafactoring S.p.A. Spółka Akcyjna Oddział w Polsce', + '286' => 'FCA Bank S.p.A. Spółka Akcyjna Oddział w Polsce', + '287' => 'Bank Nowy BFG Spółka Akcyjna', + '288' => 'ALLFUNDS BANK S.A.U. (SPÓŁKA AKCYJNA) ODDZIAŁ W POLSCE', + ]; + + /** + * @example 'Euro Bank SA' + */ + public static function bank() + { + return static::randomElement(static::$banks); + } + + /** + * International Bank Account Number (IBAN) + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * + * @return string + */ + public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null) + { + return static::iban($countryCode, $prefix, $length); + } + + protected static function addBankCodeChecksum($iban, $countryCode = 'PL') + { + if ($countryCode != 'PL' || strlen($iban) <= 8) { + return $iban; + } + $checksum = 0; + $weights = [7, 1, 3, 9, 7, 1, 3]; + + for ($i = 0; $i < 7; ++$i) { + $checksum += $weights[$i] * (int) $iban[$i]; + } + $checksum = $checksum % 10; + + return substr($iban, 0, 7) . $checksum . substr($iban, 8); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Person.php similarity index 79% rename from vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Person.php index 380f4d9..6d7312d 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Person.php @@ -4,34 +4,35 @@ /** * Most popular first and last names published by Ministry of the Interior: - * @link https://msw.gov.pl/pl/sprawy-obywatelskie/ewidencja-ludnosci-dowo/statystyki-imion-i-nazw + * + * @see https://msw.gov.pl/pl/sprawy-obywatelskie/ewidencja-ludnosci-dowo/statystyki-imion-i-nazw */ class Person extends \Faker\Provider\Person { - protected static $lastNameFormat = array( + protected static $lastNameFormat = [ '{{lastNameMale}}', '{{lastNameFemale}}', - ); + ]; - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{firstNameMale}} {{lastNameMale}}', '{{firstNameMale}} {{lastNameMale}}', '{{firstNameMale}} {{lastNameMale}}', '{{title}} {{firstNameMale}} {{lastNameMale}}', '{{firstNameMale}} {{lastNameMale}}', '{{title}} {{title}} {{firstNameMale}} {{lastNameMale}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{firstNameFemale}} {{lastNameFemale}}', '{{firstNameFemale}} {{lastNameFemale}}', '{{firstNameFemale}} {{lastNameFemale}}', '{{title}} {{firstNameFemale}} {{lastNameFemale}}', '{{firstNameFemale}} {{lastNameFemale}}', '{{title}} {{title}} {{firstNameFemale}} {{lastNameFemale}}', - ); + ]; - protected static $firstNameMale = array( + protected static $firstNameMale = [ 'Adam', 'Adrian', 'Alan', 'Albert', 'Aleks', 'Aleksander', 'Alex', 'Andrzej', 'Antoni', 'Arkadiusz', 'Artur', 'Bartek', 'Błażej', 'Borys', 'Bruno', 'Cezary', 'Cyprian', 'Damian', 'Daniel', 'Dariusz', 'Dawid', 'Dominik', 'Emil', 'Ernest', 'Eryk', 'Fabian', 'Filip', 'Franciszek', 'Fryderyk', 'Gabriel', 'Grzegorz', 'Gustaw', 'Hubert', @@ -41,9 +42,9 @@ class Person extends \Faker\Provider\Person 'Michał', 'Mieszko', 'Mikołaj', 'Miłosz', 'Natan', 'Nataniel', 'Nikodem', 'Norbert', 'Olaf', 'Olgierd', 'Oliwier', 'Oskar', 'Patryk', 'Paweł', 'Piotr', 'Przemysław', 'Radosław', 'Rafał', 'Robert', 'Ryszard', 'Sebastian', 'Stanisław', 'Stefan', 'Szymon', 'Tadeusz', 'Tomasz', 'Tymon', 'Tymoteusz', 'Wiktor', 'Witold', 'Wojciech', - ); + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'Ada', 'Adrianna', 'Agata', 'Agnieszka', 'Aleksandra', 'Alicja', 'Amelia', 'Anastazja', 'Angelika', 'Aniela', 'Anita', 'Anna', 'Anna', 'Antonina', 'Apolonia', 'Aurelia', 'Barbara', 'Bianka', 'Blanka', 'Dagmara', 'Daria', 'Dominika', 'Dorota', 'Eliza', 'Elżbieta', 'Emilia', 'Ewa', 'Ewelina', 'Gabriela', 'Hanna', 'Helena', 'Ida', 'Iga', 'Inga', 'Izabela', @@ -53,9 +54,9 @@ class Person extends \Faker\Provider\Person 'Melania', 'Michalina', 'Milena', 'Monika', 'Nadia', 'Natalia', 'Natasza', 'Nela', 'Nicole', 'Nikola', 'Nina', 'Olga', 'Oliwia', 'Patrycja', 'Paulina', 'Pola', 'Roksana', 'Rozalia', 'Róża', 'Sandra', 'Sara', 'Sonia', 'Sylwia', 'Tola', 'Urszula', 'Weronika', 'Wiktoria', 'Zofia', 'Zuzanna', - ); + ]; - protected static $lastNameMale = array( + protected static $lastNameMale = [ 'Adamczyk', 'Adamski', 'Andrzejewski', 'Baran', 'Baranowski', 'Bąk', 'Błaszczyk', 'Borkowski', 'Borowski', 'Brzeziński', 'Chmielewski', 'Cieślak', 'Czarnecki', 'Czerwiński', 'Dąbrowski', 'Duda', 'Dudek', 'Gajewski', 'Głowacki', 'Górski', 'Grabowski', 'Jabłoński', 'Jakubowski', 'Jankowski', 'Jasiński', 'Jaworski', 'Kaczmarczyk', 'Kaczmarek', 'Kalinowski', 'Kamiński', 'Kaźmierczak', @@ -65,9 +66,9 @@ class Person extends \Faker\Provider\Person 'Rutkowski', 'Sadowski', 'Sawicki', 'Sikora', 'Sikorski', 'Sobczak', 'Sokołowski', 'Stępień', 'Szczepański', 'Szewczyk', 'Szulc', 'Szymański', 'Szymczak', 'Tomaszewski', 'Urbański', 'Walczak', 'Wasilewski', 'Wieczorek', 'Wilk', 'Wiśniewski', 'Witkowski', 'Włodarczyk', 'Wojciechowski', 'Woźniak', 'Wójcik', 'Wróbel', 'Wróblewski', 'Wysocki', 'Zając', 'Zakrzewski', 'Zalewski', 'Zawadzki', 'Zieliński', 'Ziółkowski', - ); + ]; - protected static $lastNameFemale = array( + protected static $lastNameFemale = [ 'Adamczyk', 'Adamska', 'Andrzejewska', 'Baran', 'Baranowska', 'Bąk', 'Błaszczyk', 'Borkowska', 'Borowska', 'Brzezińska', 'Chmielewska', 'Cieślak', 'Czarnecka', 'Czerwińska', 'Dąbrowska', 'Duda', 'Dudek', 'Gajewska', 'Głowacka', 'Górecka', 'Górska', 'Grabowska', 'Jabłońska', 'Jakubowska', 'Jankowska', 'Jasińska', 'Jaworska', 'Kaczmarczyk', 'Kaczmarek', 'Kalinowska', 'Kamińska', 'Kaźmierczak', @@ -77,25 +78,27 @@ class Person extends \Faker\Provider\Person 'Rutkowska', 'Sadowska', 'Sawicka', 'Sikora', 'Sikorska', 'Sobczak', 'Sokołowska', 'Stępień', 'Szczepańska', 'Szewczyk', 'Szulc', 'Szymańska', 'Szymczak', 'Tomaszewska', 'Urbańska', 'Walczak', 'Wasilewska', 'Wieczorek', 'Wilk', 'Wiśniewska', 'Witkowska', 'Włodarczyk', 'Wojciechowska', 'Woźniak', 'Wójcik', 'Wróbel', 'Wróblewska', 'Wysocka', 'Zając', 'Zakrzewska', 'Zalewska', 'Zawadzka', 'Zielińska', 'Ziółkowska', - ); + ]; /** - * * Unisex academic degree * - * @var string + * @var string[] */ - protected static $title = array('mgr','inż.', 'dr', 'doc.'); + protected static $title = ['mgr', 'inż.', 'dr', 'doc.']; /** * @param string|null $gender 'male', 'female' or null for any + * * @example 'Adamczyk' */ public function lastName($gender = null) { if ($gender === static::GENDER_MALE) { return static::lastNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { + } + + if ($gender === static::GENDER_FEMALE) { return static::lastNameFemale(); } @@ -122,7 +125,7 @@ public function title($gender = null) */ public static function titleMale() { - return static::title(); + return static::randomElement(static::$title); } /** @@ -130,15 +133,18 @@ public static function titleMale() */ public static function titleFemale() { - return static::title(); + return static::randomElement(static::$title); } /** * PESEL - Universal Electronic System for Registration of the Population - * @link http://en.wikipedia.org/wiki/PESEL - * @param DateTime $birthdate - * @param string $sex M for male or F for female - * @return string 11 digit number, like 44051401358 + * + * @see http://en.wikipedia.org/wiki/PESEL + * + * @param DateTime $birthdate + * @param string $sex M for male or F for female + * + * @return string 11 digit number, like 44051401358 */ public static function pesel($birthdate = null, $sex = null) { @@ -146,27 +152,29 @@ public static function pesel($birthdate = null, $sex = null) $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury(); } - $weights = array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3); + $weights = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]; $length = count($weights); $fullYear = (int) $birthdate->format('Y'); $year = (int) $birthdate->format('y'); - $month = $birthdate->format('m') + (((int) ($fullYear/100) - 14) % 5) * 20; + $month = $birthdate->format('m') + (((int) ($fullYear / 100) - 14) % 5) * 20; $day = $birthdate->format('d'); - $result = array((int) ($year / 10), $year % 10, (int) ($month / 10), $month % 10, (int) ($day / 10), $day % 10); + $result = [(int) ($year / 10), $year % 10, (int) ($month / 10), $month % 10, (int) ($day / 10), $day % 10]; - for ($i = 6; $i < $length; $i++) { + for ($i = 6; $i < $length; ++$i) { $result[$i] = static::randomDigit(); } $result[$length - 1] |= 1; - if ($sex == "F") { + + if ($sex == 'F') { $result[$length - 1] -= 1; } $checksum = 0; - for ($i = 0; $i < $length; $i++) { + + for ($i = 0; $i < $length; ++$i) { $checksum += $weights[$i] * $result[$i]; } $checksum = (10 - ($checksum % 10)) % 10; @@ -177,45 +185,53 @@ public static function pesel($birthdate = null, $sex = null) /** * National Identity Card number - * @link http://en.wikipedia.org/wiki/Polish_National_Identity_Card + * + * @see http://en.wikipedia.org/wiki/Polish_National_Identity_Card + * * @return string 3 letters and 6 digits, like ABA300000 */ public static function personalIdentityNumber() { - $range = str_split("ABCDEFGHIJKLMNPRSTUVWXYZ"); - $low = array("A", static::randomElement($range), static::randomElement($range)); - $high = array(static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit()); - $weights = array(7, 3, 1, 7, 3, 1, 7, 3); + $range = str_split('ABCDEFGHIJKLMNPRSTUVWXYZ'); + $low = ['A', static::randomElement($range), static::randomElement($range)]; + $high = [static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit()]; + $weights = [7, 3, 1, 7, 3, 1, 7, 3]; $checksum = 0; - for ($i = 0, $size = count($low); $i < $size; $i++) { + + for ($i = 0, $size = count($low); $i < $size; ++$i) { $checksum += $weights[$i] * (ord($low[$i]) - 55); } - for ($i = 0, $size = count($high); $i < $size; $i++) { - $checksum += $weights[$i+3] * $high[$i]; + + for ($i = 0, $size = count($high); $i < $size; ++$i) { + $checksum += $weights[$i + 3] * $high[$i]; } $checksum %= 10; - return implode('', $low).$checksum.implode('', $high); + return implode('', $low) . $checksum . implode('', $high); } /** * Taxpayer Identification Number (NIP in Polish) - * @link http://en.wikipedia.org/wiki/PESEL#Other_identifiers - * @link http://pl.wikipedia.org/wiki/NIP + * + * @see http://en.wikipedia.org/wiki/PESEL#Other_identifiers + * @see http://pl.wikipedia.org/wiki/NIP + * * @return string 10 digit number */ public static function taxpayerIdentificationNumber() { - $weights = array(6, 5, 7, 2, 3, 4, 5, 6, 7); - $result = array(); + $weights = [6, 5, 7, 2, 3, 4, 5, 6, 7]; + $result = []; + do { - $result = array( + $result = [ static::randomDigitNotNull(), static::randomDigitNotNull(), static::randomDigitNotNull(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), - ); + ]; $checksum = 0; - for ($i = 0, $size = count($result); $i < $size; $i++) { + + for ($i = 0, $size = count($result); $i < $size; ++$i) { $checksum += $weights[$i] * $result[$i]; } $checksum %= 11; diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/PhoneNumber.php similarity index 87% rename from vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/pl_PL/PhoneNumber.php index 65bc5c0..d421539 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+48 ## ### ## ##', '0048 ## ### ## ##', '### ### ###', @@ -14,5 +14,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '(##) ### ## ##', '+48(##)#######', '0048(##)#######', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Text.php index 9739b83..b0408c8 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Text.php @@ -65,6 +65,7 @@ class Text extends \Faker\Provider\Text * KARAKONY WICHURA NOC WIELKIEGO SEZONU * * @see http://www.gutenberg.org/cache/epub/8119/pg8119.txt + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Address.php similarity index 78% rename from vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Address.php index 68b6df0..10bdd57 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Address.php @@ -4,33 +4,33 @@ class Address extends \Faker\Provider\Address { - protected static $cityPrefix = array('São', 'Porto', 'Vila', 'Santa'); - protected static $citySuffix = array('do Norte', 'do Leste', 'do Sul', 'd\'Oeste'); - protected static $streetPrefix = array( - 'Av.', 'Avenida', 'R.', 'Rua', 'Travessa', 'Largo' - ); - protected static $buildingNumber = array('#####', '####', '###', '##', '#'); - protected static $postcode = array('#####-###'); - protected static $state = array( + protected static $cityPrefix = ['São', 'Porto', 'Vila', 'Santa']; + protected static $citySuffix = ['do Norte', 'do Leste', 'do Sul', 'd\'Oeste']; + protected static $streetPrefix = [ + 'Av.', 'Avenida', 'R.', 'Rua', 'Travessa', 'Largo', + ]; + protected static $buildingNumber = ['%####', '%###', '%##', '%#', '%']; + protected static $postcode = ['#####-###']; + protected static $state = [ 'Acre', 'Alagoas', 'Amapá', 'Amazonas', 'Bahia', 'Ceará', 'Distrito Federal', 'Espírito Santo', 'Goiás', 'Maranhão', 'Mato Grosso', 'Mato Grosso do Sul', 'Minas Gerais', 'Pará', 'Paraíba', 'Paraná', 'Pernambuco', 'Piauí', 'Rio de Janeiro', 'Rio Grande do Norte', 'Rio Grande do Sul', 'Rondônia', 'Roraima', - 'Santa Catarina', 'São Paulo', 'Sergipe', 'Tocantins' - ); - protected static $stateAbbr = array( + 'Santa Catarina', 'São Paulo', 'Sergipe', 'Tocantins', + ]; + protected static $stateAbbr = [ 'AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', - 'SP', 'SE', 'TO' - ); - protected static $region = array( - 'Centro-Oeste', 'Nordeste', 'Norte', 'Sudeste', 'Sul' - ); - protected static $regionAbbr = array( - 'CO', 'N', 'NE', 'SE', 'S' - ); - protected static $country = array( + 'SP', 'SE', 'TO', + ]; + protected static $region = [ + 'Centro-Oeste', 'Nordeste', 'Norte', 'Sudeste', 'Sul', + ]; + protected static $regionAbbr = [ + 'CO', 'N', 'NE', 'SE', 'S', + ]; + protected static $country = [ 'Afeganistão', 'África do Sul', 'Albânia', 'Alemanha', 'Andorra', 'Angola', 'Antigua e Barbuda', 'Arabia Saudita', 'Argélia', 'Argentina', 'Armênia', 'Austrália', 'Áustria', 'Azerbaijão', @@ -44,7 +44,7 @@ class Address extends \Faker\Provider\Address 'Djibouti', 'Domênica', 'Equador', 'Egito', 'El Salvador', 'Emirados Árabes Unidos', 'Eritrea', 'Eslováquia', 'Eslovênia', 'Espanha', 'Estados Unidos da América', 'Estônia', 'Etiópia', - 'Filipinas', 'Finlândia', 'Fiji','França', 'Gabão', 'Gâmbia', + 'Filipinas', 'Finlândia', 'Fiji', 'França', 'Gabão', 'Gâmbia', 'Georgia', 'Gana', 'Granada', 'Grécia', 'Guatemala', 'Guiné Equatorial', 'Guiné Bissau', 'Guiana', 'Haiti', 'Honduras', 'Hungria', 'Índia', 'Indonésia', 'Iraque', 'Irlanda', 'Irã', @@ -56,7 +56,7 @@ class Address extends \Faker\Provider\Address 'Marrocos', 'Mauritânia', 'Micronésia', 'Moldávia', 'Mongólia', 'Montenegro', 'Moçambique', 'México', 'Mônaco', 'Namíbia', 'Nauru', 'Nepal', 'Nicarágua', 'Nigéria', 'Noruega', 'Nova Guiné', - 'Nova Zelândia', 'Níger', 'Omã', 'Qatar', 'Quênia','Quirguistão', + 'Nova Zelândia', 'Níger', 'Omã', 'Qatar', 'Quênia', 'Quirguistão', 'Paquistão', 'Palaos', 'Panamá', 'Papua Nova Guiné', 'Paraguai', 'Países Baixos', 'Peru', 'Polônia', 'Portugal', 'Reino Unido', 'Reino Unido da Grã Bretanha e Irlanda do Norte', @@ -70,31 +70,31 @@ class Address extends \Faker\Provider\Address 'Togo', 'Tonga', 'Trinidad e Tobago', 'Turcomenistão', 'Turquia', 'Tuvalu', 'Tunísia', 'Ucrânia', 'Uganda', 'Uruguai', 'Uzbequistão', 'Vaticano', 'Vanuatu', 'Venezuela', 'Vietnã', 'Yemen', 'Zâmbia', - 'Zimbábue' - ); - protected static $cityFormats = array( + 'Zimbábue', + ]; + protected static $cityFormats = [ '{{cityPrefix}} {{firstName}} {{citySuffix}}', '{{cityPrefix}} {{firstName}}', '{{firstName}} {{citySuffix}}', '{{lastName}} {{citySuffix}}', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ '{{streetPrefix}} {{firstName}}', '{{streetPrefix}} {{lastName}}', - '{{streetPrefix}} {{firstName}} {{lastName}}' - ); - protected static $streetAddressFormats = array( + '{{streetPrefix}} {{firstName}} {{lastName}}', + ]; + protected static $streetAddressFormats = [ '{{streetName}}, {{buildingNumber}}', '{{streetName}}, {{buildingNumber}}. {{secondaryAddress}}', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{postcode}}, {{streetAddress}}\n{{city}} - {{stateAbbr}}", - ); - protected static $secondaryAddressFormats = array( + ]; + protected static $secondaryAddressFormats = [ 'Bloco A', 'Bloco B', 'Bloco C', 'Bc. # Ap. ##', 'Bc. ## Ap. ##', '#º Andar', '##º Andar', '###º Andar', 'Apto #', 'Apto ##', 'Apto ###', - 'Apto ####', 'F', 'Fundos', 'Anexo' - ); + 'Apto ####', 'F', 'Fundos', 'Anexo', + ]; /** * @example 'Avenida' @@ -135,7 +135,7 @@ public static function stateAbbr() { return static::randomElement(static::$stateAbbr); } - + /** * @example 'Nordeste' */ @@ -143,7 +143,7 @@ public static function region() { return static::randomElement(static::$region); } - + /** * @example 'NE' */ diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Company.php similarity index 62% rename from vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Company.php index 74f3567..721f056 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Company.php @@ -2,24 +2,27 @@ namespace Faker\Provider\pt_BR; -require_once "check_digit.php"; +require_once 'check_digit.php'; class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}}-{{lastName}}', '{{lastName}} e {{lastName}}', '{{lastName}} e {{lastName}} {{companySuffix}}', - '{{lastName}} Comercial Ltda.' - ); + '{{lastName}} Comercial Ltda.', + ]; - protected static $companySuffix = array('e Filhos', 'e Associados', 'Ltda.', 'S.A.'); + protected static $companySuffix = ['e Filhos', 'e Associados', 'Ltda.', 'S.A.']; /** * A random CNPJ number. - * @link http://en.wikipedia.org/wiki/CNPJ + * + * @see http://en.wikipedia.org/wiki/CNPJ + * * @param bool $formatted If the number should have dots/slashes/dashes or not. + * * @return string */ public function cnpj($formatted = true) @@ -28,6 +31,6 @@ public function cnpj($formatted = true) $n .= check_digit($n); $n .= check_digit($n); - return $formatted? vsprintf('%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d', str_split($n)) : $n; + return $formatted ? vsprintf('%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d', str_split($n)) : $n; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Internet.php new file mode 100644 index 0000000..fc68ae6 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Internet.php @@ -0,0 +1,9 @@ + array( - "4##############" - ), - 'MasterCard' => array( - "5##############" - ), - 'American Express' => array( - "34############", - "37############" - ), - 'Discover Card' => array( - "6011###########", - "622############", - "64#############", - "65#############" - ), - 'Diners' => array( - "301############", - "301##########", - "305############", - "305##########", - "36#############", - "36###########", - "38#############", - "38###########", - ), - 'Elo' => array( - "636368#########", - "438935#########", - "504175#########", - "451416#########", - "636297#########", - "5067###########", - "4576###########", - "4011###########", - ), - 'Hipercard' => array( - "38#############", - "60#############", - ), - "Aura" => array( - "50#############" - ) - ); + protected static $cardParams = [ + 'Visa' => [ + '4##############', + ], + 'MasterCard' => [ + '5##############', + ], + 'American Express' => [ + '34############', + '37############', + ], + 'Discover Card' => [ + '6011###########', + '622############', + '64#############', + '65#############', + ], + 'Diners' => [ + '301############', + '301##########', + '305############', + '305##########', + '36#############', + '36###########', + '38#############', + '38###########', + ], + 'Elo' => [ + '636368#########', + '438935#########', + '504175#########', + '451416#########', + '636297#########', + '5067###########', + '4576###########', + '4011###########', + ], + 'Hipercard' => [ + '38#############', + '60#############', + ], + 'Aura' => [ + '50#############', + ], + ]; /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'BR', $length = null) @@ -70,11 +73,10 @@ public static function bankAccountNumber($prefix = '', $countryCode = 'BR', $len return static::iban($countryCode, $prefix, $length); } - /** * @see list of Brazilians banks (2018-02-15), source: https://pt.wikipedia.org/wiki/Lista_de_bancos_do_Brasil */ - protected static $banks = array( + protected static $banks = [ 'BADESUL Desenvolvimento S.A. – Agência de Fomento/RS', 'Banco Central do Brasil', 'Banco da Amazônia', @@ -134,7 +136,7 @@ public static function bankAccountNumber($prefix = '', $countryCode = 'BR', $len 'Banco Neon', 'Nu Pagamentos S.A', 'XP Investimentos Corretora de Câmbio Títulos e Valores Mobiliários S.A', - ); + ]; /** * @example 'Banco Neon' diff --git a/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Person.php new file mode 100644 index 0000000..6331e7b --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Person.php @@ -0,0 +1,159 @@ +generator->numerify('#########'); + $n .= check_digit($n); + $n .= check_digit($n); + + return $formatted ? vsprintf('%d%d%d.%d%d%d.%d%d%d-%d%d', str_split($n)) : $n; + } + + /** + * A random RG number, following Sao Paulo state's rules. + * + * @see http://pt.wikipedia.org/wiki/C%C3%A9dula_de_identidade + * + * @param bool $formatted If the number should have dots/dashes or not. + * + * @return string + */ + public function rg($formatted = true) + { + $n = $this->generator->numerify('########'); + $n .= check_digit($n); + + return $formatted ? vsprintf('%d%d.%d%d%d.%d%d%d-%s', str_split($n)) : $n; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/PhoneNumber.php similarity index 71% rename from vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/pt_BR/PhoneNumber.php index 4949eef..6601658 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/PhoneNumber.php @@ -4,36 +4,41 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $landlineFormats = array('2###-####', '3###-####', '4###-####'); + protected static $landlineFormats = ['2###-####', '3###-####', '4###-####']; /** - * Since december 2016 all mobile phone numbers in brazil begin with 9 and landlines 2, 3 or 4. - * @link http://www.anatel.gov.br/Portal/exibirPortalPaginaEspecial.do?org.apache.struts.taglib.html.TOKEN=9594e1d11fbc996d52bda44e608bb744&codItemCanal=1794&pastaSelecionada=2984 - */ - protected static $cellphoneFormats = array('9####-####'); + * Since december 2016 all mobile phone numbers in brazil begin with 9 and landlines 2, 3 or 4. + * + * @see http://www.anatel.gov.br/Portal/exibirPortalPaginaEspecial.do?org.apache.struts.taglib.html.TOKEN=9594e1d11fbc996d52bda44e608bb744&codItemCanal=1794&pastaSelecionada=2984 + */ + protected static $cellphoneFormats = ['9####-####']; /** * Generates a 2-digit area code not composed by zeroes. - * @link http://www.anatel.gov.br/legislacao/resolucoes/16-2001/383-resolucao-263. + * + * @see http://www.anatel.gov.br/legislacao/resolucoes/16-2001/383-resolucao-263. + * * @return string */ public static function areaCode() { - $areaCodes = array( + $areaCodes = [ '11', '12', '13', '14', '15', '16', '17', '18', '19', '21', '22', '24', '27', '28', '31', '32', '33', '34', '35', '37', '38', '41', '42', '43', '44', '45', '46', '47', '48', '49', '51', '53', '54', '55', '61', '62', '63', '64', '65', '66', '67', '68', '69', '71', '73', '74', '75', '77', '79', '81', '82', '83', '84', '85', '86', '87', '88', '89', '91', '92', - '93', '94', '95', '96', '97', '98', '99' - ); + '93', '94', '95', '96', '97', '98', '99', + ]; return self::randomElement($areaCodes); } /** * Generates a 9-digit cellphone number without formatting characters. + * * @param bool $formatted [def: true] If it should return a formatted number or not. + * * @return string */ public static function cellphone($formatted = true) @@ -41,7 +46,7 @@ public static function cellphone($formatted = true) $number = static::numerify(static::randomElement(static::$cellphoneFormats)); if (!$formatted) { - $number = strtr($number, array('-' => '')); + $number = strtr($number, ['-' => '']); } return $number; @@ -49,7 +54,9 @@ public static function cellphone($formatted = true) /** * Generates an 9-digit landline number without formatting characters. + * * @param bool $formatted [def: true] If it should return a formatted number or not. + * * @return string */ public static function landline($formatted = true) @@ -57,7 +64,7 @@ public static function landline($formatted = true) $number = static::numerify(static::randomElement(static::$landlineFormats)); if (!$formatted) { - $number = strtr($number, array('-' => '')); + $number = strtr($number, ['-' => '']); } return $number; @@ -65,39 +72,43 @@ public static function landline($formatted = true) /** * Randomizes between cellphone and landline numbers. + * * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return mixed */ public static function phone($formatted = true) { - $options = static::randomElement(array( - array('cellphone', false), - array('cellphone', true), - array('landline', null), - )); + $options = static::randomElement([ + ['cellphone', false], + ['cellphone', true], + ['landline', null], + ]); - return call_user_func("static::{$options[0]}", $formatted, $options[1]); + return call_user_func([static::class, $options[0]], $formatted, $options[1]); } /** * Generates a complete phone number. + * * @param string $type [def: landline] One of "landline" or "cellphone". Defaults to "landline" on invalid values. * @param bool $formatted [def: true] If the number should be formatted or not. + * * @return string */ protected static function anyPhoneNumber($type, $formatted = true) { - $area = static::areaCode(); - $number = ($type == 'cellphone')? + $area = static::areaCode(); + $number = ($type == 'cellphone') ? static::cellphone($formatted) : static::landline($formatted); - return $formatted? "($area) $number" : $area.$number; + return $formatted ? "($area) $number" : $area . $number; } /** * Concatenates {@link areaCode} and {@link cellphone} into a national cellphone number. + * * @param bool $formatted [def: true] If it should return a formatted number or not. + * * @return string */ public static function cellphoneNumber($formatted = true) @@ -107,7 +118,9 @@ public static function cellphoneNumber($formatted = true) /** * Concatenates {@link areaCode} and {@link landline} into a national landline number. + * * @param bool $formatted [def: true] If it should return a formatted number or not. + * * @return string */ public static function landlineNumber($formatted = true) @@ -117,21 +130,21 @@ public static function landlineNumber($formatted = true) /** * Randomizes between complete cellphone and landline numbers. - * @return mixed */ public function phoneNumber() { - $method = static::randomElement(array('cellphoneNumber', 'landlineNumber')); - return call_user_func("static::$method", true); + $method = static::randomElement(['cellphoneNumber', 'landlineNumber']); + + return call_user_func([static::class, $method], true); } /** * Randomizes between complete cellphone and landline numbers, cleared from formatting symbols. - * @return mixed */ public static function phoneNumberCleared() { - $method = static::randomElement(array('cellphoneNumber', 'landlineNumber')); - return call_user_func("static::$method", false); + $method = static::randomElement(['cellphoneNumber', 'landlineNumber']); + + return call_user_func([static::class, $method], false); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php new file mode 100644 index 0000000..ce60728 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php @@ -0,0 +1,3427 @@ += 12; + $verifier = 0; + + for ($i = 1; $i <= $length; ++$i) { + if (!$second_algorithm) { + $multiplier = $i + 1; + } else { + $multiplier = ($i >= 9) ? $i - 7 : $i + 1; + } + $verifier += $numbers[$length - $i] * $multiplier; + } + + $verifier = 11 - ($verifier % 11); + + if ($verifier >= 10) { + $verifier = 0; + } + + return $verifier; +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Address.php similarity index 85% rename from vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Address.php index d804ff2..0d3f850 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Address.php @@ -4,29 +4,33 @@ class Address extends \Faker\Provider\Address { - protected static $streetPrefix = array('Av.', 'Avenida', 'R.', 'Rua', 'Tv.', 'Travessa', 'Lg.', 'Largo'); + protected static $streetPrefix = ['Av.', 'Avenida', 'R.', 'Rua', 'Tv.', 'Travessa', 'Lg.', 'Largo']; - protected static $streetNameFormats = array( + protected static $streetNameFormats = [ '{{streetPrefix}} {{lastName}}', '{{streetPrefix}} {{firstName}} {{lastName}}', '{{streetPrefix}} St. {{firstName}} {{lastName}}', '{{streetPrefix}} São. {{firstName}}', '{{streetPrefix}} de {{lastName}}', - ); + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{streetName}}', '{{streetName}}, {{buildingNumber}}', '{{streetName}}, {{buildingNumber}}, {{secondaryAddress}}', - ); + ]; - /** @link http://www.univ-ab.pt/PINTAC/carta_normas.htm address example in letters **/ - protected static $addressFormats = array( - "{{streetAddress}} {{postcode}} {{city}}", - ); + /** + * @see http://www.univ-ab.pt/PINTAC/carta_normas.htm address example in letters * + */ + protected static $addressFormats = [ + '{{streetAddress}} {{postcode}} {{city}}', + ]; - /** @link http://www.mapadeportugal.net/indicecidades.asp **/ - private static $cities = array( + /** + * @see http://www.mapadeportugal.net/indicecidades.asp * + */ + private static $cities = [ 'Abrantes', 'Agualva-Cacém', 'Águeda', 'Albufeira', 'Alcácer do Sal', 'Alcobaça', 'Almada', 'Almeirim', 'Alverca do Ribatejo', 'Amadora', 'Amarante', 'Amora', 'Anadia', 'Angra do Heroísmo', 'Aveiro', 'Barcelos', 'Barreiro', 'Beja', 'Braga', 'Bragança', 'Caldas da Rainha', 'Camara de Lobos', 'Cantanhede', 'Cartaxo', 'Castelo Branco', 'Chaves', 'Coimbra', 'Covilhã', 'Elvas', 'Entroncamento', 'Ermesinde', 'Esmoriz', 'Espinho', 'Esposende', 'Estarreja', 'Estremoz', 'Évora', 'Fafe', 'Faro', 'Fátima', 'Felgueiras', 'Fiães', 'Figueira da Foz', 'Freamunde', 'Funchal', 'Fundão', 'Gafanha da Nazaré', 'Gondomar', 'Gouveia', 'Guarda', 'Guimarães', 'Horta', 'Ílhavo', 'Lagoa', 'Lagos', 'Lamego', @@ -35,24 +39,24 @@ class Address extends \Faker\Provider\Address 'Paredes', 'Penafiel', 'Peniche', 'Peso da Régua', 'Pinhel', 'Pombal', 'Ponta Delgada', 'Ponte de Sor', 'Portalegre', 'Portimão', 'Porto', 'Porto Santo', 'Póvoa de Santa Iria', 'Póvoa de Varzim', 'Quarteira', 'Queluz', 'Ribeira Grande', 'Rio Maior', 'Rio Tinto', 'Sacavém', 'Santa Comba Dão', 'Santa Cruz', 'Santa Maria da Feira', 'Santana', 'Santarém', 'Santiago do Cacém', 'Santo Tirso', 'São João da Madeira', 'São Mamede de Infesta', 'Seia', 'Seixal', 'Setúbal', 'Silves', 'Sines', 'Tarouca', 'Tavira', 'Tomar', 'Tondela', 'Torres Novas', 'Torres Vedras', 'Valbom', 'Vale de Cambra', 'Valongo', 'Valpaços', 'Vendas Novas', - 'Viana do Castelo', 'Vila do Conde', 'Vila Franca de Xira', 'Vila Nova de Famalicão', 'Vila Nova de Foz Côa', 'Vila Nova de Gaia', 'Vila Praia da Vitória', 'Vila Real', 'Vila Real de Santo António', 'Viseu', 'Vizela' - ); + 'Viana do Castelo', 'Vila do Conde', 'Vila Franca de Xira', 'Vila Nova de Famalicão', 'Vila Nova de Foz Côa', 'Vila Nova de Gaia', 'Vila Praia da Vitória', 'Vila Real', 'Vila Real de Santo António', 'Viseu', 'Vizela', + ]; - protected static $postcode = array( + protected static $postcode = [ '%##0-###', '%##0', '%##1-###', '%##1', '%##4-###', '%##4', '%##5-###', '%##5', '%##9-###', '%##9', - ); + ]; - protected static $buildingNumber = array('nº %', 'nº %%','nº %%%', '%', '%#', '%##'); + protected static $buildingNumber = ['nº %', 'nº %%', 'nº %%%', '%', '%#', '%##']; - protected static $secondaryAddressFormats = array( + protected static $secondaryAddressFormats = [ 'Bloco %', 'Bl. %', '%º Dir.', '%#º Dir.', '%º Dr.', '%#º Dr.', '%º Esq.', '%#º Esq.', '%º Eq.', '%#º Eq.', - ); + ]; /** * @example '6º Dir.' @@ -62,8 +66,10 @@ public static function secondaryAddress() return static::numerify(static::randomElement(static::$secondaryAddressFormats)); } - /** @link http://www.indexmundi.com/pt/ **/ - protected static $country = array( + /** + * @see http://www.indexmundi.com/pt/ * + */ + protected static $country = [ 'Afeganistão', 'África do Sul', 'Albânia', 'Alemanha', 'Andorra', 'Angola', 'Antigua e Barbuda', 'Arabia Saudita', 'Argélia', 'Argentina', 'Armênia', 'Austrália', 'Áustria', 'Azerbaijão', @@ -77,7 +83,7 @@ public static function secondaryAddress() 'Djibouti', 'Domênica', 'Equador', 'Egito', 'El Salvador', 'Emirados Árabes Unidos', 'Eritrea', 'Eslováquia', 'Eslovênia', 'Espanha', 'Estados Unidos da América', 'Estónia', 'Etiópia', - 'Filipinas', 'Finlândia', 'Fiji','França', 'Gabão', 'Gâmbia', + 'Filipinas', 'Finlândia', 'Fiji', 'França', 'Gabão', 'Gâmbia', 'Georgia', 'Gana', 'Granada', 'Grécia', 'Guatemala', 'Guiné Equatorial', 'Guiné Bissau', 'Guiana', 'Haiti', 'Honduras', 'Hungria', 'Índia', 'Indonésia', 'Iraque', 'Irlanda', 'Irã', @@ -89,7 +95,7 @@ public static function secondaryAddress() 'Marrocos', 'Mauritânia', 'Micronésia', 'Moldávia', 'Mongólia', 'Montenegro', 'Moçambique', 'México', 'Mónaco', 'Namíbia', 'Nauru', 'Nepal', 'Nicarágua', 'Nigéria', 'Noruega', 'Nova Guiné', - 'Nova Zelândia', 'Níger', 'Omã', 'Qatar', 'Quênia','Quirguistão', + 'Nova Zelândia', 'Níger', 'Omã', 'Qatar', 'Quênia', 'Quirguistão', 'Paquistão', 'Palaos', 'Panamá', 'Papua Nova Guiné', 'Paraguai', 'Países Baixos', 'Peru', 'Polónia', 'Portugal', 'Reino Unido', 'Reino Unido da Grã Bretanha e Irlanda do Norte', @@ -103,8 +109,8 @@ public static function secondaryAddress() 'Togo', 'Tonga', 'Trinidad e Tobago', 'Turcomenistão', 'Turquia', 'Tuvalu', 'Tunísia', 'Ucrânia', 'Uganda', 'Uruguai', 'Uzbequistão', 'Vaticano', 'Vanuatu', 'Venezuela', 'Vietnã', 'Yemen', 'Zâmbia', - 'Zimbábue' - ); + 'Zimbábue', + ]; /** * @example 'Avenida' ' Rua' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Company.php similarity index 59% rename from vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Company.php index 971d18f..b3df81e 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Company.php @@ -4,13 +4,13 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}} {{lastName}}', '{{lastName}} e {{lastName}}', '{{lastName}} {{lastName}} {{companySuffix}}', - 'Grupo {{lastName}} {{companySuffix}}' - ); + 'Grupo {{lastName}} {{companySuffix}}', + ]; - protected static $companySuffix = array('e Filhos', 'e Associados', 'Lda.', 'S.A.'); + protected static $companySuffix = ['e Filhos', 'e Associados', 'Lda.', 'S.A.']; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Internet.php new file mode 100644 index 0000000..e78274e --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/Internet.php @@ -0,0 +1,9 @@ + 0; $i--) { + for ($i = strlen($number); $i > 0; --$i) { $numbers[$i] = substr($number, $i - 1, 1); $partial[$i] = $numbers[$i] * $factor; $sum += $partial[$i]; + if ($factor == $base) { $factor = 1; } - $factor++; + ++$factor; } $res = $sum % 11; @@ -99,26 +102,24 @@ public static function dvCalcMod11($number) } /** - * - * @link http://nomesportugueses.blogspot.pt/2012/01/lista-dos-cem-nomes-mais-usados-em.html + * @see http://nomesportugueses.blogspot.pt/2012/01/lista-dos-cem-nomes-mais-usados-em.html */ - - protected static $firstNameMale = array( + protected static $firstNameMale = [ 'Rodrigo', 'João', 'Martim', 'Afonso', 'Tomás', 'Gonçalo', 'Francisco', 'Tiago', 'Diogo', 'Guilherme', 'Pedro', 'Miguel', 'Rafael', 'Gabriel', 'Santiago', 'Dinis', 'David', 'Duarte', 'José', 'Simão', 'Daniel', 'Lucas', 'Gustavo', 'André', 'Denis', 'Salvador', 'António', 'Vasco', 'Henrique', 'Lourenço', 'Manuel', 'Eduardo', 'Bernardo', 'Leandro', 'Luís', 'Diego', 'Leonardo', 'Alexandre', 'Rúben', 'Mateus', 'Ricardo', 'Vicente', 'Filipe', 'Bruno', 'Nuno', 'Carlos', 'Rui', 'Hugo', 'Samuel', 'Álvaro', - 'Matias', 'Fábio', 'Ivo', 'Paulo', 'Jorge', 'Xavier', 'Marco', 'Isaac', 'Raúl','Benjamim', + 'Matias', 'Fábio', 'Ivo', 'Paulo', 'Jorge', 'Xavier', 'Marco', 'Isaac', 'Raúl', 'Benjamim', 'Renato', 'Artur', 'Mário', 'Frederico', 'Cristiano', 'Ivan', 'Sérgio', 'Micael', 'Vítor', 'Edgar', 'Kevin', 'Joaquim', 'Igor', 'Ângelo', 'Enzo', 'Valentim', 'Flávio', 'Joel', 'Fernando', 'Sebastião', 'Tomé', 'César', 'Cláudio', 'Nelson', 'Lisandro', 'Jaime', 'Gil', 'Mauro', 'Sandro', 'Hélder', 'Matheus', 'William', 'Gaspar', 'Márcio', - 'Martinho', 'Emanuel', 'Marcos', 'Telmo', 'Davi', 'Wilson' - ); + 'Martinho', 'Emanuel', 'Marcos', 'Telmo', 'Davi', 'Wilson', + ]; - protected static $firstNameFemale = array( + protected static $firstNameFemale = [ 'Maria', 'Leonor', 'Matilde', 'Mariana', 'Ana', 'Beatriz', 'Inês', 'Lara', 'Carolina', 'Margarida', 'Joana', 'Sofia', 'Diana', 'Francisca', 'Laura', 'Sara', 'Madalena', 'Rita', 'Mafalda', 'Catarina', 'Luana', 'Marta', 'Íris', 'Alice', 'Bianca', 'Constança', 'Gabriela', 'Eva', 'Clara', 'Bruna', 'Daniela', @@ -129,9 +130,9 @@ public static function dvCalcMod11($number) 'Débora', 'Fabiana', 'Renata', 'Kyara', 'Kelly', 'Irina', 'Mélanie', 'Nádia', 'Cristiana', 'Liliana', 'Patrícia', 'Vera', 'Doriana', 'Ângela', 'Mia', 'Erica', 'Mónica', 'Isabela', 'Salomé', 'Cátia', 'Verónica', 'Violeta', 'Lorena', 'Érika', 'Vanessa', 'Iris', 'Anna', 'Viviane', 'Rebeca', 'Neuza', - ); + ]; - protected static $lastName = array( + protected static $lastName = [ 'Abreu', 'Almeida', 'Alves', 'Amaral', 'Amorim', 'Andrade', 'Anjos', 'Antunes', 'Araújo', 'Assunção', 'Azevedo', 'Baptista', 'Barbosa', 'Barros', 'Batista', 'Borges', 'Branco', 'Brito', 'Campos', 'Cardoso', 'Carneiro', 'Carvalho', 'Castro', 'Coelho', 'Correia', 'Costa', 'Cruz', 'Cunha', 'Domingues', 'Esteves', @@ -142,5 +143,5 @@ public static function dvCalcMod11($number) 'Nunes', 'Oliveira', 'Pacheco', 'Paiva', 'Pereira', 'Pinheiro', 'Pinho', 'Pinto', 'Pires', 'Ramos', 'Reis', 'Ribeiro', 'Rocha', 'Rodrigues', 'Santos', 'Silva', 'Simões', 'Soares', 'Sousa', 'Sá', 'Tavares', 'Teixeira', 'Torres', 'Valente', 'Vaz', 'Vicente', 'Vieira', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/PhoneNumber.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/pt_PT/PhoneNumber.php index 618a01c..948ba94 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/pt_PT/PhoneNumber.php @@ -4,10 +4,10 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - /* - * @link http://en.wikipedia.org/wiki/Telephone_numbers_in_Portugal + /** + * @see http://en.wikipedia.org/wiki/Telephone_numbers_in_Portugal */ - protected static $formats = array( + protected static $formats = [ '+351 91#######', '+351 92#######', '+351 93#######', @@ -34,14 +34,14 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '27#######', '28#######', '29#######', - ); + ]; - protected static $mobileNumberPrefixes = array( + protected static $mobileNumberPrefixes = [ '91#######', '92#######', '93#######', '96#######', - ); + ]; public static function mobileNumber() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Address.php similarity index 78% rename from vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Address.php index c1c5698..377b926 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Address.php @@ -1,20 +1,21 @@ generator->parse($format); - } - - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Payment.php index 5fb9543..826e818 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'MD', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Person.php similarity index 95% rename from vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Person.php index 4b77fdf..3e2e278 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ro_MD/Person.php @@ -1,25 +1,26 @@ generator->parse($format); - } - /** * @example 'Cluj' */ @@ -159,18 +150,4 @@ public function county() { return static::randomElement(static::$counties); } - - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Payment.php similarity index 50% rename from vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Payment.php index 980e8bb..5363785 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Payment.php @@ -6,10 +6,13 @@ class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits + * + * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number + * + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param int $length total length without country code and 2 check digits + * * @return string */ public static function bankAccountNumber($prefix = '', $countryCode = 'RO', $length = null) diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Person.php similarity index 89% rename from vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Person.php index e93f3ea..9077004 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Person.php @@ -1,25 +1,26 @@ '01', 'AR' => '02', 'AG' => '03', 'B' => '40', 'BC' => '04', 'BH' => '05', + protected static $cnpCountyCodes = [ + 'AB' => '01', 'AR' => '02', 'AG' => '03', 'B' => '40', 'BC' => '04', 'BH' => '05', 'BN' => '06', 'BT' => '07', 'BV' => '08', 'BR' => '09', 'BZ' => '10', 'CS' => '11', 'CL' => '51', 'CJ' => '12', 'CT' => '13', 'CV' => '14', 'DB' => '15', 'DJ' => '16', 'GL' => '17', 'GR' => '52', 'GJ' => '18', 'HR' => '19', 'HD' => '20', 'IL' => '21', @@ -97,33 +98,36 @@ class Person extends \Faker\Provider\Person 'OT' => '28', 'PH' => '29', 'SM' => '30', 'SJ' => '31', 'SB' => '32', 'SV' => '33', 'TR' => '34', 'TM' => '35', 'TL' => '36', 'VS' => '37', 'VL' => '38', 'VN' => '39', - 'B1' => '41', 'B2' => '42', 'B3' => '43', 'B4' => '44', 'B5' => '45', 'B6' => '46' - ); + 'B1' => '41', 'B2' => '42', 'B3' => '43', 'B4' => '44', 'B5' => '45', 'B6' => '46', + ]; /** * Personal Numerical Code (CNP) * - * @link http://ro.wikipedia.org/wiki/Cod_numeric_personal + * @see http://ro.wikipedia.org/wiki/Cod_numeric_personal + * * @example 1111111111118 * - * @param null|string $gender Person::GENDER_MALE or Person::GENDER_FEMALE - * @param null|string $dateOfBirth (1800-2099) 'Y-m-d', 'Y-m', 'Y' I.E. '1981-06-16', '2085-03', '1900' - * @param null|string $county county code where the CNP was issued - * @param null|bool $isResident flag if the person resides in Romania + * @param string|null $gender Person::GENDER_MALE or Person::GENDER_FEMALE + * @param string|null $dateOfBirth (1800-2099) 'Y-m-d', 'Y-m', 'Y' I.E. '1981-06-16', '2085-03', '1900' + * @param string|null $county county code where the CNP was issued + * @param bool|null $isResident flag if the person resides in Romania + * * @return string 13 digits CNP code */ public function cnp($gender = null, $dateOfBirth = null, $county = null, $isResident = true) { - $genders = array(Person::GENDER_MALE, Person::GENDER_FEMALE); + $genders = [Person::GENDER_MALE, Person::GENDER_FEMALE]; + if (empty($gender)) { $gender = static::randomElement($genders); - } elseif (!in_array($gender, $genders)) { + } elseif (!in_array($gender, $genders, false)) { throw new \InvalidArgumentException("Gender must be '{Person::GENDER_MALE}' or '{Person::GENDER_FEMALE}'"); } $date = $this->getDateOfBirth($dateOfBirth); - if (is_null($county)) { + if (null === $county) { $countyCode = static::randomElement(array_values(static::$cnpCountyCodes)); } elseif (!array_key_exists($county, static::$cnpCountyCodes)) { throw new \InvalidArgumentException("Invalid county code '{$county}' received"); @@ -131,7 +135,7 @@ public function cnp($gender = null, $dateOfBirth = null, $county = null, $isResi $countyCode = static::$cnpCountyCodes[$county]; } - $cnp = (string)$this->getGenderDigit($date, $gender, $isResident) + $cnp = (string) $this->getGenderDigit($date, $gender, $isResident) . $date->format('ymd') . $countyCode . static::numerify('##%') @@ -139,41 +143,46 @@ public function cnp($gender = null, $dateOfBirth = null, $county = null, $isResi $checksum = $this->getChecksumDigit($cnp); - return $cnp.$checksum; + return $cnp . $checksum; } /** - * @param $dateOfBirth + * @param string|null $dateOfBirth + * * @return \DateTime */ protected function getDateOfBirth($dateOfBirth) { if (empty($dateOfBirth)) { - $dateOfBirthParts = array(static::numberBetween(1800, 2099)); + $dateOfBirthParts = [self::numberBetween(1800, 2099)]; } else { $dateOfBirthParts = explode('-', $dateOfBirth); } - $baseDate = \Faker\Provider\DateTime::dateTimeBetween("first day of {$dateOfBirthParts[0]}", "last day of {$dateOfBirthParts[0]}"); + $baseDate = \Faker\Provider\DateTime::dateTimeBetween("first day of January {$dateOfBirthParts[0]}", "last day of December {$dateOfBirthParts[0]}"); switch (count($dateOfBirthParts)) { case 1: $dateOfBirthParts[] = $baseDate->format('m'); - //don't break, we need the day also + //don't break, we need the day also + // no break case 2: $dateOfBirthParts[] = $baseDate->format('d'); - //don't break, next line will + //don't break, next line will + // no break case 3: break; + default: throw new \InvalidArgumentException("Invalid date of birth - must be null or in the 'Y-m-d', 'Y-m', 'Y' format"); } if ($dateOfBirthParts[0] < 1800 || $dateOfBirthParts[0] > 2099) { - throw new \InvalidArgumentException("Invalid date of birth - year must be between 1900 and 2099, '{$dateOfBirthParts[0]}' received"); + throw new \InvalidArgumentException("Invalid date of birth - year must be between 1800 and 2099, '{$dateOfBirthParts[0]}' received"); } $dateOfBirthFinal = implode('-', $dateOfBirthParts); $date = \DateTime::createFromFormat('Y-m-d', $dateOfBirthFinal); + //a full (invalid) date might have been supplied, check if it converts if ($date->format('Y-m-d') !== $dateOfBirthFinal) { throw new \InvalidArgumentException("Invalid date of birth - '{$date->format('Y-m-d')}' generated based on '{$dateOfBirth}' received"); @@ -183,12 +192,11 @@ protected function getDateOfBirth($dateOfBirth) } /** - * * https://ro.wikipedia.org/wiki/Cod_numeric_personal#S * - * @param \DateTime $dateOfBirth - * @param bool $isResident + * @param bool $isResident * @param string $gender + * * @return int */ protected static function getGenderDigit(\DateTime $dateOfBirth, $gender, $isResident) @@ -201,6 +209,7 @@ protected static function getGenderDigit(\DateTime $dateOfBirth, $gender, $isRes if ($gender == Person::GENDER_MALE) { return 3; } + return 4; } @@ -208,12 +217,14 @@ protected static function getGenderDigit(\DateTime $dateOfBirth, $gender, $isRes if ($gender == Person::GENDER_MALE) { return 1; } + return 2; } if ($gender == Person::GENDER_MALE) { return 5; } + return 6; } @@ -221,6 +232,7 @@ protected static function getGenderDigit(\DateTime $dateOfBirth, $gender, $isRes * Calculates a checksum for the Personal Numerical Code (CNP). * * @param string $value 12 digit CNP + * * @return int checksum digit */ protected function getChecksumDigit($value) @@ -228,8 +240,9 @@ protected function getChecksumDigit($value) $checkNumber = 279146358279; $checksum = 0; + foreach (range(0, 11) as $digit) { - $checksum += (int)substr($value, $digit, 1) * (int)substr($checkNumber, $digit, 1); + $checksum += (int) substr($value, $digit, 1) * (int) substr($checkNumber, $digit, 1); } $checksum = $checksum % 11; diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/PhoneNumber.php similarity index 67% rename from vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/ro_RO/PhoneNumber.php index 377e224..01c5859 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/PhoneNumber.php @@ -4,8 +4,8 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $normalFormats = array( - 'landline' => array( + protected static $normalFormats = [ + 'landline' => [ '021#######', // Bucharest '023#######', '024#######', @@ -18,30 +18,30 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '035#######', '036#######', '037#######', // non-geographic - ), - 'mobile' => array( + ], + 'mobile' => [ '07########', - ) - ); + ], + ]; - protected static $specialFormats = array( - 'toll-free' => array( + protected static $specialFormats = [ + 'toll-free' => [ '0800######', '0801######', // shared-cost numbers '0802######', // personal numbering '0806######', // virtual cards '0807######', // pre-paid cards '0870######', // internet dial-up - ), - 'premium-rate' => array( + ], + 'premium-rate' => [ '0900######', '0903######', // financial information '0906######', // adult entertainment - ) - ); + ], + ]; /** - * @link http://en.wikipedia.org/wiki/Telephone_numbers_in_Romania#Last_years + * @see http://en.wikipedia.org/wiki/Telephone_numbers_in_Romania#Last_years */ public function phoneNumber() { @@ -52,15 +52,11 @@ public function phoneNumber() public static function tollFreePhoneNumber() { - $number = static::numerify(static::randomElement(static::$specialFormats['toll-free'])); - - return $number; + return static::numerify(static::randomElement(static::$specialFormats['toll-free'])); } public static function premiumRatePhoneNumber() { - $number = static::numerify(static::randomElement(static::$specialFormats['premium-rate'])); - - return $number; + return static::numerify(static::randomElement(static::$specialFormats['premium-rate'])); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Text.php index 410c6f9..1e40597 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Text.php @@ -11,7 +11,8 @@ class Text extends \Faker\Provider\Text * Language: Romanian * * @see https://creativecommons.org/licenses/by-sa/3.0/deed.en - * @link https://ro.wikisource.org/wiki/Neghini%C8%9B%C4%83 + * @see https://ro.wikisource.org/wiki/Neghini%C8%9B%C4%83 + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Address.php similarity index 91% rename from vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Address.php index aa0d408..7f2ba69 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Address.php @@ -4,21 +4,21 @@ class Address extends \Faker\Provider\Address { - protected static $cityPrefix = array('город'); + protected static $cityPrefix = ['город']; - protected static $regionSuffix = array('область'); - protected static $streetPrefix = array( + protected static $regionSuffix = ['область']; + protected static $streetPrefix = [ 'пер.', 'ул.', 'пр.', 'шоссе', 'пл.', 'бульвар', 'въезд', 'спуск', 'проезд', 'наб.', - ); + ]; + + protected static $buildingNumber = ['%#']; + protected static $postcode = ['######']; - protected static $buildingNumber = array('##'); - protected static $postcode = array('######'); - /** - * @link https://ru.wikipedia.org/wiki/Общероссийский_классификатор_стран_мира#Список_стран_согласно_Классификатору + * @see https://ru.wikipedia.org/wiki/Общероссийский_классификатор_стран_мира#Список_стран_согласно_Классификатору */ - protected static $country = array( + protected static $country = [ 'Абхазия', 'Австралия', 'Австрия', 'Азербайджан', 'Албания', 'Алжир', 'Американское Самоа', 'Ангилья', 'Ангола', 'Андорра', 'Антарктида', 'Антигуа и Барбуда', 'Аргентина', 'Армения', 'Аруба', 'Афганистан', 'Багамы', 'Бангладеш', 'Барбадос', 'Бахрейн', 'Беларусь', 'Белиз', 'Бельгия', 'Бенин', 'Бермуды', 'Болгария', 'Боливия', 'Бонэйр, Синт-Эстатиус и Саба', 'Босния и Герцеговина', 'Ботсвана', 'Бразилия', 'Британская Территория в Индийском Океане', 'Британские Виргинские Острова', 'Бруней', 'Буркина-Фасо', 'Бурунди', 'Бутан', 'Вануату', 'Ватикан', 'Венгрия', 'Венесуэла', 'Великобритания', 'Виргинские Острова Соединённых Штатов', 'Вьетнам', @@ -46,9 +46,9 @@ class Address extends \Faker\Provider\Address 'Эквадор', 'Экваториальная Гвинея', 'Эландские Острова', 'Эль-Сальвадор', 'Эритрея', 'Эстония', 'Эфиопия', 'Южная Африка', 'Южная Джорджия и Южные Сандвичевы Острова', 'Южная Осетия', 'Южный Судан', 'Ямайка', 'Япония', - ); + ]; - protected static $region = array( + protected static $region = [ 'Амурская', 'Архангельская', 'Астраханская', 'Белгородская', 'Брянская', 'Владимирская', 'Волгоградская', 'Вологодская', 'Воронежская', 'Ивановская', 'Иркутская', 'Калининградская', 'Калужская', 'Кемеровская', 'Кировская', @@ -59,9 +59,9 @@ class Address extends \Faker\Provider\Address 'Сахалинская', 'Свердловская', 'Смоленская', 'Тамбовская', 'Тверская', 'Томская', 'Тульская', 'Тюменская', 'Ульяновская', 'Челябинская', 'Читинская', 'Ярославская', - ); + ]; - protected static $city = array( + protected static $city = [ 'Балашиха', 'Видное', 'Волоколамск', 'Воскресенск', 'Дмитров', 'Домодедово', 'Дорохово', 'Егорьевск', 'Зарайск', 'Истра', 'Кашира', 'Клин', 'Коломна', 'Красногорск', 'Лотошино', @@ -70,20 +70,20 @@ class Address extends \Faker\Provider\Address 'Павловский Посад', 'Подольск', 'Пушкино', 'Раменское', 'Сергиев Посад', 'Серебряные Пруды', 'Серпухов', 'Солнечногорск', 'Ступино', 'Талдом', 'Чехов', 'Шатура', 'Шаховская', 'Щёлково', - ); + ]; - protected static $street = array( + protected static $street = [ 'Косиора', 'Ладыгина', 'Ленина', 'Ломоносова', 'Домодедовская', 'Гоголя', '1905 года', 'Чехова', 'Сталина', - 'Космонавтов', 'Гагарина', 'Славы', 'Бухарестская', 'Будапештсткая', 'Балканская' - ); + 'Космонавтов', 'Гагарина', 'Славы', 'Бухарестская', 'Будапештсткая', 'Балканская', + ]; - protected static $addressFormats = array( - "{{postcode}}, {{region}} {{regionSuffix}}, {{cityPrefix}} {{city}}, {{streetPrefix}} {{street}}, {{buildingNumber}}", - ); + protected static $addressFormats = [ + '{{postcode}}, {{region}} {{regionSuffix}}, {{cityPrefix}} {{city}}, {{streetPrefix}} {{street}}, {{buildingNumber}}', + ]; - protected static $streetAddressFormats = array( - "{{streetPrefix}} {{street}}, {{buildingNumber}}" - ); + protected static $streetAddressFormats = [ + '{{streetPrefix}} {{street}}, {{buildingNumber}}', + ]; public static function buildingNumber() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Color.php similarity index 92% rename from vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Color.php index e1af033..d31d120 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Color.php @@ -4,13 +4,13 @@ class Color extends \Faker\Provider\Color { - protected static $safeColorNames = array( + protected static $safeColorNames = [ 'черный', 'темно-бордовый', 'зеленый', 'темно-синий', 'оливковый', 'фиолетовый', 'зеленовато-голубой', 'синий', 'серебро', - 'серый', 'желтый', 'фуксия', 'цвет морской волны', 'белый' - ); + 'серый', 'желтый', 'фуксия', 'цвет морской волны', 'белый', + ]; - protected static $allColorNames = array( + protected static $allColorNames = [ 'Военно-воздушный синий', 'Синяя Элис', 'Ализариновый красный', 'Миндаль Крайола', 'Амарантовый', 'Янтарный', 'Американская роза', 'Аметистовый', 'Матовый белый', 'Античный белый', 'Яблочно-зеленый', 'Спаржа', 'Цвет морской волны', 'Аквамариновый', 'Армейский зелёный', 'Мышьяковый', 'Лазурный', 'Бежевый', @@ -19,5 +19,5 @@ class Color extends \Faker\Provider\Color 'Кобальт синий', 'Кремовый', 'Циан', 'Индиго', 'Фуксия', 'Кирпичный', 'Льняной', 'Золотой', 'Зелёный', 'Индиго', 'Нефритовый', 'Сиреневый', 'Охра', 'Панг', 'Берлинская лазурь', 'Красновато-коричневый', 'Сангрия', 'Сепия', 'Болотный', 'Тициановый', 'Чертополох', 'Глициния', 'Вино', 'Циннвальдит', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Company.php similarity index 69% rename from vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Company.php index 4d69302..9f5d572 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Company.php @@ -4,71 +4,73 @@ class Company extends \Faker\Provider\Company { - protected static $companyNameFormats = array( + protected static $companyNameFormats = [ '{{companyPrefix}} {{companyNameElement}}', '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}', '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}', '{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}{{companyNameSuffix}}', - ); + ]; - protected static $companyPrefixes = array( - 'ООО', 'ЗАО', 'ООО Компания', 'ОАО', 'ОАО', 'ПАО', 'МКК', 'МФО' - ); + protected static $companyPrefixes = [ + 'ООО', 'ЗАО', 'ООО Компания', 'ОАО', 'ОАО', 'ПАО', 'МКК', 'МФО', + ]; - protected static $companyNameSuffixes = array( - 'Маш', 'Наладка', 'Экспедиция', 'Пром', 'Комплекс', 'Машина', 'Снос', '-М', 'Лизинг', 'Траст', 'Снаб', - '-H', 'Трест', 'Банк', 'Опт', 'Проф', 'Сбыт', 'Центр' - ); + protected static $companyNameSuffixes = [ + 'Маш', 'Наладка', 'Экспедиция', 'Пром', 'Комплекс', 'Машина', 'Снос', '-М', 'Лизинг', 'Траст', 'Снаб', + '-H', 'Трест', 'Банк', 'Опт', 'Проф', 'Сбыт', 'Центр', + ]; /** * @note Words and parts of words that usually used in company names */ - protected static $companyElements = array( + protected static $companyElements = [ 'ЖелДор', 'Гараж', 'Цемент', 'Асбоцемент', 'Строй', 'Лифт', 'Креп', 'Авто', 'Теле', 'Транс', 'Алмаз', 'Метиз', 'Мотор', 'Рос', 'Тяж', 'Тех', 'Сантех', 'Урал', 'Башкир', 'Тверь', 'Казань', 'Обл', 'Бух', 'Хоз', 'Электро', 'Текстиль', 'Восток', 'Орион', 'Юпитер', 'Финанс', 'Микро', 'Радио', 'Мобайл', 'Дизайн', 'Метал', 'Нефть', 'Телеком', 'Инфо', 'Сервис', 'Софт', 'IT', 'Рыб', 'Глав', 'Вектор', 'Рем', 'Гор', 'Газ', 'Монтаж', 'Мор', - 'Реч', 'Флот', 'Cиб', 'Каз', 'Инж', 'Вод', 'Пив', 'Хмель', 'Мяс', 'Томск', 'Омск', 'Север', 'Лен' - ); + 'Реч', 'Флот', 'Cиб', 'Каз', 'Инж', 'Вод', 'Пив', 'Хмель', 'Мяс', 'Томск', 'Омск', 'Север', 'Лен', + ]; - protected static $catchPhraseWords = array( - array( + protected static $catchPhraseWords = [ + [ 'Адаптивная', 'Дополнительно', 'Улучшить', 'Ассимилировали', 'Автоматическая', 'Сбалансированный', 'Бизнес-ориентированных', 'Централизации', 'Клонировать', 'Совместимость', 'Настраивается', 'Кросс-группа', 'Кросс-платформы', 'Клиентоориентированного', 'Децентрализации', 'Де-инженерии', 'Передал', 'Оцифровки', 'Распространяться', 'Разное', 'Габаритами', 'Расширения', 'Предприятия', 'Эргономичность', 'Эксклюзив', 'Расширенный', 'Очного', 'Целенаправленный', 'Фронтовые', 'Полностью настраиваемый', 'Функции', 'Основной', 'Будущее', 'Низовые', 'Горизонтальной', 'Реализовано', 'Инновационных', 'Интегрированный', 'Интуитивно', 'Обратная', 'Управлять', 'Обязательно', 'Наблюдение', 'Многоканальной', 'Многосторонний', 'Многослойная', 'Многоуровневые', 'Сеть', 'Объектно-ориентированный', 'Открытая архитектура', 'Открытое', 'Оперативная', 'Оптимизация', 'Дополнительно', 'Органический', 'Организованная', 'Стойкость', 'Постоянный', 'Постепенно', 'Полярности', 'Превентивный', 'Инициативный', 'Прибыльных', 'Глубокий', 'Программируемый', 'Прогрессивный', 'Ключ', 'Ориентированные на качество', 'Реактивная', 'Реорганизации', 'Повторно контекст', 'Модернизированной', 'Снижается', 'Копирования', 'Размер', 'Надежный', 'Бесшовные', 'Обеспеченный', 'Собственной активации', 'Запрашиваемого', 'Автономный', 'Упорядочить', 'Переключение', 'Синхронизированы', 'Синергетический', 'Согласования', 'Командный', 'Общий', 'Тройной буферизацией', 'Универсальный', 'Размера', 'Комплектация', 'Пользователя', 'Удобный', 'Универсальный', 'Виртуальный', 'Фантазер', - ), - array( + ], + [ '24часа', '24/7', '3-го поколения', '4-го поколения', '5-го поколения', '6-го поколения', 'активация', 'анализ', 'ассиметричный', 'асинхронный', 'ориентированныйнаориентацию', 'фон', 'мониторинг пропускной способности', 'двунаправленный', 'раздвоенный', 'итоговый', 'ясное мышление', 'управляемый клиентом', 'клиент-сервер', 'связный', 'составной', 'контекстно-зависимый', 'контентно-ориентированный', 'выделенный', 'управляемый спросом', 'дидактический', 'направленный', 'дискретный', 'динамический', 'экоцентричный', 'уполномочивающий', 'охватывающий', 'четный', 'исполнительный', 'явный', 'отказоустойчивый', 'передний план', 'свежее мышление', 'полный диапазон', 'глобальный', 'включенный в сетку', 'эвристический', 'высокоуровневый', 'целостный', 'однородный', 'человеческий ресурс', 'гибридный', 'эффективный', 'инкрементальный', 'нематериальный', 'интерактивный', 'промежуточный', 'ведущий', 'локальный', 'логистический', 'развернутый', 'методический', 'критический', 'мобильный', 'модульный', 'мотивирующий', 'мультимедиа', 'мультисостояние', 'многозадачность', 'национальный', 'основанныйнапотребностях', 'нейтральный', 'следующее поколение', 'энергонезависимый', 'объектно-ориентированный', 'оптимальный', 'оптимизирующий', 'радикальный', 'в реальном времени', 'взаимный', 'региональный', 'отзывчивый', 'масштабируемый', 'вторичный', 'ориентированный на решение', 'стабильный', 'статический', 'систематический', 'системный', 'материальный', 'третичный', 'переходный', 'равномерный', 'восходящий тренд', 'ориентированный на пользователя', 'добавленная стоимость', 'веб-поддержка', 'хорошо модулированный', 'нулевое администрирование', 'нулевой дефект', 'нулевая терпимость', - ), - array( + ], + [ 'способности', 'открыть', 'адаптер', 'алгоритм', 'альянс', 'анализатор', 'приложения', 'подходить', 'архитектура', 'архив', 'время', 'отношение', 'тест', 'блокчейн', 'возможность', 'емкость', 'вызов', 'цепи', 'сотрудничество', 'сложность', 'понятие', 'конгломерат', 'случай', 'ядро', 'база данных', 'хранилищ данных', 'определение', 'эмуляция', 'кодировка', 'шифрования', 'экстранет', 'прошивки', 'гибкости', 'фокус-групповых', 'прогноз', 'раму', 'основы', 'функция', 'функциональные возможности', 'групповой', 'оборудование', 'число', 'иерархия', 'хаб', 'реализация', 'инфопосредников', 'инфраструктура', 'инициатива', 'монтаж', 'интерфейс', 'интранет', 'базы знаний', 'плечо', 'матрицы', 'матрица', 'методика', 'промежуточного', 'миграции', 'модель', 'модератор', 'контроль', 'мораторий', 'нейронные сети', 'согласование', 'парадигмы', 'параллельность', 'политика', 'портал', 'товара', 'производительности', 'проект', 'прогноз', 'протокол', 'сервис-бюро', 'программное обеспечение', 'решение', 'стандартизации', 'стратегия', 'структура', 'успех', 'надстройка', 'поддержка', 'синергия', 'команду', 'производительности', 'время', 'набор', 'загрузки', 'сайт', 'работников', - ), - ); + ], + ]; /** - * @link https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%BE%D1%84%D0%B5%D1%81%D1%81%D0%B8%D0%B8 + * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%BE%D1%84%D0%B5%D1%81%D1%81%D0%B8%D0%B8 + * * @note Randomly took from this list - some jobs titles for each letter */ - protected static $jobTitleFormat = array( - 'Абразивоструйщик', 'Автоинструктор', 'Администратор', 'Арт-директор', 'Архивист', 'Бариста', 'Бармен', - 'Бестиарий (гладиатор)', 'Бизнес-аналитик', 'Бухгалтер', 'Ветеринар', 'Водитель', 'Водолаз', 'Геймдизайнер', - 'Герольд', 'Гитарный мастер', 'Горный проводник', 'Детектив', 'Диджей', 'Диктор', 'Дипломат', 'Егерь', 'Жокей', - 'Зубной техник', 'Интеллектуал', 'Информационный работник', 'Кассир', 'Ковбой', 'Креативный директор', 'Критик', - 'Крупье', 'Лесоруб', 'Лингвист', 'Машинист', 'Менеджер', 'Музыкант', 'Научный сотрудник', 'Офис-менеджер', - 'Печник', 'Пианист', 'Писатель', 'Продюсер', 'Промоутер', 'Психолог', 'Радист', 'Редактор', 'Садовник', - 'Системный аналитик', 'Стилист', 'Столяр', 'Сторож', 'Телефонистка', 'Телохранитель', 'Технический писатель', - 'Учёный', 'Физик', 'Финансовый советник', 'Фотограф', 'Фрезеровщик', 'Художник', 'Чабан', 'Штурман', - 'Экономист', 'Электромонтёр' - ); + protected static $jobTitleFormat = [ + 'Абразивоструйщик', 'Автоинструктор', 'Администратор', 'Арт-директор', 'Архивист', 'Бариста', 'Бармен', + 'Бестиарий (гладиатор)', 'Бизнес-аналитик', 'Бухгалтер', 'Ветеринар', 'Водитель', 'Водолаз', 'Геймдизайнер', + 'Герольд', 'Гитарный мастер', 'Горный проводник', 'Детектив', 'Диджей', 'Диктор', 'Дипломат', 'Егерь', 'Жокей', + 'Зубной техник', 'Интеллектуал', 'Информационный работник', 'Кассир', 'Ковбой', 'Креативный директор', 'Критик', + 'Крупье', 'Лесоруб', 'Лингвист', 'Машинист', 'Менеджер', 'Музыкант', 'Научный сотрудник', 'Офис-менеджер', + 'Печник', 'Пианист', 'Писатель', 'Продюсер', 'Промоутер', 'Психолог', 'Радист', 'Редактор', 'Садовник', + 'Системный аналитик', 'Стилист', 'Столяр', 'Сторож', 'Телефонистка', 'Телохранитель', 'Технический писатель', + 'Учёный', 'Физик', 'Финансовый советник', 'Фотограф', 'Фрезеровщик', 'Художник', 'Чабан', 'Штурман', + 'Экономист', 'Электромонтёр', + ]; /** * @example 'Robust full-range hub' */ public function catchPhrase() { - $result = array(); + $result = []; + foreach (static::$catchPhraseWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } /** @@ -96,24 +98,81 @@ public static function companyNameSuffix() return static::randomElement(static::$companyNameSuffixes); } - public static function inn($area_code = "") + /** + * Generates a Russian Taxpayer Personal Identification Number + * + * @param string $area_code + * + * @return string + * + * @deprecated use {@link \Faker\Provider\ru_RU\Company::inn10()} instead + * @see \Faker\Provider\ru_RU\Company::inn10() + */ + public static function inn($area_code = '') + { + return self::inn10($area_code); + } + + /** + * Generates a Russian Taxpayer Personal Identification Number + * + * @param string $area_code + * + * @return string + */ + public static function inn10($area_code = '') { - if ($area_code === "" || intval($area_code) == 0) { + if ($area_code === '' || (int) $area_code === 0) { //Simple generation code for areas in Russian without check for valid - $area_code = static::numberBetween(1, 91); + $area_code = self::numberBetween(1, 91); } else { - $area_code = intval($area_code); + $area_code = (int) $area_code; } $area_code = str_pad($area_code, 2, '0', STR_PAD_LEFT); - $inn_base = $area_code . static::numerify('#######'); - return $inn_base . \Faker\Calculator\Inn::checksum($inn_base); + $inn_base = $area_code . static::numerify('#######'); + + return $inn_base . self::inn10Checksum($inn_base); } - public static function kpp($inn = "") + public static function kpp($inn = '') { - if ($inn == "" || strlen($inn) < 4) { - $inn = static::inn(); + if ($inn === '' || strlen($inn) < 4) { + $inn = self::inn10(); } - return substr($inn, 0, 4) . "01001"; + + return substr($inn, 0, 4) . '01001'; + } + + /** + * Generates INN Checksum + * + * @see https://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%89%D0%B8%D0%BA%D0%B0 + * + * @param string $inn + * + * @return string Checksum (one digit) + */ + public static function inn10Checksum($inn) + { + $multipliers = [2, 4, 10, 3, 5, 9, 4, 6, 8]; + $sum = 0; + + for ($i = 0; $i < 9; ++$i) { + $sum += (int) $inn[$i] * $multipliers[$i]; + } + + return (string) (($sum % 11) % 10); + } + + /** + * Checks whether an INN has a valid checksum + * + * @param string $inn + * + * @return bool + */ + public static function inn10IsValid($inn) + { + return strlen($inn) === 10 && self::inn10Checksum($inn) === $inn[9]; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Internet.php new file mode 100644 index 0000000..195ef5f --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Internet.php @@ -0,0 +1,9 @@ +.*<' | \ * sed -r 's/—//' | sed -r 's/[\<\>]//g' | sed -r "s/(^|$)/'/g" | sed -r 's/$/,/' | sed -r 's/\&(laquo|raquo);/"/g' | \ * sed -r 's/\s+/ /g'" */ - protected static $banks = array( + protected static $banks = [ 'Новый Промышленный Банк', 'Новый Символ', 'Нокссбанк', @@ -799,7 +800,7 @@ class Payment extends \Faker\Provider\Payment 'Новый Век', 'Новый Кредитный Союз', 'Новый Московский Банк', - ); + ]; /** * @example 'Новый Московский Банк' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Person.php similarity index 88% rename from vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php rename to vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Person.php index f782663..b0e17d4 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Person.php @@ -4,25 +4,25 @@ class Person extends \Faker\Provider\Person { - protected static $maleNameFormats = array( - '{{firstNameMale}} {{middleNameMale}} {{lastName}}', - '{{lastName}} {{firstNameMale}} {{middleNameMale}}', - ); + protected static $maleNameFormats = [ + '{{firstNameMale}} {{middleNameMale}} {{lastNameMale}}', + '{{lastNameMale}} {{firstNameMale}} {{middleNameMale}}', + ]; /** * This provider uses wikipedia's 250 top russian last names * That list of MALE last names could be safely extended to FEMALE list just by adding 'a' letter at the end */ - protected static $femaleNameFormats = array( - '{{firstNameFemale}} {{middleNameFemale}} {{lastName}}а', - '{{lastName}}а {{firstNameFemale}} {{middleNameFemale}}', - ); + protected static $femaleNameFormats = [ + '{{firstNameFemale}} {{middleNameFemale}} {{lastNameFemale}}', + '{{lastNameFemale}} {{firstNameFemale}} {{middleNameFemale}}', + ]; /** * {@link} http://ru.wikipedia.org/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B5_%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D0%B8%D0%BC%D1%8F * {@link} http://masterrussian.com/aa031701a.shtml - **/ - protected static $firstNameMale = array( + */ + protected static $firstNameMale = [ 'Абрам', 'Август', 'Адам', 'Адриан', 'Аким', 'Александр', 'Алексей', 'Альберт', 'Ананий', 'Анатолий', 'Андрей', 'Антон', 'Антонин', 'Аполлон', 'Аркадий', 'Арсений', 'Артемий', 'Артур', 'Артём', 'Афанасий', 'Богдан', 'Болеслав', 'Борис', 'Бронислав', 'Вадим', 'Валентин', 'Валериан', 'Валерий', 'Василий', 'Вениамин', 'Викентий', 'Виктор', 'Виль', 'Виталий', 'Витольд', 'Влад', 'Владимир', @@ -34,12 +34,12 @@ class Person extends \Faker\Provider\Person 'Радислав', 'Рафаил', 'Роберт', 'Родион', 'Роман', 'Ростислав', 'Руслан', 'Сава', 'Савва', 'Святослав', 'Семён', 'Сергей', 'Спартак', 'Станислав', 'Степан', 'Стефан', 'Тарас', 'Тимофей', 'Тимур', 'Тит', 'Трофим', 'Феликс', 'Филипп', 'Фёдор', 'Эдуард', 'Эрик', 'Юлиан', 'Юлий', 'Юрий', 'Яков', 'Ян', 'Ярослав', 'Милан', - ); + ]; /** * {@link} http://masterrussian.com/aa031001a.shtml - **/ - protected static $firstNameFemale = array( + */ + protected static $firstNameFemale = [ 'Александра', 'Алина', 'Алиса', 'Алла', 'Альбина', 'Алёна', 'Анастасия', 'Анжелика', 'Анна', 'Антонина', 'Анфиса', 'Валентина', 'Валерия', 'Варвара', 'Василиса', 'Вера', 'Вероника', 'Виктория', 'Владлена', 'Галина', 'Дарья', 'Диана', 'Дина', 'Доминика', 'Ева', 'Евгения', 'Екатерина', 'Елена', 'Елизавета', 'Жанна', 'Зинаида', 'Злата', 'Зоя', 'Изабелла', 'Изольда', 'Инга', 'Инесса', @@ -48,24 +48,24 @@ class Person extends \Faker\Provider\Person 'Нелли', 'Ника', 'Нина', 'Нонна', 'Оксана', 'Олеся', 'Ольга', 'Полина', 'Рада', 'Раиса', 'Регина', 'Рената', 'Розалина', 'Светлана', 'Софья', 'София', 'Таисия', 'Тамара', 'Татьяна', 'Ульяна', 'Фаина', 'Федосья', 'Флорентина', 'Эльвира', 'Эмилия', 'Эмма', 'Юлия', 'Яна', 'Ярослава', - ); + ]; - protected static $middleNameMale = array( + protected static $middleNameMale = [ 'Александрович', 'Алексеевич', 'Андреевич', 'Дмитриевич', 'Евгеньевич', 'Сергеевич', 'Иванович', 'Фёдорович', 'Львович', 'Романович', 'Владимирович', 'Борисович', 'Максимович', - ); + ]; - protected static $middleNameFemale = array( + protected static $middleNameFemale = [ 'Александровна', 'Алексеевна', 'Андреевна', 'Дмитриевна', 'Евгеньевна', 'Сергеевна', 'Ивановна', 'Фёдоровна', 'Львовна', 'Романовна', 'Владимировна', 'Борисовна', 'Максимовна', - ); + ]; /** * {@link} http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D0%B1%D1%89%D0%B5%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D0%B9 - **/ - protected static $lastName = array( + */ + protected static $lastName = [ 'Смирнов', 'Иванов', 'Кузнецов', 'Соколов', 'Попов', 'Лебедев', 'Козлов', 'Новиков', 'Морозов', 'Петров', 'Волков', 'Соловьёв', 'Васильев', 'Зайцев', 'Павлов', 'Семёнов', 'Голубев', 'Виноградов', 'Богданов', 'Воробьёв', @@ -103,17 +103,15 @@ class Person extends \Faker\Provider\Person 'Сысоев', 'Фомичёв', 'Русаков', 'Стрелков', 'Гущин', 'Тетерин', 'Колобов', 'Субботин', 'Фокин', 'Блохин', 'Селиверстов', 'Пестов', 'Кондратьев', 'Силин', 'Меркушев', 'Лыткин', 'Туров', - ); + ]; - protected static $lastNameSuffix = array('а', ''); + protected static $lastNameSuffix = ['а', '']; /** * Return male middle name * * @example 'Иванович' * - * @access public - * * @return string Middle name */ public function middleNameMale() @@ -126,8 +124,6 @@ public function middleNameMale() * * @example 'Ивановна' * - * @access public - * * @return string Middle name */ public function middleNameFemale() @@ -138,42 +134,55 @@ public function middleNameFemale() /** * Return middle name for the specified gender. * - * @access public * @param string|null $gender A gender the middle name should be generated - * for. If the argument is skipped a random gender will be used. + * for. If the argument is skipped a random gender will be used. + * * @return string Middle name */ public function middleName($gender = null) { if ($gender === static::GENDER_MALE) { return $this->middleNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { + } + + if ($gender === static::GENDER_FEMALE) { return $this->middleNameFemale(); } - return $this->middleName(static::randomElement(array( + return $this->middleName(static::randomElement([ static::GENDER_MALE, static::GENDER_FEMALE, - ))); + ])); } /** * Return last name for the specified gender. * * @param string|null $gender A gender of the last name should be generated - * for. If the argument is skipped a random gender will be used. + * for. If the argument is skipped a random gender will be used. + * * @return string Last name */ public function lastName($gender = null) { - $lastName = static::randomElement(static::$lastName); - if (static::GENDER_FEMALE === $gender) { - return $lastName . 'а'; - } elseif (static::GENDER_MALE === $gender) { - return $lastName; + return $this->lastNameFemale(); + } + + if (static::GENDER_MALE === $gender) { + return $this->lastNameMale(); } - return $lastName . static::randomElement(static::$lastNameSuffix); + return static::randomElement(static::$lastName) . static::randomElement(static::$lastNameSuffix); + } + + public function lastNameMale(): string + { + return static::randomElement(static::$lastName); + } + + public function lastNameFemale(): string + { + return static::randomElement(static::$lastName) . 'а'; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/PhoneNumber.php similarity index 83% rename from vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/ru_RU/PhoneNumber.php index c7477d7..06f6337 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/PhoneNumber.php @@ -4,11 +4,11 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '(812) ###-##-##', '(495) ###-####', '+7 (922) ###-####', '(35222) ##-####', '8-800-###-####', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Text.php similarity index 63% rename from vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Text.php index 7a989c2..1402e9b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Text.php @@ -10,7 +10,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) return iconv('UTF-8', 'UTF-8//IGNORE', $realText); } - + /** * From ru.wikisource.org * @@ -29,7 +29,8 @@ public function realText($maxNbChars = 200, $indexSize = 2) * Language: Russian * * @see https://wikimediafoundation.org/wiki/Terms_of_Use/ - * @link http://ru.wikisource.org/wiki/%D0%9C%D1%91%D1%80%D1%82%D0%B2%D1%8B%D0%B5_%D0%B4%D1%83%D1%88%D0%B8_(%D0%93%D0%BE%D0%B3%D0%BE%D0%BB%D1%8C)/%D0%A2%D0%BE%D0%BC_I/%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_I + * @see http://ru.wikisource.org/wiki/%D0%9C%D1%91%D1%80%D1%82%D0%B2%D1%8B%D0%B5_%D0%B4%D1%83%D1%88%D0%B8_(%D0%93%D0%BE%D0%B3%D0%BE%D0%BB%D1%8C)/%D0%A2%D0%BE%D0%BC_I/%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_I + * * @var string */ protected static $baseText = <<<'EOT' @@ -39,17 +40,17 @@ public function realText($maxNbChars = 200, $indexSize = 2) В ворота гостиницы губернского города NN въехала довольно красивая рессорная небольшая бричка, в какой ездят холостяки: отставные подполковники, штабс-капитаны, помещики, имеющие около сотни душ -крестьян, — словом, все те, которых называют господами средней руки. В +крестьян, — словом, все те, которых называют господами средней руки. В бричке сидел господин, не красавец, но и не дурной наружности, ни слишком толст, ни слишком тонок; нельзя сказать, чтобы стар, однако ж и не так, чтобы слишком молод. Въезд его не произвел в городе совершенно никакого шума и не был сопровожден ничем особенным; только два русские мужика, стоявшие у дверей кабака против гостиницы, сделали кое-какие замечания, относившиеся, впрочем, более к экипажу, чем к -сидевшему в нем. «Вишь ты, — сказал один другому, — вон какое колесо! +сидевшему в нем. «Вишь ты, — сказал один другому, — вон какое колесо! что ты думаешь, доедет то колесо, если б случилось, в Москву или не -доедет?» — «Доедет», — отвечал другой. «А в Казань-то, я думаю, не -доедет?» — «В Казань не доедет», — отвечал другой. Этим разговор и +доедет?» — «Доедет», — отвечал другой. «А в Казань-то, я думаю, не +доедет?» — «В Казань не доедет», — отвечал другой. Этим разговор и кончился. Да еще, когда бричка подъехала к гостинице, встретился молодой человек в белых канифасовых панталонах, весьма узких и коротких, во фраке с покушеньями на моду, из-под которого видна была @@ -60,7 +61,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) Когда экипаж въехал на двор, господин был встречен трактирным слугою, или половым, как их называют в русских трактирах, живым и вертлявым до такой степени, что даже нельзя было рассмотреть, какое у него было -лицо. Он выбежал проворно, с салфеткой в руке, — весь длинный и в +лицо. Он выбежал проворно, с салфеткой в руке, — весь длинный и в длинном демикотонном сюртуке со спинкою чуть не на самом затылке, встряхнул волосами и повел проворно господина вверх по всей деревянной галерее показывать ниспосланный ему богом покой. Покой был известного @@ -109,7 +110,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) стеклышек, которые прыгали и звенели всякий раз, когда половой бегал по истертым клеенкам, помахивая бойко подносом, на котором сидела такая же бездна чайных чашек, как птиц на морском берегу; те же -картины во всю стену, писанные масляными красками, — словом, все то +картины во всю стену, писанные масляными красками, — словом, все то же, что и везде; только и разницы, что на одной картине изображена была нимфа с такими огромными грудями, какие читатель, верно, никогда не видывал. Подобная игра природы, впрочем, случается на разных @@ -135,7 +136,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) чтоб не поговорить с слугою, а иногда даже забавно пошутить над ним. Впрочем, приезжий делал не всё пустые вопросы; он с чрезвычайною точностию расспросил, кто в городе губернатор, кто председатель -палаты, кто прокурор, — словом, не пропустил ни одного значительного +палаты, кто прокурор, — словом, не пропустил ни одного значительного чиновника; но еще с большею точностию, если даже не с участием, расспросил обо всех значительных помещиках: сколько кто имеет душ крестьян, как далеко живет от города, какого даже характера и как @@ -297,7 +298,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) стола для виста. Лица у них были полные и круглые, на иных даже были бородавки, кое-кто был и рябоват, волос они на голове не носили ни хохлами, ни буклями, ни на манер «черт меня побери», как говорят -французы, — волосы у них были или низко подстрижены, или прилизаны, а +французы, — волосы у них были или низко подстрижены, или прилизаны, а черты лица больше закругленные и крепкие. Это были почетные чиновники в городе. Увы! толстые умеют лучше на этом свете обделывать дела свои, нежели тоненькие. Тоненькие служат больше по особенным поручениям или @@ -320,10 +321,10 @@ public function realText($maxNbChars = 200, $indexSize = 2) следствием этого было то, что он наконец присоединился к толстым, где встретил почти все знакомые лица: прокурора с весьма черными густыми бровями и несколько подмигивавшим левым глазом так, как будто бы -говорил: «Пойдем, брат, в другую комнату, там я тебе что-то скажу», — +говорил: «Пойдем, брат, в другую комнату, там я тебе что-то скажу», — человека, впрочем, серьезного и молчаливого; почтмейстера, низенького человека, но остряка и философа; председателя палаты, весьма -рассудительного и любезного человека, — которые все приветствовали +рассудительного и любезного человека, — которые все приветствовали его, как старинного знакомого, на что Чичиков раскланивался несколько набок, впрочем, не без приятности. Тут же познакомился он с весьма обходительным и учтивым помещиком Маниловым и несколько неуклюжим на @@ -364,7 +365,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) городской заставы. На что Чичиков с весьма вежливым наклонением головы и искренним пожатием руки отвечал, что он не только с большою охотою готов это исполнить, но даже почтет за священнейший долг. Собакевич -тоже сказал несколько лаконически: «И ко мне прошу», — шаркнувши +тоже сказал несколько лаконически: «И ко мне прошу», — шаркнувши ногою, обутою в сапог такого исполинского размера, которому вряд ли где можно найти отвечающую ногу, особливо в нынешнее время, когда и на Руси начинают выводиться богатыри. @@ -389,7 +390,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) он всегда умел поддержать его: шла ли речь о лошадином заводе, он говорил и о лошадином заводе; говорили ли о хороших собаках, и здесь он сообщал очень дельные замечания; трактовали ли касательно -следствия, произведенного казенною палатою, — он показал, что ему +следствия, произведенного казенною палатою, — он показал, что ему небезызвестны и судейские проделки; было ли рассуждение о бильярдной игре — и в бильярдной игре не давал он промаха; говорили ли о добродетели, и о добродетели рассуждал он очень хорошо, даже со @@ -441,7 +442,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) сими двумя крепостными людьми нашего героя. Хотя, конечно, они лица не так заметные, и то, что называют второстепенные или даже третьестепенные, хотя главные ходы и пружины поэмы не на них -утверждены и разве кое-где касаются и легко зацепляют их, — но автор +утверждены и разве кое-где касаются и легко зацепляют их, — но автор любит чрезвычайно быть обстоятельным во всем и с этой стороны, несмотря на то что сам человек русский, хочет быть аккуратен, как немец. Это займет, впрочем, не много времени и места, потому что не @@ -451,7 +452,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) был больше молчаливого, чем разговорчивого; имел даже благородное побуждение к просвещению, то есть чтению книг, содержанием которых не затруднялся: ему было совершенно все равно, похождение ли влюбленного -героя, просто букварь или молитвенник, — он всё читал с равным +героя, просто букварь или молитвенник, — он всё читал с равным вниманием; если бы ему подвернули химию, он и от нее бы не отказался. Ему нравилось не то, о чем читал он, но больше самое чтение, или, лучше сказать, процесс самого чтения, что вот-де из букв вечно выходит @@ -472,8 +473,8 @@ public function realText($maxNbChars = 200, $indexSize = 2) Сходил бы ты хоть в баню». На что Петрушка ничего не отвечал и старался тут же заняться какие-нибудь делом; или подходил с плеткой к висевшему барскому фраку, или просто прибирал что-нибудь. Что думал он -в то время, когда молчал, — может быть, он говорил про себя: «И ты, -однако ж, хорош, не надоело тебе сорок раз повторять одно и то же», — +в то время, когда молчал, — может быть, он говорил про себя: «И ты, +однако ж, хорош, не надоело тебе сорок раз повторять одно и то же», — бог ведает, трудно знать, что думает дворовый крепостной человек в то время, как барин ему дает наставление. Итак, вот что на первый раз можно сказать о Петрушке. Кучер Селифан был совершенно другой человек… @@ -491,8 +492,8 @@ public function realText($maxNbChars = 200, $indexSize = 2) Но как ни прискорбно то и другое, а все, однако ж, нужно возвратиться к герою. Итак, отдавши нужные приказания еще с вечера, проснувшись поутру очень рано, вымывшись, вытершись с ног до головы мокрою губкой, -что делалось только по воскресным дням, — а в тот день случись -воскресенье, — выбрившись таким образом, что щеки сделались настоящий +что делалось только по воскресным дням, — а в тот день случись +воскресенье, — выбрившись таким образом, что щеки сделались настоящий атлас в рассуждении гладкости и лоска, надевши фрак брусничного цвета с искрой и потом шинель на больших медведях, он сошел с лестницы, поддерживаемый под руку то с одной, то с другой стороны трактирным @@ -521,21 +522,21 @@ public function realText($maxNbChars = 200, $indexSize = 2) вопрос, далеко ли деревня Заманиловка, мужики сняли шляпы, и один из них, бывший поумнее и носивший бороду клином, отвечал: -— Маниловка, может быть, а не Заманиловка? +— Маниловка, может быть, а не Заманиловка? -— Ну да, Маниловка. +— Ну да, Маниловка. -— Маниловка! а как проедешь еще одну версту, так вот тебе, то есть, -— так прямо направо. +— Маниловка! а как проедешь еще одну версту, так вот тебе, то есть, +— так прямо направо. -— Направо? — отозвался кучер. +— Направо? — отозвался кучер. -— Направо, — сказал мужик. — Это будет тебе дорога в Маниловку; а -— Заманиловки никакой нет. Она зовется так, то есть ее прозвание -— Маниловка, а Заманиловки тут вовсе нет. Там прямо на горе увидишь -— дом, каменный, в два этажа, господский дом, в котором, то есть, -— живет сам господин. Вот это тебе и есть Маниловка, а Заманиловки -— совсем нет никакой здесь и не было. +— Направо, — сказал мужик. — Это будет тебе дорога в Маниловку; а +— Заманиловки никакой нет. Она зовется так, то есть ее прозвание +— Маниловка, а Заманиловки тут вовсе нет. Там прямо на горе увидишь +— дом, каменный, в два этажа, господский дом, в котором, то есть, +— живет сам господин. Вот это тебе и есть Маниловка, а Заманиловки +— совсем нет никакой здесь и не было. Поехали отыскивать Маниловку. Проехавши две версты, встретили поворот на проселочную дорогу, но уже и две, и три, и четыре версты, кажется, @@ -576,8 +577,8 @@ public function realText($maxNbChars = 200, $indexSize = 2) экипаж. По мере того как бричка близилась к крыльцу, глаза его делались веселее и улыбка раздвигалась более и более. -— Павел Иванович! — вскричал он наконец, когда Чичиков вылезал из -— брички. — Насилу вы таки нас вспомнили! +— Павел Иванович! — вскричал он наконец, когда Чичиков вылезал из +— брички. — Насилу вы таки нас вспомнили! Оба приятеля очень крепко поцеловались, и Манилов увел своего гостя в комнату. Хотя время, в продолжение которого они будут проходить сени, @@ -589,7 +590,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) перерезанный морщиною лоб, перекинутый через плечо черный или алый, как огонь, плащ — и портрет готов; но вот эти все господа, которых много на свете, которые с вида очень похожи между собою, а между тем -как приглядишься, увидишь много самых неуловимых особенностей, — эти +как приглядишься, увидишь много самых неуловимых особенностей, — эти господа страшно трудны для портретов. Тут придется сильно напрягать внимание, пока заставишь перед собою выступить все тонкие, почти невидимые черты, и вообще далеко придется углублять уже изощренный в @@ -619,17 +620,17 @@ public function realText($maxNbChars = 200, $indexSize = 2) сверхъестественное заломить угол какому-нибудь бубновому тузу или двойке, тогда как рука седьмого так и лезет произвести где-нибудь порядок, подобраться поближе к личности станционного смотрителя или -ямщиков, — словом, у всякого есть свое, но у Манилова ничего не было. +ямщиков, — словом, у всякого есть свое, но у Манилова ничего не было. Дома он говорил очень мало и большею частию размышлял и думал, но о чем он думал, тоже разве богу было известно. Хозяйством нельзя сказать чтобы он занимался, он даже никогда не ездил на поля, хозяйство шло как-то само собою. Когда приказчик говорил: «Хорошо бы, барин, то и то -сделать», — «Да, недурно, — отвечал он обыкновенно, куря трубку, +сделать», — «Да, недурно, — отвечал он обыкновенно, куря трубку, которую курить сделал привычку, когда еще служил в армии, где считался скромнейшим, деликатнейшим и образованнейшим офицером. „Да, именно -недурно“, — повторял он. Когда приходил к нему мужик и, почесавши +недурно“, — повторял он. Когда приходил к нему мужик и, почесавши рукою затылок, говорил: „Барин, позволь отлучиться на работу, по'дать -заработать“, — „Ступай“, — говорил он, куря трубку, и ему даже в +заработать“, — „Ступай“, — говорил он, куря трубку, и ему даже в голову не приходило, что мужик шел пьянствовать. Иногда, глядя с крыльца на двор и на пруд, говорил он о том, как бы хорошо было, если бы вдруг от дома провести подземный ход или чрез пруд выстроить @@ -688,31 +689,31 @@ public function realText($maxNbChars = 200, $indexSize = 2) которые стояли уже несколько минут перед дверями гостиной, взаимно упрашивая друг друга пройти вперед. -— Сделайте милость, не беспокойтесь так для меня, я пройду после, — -— говорил Чичиков. +— Сделайте милость, не беспокойтесь так для меня, я пройду после, — +— говорил Чичиков. -— Нет, Павел Иванович, нет, вы гость, — говорил Манилов, показывая ему -— рукою на дверь. +— Нет, Павел Иванович, нет, вы гость, — говорил Манилов, показывая ему +— рукою на дверь. -— Не затрудняйтесь, пожалуйста, не затрудняйтесь. Пожалуйста, -— проходите, — говорил Чичиков. +— Не затрудняйтесь, пожалуйста, не затрудняйтесь. Пожалуйста, +— проходите, — говорил Чичиков. -— Нет уж извините, не допущу пройти позади такому приятному, -— образованному гостю. +— Нет уж извините, не допущу пройти позади такому приятному, +— образованному гостю. -— Почему ж образованному?.. Пожалуйста, проходите. +— Почему ж образованному?.. Пожалуйста, проходите. -— Ну да уж извольте проходить вы. +— Ну да уж извольте проходить вы. -— Да отчего ж? +— Да отчего ж? -— Ну да уж оттого! — сказал с приятною улыбкою Манилов. +— Ну да уж оттого! — сказал с приятною улыбкою Манилов. Наконец оба приятеля вошли в дверь боком и несколько притиснули друг друга. -— Позвольте мне вам представить жену мою, — сказал Манилов. — -— Душенька! Павел Иванович! +— Позвольте мне вам представить жену мою, — сказал Манилов. — +— Душенька! Павел Иванович! Чичиков, точно, увидел даму, которую он совершенно было не приметил, раскланиваясь в дверях с Маниловым. Она была недурна, одета к лицу. На @@ -724,118 +725,118 @@ public function realText($maxNbChars = 200, $indexSize = 2) их своим приездом и что муж ее не проходило дня, чтобы не вспоминал о нем. -— Да, — примолвил Манилов, — уж она, бывало, все спрашивает меня: «Да -— что же твой приятель не едет?» — «Погоди, душенька, приедет». А вот -— вы наконец и удостоили нас своим посещением. Уж такое, право, -— доставили наслаждение… майский день… именины сердца… +— Да, — примолвил Манилов, — уж она, бывало, все спрашивает меня: «Да +— что же твой приятель не едет?» — «Погоди, душенька, приедет». А вот +— вы наконец и удостоили нас своим посещением. Уж такое, право, +— доставили наслаждение… майский день… именины сердца… Чичиков, услышавши, что дело уже дошло до именин сердца, несколько даже смутился и отвечал скромно, что ни громкого имени не имеет, ни даже ранга заметного. -— Вы всё имеете, — прервал Манилов с такою же приятною улыбкою, — всё -— имеете, даже еще более. +— Вы всё имеете, — прервал Манилов с такою же приятною улыбкою, — всё +— имеете, даже еще более. -— Как вам показался наш город? — примолвила Манилова. — Приятно ли -— провели там время? +— Как вам показался наш город? — примолвила Манилова. — Приятно ли +— провели там время? -— Очень хороший город, прекрасный город, — отвечал Чичиков, — и время -— провел очень приятно: общество самое обходительное. +— Очень хороший город, прекрасный город, — отвечал Чичиков, — и время +— провел очень приятно: общество самое обходительное. -— А как вы нашли нашего губернатора? — сказала Манилова. +— А как вы нашли нашего губернатора? — сказала Манилова. -— Не правда ли, что препочтеннейший и прелюбезнейший человек? — -— прибавил Манилов. +— Не правда ли, что препочтеннейший и прелюбезнейший человек? — +— прибавил Манилов. -— Совершенная правда, — сказал Чичиков, — препочтеннейший человек. И -— как он вошел в свою должность, как понимает ее! Нужно желать -— побольше таких людей. +— Совершенная правда, — сказал Чичиков, — препочтеннейший человек. И +— как он вошел в свою должность, как понимает ее! Нужно желать +— побольше таких людей. -— Как он может этак, знаете, принять всякого, блюсти деликатность в -— своих поступках, — присовокупил Манилов с улыбкою и от удовольствия -— почти совсем зажмурил глаза, как кот, у которого слегка пощекотали -— за ушами пальцем. +— Как он может этак, знаете, принять всякого, блюсти деликатность в +— своих поступках, — присовокупил Манилов с улыбкою и от удовольствия +— почти совсем зажмурил глаза, как кот, у которого слегка пощекотали +— за ушами пальцем. -— Очень обходительный и приятный человек, — продолжал Чичиков, — и -— какой искусник! я даже никак не мог предполагать этого. Как хорошо -— вышивает разные домашние узоры! Он мне показывал своей работы -— кошелек: редкая дама может так искусно вышить. +— Очень обходительный и приятный человек, — продолжал Чичиков, — и +— какой искусник! я даже никак не мог предполагать этого. Как хорошо +— вышивает разные домашние узоры! Он мне показывал своей работы +— кошелек: редкая дама может так искусно вышить. -— А вице-губернатор, не правда ли, какой милый человек? — сказал -— Манилов, опять несколько прищурив глаза. +— А вице-губернатор, не правда ли, какой милый человек? — сказал +— Манилов, опять несколько прищурив глаза. -— Очень, очень достойный человек, — отвечал Чичиков. +— Очень, очень достойный человек, — отвечал Чичиков. -— Ну, позвольте, а как вам показался полицеймейстер? Не правда ли, что -— очень приятный человек? +— Ну, позвольте, а как вам показался полицеймейстер? Не правда ли, что +— очень приятный человек? -— Чрезвычайно приятный, и какой умный, какой начитанный человек! Мы у -— него проиграли в вист вместе с прокурором и председателем палаты до -— самых поздних петухов; очень, очень достойный человек. +— Чрезвычайно приятный, и какой умный, какой начитанный человек! Мы у +— него проиграли в вист вместе с прокурором и председателем палаты до +— самых поздних петухов; очень, очень достойный человек. -— Ну, а какого вы мнения о жене полицеймейстера? — прибавила Манилова. -— — Не правда ли, прелюбезная женщина? +— Ну, а какого вы мнения о жене полицеймейстера? — прибавила Манилова. +— — Не правда ли, прелюбезная женщина? -— О, это одна из достойнейших женщин, каких только я знаю, — отвечал -— Чичиков +— О, это одна из достойнейших женщин, каких только я знаю, — отвечал +— Чичиков Засим не пропустили председателя палаты, почтмейстера и таким образом перебрали почти всех чиновников города, которые все оказались самыми достойными людьми. -— Вы всегда в деревне проводите время? — сделал наконец, в свою -— очередь, вопрос Чичиков. +— Вы всегда в деревне проводите время? — сделал наконец, в свою +— очередь, вопрос Чичиков. -— Больше в деревне, — отвечал Манилов. — впрочем, приезжаем в город -— для того только, чтобы увидеться с образованными людьми. Одичаешь, -— знаете, будешь все время жить взаперти. +— Больше в деревне, — отвечал Манилов. — впрочем, приезжаем в город +— для того только, чтобы увидеться с образованными людьми. Одичаешь, +— знаете, будешь все время жить взаперти. -— Правда, правда, — сказал Чичиков. +— Правда, правда, — сказал Чичиков. -— Конечно, — продолжал Манилов, — другое дело, если бы соседство было -— хорошее, если бы, например, такой человек, с которым бы в некотором -— роде можно было поговорить о любезности, о хорошем обращении, -— следить какую-нибудь этакую науку, чтобы этак расшевелило душу, дало -— бы, так сказать, паренье этакое… — Здесь он еще что-то хотел -— выразить, но, заметивши, что несколько зарапортовался, ковырнул -— только рукою в воздухе и продолжал: — Тогда, конечно, деревня и -— уединение имели бы очень много приятностей. Но решительно нет -— никого… Вот только иногда почитаешь «Сын отечества». +— Конечно, — продолжал Манилов, — другое дело, если бы соседство было +— хорошее, если бы, например, такой человек, с которым бы в некотором +— роде можно было поговорить о любезности, о хорошем обращении, +— следить какую-нибудь этакую науку, чтобы этак расшевелило душу, дало +— бы, так сказать, паренье этакое… — Здесь он еще что-то хотел +— выразить, но, заметивши, что несколько зарапортовался, ковырнул +— только рукою в воздухе и продолжал: — Тогда, конечно, деревня и +— уединение имели бы очень много приятностей. Но решительно нет +— никого… Вот только иногда почитаешь «Сын отечества». Чичиков согласился с этим совершенно, прибавивши, что ничего не может быть приятнее, как жить в уединенье, наслаждаться зрелищем природы и почитать иногда какую-нибудь книгу… -— Но знаете ли, — прибавил Манилов, — все если нет друга, с которым бы -— можно поделиться… +— Но знаете ли, — прибавил Манилов, — все если нет друга, с которым бы +— можно поделиться… -— О, это справедливо, это совершенно справедливо! — прервал Чичиков. — -— Что все сокровища тогда в мире! «Не имей денег, имей хороших людей -— для обращения», сказал один мудрец. +— О, это справедливо, это совершенно справедливо! — прервал Чичиков. — +— Что все сокровища тогда в мире! «Не имей денег, имей хороших людей +— для обращения», сказал один мудрец. -— И знаете, Павел Иванович! — сказал Манилов, явя в лице своем -— выражение не только сладкое, но даже приторное, подобное той -— микстуре, которую ловкий светский доктор засластил немилосердно, -— воображая ею обрадовать пациента. — Тогда чувствуешь какое-то, в -— некотором роде, духовное наслаждение… Вот как, например, теперь, -— когда случай мне доставил счастие, можно сказать образцовое, -— говорить с вами и наслаждаться приятным вашим разговоров… +— И знаете, Павел Иванович! — сказал Манилов, явя в лице своем +— выражение не только сладкое, но даже приторное, подобное той +— микстуре, которую ловкий светский доктор засластил немилосердно, +— воображая ею обрадовать пациента. — Тогда чувствуешь какое-то, в +— некотором роде, духовное наслаждение… Вот как, например, теперь, +— когда случай мне доставил счастие, можно сказать образцовое, +— говорить с вами и наслаждаться приятным вашим разговоров… -— Помилуйте, что ж за приятный разговор?.. Ничтожный человек, и больше -— ничего, — отвечал Чичиков. +— Помилуйте, что ж за приятный разговор?.. Ничтожный человек, и больше +— ничего, — отвечал Чичиков. -— О! Павел Иванович, позвольте мне быть откровенным: я бы с радостию -— отдал половину всего моего состояния, чтобы иметь часть тех -— достоинств, которые имеете вы!.. +— О! Павел Иванович, позвольте мне быть откровенным: я бы с радостию +— отдал половину всего моего состояния, чтобы иметь часть тех +— достоинств, которые имеете вы!.. -— Напротив, я бы почел с своей стороны за величайшее… +— Напротив, я бы почел с своей стороны за величайшее… Неизвестно, до чего бы дошло взаимное излияние чувств обоих приятелей, если бы вошедший слуга не доложил, что кушанье готово. -— Прошу покорнейше, — сказал Манилов. — Вы извините, если у нас нет -— такого обеда, какой на паркетах и в столицах, у нас просто, по -— русскому обычаю, щи, но от чистого сердца. Покорнейше прошу. +— Прошу покорнейше, — сказал Манилов. — Вы извините, если у нас нет +— такого обеда, какой на паркетах и в столицах, у нас просто, по +— русскому обычаю, щи, но от чистого сердца. Покорнейше прошу. Тут они еще несколько времени поспорили о том, кому первому войти, и наконец Чичиков вошел боком в столовую. @@ -846,49 +847,49 @@ public function realText($maxNbChars = 200, $indexSize = 2) за свою суповую чашку; гость был посажен между хозяином и хозяйкою, слуга завязал детям на шею салфетки. -— Какие миленькие дети, — сказал Чичиков, посмотрев на них, — а -— который год? +— Какие миленькие дети, — сказал Чичиков, посмотрев на них, — а +— который год? -— Старшему осьмой, а меньшему вчера только минуло шесть, — сказала -— Манилова. +— Старшему осьмой, а меньшему вчера только минуло шесть, — сказала +— Манилова. -— Фемистоклюс! — сказал Манилов, обратившись к старшему, который -— старался освободить свой подбородок, завязанный лакеем в салфетку. +— Фемистоклюс! — сказал Манилов, обратившись к старшему, который +— старался освободить свой подбородок, завязанный лакеем в салфетку. Чичиков поднял несколько бровь, услышав такое отчасти греческое имя, которому, неизвестно почему, Манилов дал окончание на «юс», но постарался тот же час привесть лицо в обыкновенное положение. -— Фемистоклюс, скажи мне, какой лучший город во Франции? +— Фемистоклюс, скажи мне, какой лучший город во Франции? Здесь учитель обратил все внимание на Фемистоклюса и казалось, хотел ему вскочить в глаза, но наконец совершенно успокоился и кивнул головою, когда Фемистоклюс сказал: «Париж». -— А у нас какой лучший город? — спросил опять Манилов. +— А у нас какой лучший город? — спросил опять Манилов. Учитель опять настроил внимание. -— Петербург, — отвечал Фемистоклюс. +— Петербург, — отвечал Фемистоклюс. -— А еще какой? +— А еще какой? -— Москва, — отвечал Фемистоклюс. +— Москва, — отвечал Фемистоклюс. -— Умница, душенька! — сказал на это Чичиков. — Скажите, однако ж… — -— продолжал он, обратившись тут же с некоторым видом изумления к -— Маниловым, — в такие лета и уже такие сведения! Я должен вам -— сказать, что в этом ребенке будут большие способности. +— Умница, душенька! — сказал на это Чичиков. — Скажите, однако ж… — +— продолжал он, обратившись тут же с некоторым видом изумления к +— Маниловым, — в такие лета и уже такие сведения! Я должен вам +— сказать, что в этом ребенке будут большие способности. -— О, вы еще не знаете его, — отвечал Манилов, — у него чрезвычайно -— много остроумия. Вот меньшой, Алкид, тот не так быстр, а этот -— сейчас, если что-нибудь встретит, букашку, козявку, так уж у него -— вдруг глазенки и забегают; побежит за ней следом и тотчас обратит -— внимание. Я его прочу по дипломатической части. Фемистоклюс, — -— продолжал он, снова обратясь к нему, — хочешь быть посланником? +— О, вы еще не знаете его, — отвечал Манилов, — у него чрезвычайно +— много остроумия. Вот меньшой, Алкид, тот не так быстр, а этот +— сейчас, если что-нибудь встретит, букашку, козявку, так уж у него +— вдруг глазенки и забегают; побежит за ней следом и тотчас обратит +— внимание. Я его прочу по дипломатической части. Фемистоклюс, — +— продолжал он, снова обратясь к нему, — хочешь быть посланником? -— Хочу, — отвечал Фемистоклюс, жуя хлеб и болтая головой направо и -— налево. +— Хочу, — отвечал Фемистоклюс, жуя хлеб и болтая головой направо и +— налево. В это время стоявший позади лакей утер посланнику нос, и очень хорошо сделал, иначе бы канула в суп препорядочная посторонняя капля. @@ -914,11 +915,11 @@ public function realText($maxNbChars = 200, $indexSize = 2) гостиную, как вдруг гость объявил с весьма значительным видом, что он намерен с ним поговорить об одном очень нужном деле. -— В таком случае позвольте мне вас попросить в мой кабинет, — сказал -— Манилов и повел в небольшую комнату, обращенную окном на синевший -— лес. — Вот мой уголок, — сказал Манилов. +— В таком случае позвольте мне вас попросить в мой кабинет, — сказал +— Манилов и повел в небольшую комнату, обращенную окном на синевший +— лес. — Вот мой уголок, — сказал Манилов. -— Приятная комнатка, — сказал Чичиков, окинувши ее глазами. +— Приятная комнатка, — сказал Чичиков, окинувши ее глазами. Комната была, точно, не без приятности: стены были выкрашены какой-то голубенькой краской вроде серенькой, четыре стула, одно кресло, стол, @@ -930,47 +931,47 @@ public function realText($maxNbChars = 200, $indexSize = 2) старания очень красивыми рядками. Заметно было, что это иногда доставляло хозяину препровождение времени. -— Позвольте вас попросить расположиться в этих креслах, — сказал -— Манилов. — Здесь вам будет попокойнее. +— Позвольте вас попросить расположиться в этих креслах, — сказал +— Манилов. — Здесь вам будет попокойнее. -— Позвольте, я сяду на стуле. +— Позвольте, я сяду на стуле. -— Позвольте вам этого не позволить, — сказал Манилов с улыбкою. — Это -— кресло у меня уж ассигновано для гостя: ради или не ради, но должны -— сесть. +— Позвольте вам этого не позволить, — сказал Манилов с улыбкою. — Это +— кресло у меня уж ассигновано для гостя: ради или не ради, но должны +— сесть. Чичиков сел. -— Позвольте мне вас попотчевать трубочкою. +— Позвольте мне вас попотчевать трубочкою. -— Нет, не курю, — отвечал Чичиков ласково и как бы с видом сожаления. +— Нет, не курю, — отвечал Чичиков ласково и как бы с видом сожаления. -— Отчего? — сказал Манилов тоже ласково и с видом сожаления. +— Отчего? — сказал Манилов тоже ласково и с видом сожаления. -— Не сделал привычки, боюсь; говорят, трубка сушит. +— Не сделал привычки, боюсь; говорят, трубка сушит. -— Позвольте мне вам заметить, что это предубеждение. Я полагаю даже, -— что курить трубку гораздо здоровее, нежели нюхать табак. В нашем -— полку был поручик, прекраснейший и образованнейший человек, который -— не выпускал изо рта трубки не только за столом, но даже, с -— позволения сказать, во всех прочих местах. И вот ему теперь уже -— сорок с лишком лет, но, благодари бога, до сих пор так здоров, как -— нельзя лучше. +— Позвольте мне вам заметить, что это предубеждение. Я полагаю даже, +— что курить трубку гораздо здоровее, нежели нюхать табак. В нашем +— полку был поручик, прекраснейший и образованнейший человек, который +— не выпускал изо рта трубки не только за столом, но даже, с +— позволения сказать, во всех прочих местах. И вот ему теперь уже +— сорок с лишком лет, но, благодари бога, до сих пор так здоров, как +— нельзя лучше. Чичиков заметил, что это, точно, случается и что натуре находится много вещей, неизъяснимых даже для обширного ума. -— Но позвольте прежде одну просьбу… — проговорил он голосом, в котором -— отдалось какое-то странное или почти странное выражение, и вслед за -— тем неизвестно чего оглянулся назад. — Как давно вы изволили -— подавать ревизскую сказку? +— Но позвольте прежде одну просьбу… — проговорил он голосом, в котором +— отдалось какое-то странное или почти странное выражение, и вслед за +— тем неизвестно чего оглянулся назад. — Как давно вы изволили +— подавать ревизскую сказку? -— Да уж давно; а лучше сказать не припомню. +— Да уж давно; а лучше сказать не припомню. -— Как с того времени много у вас умерло крестьян? +— Как с того времени много у вас умерло крестьян? -— А не могу знать; об этом, я полагаю, нужно спросить приказчика. Эй, -— человек! позови приказчика, он должен быть сегодня здесь. +— А не могу знать; об этом, я полагаю, нужно спросить приказчика. Эй, +— человек! позови приказчика, он должен быть сегодня здесь. Приказчик явился. Это был человек лет под сорок, бривший бороду, ходивший в сюртуке и, по-видимому, проводивший очень покойную жизнь, @@ -985,56 +986,56 @@ public function realText($maxNbChars = 200, $indexSize = 2) побогаче, подбавлял на тягла победнее, проснувшись в девятом часу утра, поджидал самовара и пил чай. -— Послушай, любезный! сколько у нас умерло крестьян с тех пор, как -— подавали ревизию? +— Послушай, любезный! сколько у нас умерло крестьян с тех пор, как +— подавали ревизию? -— Да как сколько? Многие умирали с тех пор, — сказал приказчик и при -— этом икнул, заслонив рот слегка рукою, наподобие щитка. +— Да как сколько? Многие умирали с тех пор, — сказал приказчик и при +— этом икнул, заслонив рот слегка рукою, наподобие щитка. -— Да, признаюсь, а сам так думал, — подхватил Манилов, — именно, очень -— многие умирали! — Тут он оборотился к Чичикову и прибавил еще: — -— Точно, очень многие. +— Да, признаюсь, а сам так думал, — подхватил Манилов, — именно, очень +— многие умирали! — Тут он оборотился к Чичикову и прибавил еще: — +— Точно, очень многие. -— А как, например, числом? — спросил Чичиков. +— А как, например, числом? — спросил Чичиков. -— Да, сколько числом? — подхватил Манилов. +— Да, сколько числом? — подхватил Манилов. -— Да как сказать числом? Ведь неизвестно, сколько умирало, их никто не -— считал. +— Да как сказать числом? Ведь неизвестно, сколько умирало, их никто не +— считал. -— Да, именно, — сказал Манилов, обратясь к Чичикову, — я тоже -— предполагал, большая смертность; совсем неизвестно, сколько умерло. +— Да, именно, — сказал Манилов, обратясь к Чичикову, — я тоже +— предполагал, большая смертность; совсем неизвестно, сколько умерло. -— Ты, пожалуйста, их перечти, — сказал Чичиков, — и сделай подробный -— реестрик всех поименно. +— Ты, пожалуйста, их перечти, — сказал Чичиков, — и сделай подробный +— реестрик всех поименно. -— Да, всех поименно, — сказал Манилов. +— Да, всех поименно, — сказал Манилов. Приказчик сказал: «Слушаю!» — и ушел. -— А для какие причин вам это нужно? — спросил по уходе приказчика -— Манилов. +— А для какие причин вам это нужно? — спросил по уходе приказчика +— Манилов. Этот вопрос, казалось, затруднил гостя, в лице его показалось какое-то -напряженное выражение, от которого он даже покраснел, — напряжение +напряженное выражение, от которого он даже покраснел, — напряжение что-то выразить, не совсем покорное словам. И в самом деле, Манилов наконец услышал такие странные и необыкновенные вещи, какие еще никогда не слыхали человеческие уши. -— Вы спрашиваете, для каких причин? причины вот какие: я хотел бы -— купить крестьян… — сказал Чичиков, заикнулся и не кончил речи. +— Вы спрашиваете, для каких причин? причины вот какие: я хотел бы +— купить крестьян… — сказал Чичиков, заикнулся и не кончил речи. -— Но позвольте спросить вас, — сказал Манилов, — как желаете вы купить -— крестьян: с землею или просто на вывод, то есть без земли? +— Но позвольте спросить вас, — сказал Манилов, — как желаете вы купить +— крестьян: с землею или просто на вывод, то есть без земли? -— Нет, я не то чтобы совершенно крестьян, — сказал Чичиков, — я желаю -— иметь мертвых… +— Нет, я не то чтобы совершенно крестьян, — сказал Чичиков, — я желаю +— иметь мертвых… -— Как-с? извините… я несколько туг на ухо, мне послышалось престранное -— слово… +— Как-с? извините… я несколько туг на ухо, мне послышалось престранное +— слово… -— Я полагаю приобресть мертвых, которые, впрочем, значились бы по -— ревизии как живые, — сказал Чичиков. +— Я полагаю приобресть мертвых, которые, впрочем, значились бы по +— ревизии как живые, — сказал Чичиков. Манилов выронил тут же чубук с трубкою на пол и как разинул рот, так и остался с разинутым ртом в продолжение нескольких минут. Оба приятеля, @@ -1052,39 +1053,39 @@ public function realText($maxNbChars = 200, $indexSize = 2) не мог придумать, как только выпустить изо рта оставшийся дым очень тонкой струею. -— Итак, я бы желал знать, можете ли вы мне таковых, не живых в -— действительности, но живых относительно законной формы, передать, -— уступить или как вам заблагорассудится лучше? +— Итак, я бы желал знать, можете ли вы мне таковых, не живых в +— действительности, но живых относительно законной формы, передать, +— уступить или как вам заблагорассудится лучше? Но Манилов так сконфузился и смешался, что только смотрел на него -— Мне кажется, вы затрудняетесь?.. — заметил Чичиков. +— Мне кажется, вы затрудняетесь?.. — заметил Чичиков. -— Я?.. нет, я не то, — сказал Манилов, — но я не могу постичь… -— извините… я, конечно, не мог получить такого блестящего образования, -— какое, так сказать, видно во всяком вашем движении; не имею высокого -— искусства выражаться… Может быть, здесь… в этом, вами сейчас -— выраженном изъяснении… скрыто другое… Может быть, вы изволили -— выразиться так для красоты слога? +— Я?.. нет, я не то, — сказал Манилов, — но я не могу постичь… +— извините… я, конечно, не мог получить такого блестящего образования, +— какое, так сказать, видно во всяком вашем движении; не имею высокого +— искусства выражаться… Может быть, здесь… в этом, вами сейчас +— выраженном изъяснении… скрыто другое… Может быть, вы изволили +— выразиться так для красоты слога? -— Нет, — подхватил Чичиков, — нет, я разумею предмет таков как есть, -— то есть те души, которые, точно, уже умерли. +— Нет, — подхватил Чичиков, — нет, я разумею предмет таков как есть, +— то есть те души, которые, точно, уже умерли. Манилов совершенно растерялся. Он чувствовал, что ему нужно что-то сделать, предложить вопрос, а какой вопрос — черт его знает. Кончил он наконец тем, что выпустил опять дым, но только уже не ртом, а чрез носовые ноздри. -— Итак, если нет препятствий, то с богом можно бы приступить к -— совершению купчей крепости, — сказал Чичиков. +— Итак, если нет препятствий, то с богом можно бы приступить к +— совершению купчей крепости, — сказал Чичиков. -— Как, на мертвые души купчую? +— Как, на мертвые души купчую? -— А, нет! — сказал Чичиков. — Мы напишем, что они живы, так, как стоит -— действительно в ревизской сказке. Я привык ни в чем не отступать от -— гражданских законов, хотя за это и потерпел на службе, но уж -— извините: обязанность для меня дело священное, закон — я немею пред -— законом. +— А, нет! — сказал Чичиков. — Мы напишем, что они живы, так, как стоит +— действительно в ревизской сказке. Я привык ни в чем не отступать от +— гражданских законов, хотя за это и потерпел на службе, но уж +— извините: обязанность для меня дело священное, закон — я немею пред +— законом. Последние слова понравились Манилову, но в толк самого дела он все- таки никак не вник и вместо ответа принялся насасывать свой чубук так @@ -1092,14 +1093,14 @@ public function realText($maxNbChars = 200, $indexSize = 2) он хотел вытянуть из него мнение относительно такого неслыханного обстоятельства; но чубук хрипел и больше ничего. -— Может быть, вы имеете какие-нибудь сомнения? +— Может быть, вы имеете какие-нибудь сомнения? -— О! помилуйте, ничуть. Я не насчет того говорю, чтобы имел какое- -— нибудь, то есть, критическое предосуждение о вас. Но позвольте -— доложить, не будет ли это предприятие или, чтоб еще более, так -— сказать, выразиться, негоция, — так не будет ли эта негоция -— несоответствующею гражданским постановлениям и дальнейшим видам -— России? +— О! помилуйте, ничуть. Я не насчет того говорю, чтобы имел какое- +— нибудь, то есть, критическое предосуждение о вас. Но позвольте +— доложить, не будет ли это предприятие или, чтоб еще более, так +— сказать, выразиться, негоция, — так не будет ли эта негоция +— несоответствующею гражданским постановлениям и дальнейшим видам +— России? Здесь Манилов, сделавши некоторое движение головою, посмотрел очень значительно в лицо Чичикова, показав во всех чертах лица своего и @@ -1112,20 +1113,20 @@ public function realText($maxNbChars = 200, $indexSize = 2) видам России, а чрез минуту потом прибавил, что казна получит даже выгоды, ибо получит законные пошлины. -— Так вы полагаете?.. +— Так вы полагаете?.. -— Я полагаю, что это будет хорошо. +— Я полагаю, что это будет хорошо. -— А, если хорошо, это другое дело: я против этого ничего, — сказал -— Манилов и совершенно успокоился. +— А, если хорошо, это другое дело: я против этого ничего, — сказал +— Манилов и совершенно успокоился. -— Теперь остается условиться в цене. +— Теперь остается условиться в цене. -— Как в цене? — сказал опять Манилов и остановился. — Неужели вы -— полагаете, что я стану брать деньги за души, которые в некотором -— роде окончили свое существование? Если уж вам пришло этакое, так -— сказать, фантастическое желание, то с своей стороны я передаю их вам -— безынтересно и купчую беру на себя. +— Как в цене? — сказал опять Манилов и остановился. — Неужели вы +— полагаете, что я стану брать деньги за души, которые в некотором +— роде окончили свое существование? Если уж вам пришло этакое, так +— сказать, фантастическое желание, то с своей стороны я передаю их вам +— безынтересно и купчую беру на себя. Великий упрек был бы историку предлагаемых событий, если бы он упустил сказать, что удовольствие одолело гостя после таких слов, @@ -1140,16 +1141,16 @@ public function realText($maxNbChars = 200, $indexSize = 2) он, точно, хотел бы доказать чем-нибудь сердечное влечение, магнетизм души, а умершие души в некотором роде совершенная дрянь. -— Очень не дрянь, — сказал Чичиков, пожав ему руку. Здесь был испущен -— очень глубокий вздох. Казалось, он был настроен к сердечным -— излияниям; не без чувства и выражения произнес он наконец следующие -— слова: — Если б вы знали, какую услугу оказали сей, по-видимому, -— дрянью человеку без племени и роду! Да и действительно, чего не -— потерпел я? как барка какая-нибудь среди свирепых волн… Каких -— гонений, каких преследований не испытал, какого горя не вкусил, а за -— что? за то, что соблюдал правду, что был чист на своей совести, что -— подавал руку и вдовице беспомощной, и сироте-горемыке!.. — Тут даже -— он отер платком выкатившуюся слезу. +— Очень не дрянь, — сказал Чичиков, пожав ему руку. Здесь был испущен +— очень глубокий вздох. Казалось, он был настроен к сердечным +— излияниям; не без чувства и выражения произнес он наконец следующие +— слова: — Если б вы знали, какую услугу оказали сей, по-видимому, +— дрянью человеку без племени и роду! Да и действительно, чего не +— потерпел я? как барка какая-нибудь среди свирепых волн… Каких +— гонений, каких преследований не испытал, какого горя не вкусил, а за +— что? за то, что соблюдал правду, что был чист на своей совести, что +— подавал руку и вдовице беспомощной, и сироте-горемыке!.. — Тут даже +— он отер платком выкатившуюся слезу. Манилов был совершенно растроган. Оба приятеля долго жали друг другу руку и долго смотрели молча один другому в глаза, в которых видны были @@ -1159,72 +1160,72 @@ public function realText($maxNbChars = 200, $indexSize = 2) купчую совершить поскорее и хорошо бы, если бы он сам понаведался в город. Потом взял шляпу и стал откланиваться. -— Как? вы уж хотите ехать? — сказал Манилов, вдруг очнувшись и почти -— испугавшись. +— Как? вы уж хотите ехать? — сказал Манилов, вдруг очнувшись и почти +— испугавшись. В это время вошла в кабинет Манилова. -— Лизанька, — сказал Манилов с несколько жалостливым видом, — Павел -— Иванович оставляет нас! +— Лизанька, — сказал Манилов с несколько жалостливым видом, — Павел +— Иванович оставляет нас! -— Потому что мы надоели Павлу Ивановичу, — отвечала Манилова. +— Потому что мы надоели Павлу Ивановичу, — отвечала Манилова. -— Сударыня! здесь, — сказал Чичиков, — здесь, вот где, — тут он -— положил руку на сердце, — да, здесь пребудет приятность времени, -— проведенного с вами! и поверьте, не было бы для меня большего -— блаженства, как жить с вами если не в одном доме, то по крайней мере -— в самом ближайшем соседстве. +— Сударыня! здесь, — сказал Чичиков, — здесь, вот где, — тут он +— положил руку на сердце, — да, здесь пребудет приятность времени, +— проведенного с вами! и поверьте, не было бы для меня большего +— блаженства, как жить с вами если не в одном доме, то по крайней мере +— в самом ближайшем соседстве. -— А знаете, Павел Иванович, — сказал Манилов, которому очень -— понравилась такая мысль, — как было бы в самом деле хорошо, если бы -— жить этак вместе, под одною кровлею, или под тенью какого-нибудь -— вяза пофилософствовать о чем-нибудь, углубиться!.. +— А знаете, Павел Иванович, — сказал Манилов, которому очень +— понравилась такая мысль, — как было бы в самом деле хорошо, если бы +— жить этак вместе, под одною кровлею, или под тенью какого-нибудь +— вяза пофилософствовать о чем-нибудь, углубиться!.. -— О! это была бы райская жизнь! — сказал Чичиков, вздохнувши. — -— Прощайте, сударыня! — продолжал он, подходя к ручке Маниловой. — -— Прощайте, почтеннейший друг! Не позабудьте просьбы! +— О! это была бы райская жизнь! — сказал Чичиков, вздохнувши. — +— Прощайте, сударыня! — продолжал он, подходя к ручке Маниловой. — +— Прощайте, почтеннейший друг! Не позабудьте просьбы! -— О, будьте уверены! — отвечал Манилов. — Я с вами расстаюсь не долее -— как на два дни. +— О, будьте уверены! — отвечал Манилов. — Я с вами расстаюсь не долее +— как на два дни. Все вышли в столовую. -— Прощайте, миленькие малютки! — сказал Чичиков, увидевши Алкида и -— Фемистоклюса, которые занимались каким-то деревянным гусаром, у -— которого уже не было ни руки, ни носа. — Прощайте, мои крошки. Вы -— извините меня, что я не привез вам гостинца, потому что, признаюсь, -— не знал даже, живете ли вы на свете, но теперь, как приеду, -— непременно привезу. Тебе привезу саблю; хочешь саблю? +— Прощайте, миленькие малютки! — сказал Чичиков, увидевши Алкида и +— Фемистоклюса, которые занимались каким-то деревянным гусаром, у +— которого уже не было ни руки, ни носа. — Прощайте, мои крошки. Вы +— извините меня, что я не привез вам гостинца, потому что, признаюсь, +— не знал даже, живете ли вы на свете, но теперь, как приеду, +— непременно привезу. Тебе привезу саблю; хочешь саблю? -— Хочу, — отвечал Фемистоклюс. +— Хочу, — отвечал Фемистоклюс. -— А тебе барабан; не правда ли, тебе барабан? — продолжал он, -— наклонившись к Алкиду. +— А тебе барабан; не правда ли, тебе барабан? — продолжал он, +— наклонившись к Алкиду. -— Парапан, — отвечал шепотом и потупив голову Алкид. +— Парапан, — отвечал шепотом и потупив голову Алкид. -— Хорошо, а тебе привезу барабан. Такой славный барабан, этак все -— будет: туррр… ру… тра-та-та, та-та-та… Прощай, душенька! прощай! — -— Тут поцеловал он его в голову и обратился к Манилову и его супруге с -— небольшим смехом, с какие обыкновенно обращаются к родителям, давая -— им знать о невинности желаний их детей. +— Хорошо, а тебе привезу барабан. Такой славный барабан, этак все +— будет: туррр… ру… тра-та-та, та-та-та… Прощай, душенька! прощай! — +— Тут поцеловал он его в голову и обратился к Манилову и его супруге с +— небольшим смехом, с какие обыкновенно обращаются к родителям, давая +— им знать о невинности желаний их детей. -— Право, останьтесь, Павел Иванович! — сказал Манилов, когда уже все -— вышли на крыльцо. — Посмотрите, какие тучи. +— Право, останьтесь, Павел Иванович! — сказал Манилов, когда уже все +— вышли на крыльцо. — Посмотрите, какие тучи. -— Это маленькие тучки, — отвечал Чичиков. +— Это маленькие тучки, — отвечал Чичиков. -— Да знаете ли вы дорогу к Собакевичу? +— Да знаете ли вы дорогу к Собакевичу? -— Об этом хочу спросить вас. +— Об этом хочу спросить вас. -— Позвольте, я сейчас расскажу вашему кучеру. +— Позвольте, я сейчас расскажу вашему кучеру. Тут Манилов с такою же любезностью рассказал дело кучеру и сказал ему даже один раз «вы». Кучер, услышав, что нужно пропустить два поворота и поворотить на -третий, сказал: «Потрафим, ваше благородие», — и Чичиков уехал, +третий, сказал: «Потрафим, ваше благородие», — и Чичиков уехал, сопровождаемый долго поклонами и маханьями платка приподымавшихся на цыпочках хозяев. @@ -1270,7 +1271,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) называвшийся Заседателем, потому что был приобретен от какого-то заседателя, трудилися от всего сердца, так что даже в глазах их было заметно получаемое ими от того удовольствие. «Хитри, хитри! вот я тебя -перехитрю! — говорил Селифан, приподнявшись и хлыснув кнутом ленивца. +перехитрю! — говорил Селифан, приподнявшись и хлыснув кнутом ленивца. — Ты знай свое дело, панталонник ты немецкий! Гнедой — почтенный конь, он сполняет свой долг, я ему с охотою дам лишнюю меру, потому что он почтенный конь, и Заседатель тож хороший конь… Ну, ну! что @@ -1320,67 +1321,67 @@ public function realText($maxNbChars = 200, $indexSize = 2) долго деревни Собакевича. По расчету его, давно бы пора было приехать. Он высматривал по сторонам, но темнота была такая, хоть глаз выколи. -— Селифан! — сказал он наконец, высунувшись из брички. +— Селифан! — сказал он наконец, высунувшись из брички. -— Что, барин? — отвечал Селифан. +— Что, барин? — отвечал Селифан. -— Погляди-ка, не видно ли деревни? +— Погляди-ка, не видно ли деревни? -— Нет, барин, нигде не видно! — После чего Селифан, помахивая кнутом, -— затянул песню не песню, но что-то такое длинное, чему и конца не -— было. Туда все вошло: все ободрительные и побудительные крики, -— которыми потчевают лошадей по всей России от одного конца до -— другого; прилагательные всех родов без дальнейшего разбора, как что -— первое попалось на язык. Таким образом дошло до того, что он начал -— называть их наконец секретарями. +— Нет, барин, нигде не видно! — После чего Селифан, помахивая кнутом, +— затянул песню не песню, но что-то такое длинное, чему и конца не +— было. Туда все вошло: все ободрительные и побудительные крики, +— которыми потчевают лошадей по всей России от одного конца до +— другого; прилагательные всех родов без дальнейшего разбора, как что +— первое попалось на язык. Таким образом дошло до того, что он начал +— называть их наконец секретарями. Между тем Чичиков стал примечать, что бричка качалась на все стороны и наделяла его пресильными толчками; это дало ему почувствовать, что они своротили с дороги и, вероятно, тащились по взбороненному полю. Селифан, казалось, сам смекнул, но не говорил ни слова. -— Что, мошенник, по какой дороге ты едешь? — сказал Чичиков. +— Что, мошенник, по какой дороге ты едешь? — сказал Чичиков. -— Да что ж, барин, делать, время-то такое; кнута не видишь, такая -— потьма! — Сказавши это, он так покосил бричку, что Чичиков принужден -— был держаться обеими руками. Тут только заметил он, что Селифан -— подгулял. +— Да что ж, барин, делать, время-то такое; кнута не видишь, такая +— потьма! — Сказавши это, он так покосил бричку, что Чичиков принужден +— был держаться обеими руками. Тут только заметил он, что Селифан +— подгулял. -— Держи, держи, опрокинешь! — кричал он ему. +— Держи, держи, опрокинешь! — кричал он ему. -— Нет, барин, как можно, чтоб я опрокинул, — говорил Селифан. — Это -— нехорошо опрокинуть, я уж сам знаю; уж я никак не опрокину. — Затем -— начал он слегка поворачивать бричку, поворачивал, поворачивал и -— наконец выворотил ее совершенно набок. Чичиков и руками и ногами -— шлепнулся в грязь. Селифан лошадей, однако ж, остановил, впрочем, -— они остановились бы и сами, потому что были сильно изнурены. Такой -— непредвиденный случай совершенно изумил его. Слезши с козел, он стал -— перед бричкою, подперся в бока обеими руками, в то время как барин -— барахтался в грязи, силясь оттуда вылезть, и сказал после некоторого -— размышления: «Вишь ты, и перекинулась!» +— Нет, барин, как можно, чтоб я опрокинул, — говорил Селифан. — Это +— нехорошо опрокинуть, я уж сам знаю; уж я никак не опрокину. — Затем +— начал он слегка поворачивать бричку, поворачивал, поворачивал и +— наконец выворотил ее совершенно набок. Чичиков и руками и ногами +— шлепнулся в грязь. Селифан лошадей, однако ж, остановил, впрочем, +— они остановились бы и сами, потому что были сильно изнурены. Такой +— непредвиденный случай совершенно изумил его. Слезши с козел, он стал +— перед бричкою, подперся в бока обеими руками, в то время как барин +— барахтался в грязи, силясь оттуда вылезть, и сказал после некоторого +— размышления: «Вишь ты, и перекинулась!» -— Ты пьян как сапожник! — сказал Чичиков. +— Ты пьян как сапожник! — сказал Чичиков. -— Нет, барин, как можно, чтоб я был пьян! Я знаю, что это нехорошее -— дело быть пьяным. С приятелем поговорил, потому что с хорошим -— человеком можно поговорить, в том нет худого; и закусили вместе. -— Закуска не обидное дело; с хорошим человеком можно закусить. +— Нет, барин, как можно, чтоб я был пьян! Я знаю, что это нехорошее +— дело быть пьяным. С приятелем поговорил, потому что с хорошим +— человеком можно поговорить, в том нет худого; и закусили вместе. +— Закуска не обидное дело; с хорошим человеком можно закусить. -— А что я тебе сказал последний раз, когда ты напился? а? забыл? — -— сказал Чичиков. +— А что я тебе сказал последний раз, когда ты напился? а? забыл? — +— сказал Чичиков. -— Нет, ваше благородие, как можно, чтобы я позабыл. Я уже дело свое -— знаю. Я знаю, что нехорошо быть пьяным. С хорошим человеком -— поговорил, потому что… +— Нет, ваше благородие, как можно, чтобы я позабыл. Я уже дело свое +— знаю. Я знаю, что нехорошо быть пьяным. С хорошим человеком +— поговорил, потому что… -— Вот я тебя как высеку, так ты у меня будешь знать, как говорить с -— хорошим человеком! +— Вот я тебя как высеку, так ты у меня будешь знать, как говорить с +— хорошим человеком! -— Как милости вашей будет угодно, — отвечал на все согласный Селифан, -— — коли высечь, то и высечь; я ничуть не прочь от того. Почему ж не -— посечь, коли за дело, на то воля господская. Оно нужно посечь, -— потому что мужик балуется, порядок нужно наблюдать. Коли за дело, то -— и посеки; почему ж не посечь? +— Как милости вашей будет угодно, — отвечал на все согласный Селифан, +— — коли высечь, то и высечь; я ничуть не прочь от того. Почему ж не +— посечь, коли за дело, на то воля господская. Оно нужно посечь, +— потому что мужик балуется, порядок нужно наблюдать. Коли за дело, то +— и посеки; почему ж не посечь? На такое рассуждение барин совершенно не нашелся, что отвечать. Но в это время, казалось, как будто сама судьба решилась над ним сжалиться. @@ -1400,28 +1401,28 @@ public function realText($maxNbChars = 200, $indexSize = 2) фигура, покрытая армяком, и барин со слугою услышали хриплый бабий голос: -— Кто стучит? чего расходились? +— Кто стучит? чего расходились? -— Приезжие, матушка, пусти переночевать, — произнес Чичиков. +— Приезжие, матушка, пусти переночевать, — произнес Чичиков. -— Вишь ты, какой востроногий, — сказала старуха, — приехал в какое -— время! Здесь тебе не постоялый двор: помещица живет. +— Вишь ты, какой востроногий, — сказала старуха, — приехал в какое +— время! Здесь тебе не постоялый двор: помещица живет. -— Что ж делать, матушка: вишь, с дороги сбились. Не ночевать же в -— такое время в степи. +— Что ж делать, матушка: вишь, с дороги сбились. Не ночевать же в +— такое время в степи. -— Да, время темное, нехорошее время, — прибавил Селифан. +— Да, время темное, нехорошее время, — прибавил Селифан. -— Молчи, дурак, — сказал Чичиков. +— Молчи, дурак, — сказал Чичиков. -— Да кто вы такой? — сказала старуха. +— Да кто вы такой? — сказала старуха. -— Дворянин, матушка. +— Дворянин, матушка. Слово «дворянин» заставило старуху как будто несколько подумать. -— Погодите, я скажу барыне, — произнесла она и минуты через две уже -— возвратилась с фонарем в руке. +— Погодите, я скажу барыне, — произнесла она и минуты через две уже +— возвратилась с фонарем в руке. Ворота отперлись. Огонек мелькнул и в другом окне. Бричка, въехавши на двор, остановилась перед небольшим домиком, который за темнотою трудно @@ -1470,9 +1471,9 @@ public function realText($maxNbChars = 200, $indexSize = 2) Чичиков извинился, что побеспокоил неожиданным приездом. -— Ничего, ничего, — сказала хозяйка. — В какое это время вас бог -— принес! Сумятица и вьюга такая… С дороги бы следовало поесть чего- -— нибудь, да пора-то ночная, приготовить нельзя. +— Ничего, ничего, — сказала хозяйка. — В какое это время вас бог +— принес! Сумятица и вьюга такая… С дороги бы следовало поесть чего- +— нибудь, да пора-то ночная, приготовить нельзя. Слова хозяйки были прерваны странным шипением, так что гость было испугался; шум походил на то, как бы вся комната наполнилась змеями; @@ -1488,60 +1489,60 @@ public function realText($maxNbChars = 200, $indexSize = 2) далеко ли отсюда пути к помещику Собакевичу, на что старуха сказала, что и не слыхивала такого имени и что такого помещика вовсе нет. -— По крайней мере знаете Манилова? — сказал Чичиков +— По крайней мере знаете Манилова? — сказал Чичиков -— А кто таков Манилов? +— А кто таков Манилов? -— Помещик, матушка. +— Помещик, матушка. -— Нет, не слыхивала, нет такого помещика. +— Нет, не слыхивала, нет такого помещика. -— Какие же есть? +— Какие же есть? -— Бобров, Свиньин, Канапатьев, Харпакин, Трепакин, Плешаков. +— Бобров, Свиньин, Канапатьев, Харпакин, Трепакин, Плешаков. -— Богатые люди или нет? +— Богатые люди или нет? -— Нет, отец, богатых слишком нет. У кого двадцать душ, у кого -— тридцать, а таких, чтоб по сотне, таких нет. +— Нет, отец, богатых слишком нет. У кого двадцать душ, у кого +— тридцать, а таких, чтоб по сотне, таких нет. Чичиков заметил, что он заехал в порядочную глушь. -— Далеко ли по крайней мере до города? +— Далеко ли по крайней мере до города? -— А верст шестьдесят будет. Как жаль мне, что нечего вам покушать! не -— хотите ли, батюшка, выпить чаю? +— А верст шестьдесят будет. Как жаль мне, что нечего вам покушать! не +— хотите ли, батюшка, выпить чаю? -— Благодарю, матушка. Ничего не нужно, кроме постели. +— Благодарю, матушка. Ничего не нужно, кроме постели. -— Правда, с такой дороги и очень нужно отдохнуть. Вот здесь и -— расположитесь, батюшка, на этом диване. Эй, Фетинья, принеси перину, -— подушки и простыню. Какое-то время послал бог: гром такой — у меня -— всю ночь горела свеча перед образом. Эх, отец мой, да у тебя-то, как -— у борова, вся спина и бок в грязи! где так изволил засалиться? +— Правда, с такой дороги и очень нужно отдохнуть. Вот здесь и +— расположитесь, батюшка, на этом диване. Эй, Фетинья, принеси перину, +— подушки и простыню. Какое-то время послал бог: гром такой — у меня +— всю ночь горела свеча перед образом. Эх, отец мой, да у тебя-то, как +— у борова, вся спина и бок в грязи! где так изволил засалиться? -— Еще славу богу, что только засалился, нужно благодарить, что не -— отломал совсем боков. +— Еще славу богу, что только засалился, нужно благодарить, что не +— отломал совсем боков. -— Святители, какие страсти! Да не нужно ли чем потереть спину? +— Святители, какие страсти! Да не нужно ли чем потереть спину? -— Спасибо, спасибо. Не беспокойтесь, а прикажите только вашей девке -— повысушить и вычистить мое платье. +— Спасибо, спасибо. Не беспокойтесь, а прикажите только вашей девке +— повысушить и вычистить мое платье. -— Слышишь, Фетинья! — сказала хозяйка, обратясь к женщине, выходившей -— на крыльцо со свечою, которая успела уже притащить перину и, взбивши -— ее с обоих боков руками, напустила целый потоп перьев по всей -— комнате. — Ты возьми ихний-то кафтан вместе с исподним и прежде -— просуши их перед огнем, как делывали покойнику барину, а после -— перетри и выколоти хорошенько. +— Слышишь, Фетинья! — сказала хозяйка, обратясь к женщине, выходившей +— на крыльцо со свечою, которая успела уже притащить перину и, взбивши +— ее с обоих боков руками, напустила целый потоп перьев по всей +— комнате. — Ты возьми ихний-то кафтан вместе с исподним и прежде +— просуши их перед огнем, как делывали покойнику барину, а после +— перетри и выколоти хорошенько. -— Слушаю, сударыня! — говорила Фетинья, постилая сверх перины простыню -— и кладя подушки. +— Слушаю, сударыня! — говорила Фетинья, постилая сверх перины простыню +— и кладя подушки. -— Ну, вот тебе постель готова, — сказала хозяйка. — Прощай, батюшка, -— желаю покойной ночи. Да не нужно ли еще чего? Может, ты привык, отец -— мой, чтобы кто-нибудь почесал на ночь пятки? Покойник мой без этого -— никак не засыпал. +— Ну, вот тебе постель готова, — сказала хозяйка. — Прощай, батюшка, +— желаю покойной ночи. Да не нужно ли еще чего? Может, ты привык, отец +— мой, чтобы кто-нибудь почесал на ночь пятки? Покойник мой без этого +— никак не засыпал. Но гость отказался и от почесывания пяток. Хозяйка вышла, и он тот же час поспешил раздеться, отдав Фетинье всю снятую с себя сбрую, как @@ -1558,7 +1559,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) все обратились к нему: одна села ему на губу, другая на ухо, третья норовила как бы усесться на самый глаз, ту же, которая имела неосторожность подсесть близко к носовой ноздре, он потянул впросонках -в самый нос, что заставило его крепко чихнуть, — обстоятельство, +в самый нос, что заставило его крепко чихнуть, — обстоятельство, бывшее причиною его пробуждения. Окинувши взглядом комнату, он теперь заметил, что на картинах не всё были птицы: между ними висел портрет Кутузова и писанный масляными красками какой-то старик с красными @@ -1594,33 +1595,33 @@ public function realText($maxNbChars = 200, $indexSize = 2) были поддерживаемы как следует: изветшавший тес на крышах везде был заменен новым; ворота нигде не покосились, а в обращенных к нему крестьянских крытых сараях заметил он где стоявшую запасную почти -новую телегу, а где и две. «Да у ней деревушка не маленька», — сказал +новую телегу, а где и две. «Да у ней деревушка не маленька», — сказал он и положил тут же разговориться и познакомиться с хозяйкой покороче. Он заглянул в щелочку двери, из которой она было высунула голову, и, увидев ее, сидящую за чайным столиком, вошел к ней с веселым и ласковым видом. -— Здравствуйте, батюшка. Каково почивали? — сказала хозяйка, -— приподнимаясь с места. Она была одета лучше, нежели вчера, — в -— темном платье и уже не в спальном чепце, но на шее все так же было -— что-то завязано. +— Здравствуйте, батюшка. Каково почивали? — сказала хозяйка, +— приподнимаясь с места. Она была одета лучше, нежели вчера, — в +— темном платье и уже не в спальном чепце, но на шее все так же было +— что-то завязано. -— Хорошо, хорошо, — говорил Чичиков, садясь в кресла. — Вы как, -— матушка? +— Хорошо, хорошо, — говорил Чичиков, садясь в кресла. — Вы как, +— матушка? -— Плохо, отец мой. +— Плохо, отец мой. -— Как так? +— Как так? -— Бессонница. Все поясница болит, и нога, что повыше косточки, так вот -— и ломит. +— Бессонница. Все поясница болит, и нога, что повыше косточки, так вот +— и ломит. -— Пройдет, пройдет, матушка. На это нечего глядеть. +— Пройдет, пройдет, матушка. На это нечего глядеть. -— Дай бог, чтобы прошло. Я-то смазывала свиным салом и скипидаром тоже -— смачивала. А с чем прихлебаете чайку? Во фляжке фруктовая. +— Дай бог, чтобы прошло. Я-то смазывала свиным салом и скипидаром тоже +— смачивала. А с чем прихлебаете чайку? Во фляжке фруктовая. -— Недурно, матушка, хлебнем и фруктовой. +— Недурно, матушка, хлебнем и фруктовой. Читатель, я думаю, уже заметил, что Чичиков, несмотря на ласковый вид, говорил, однако же, с большею свободою, нежели с Маниловым, и вовсе не @@ -1635,11 +1636,11 @@ public function realText($maxNbChars = 200, $indexSize = 2) говорить совсем иначе, нежели с тем, у которого их триста, а у которого их триста, будут говорить опять не так, как с тем, у которого их пятьсот, а с тем, у которого их пятьсот, опять не так, как с тем, у -которого их восемьсот, — словом, хоть восходи до миллиона, всё найдут +которого их восемьсот, — словом, хоть восходи до миллиона, всё найдут оттенки. Положим, например, существует канцелярия, не здесь, а в тридевятом государстве, а в канцелярии, положим, существует правитель канцелярии. Прошу смотреть на него, когда он сидит среди своих -подчиненных, — да просто от страха и слова не выговоришь! гордость и +подчиненных, — да просто от страха и слова не выговоришь! гордость и благородство, и уж чего не выражает лицо его? просто бери кисть, да и рисуй: Прометей, решительный Прометей! Высматривает орлом, выступает плавно, мерно. Тот же самый орел, как только вышел из комнаты и @@ -1648,147 +1649,147 @@ public function realText($maxNbChars = 200, $indexSize = 2) небольшого чина, Прометей так и останется Прометеем, а чуть немного повыше его, с Прометеем сделается такое превращение, какого и Овидий не выдумает: муха, меньше даже мухи, уничтожился в песчинку! «Да это -не Иван Петрович, — говоришь, глядя на него. — Иван Петрович выше +не Иван Петрович, — говоришь, глядя на него. — Иван Петрович выше ростом, а этот и низенький и худенький; тот говорит громко, басит и никогда не смеется, а этот черт знает что: пищит птицей и все -смеется». Подходишь ближе, глядишь — точно Иван Петрович! «Эхе-хе», — +смеется». Подходишь ближе, глядишь — точно Иван Петрович! «Эхе-хе», — думаешь себе… Но, однако ж, обратимся к действующим лицам. Чичиков, как уж мы видели, решился вовсе не церемониться и потому, взявши в руки чашку с чаем и вливши туда фруктовой, повел такие речи: -— У вас, матушка, хорошая деревенька. Сколько в ней душ? +— У вас, матушка, хорошая деревенька. Сколько в ней душ? -— Душ-то в ней, отец мой, без малого восемьдесят, — сказала хозяйка, — -— да беда, времена плохи, вот и прошлый год был такой неурожай, что -— боже храни. +— Душ-то в ней, отец мой, без малого восемьдесят, — сказала хозяйка, — +— да беда, времена плохи, вот и прошлый год был такой неурожай, что +— боже храни. -— Однако ж мужички на вид дюжие, избенки крепкие. А позвольте узнать -— фамилию вашу. Я так рассеялся… приехал в ночное время…: +— Однако ж мужички на вид дюжие, избенки крепкие. А позвольте узнать +— фамилию вашу. Я так рассеялся… приехал в ночное время…: -— Коробочка, коллежская секретарша. +— Коробочка, коллежская секретарша. -— Покорнейше благодарю. А имя и отчество? +— Покорнейше благодарю. А имя и отчество? -— Настасья Петровна. +— Настасья Петровна. -— Настасья Петровна? хорошее имя Настасья Петровна. У меня тетка -— родная, сестра моей матери, Настасья Петровна. +— Настасья Петровна? хорошее имя Настасья Петровна. У меня тетка +— родная, сестра моей матери, Настасья Петровна. -— А ваше имя как? — спросила помещица. — Ведь вы, я чай, заседатель? +— А ваше имя как? — спросила помещица. — Ведь вы, я чай, заседатель? -— Нет, матушка, — отвечал Чичиков, усмехнувшись, — чай, не заседатель, -— а так ездим по своим делишкам. +— Нет, матушка, — отвечал Чичиков, усмехнувшись, — чай, не заседатель, +— а так ездим по своим делишкам. -— А, так вы покупщик! Как же жаль, право, что я продала мед купцам так -— дешево, а вот ты бы, отец мой, у меня, верно, его купил. +— А, так вы покупщик! Как же жаль, право, что я продала мед купцам так +— дешево, а вот ты бы, отец мой, у меня, верно, его купил. -— А вот меду и не купил бы. +— А вот меду и не купил бы. -— Что ж другое? Разве пеньку? Да вить и пеньки у меня теперь маловато: -— полпуда всего. +— Что ж другое? Разве пеньку? Да вить и пеньки у меня теперь маловато: +— полпуда всего. -— Нет, матушка, другого рода товарец: скажите, у вас умирали -— крестьяне? +— Нет, матушка, другого рода товарец: скажите, у вас умирали +— крестьяне? -— Ох, батюшка, осьмнадцать человека — сказала старуха, вздохнувши. — И -— умер такой всё славный народ, всё работники. После того, правда, -— народилось, да что в них: все такая мелюзга; а заседатель подъехал — -— подать, говорит, уплачивать с души. Народ мертвый, а плати, как за -— живого. На прошлой неделе сгорел у меня кузнец, такой искусный -— кузнец и слесарное мастерство знал. +— Ох, батюшка, осьмнадцать человека — сказала старуха, вздохнувши. — И +— умер такой всё славный народ, всё работники. После того, правда, +— народилось, да что в них: все такая мелюзга; а заседатель подъехал — +— подать, говорит, уплачивать с души. Народ мертвый, а плати, как за +— живого. На прошлой неделе сгорел у меня кузнец, такой искусный +— кузнец и слесарное мастерство знал. -— Разве у вас был пожар, матушка? +— Разве у вас был пожар, матушка? -— Бог приберег от такой беды, пожар бы еще хуже; сам сгорел, отец мой. -— Внутри у него как-то загорелось, чересчур выпил, только синий огонек -— пошел от него, весь истлел, истлел и почернел, как уголь, а такой -— был преискусный кузнец! и теперь мне выехать не на чем: некому -— лошадей подковать. +— Бог приберег от такой беды, пожар бы еще хуже; сам сгорел, отец мой. +— Внутри у него как-то загорелось, чересчур выпил, только синий огонек +— пошел от него, весь истлел, истлел и почернел, как уголь, а такой +— был преискусный кузнец! и теперь мне выехать не на чем: некому +— лошадей подковать. -— На все воля божья, матушка! — сказал Чичиков, вздохнувши, — против -— мудрости божией ничего нельзя сказать… Уступите-ка их мне, Настасья -— Петровна? +— На все воля божья, матушка! — сказал Чичиков, вздохнувши, — против +— мудрости божией ничего нельзя сказать… Уступите-ка их мне, Настасья +— Петровна? -— Кого, батюшка? +— Кого, батюшка? -— Да вот этих-то всех, что умерли. +— Да вот этих-то всех, что умерли. -— Да как же уступить их? +— Да как же уступить их? -— Да так просто. Или, пожалуй, продайте. Я вам за них дам деньги. +— Да так просто. Или, пожалуй, продайте. Я вам за них дам деньги. -— Да как же? Я, право, в толк-то не возьму. Нешто хочешь ты их -— откапывать из земли? +— Да как же? Я, право, в толк-то не возьму. Нешто хочешь ты их +— откапывать из земли? Чичиков увидел, что старуха хватила далеко и что необходимо ей нужно растолковать, в чем дело. В немногих словах объяснил он ей, что перевод или покупка будет значиться только на бумаге и души будут прописаны как бы живые. -— Да на что ж они тебе? — сказала старуха, выпучив на него глаза. +— Да на что ж они тебе? — сказала старуха, выпучив на него глаза. -— Это уж мое дело. +— Это уж мое дело. -— Да ведь они ж мертвые. +— Да ведь они ж мертвые. -— Да кто же говорит, что они живые? Потому-то и в убыток вам, что -— мертвые: вы за них платите, а теперь я вас избавлю от хлопот и -— платежа. Понимаете? Да не только избавлю, да еще сверх того дам вам -— пятнадцать рублей. Ну, теперь ясно? +— Да кто же говорит, что они живые? Потому-то и в убыток вам, что +— мертвые: вы за них платите, а теперь я вас избавлю от хлопот и +— платежа. Понимаете? Да не только избавлю, да еще сверх того дам вам +— пятнадцать рублей. Ну, теперь ясно? -— Право, не знаю, — произнесла хозяйка с расстановкой. — Ведь я -— мертвых никогда еще не продавала +— Право, не знаю, — произнесла хозяйка с расстановкой. — Ведь я +— мертвых никогда еще не продавала -— Еще бы! Это бы скорей походило на диво, если бы вы их кому нибудь -— продали. Или вы думаете, что в них есть в самом деле какой-нибудь -— прок? +— Еще бы! Это бы скорей походило на диво, если бы вы их кому нибудь +— продали. Или вы думаете, что в них есть в самом деле какой-нибудь +— прок? -— Нет, этого-то я не думаю. Что ж в них за прок, проку никакого нет. -— Меня только то и затрудняет, что они уже мертвые. +— Нет, этого-то я не думаю. Что ж в них за прок, проку никакого нет. +— Меня только то и затрудняет, что они уже мертвые. «Ну, баба, кажется, крепколобая!» — подумал про себя Чичиков. -— Послушайте, матушка. Да вы рассудите только хорошенько: — ведь вы -— разоряетесь, платите за него подать, как за живого… +— Послушайте, матушка. Да вы рассудите только хорошенько: — ведь вы +— разоряетесь, платите за него подать, как за живого… -— Ох, отец мой, и не говори об этом! — подхватила помещица. — Еще -— третью неделю взнесла больше полутораста. Да заседателя подмаслила. +— Ох, отец мой, и не говори об этом! — подхватила помещица. — Еще +— третью неделю взнесла больше полутораста. Да заседателя подмаслила. -— Ну, видите, матушка. А теперь примите в соображение только то, что -— заседателя вам подмасливать больше не нужно, потому что теперь я -— плачу за них; я, а не вы; я принимаю на себя все повинности. Я -— совершу даже крепость на свои деньги, понимаете ли вы это? +— Ну, видите, матушка. А теперь примите в соображение только то, что +— заседателя вам подмасливать больше не нужно, потому что теперь я +— плачу за них; я, а не вы; я принимаю на себя все повинности. Я +— совершу даже крепость на свои деньги, понимаете ли вы это? Старуха задумалась. Она видела, что дело, точно, как будто выгодно, да только уж слишком новое и небывалое; а потому начала сильно побаиваться, чтобы как-нибудь не надул ее этот покупщик; приехал же бог знает откуда, да еще и в ночное время. -— Так что ж, матушка, по рукам, что ли? — говорил Чичиков. +— Так что ж, матушка, по рукам, что ли? — говорил Чичиков. -— Право, отец мой, никогда еще не случалось продавать мне покойников. -— Живых-то я уступила, вот и третьего года протопопу двух девок, по -— сту рублей каждую, и очень благодарил, такие вышли славные -— работницы: сами салфетки ткут. +— Право, отец мой, никогда еще не случалось продавать мне покойников. +— Живых-то я уступила, вот и третьего года протопопу двух девок, по +— сту рублей каждую, и очень благодарил, такие вышли славные +— работницы: сами салфетки ткут. -— Ну, да не о живых дело; бог с ними. Я спрашиваю мертвых. +— Ну, да не о живых дело; бог с ними. Я спрашиваю мертвых. -— Право, я боюсь на первых-то порах, чтобы как-нибудь не понести -— убытку. Может быть, ты, отец мой, меня обманываешь, а они того… они -— больше как-нибудь стоят. +— Право, я боюсь на первых-то порах, чтобы как-нибудь не понести +— убытку. Может быть, ты, отец мой, меня обманываешь, а они того… они +— больше как-нибудь стоят. -— Послушайте, матушка… эх, какие вы! что ж они могут стоить? -— Рассмотрите: ведь это прах. Понимаете ли? это просто прах. Вы -— возьмите всякую негодную, последнюю вещь, например даже простую -— тряпку, и тряпке есть цена: ее хоть по крайней мере купят на -— бумажную фабрику, а ведь это ни на что не нужно. Ну, скажите сами, -— на что оно нужно? +— Послушайте, матушка… эх, какие вы! что ж они могут стоить? +— Рассмотрите: ведь это прах. Понимаете ли? это просто прах. Вы +— возьмите всякую негодную, последнюю вещь, например даже простую +— тряпку, и тряпке есть цена: ее хоть по крайней мере купят на +— бумажную фабрику, а ведь это ни на что не нужно. Ну, скажите сами, +— на что оно нужно? -— Уж это, точно, правда. Уж совсем ни на что не нужно; да ведь меня -— одно только и останавливает, что ведь они уже мертвые. +— Уж это, точно, правда. Уж совсем ни на что не нужно; да ведь меня +— одно только и останавливает, что ведь они уже мертвые. -«Эк ее, дубинноголовая какая! — сказал про себя Чичиков, уже начиная -«выходить из терпения. — Пойди ты сладь с нею! в пот бросила, +«Эк ее, дубинноголовая какая! — сказал про себя Чичиков, уже начиная +«выходить из терпения. — Пойди ты сладь с нею! в пот бросила, «проклятая старуха!» Тут он, вынувши из кармана платок, начал отирать «пот, в самом деле выступивший на лбу. Впрочем, Чичиков напрасно «сердился: иной и почтенный, и государственный даже человек, а на деле @@ -1798,110 +1799,110 @@ public function realText($maxNbChars = 200, $indexSize = 2) «стены. Отерши пот, Чичиков решился попробовать, нельзя ли ее навести «на путь какою-нибудь иною стороною. -— Вы, матушка, — сказал он, — или не хотите понимать слов моих, или -— так нарочно говорите, лишь бы что-нибудь говорить… Я вам даю деньги: -— пятнадцать рублей ассигнациями. Понимаете ли? Ведь это деньги. Вы их -— не сыщете на улице. Ну, признайтесь, почем продали мед? +— Вы, матушка, — сказал он, — или не хотите понимать слов моих, или +— так нарочно говорите, лишь бы что-нибудь говорить… Я вам даю деньги: +— пятнадцать рублей ассигнациями. Понимаете ли? Ведь это деньги. Вы их +— не сыщете на улице. Ну, признайтесь, почем продали мед? -— По двенадцати рублей пуд. +— По двенадцати рублей пуд. -— Хватили немножко греха на душу, матушка. По двенадцати не продали. +— Хватили немножко греха на душу, матушка. По двенадцати не продали. -— Ей-богу, продала. +— Ей-богу, продала. -— Ну видите ль? Так зато это мед. Вы собирали его, может быть, около -— года, с заботами, со старанием, хлопотами; ездили, морили пчел, -— кормили их в погребе целую зиму; а мертвые души дело не от мира -— сего. Тут вы с своей стороны никакого не прилагали старания, на то -— была воля божия, чтоб они оставили мир сей, нанеся ущерб вашему -— хозяйству. Там вы получили за труд, за старание двенадцать рублей, а -— тут вы берете ни за что, даром, да и не двенадцать, а пятнадцать, да -— и не серебром, а все синими ассигнациями. — После таких сильных -— убеждений Чичиков почти уже не сомневался, что старуха наконец -— подастся. +— Ну видите ль? Так зато это мед. Вы собирали его, может быть, около +— года, с заботами, со старанием, хлопотами; ездили, морили пчел, +— кормили их в погребе целую зиму; а мертвые души дело не от мира +— сего. Тут вы с своей стороны никакого не прилагали старания, на то +— была воля божия, чтоб они оставили мир сей, нанеся ущерб вашему +— хозяйству. Там вы получили за труд, за старание двенадцать рублей, а +— тут вы берете ни за что, даром, да и не двенадцать, а пятнадцать, да +— и не серебром, а все синими ассигнациями. — После таких сильных +— убеждений Чичиков почти уже не сомневался, что старуха наконец +— подастся. -— Право, — отвечала помещица, — мое такое неопытное вдовье дело! лучше -— ж я маненько повременю, авось понаедут купцы, да примерюсь к ценам. +— Право, — отвечала помещица, — мое такое неопытное вдовье дело! лучше +— ж я маненько повременю, авось понаедут купцы, да примерюсь к ценам. -— Страм, страм, матушка! просто страм! Ну что вы это говорите, -— подумайте сами! Кто же станет покупать их? Ну какое употребление он -— может из них сделать ? +— Страм, страм, матушка! просто страм! Ну что вы это говорите, +— подумайте сами! Кто же станет покупать их? Ну какое употребление он +— может из них сделать ? -— А может, в хозяйстве-то как-нибудь под случай понадобятся… — -— возразила старуха, да и не кончила речи, открыта рот и смотрела на -— него почти со страхом, желая знать, что он на это скажет. +— А может, в хозяйстве-то как-нибудь под случай понадобятся… — +— возразила старуха, да и не кончила речи, открыта рот и смотрела на +— него почти со страхом, желая знать, что он на это скажет. -— Мертвые в хозяйстве! Эк куда хватили! Воробьев разве пугать по ночам -— в вашем огороде, что ли? +— Мертвые в хозяйстве! Эк куда хватили! Воробьев разве пугать по ночам +— в вашем огороде, что ли? -— С нами крестная сила! Какие ты страсти говоришь! — проговорила -— старуха, крестясь. +— С нами крестная сила! Какие ты страсти говоришь! — проговорила +— старуха, крестясь. -— Куда ж еще вы их хотели пристроить? Да, впрочем, ведь кости и могилы -— — все вам остается, перевод только на бумаге. Ну, так что же? Как -— же? отвечайте по крайней мере. +— Куда ж еще вы их хотели пристроить? Да, впрочем, ведь кости и могилы +— — все вам остается, перевод только на бумаге. Ну, так что же? Как +— же? отвечайте по крайней мере. Старуха вновь задумалась. -— О чем же вы думаете, Настасья Петровна? +— О чем же вы думаете, Настасья Петровна? -— Право, я все не приберу, как мне быть; лучше я вам пеньку продам. +— Право, я все не приберу, как мне быть; лучше я вам пеньку продам. -— Да что ж пенька? Помилуйте, я вас прошу совсем о другом, а вы мне -— пеньку суете! Пенька пенькою, в другой раз приеду, заберу и пеньку. -— Так как же, Настасья Петровна? +— Да что ж пенька? Помилуйте, я вас прошу совсем о другом, а вы мне +— пеньку суете! Пенька пенькою, в другой раз приеду, заберу и пеньку. +— Так как же, Настасья Петровна? -— Ей-богу, товар такой странный, совсем небывалый! +— Ей-богу, товар такой странный, совсем небывалый! Здесь Чичиков вышел совершенно из границ всякого терпения, хватил в сердцах стулом об пол и посулил ей черта. Черта помещица испугалась необыкновенно. -— Ох, не припоминай его, бог с ним! — вскрикнула она, вся побледнев. — -— Еще третьего дня всю ночь мне снился окаянный. Вздумала было на ночь -— загадать на картах после молитвы, да, видно, в наказание-то бог и -— наслал его. Такой гадкий привиделся; а рога-то длиннее бычачьих. +— Ох, не припоминай его, бог с ним! — вскрикнула она, вся побледнев. — +— Еще третьего дня всю ночь мне снился окаянный. Вздумала было на ночь +— загадать на картах после молитвы, да, видно, в наказание-то бог и +— наслал его. Такой гадкий привиделся; а рога-то длиннее бычачьих. -— Я дивлюсь, как они вам десятками не снятся. Из одного христианского -— человеколюбия хотел: вижу, бедная вдова убивается, терпит нужду… да -— пропади и околей со всей вашей деревней!.. +— Я дивлюсь, как они вам десятками не снятся. Из одного христианского +— человеколюбия хотел: вижу, бедная вдова убивается, терпит нужду… да +— пропади и околей со всей вашей деревней!.. -— Ах, какие ты забранки пригинаешь! — сказала старуха, глядя на него -— со страхом. +— Ах, какие ты забранки пригинаешь! — сказала старуха, глядя на него +— со страхом. -— Да не найдешь слов с вами! Право, словно какая-нибудь, не говоря -— дурного слова, дворняжка, что лежит на сене и сам не ест сена, и -— другим не лает. Я хотел было закупать у вас хозяйственные продукты -— разные, потому что я и казенные подряды тоже веду… — Здесь он -— прилгнул, хоть и вскользь и без всякого дальнейшего размышления, но -— неожиданно удачно. Казенные подряды подействовали сильно на Настасью -— Петровну, по крайней мере, она произнесла уже почти просительным -— голосом: +— Да не найдешь слов с вами! Право, словно какая-нибудь, не говоря +— дурного слова, дворняжка, что лежит на сене и сам не ест сена, и +— другим не лает. Я хотел было закупать у вас хозяйственные продукты +— разные, потому что я и казенные подряды тоже веду… — Здесь он +— прилгнул, хоть и вскользь и без всякого дальнейшего размышления, но +— неожиданно удачно. Казенные подряды подействовали сильно на Настасью +— Петровну, по крайней мере, она произнесла уже почти просительным +— голосом: -— Да чего ж ты рассердился так горячо? Знай я прежде, что ты такой -— сердитый, да я бы совсем тебе и не прекословила. +— Да чего ж ты рассердился так горячо? Знай я прежде, что ты такой +— сердитый, да я бы совсем тебе и не прекословила. -— Есть из чего сердиться! Дело яйца выеденного не стоит, а я стану из- -— за него сердиться! +— Есть из чего сердиться! Дело яйца выеденного не стоит, а я стану из- +— за него сердиться! -— Ну, да изволь, я готова отдать за пятнадцать ассигнацией! Только -— смотри, отец мой, а насчет подрядов-то: если случится муки брать -— ржаной, или гречневой, или круп, или скотины битой, так уж, -— пожалуйста, не обидь меня. +— Ну, да изволь, я готова отдать за пятнадцать ассигнацией! Только +— смотри, отец мой, а насчет подрядов-то: если случится муки брать +— ржаной, или гречневой, или круп, или скотины битой, так уж, +— пожалуйста, не обидь меня. -— Нет, матушка, не обижу, — говорил он, а между тем отирал рукою пот, -— который в три ручья катился по лицу его. Он расспросил ее, не имеет -— ли она в городе какого-нибудь поверенного или знакомого, которого бы -— могла уполномочить на совершение крепости и всего, что следует. +— Нет, матушка, не обижу, — говорил он, а между тем отирал рукою пот, +— который в три ручья катился по лицу его. Он расспросил ее, не имеет +— ли она в городе какого-нибудь поверенного или знакомого, которого бы +— могла уполномочить на совершение крепости и всего, что следует. -— Как же, протопопа, отца Кирила, сын служит в палате, — сказала -— Коробочка. +— Как же, протопопа, отца Кирила, сын служит в палате, — сказала +— Коробочка. Чичиков попросил ее написать к нему доверенное письмо и, чтобы избавить от лишних затруднений, сам даже взялся сочинить. -«Хорошо бы было, — подумала между тем про себя Коробочка, — если бы он +«Хорошо бы было, — подумала между тем про себя Коробочка, — если бы он «забрал у меня в казну муку и скотину. Нужно его задобрить: теста со «вчерашнего вечера еще осталось, так пойти сказать Фетинье, чтоб «спекла блинов; хорошо бы также загнуть пирог пресный с яйцом, у меня @@ -1931,17 +1932,17 @@ public function realText($maxNbChars = 200, $indexSize = 2) «сказать, сколько было там денег. Чичиков тут же занялся и, очинив «перо, начал писать. В это время вошла хозяйка. -— Хорош у тебя ящик, отец мой, — сказала она, подсевши к нему. — Чай, -— в Москве купил его? +— Хорош у тебя ящик, отец мой, — сказала она, подсевши к нему. — Чай, +— в Москве купил его? -— В Москве, — отвечал Чичиков, продолжая писать. +— В Москве, — отвечал Чичиков, продолжая писать. -— Я уж знала это: там все хорошая работа. Третьего года сестра моя -— привезла оттуда теплые сапожки для детей: такой прочный товар, до -— сих пор носится. Ахти, сколько у тебя тут гербовой бумаги! — -— продолжала она заглянувши к нему в шкатулку. И в самом деле, -— гербовой бумаги было там немало. — Хоть бы мне листок подарил! а у -— меня такой недостаток; случится в суд просьбу подать, а и не на чем. +— Я уж знала это: там все хорошая работа. Третьего года сестра моя +— привезла оттуда теплые сапожки для детей: такой прочный товар, до +— сих пор носится. Ахти, сколько у тебя тут гербовой бумаги! — +— продолжала она заглянувши к нему в шкатулку. И в самом деле, +— гербовой бумаги было там немало. — Хоть бы мне листок подарил! а у +— меня такой недостаток; случится в суд просьбу подать, а и не на чем. Чичиков объяснил ей, что эта бумага не такого рода, что она назначена для совершения крепостей, а не для просьб. Впрочем, чтобы успокоить @@ -1957,21 +1958,21 @@ public function realText($maxNbChars = 200, $indexSize = 2) Иван. Оканчивая писать, он потянул несколько к себе носом воздух и услышал завлекательный запах чего-то горячего в масле. -— Прошу покорно закусить, — сказала хозяйка. +— Прошу покорно закусить, — сказала хозяйка. Чичиков оглянулся и увидел, что на столе стояли уже грибки, пирожки, скородумки, шанишки, пряглы, блины, лепешки со всякими припеками: припекой с лучком, припекой с маком, припекой с творогом, припекой со сняточками, и невесть чего не было. -— Пресный пирог с яйцом! — сказала хозяйка. +— Пресный пирог с яйцом! — сказала хозяйка. Чичиков подвинулся к пресному пирогу с яйцом, и, съевши тут же с небольшим половину, похвалил его. И в самом деле, пирог сам по себе был вкусен, а после всей возни и проделок со старухой показался еще вкуснее. -— А блинков? — сказала хозяйка. +— А блинков? — сказала хозяйка. В ответ на это Чичиков свернул три блина вместе и, обмакнувши их в растопленное масло, отправил в рот, а губы и руки вытер салфеткой. @@ -1979,47 +1980,47 @@ public function realText($maxNbChars = 200, $indexSize = 2) бричку. Настасья Петровна тут же послала Фетинью, приказавши в то же время принести еще горячих блинов. -— У вас, матушка, блинцы очень вкусны, — сказал Чичиков, принимаясь за -— принесенные горячие. +— У вас, матушка, блинцы очень вкусны, — сказал Чичиков, принимаясь за +— принесенные горячие. -— Да у меня-то их хорошо пекут, — сказала хозяйка, — да вот беда: -— урожай плох, мука уж такая неважная… Да что же, батюшка, вы так -— спешите? — проговорила она, увидя, что Чичиков взял в руки картуз, — -— ведь и бричка еще не заложена. +— Да у меня-то их хорошо пекут, — сказала хозяйка, — да вот беда: +— урожай плох, мука уж такая неважная… Да что же, батюшка, вы так +— спешите? — проговорила она, увидя, что Чичиков взял в руки картуз, — +— ведь и бричка еще не заложена. -— Заложат, матушка, заложат. У меня скоро закладывают. +— Заложат, матушка, заложат. У меня скоро закладывают. -— Так уж, пожалуйста, не позабудьте насчет подрядов. +— Так уж, пожалуйста, не позабудьте насчет подрядов. -— Не забуду, не забуду, — говорил Чичиков, выходя в сени. +— Не забуду, не забуду, — говорил Чичиков, выходя в сени. -— А свиного сала не покупаете? — сказала хозяйка, следуя за ним. +— А свиного сала не покупаете? — сказала хозяйка, следуя за ним. -— Почему не покупать? Покупаю, только после. +— Почему не покупать? Покупаю, только после. -— У меня о святках и свиное сало будет. +— У меня о святках и свиное сало будет. -— Купим, купим, всего купим, и свиного сала купим. +— Купим, купим, всего купим, и свиного сала купим. -— Может быть, понадобится птичьих перьев. У меня к Филиппову посту -— будут и птичьи перья. +— Может быть, понадобится птичьих перьев. У меня к Филиппову посту +— будут и птичьи перья. -— Хорошо, хорошо, — говорил Чичиков. +— Хорошо, хорошо, — говорил Чичиков. -— Вот видишь, отец мой, и бричка твоя еще не готова, — сказала -— хозяйка, когда они вышли на крыльцо. +— Вот видишь, отец мой, и бричка твоя еще не готова, — сказала +— хозяйка, когда они вышли на крыльцо. -— Будет, будет готова. Расскажите только мне, как добраться до большой -— дороги. +— Будет, будет готова. Расскажите только мне, как добраться до большой +— дороги. -— Как же бы это сделать? — сказала хозяйка. — Рассказать-то мудрено, -— поворотов много; разве я тебе дам девчонку, чтобы проводила. Ведь у -— тебя, чай, место есть на козлах, где бы присесть ей. +— Как же бы это сделать? — сказала хозяйка. — Рассказать-то мудрено, +— поворотов много; разве я тебе дам девчонку, чтобы проводила. Ведь у +— тебя, чай, место есть на козлах, где бы присесть ей. -— Как не быть. +— Как не быть. -— Пожалуй, я тебе дам девчонку; она у меня знает дорогу, только ты -— смотри! не завези ее, у меня уже одну завезли купцы. +— Пожалуй, я тебе дам девчонку; она у меня знает дорогу, только ты +— смотри! не завези ее, у меня уже одну завезли купцы. Чичиков уверил ее, что не завезет, и Коробочка, успокоившись, уже стала рассматривать все, что было во дворе ее; вперила глаза на @@ -2046,18 +2047,18 @@ public function realText($maxNbChars = 200, $indexSize = 2) совершенно сбежать с лица, а уже стал другим среди тех же людей, и уже другим светом осветилось лицо… -— А вот бричка, вот бричка! — вскричал Чичиков, увидя наконец -— подъезжавшую свою бричку. — Что ты, болван, так долго копался? -— Видно, вчерашний хмель у тебя не весь еще выветрило. +— А вот бричка, вот бричка! — вскричал Чичиков, увидя наконец +— подъезжавшую свою бричку. — Что ты, болван, так долго копался? +— Видно, вчерашний хмель у тебя не весь еще выветрило. Селифан на это ничего не отвечал. -— Прощайте, матушка! А что же, где ваша девчонка? +— Прощайте, матушка! А что же, где ваша девчонка? -— Эй, Пелагея! — сказала помещица стоявшей около крыльца девчонке лет -— одиннадцати, в платье из домашней крашенины и с босыми ногами, -— которые издали можно было принять за сапоги, так они были облеплены -— свежею грязью. — Покажи-ка барину дорогу. +— Эй, Пелагея! — сказала помещица стоявшей около крыльца девчонке лет +— одиннадцати, в платье из домашней крашенины и с босыми ногами, +— которые издали можно было принять за сапоги, так они были облеплены +— свежею грязью. — Покажи-ка барину дорогу. Селифан помог взлезть девчонке на козлы, которая, ставши одной ногой на барскую ступеньку, сначала запачкала ее грязью, а потом уже @@ -2065,7 +2066,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) Чичиков занес ногу на ступеньку и, понагнувши бричку на правую сторону, потому что был тяжеленек, наконец поместился, сказавши: -— А! теперь хорошо! прощайте, матушка! +— А! теперь хорошо! прощайте, матушка! Кони тронулись. @@ -2083,23 +2084,23 @@ public function realText($maxNbChars = 200, $indexSize = 2) зевай! зевай!» — и больше ничего. Даже сам гнедой и Заседатель были недовольны, не услышавши ни разу ни «любезные», ни «почтенные». Чубарый чувствовал пренеприятные удары по своим полным и широким -частям. «Вишь ты, как разнесло его! — думал он сам про себя, несколько -припрядывая ушами. — Небось знает, где бить! Не хлыснет прямо по +частям. «Вишь ты, как разнесло его! — думал он сам про себя, несколько +припрядывая ушами. — Небось знает, где бить! Не хлыснет прямо по спине, а так и выбирает место, где поживее: по ушам зацепит или под брюхо захлыснет». -— Направо, что ли? — с таким сухим вопросом обратился Селифан к -— сидевшей возле него девчонке, показывая ей кнутом на почерневшую от -— дождя дорогу между яркозелеными, освещенными полями. +— Направо, что ли? — с таким сухим вопросом обратился Селифан к +— сидевшей возле него девчонке, показывая ей кнутом на почерневшую от +— дождя дорогу между яркозелеными, освещенными полями. -— Нет, нет, я уж покажу, — отвечала девчонка. +— Нет, нет, я уж покажу, — отвечала девчонка. -— Куда ж? — сказал Селифан, когда подъехали поближе. +— Куда ж? — сказал Селифан, когда подъехали поближе. -— Вот куды, — отвечала девчонка, показывая рукою. +— Вот куды, — отвечала девчонка, показывая рукою. -— Эх ты! — сказал Селифан. — Да это и есть направо: не знает, где -— право, где лево! +— Эх ты! — сказал Селифан. — Да это и есть направо: не знает, где +— право, где лево! Хотя день был очень хорош, но земля до такой степени загрязнилась, что колеса брички, захватывая ее, сделались скоро покрытыми ею, как @@ -2111,13 +2112,13 @@ public function realText($maxNbChars = 200, $indexSize = 2) поколесить уже не по своей вине. Скоро девчонка показала рукою на черневшее вдали строение, сказавши: -— Вон столбовая дорога! +— Вон столбовая дорога! -— А строение? — спросил Селифан. +— А строение? — спросил Селифан. -— Трактир, — сказала девчонка. +— Трактир, — сказала девчонка. -— Ну, теперь мы сами доедем, — сказал Селифан, — ступай себе домой. +— Ну, теперь мы сами доедем, — сказал Селифан, — ступай себе домой. Он остановился и помог ей сойти, проговорив сквозь зубы: «Эх ты, черноногая!» @@ -2148,7 +2149,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) колбасу с луком и потом как ни в чем не бывало садятся за стол в какое хочешь время, и стерляжья уха с налимами и молоками шипит и ворчит у них меж зубами, заедаемая расстегаем или кулебякой с сомовьим плёсом, -так что вчуже пронимает аппетит, — вот эти господа, точно, пользуются +так что вчуже пронимает аппетит, — вот эти господа, точно, пользуются завидным даянием неба! Не один господин большой руки пожертвовал бы сию же минуту половину душ крестьян и половину имений, заложенных и только, чтобы иметь такой желудок, какой имеет господин средней руки; @@ -2176,16 +2177,16 @@ public function realText($maxNbChars = 200, $indexSize = 2) высохшие до такой степени, что желавший понюхать их только чихал и больше ничего. -— Поросенок есть? — с таким вопросом обратился Чичиков к стоявшей -— бабе. +— Поросенок есть? — с таким вопросом обратился Чичиков к стоявшей +— бабе. -— Есть. +— Есть. -— С хреном и со сметаною? +— С хреном и со сметаною? -— С хреном и со сметаною. +— С хреном и со сметаною. -— Давай его сюда! +— Давай его сюда! Старуха пошла копаться и принесла тарелку, салфетку, накрахмаленную до того что дыбилась, как засохшая кора, потом нож с пожелтевшею костяною @@ -2197,7 +2198,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) дает доходу трактир, и с ними ли живут сыновья, и что старший сын холостой или женатый человек, и какую взял жену, с большим ли приданым, или нет, и доволен ли был тесть, и не сердился ли, что мало -подарков получил на свадьбе, — словом, не пропустил ничего. Само собою +подарков получил на свадьбе, — словом, не пропустил ничего. Само собою разумеется, что полюбопытствовал узнать, какие в окружности находятся у них помещики, и узнал, что всякие есть помещики: Плотин, Почитаев, Мыльной, Чепраков-полковник, Собакевич. «А! Собакевича знаешь?» — @@ -2236,128 +2237,128 @@ public function realText($maxNbChars = 200, $indexSize = 2) зубами и черными, как смоль, бакенбардами. Свеж он был, как кровь с молоком; здоровье, казалось, так и прыскало с лица его. -— Ба, ба, ба! — вскричал он вдруг, расставив обе руки при виде -— Чичикова. — Какими судьбами? +— Ба, ба, ба! — вскричал он вдруг, расставив обе руки при виде +— Чичикова. — Какими судьбами? Чичиков узнал Ноздрева, того самого, с которым он вместе обедал у прокурора и который с ним в несколько минут сошелся на такую короткую ногу, что начал уже говорить «ты», хотя, впрочем, он с своей стороны не подал к тому никакого повода. -— Куда ездил? — говорил Ноздрев и, не дождавшись ответа, продолжал: — -— А я, брат, с ярмарки. Поздравь: продулся в пух! Веришь ли, что -— никогда в жизни так не продувался. Ведь я на обывательских приехал! -— Вот посмотри нарочно в окно! — Здесь он нагнул сам голову Чичикова, -— так что тот чуть не ударился ею об рамку. — Видишь, какая дрянь! -— Насилу дотащили, проклятые, я уже перелез вот в его бричку. — Говоря -— это, Ноздрев показал пальцем на своего товарища. — А вы еще не -— знакомы? Зять мой Мижуев! Мы с ним все утро говорили о тебе. «Ну, -— смотри, говорю, если мы не встретим Чичикова» Ну, брат, если б ты -— знал, как я продулся! Поверишь ли, что не только убухал четырех -— рысаков — всё спустил. Ведь на мне нет ни цепочки, ни часов… — -— Чичиков взглянул и увидел точно, что на нем не было ни цепочки, ни -— часов. Ему даже показалось, что и один бакенбард был у него меньше и -— не так густ, как другой. — А ведь будь только двадцать рублей в -— кармане, — продолжал Ноздрев, — именно не больше как двадцать, я -— отыграл бы все, то есть кроме того, что отыграл бы, вот как честный -— человек, тридцать тысяч сейчас положил бы в бумажник. - -— Ты, однако, и тогда так говорил, — отвечал белокурый, — а когда я -— тебе дал пятьдесят рублей, тут же просадил их. - -— И не просадил бы! ей-богу, не просадил бы! Не сделай я сам глупость, -— право, не просадил бы. Не загни я после пароле на проклятой семерке -— утку, я бы мог сорвать весь банк. - -— Однако ж не сорвал, — сказал белокурый. - -— Не сорвал потому, что загнул утку не вовремя. А ты думаешь, майор -— твой хорошо играет? - -— Хорошо или не хорошо, однако ж он тебя обыграл. - -— Эка важность! — сказал Ноздрев, — этак и я его обыграю. Нет, вот -— попробуй он играть дублетом, так вот тогда я посмотрю, я посмотрю -— тогда, какой он игрок! Зато, брат Чичиков, как покатили мы в первые -— дни! Правда, ярмарка была отличнейшая. Сами купцы говорят, что -— никогда не было такого съезда. У меня все, что ни привезли из -— деревни, продали по самой выгоднейшей цене. Эх, братец, как -— покутили! Теперь даже, как вспомнишь… черт возьми! то есть как жаль, -— что ты не был. Вообрази, что в трех верстах от города стоял -— драгунский полк. Веришь ли, что офицеры, сколько их ни было, сорок -— человек одних офицеров было в городе; как начали мы, братец, пить… -— Штабс-ротмистр Поцелуев… такой славный! усы, братец, такие! Бордо -— называет просто бурдашкой. «Принеси-ка, брат, говорит, бурдашки!» -— Поручик Кувшинников… Ах, братец, какой премилый человек! вот уж, -— можно сказать, во всей форме кутила. Мы все были с ним вместе. -— Какого вина отпустил нам Пономарев! Нужно тебе знать, что он -— мошенник и в его лавке ничего нельзя брать: в вино мешает всякую -— дрянь: сандал, жженую пробку и даже бузиной, подлец, затирает; но -— зато уж если вытащит из дальней комнатки, которая называется у него -— особенной, какую-нибудь бутылочку — ну просто, брат, находишься в -— эмпиреях. Шампанское у нас было такое — что пред ним губернаторское? -— просто квас. Вообрази, не клико, а какое-то клико-матрадура, это -— значит двойное клико. И еще достал одну бутылочку французского под -— названием: бонбон. Запах? — розетка и все что хочешь. Уж так -— покутили!.. После нас приехал какой-то князь, послал в лавку за -— шампанским, нет ни одной бутылки во всем городе, все офицеры выпили. -— Веришь ли, что я один в продолжение обеда выпил семнадцать бутылок -— шампанского! - -— Ну, семнадцать бутылок ты не выпьешь, — заметил белокурый. - -— Как честный человек говорю, что выпил, — отвечал Ноздрев. - -— Ты можешь себе говорить все что хочешь, а я тебе говорю, что и -— десяти не выпьешь. - -— Ну хочешь об заклад, что выпью! - -— К чему же об заклад? - -— Ну, поставь ружье, которое купил в городе. - -— Не хочу. - -— Ну да поставь, попробуй. - -— И пробовать не хочу - -— Да, был бы ты без ружья, как без шапки. Эх, брат Чичиков, то есть -— как я жалел, что тебя не было Я знаю, что ты бы не расстался с -— поручиком Кувшинниковым. Уж как бы вы с ним хорошо сошлись! Это не -— то что прокурор и все губернские скряги в нашем городе, которые так -— и трясутся за каждую копейку. Этот, братец, и в гальбик, и в -— банчишку, и во все что хочешь. Эх, Чичиков, ну что бы тебе стоило -— приехать? Право, свинтус ты за это, скотовод эдакой! Поцелуй меня, -— душа, смерть люблю тебя! Мижуев, смотри, вот судьба свела: ну что он -— мне или я ему? Он приехал бог знает откуда, я тоже здесь живу… А -— сколько было, брат, карет, и все это en gros[[1 - В большом -— количестве (франц.)]]. В фортунку крутнул: выиграл две банки помады, -— фарфоровую чашку и гитару; потом опять поставил один раз и -— прокрутил, канальство, еще сверх шесть целковых. А какой, если б ты -— знал, волокита Кувшинников! Мы с ним были на всех почти балах. Одна -— была такая разодетая, рюши на ней, и трюши, и черт знает чего не -— было… я думаю себе только: «черт возьми!» А Кувшинников, то есть это -— такая бестия, подсел к ней и на французском языке подпускает ей -— такие комплименты… Поверишь ли, простых баб не пропустил. Это он -— называет: попользоваться насчет клубнички. Рыб и балыков навезли -— чудных. Я таки привез с собою один; хорошо, что догадался купить, -— когда были еще деньги. Ты куда теперь едешь? - -— А я к человечку к одному, — сказал Чичиков. - -— Ну, что человечек, брось его! поедем во мне! - -— Нет, нельзя, есть дело. - -— Ну вот уж и дело! уж и выдумал! Ах ты, Оподелок Иванович! - -— Право, дело, да еще и нужное. - -— Пари держу, врешь! Ну скажи только, к кому едешь? - -— Ну, к Собакевичу. +— Куда ездил? — говорил Ноздрев и, не дождавшись ответа, продолжал: — +— А я, брат, с ярмарки. Поздравь: продулся в пух! Веришь ли, что +— никогда в жизни так не продувался. Ведь я на обывательских приехал! +— Вот посмотри нарочно в окно! — Здесь он нагнул сам голову Чичикова, +— так что тот чуть не ударился ею об рамку. — Видишь, какая дрянь! +— Насилу дотащили, проклятые, я уже перелез вот в его бричку. — Говоря +— это, Ноздрев показал пальцем на своего товарища. — А вы еще не +— знакомы? Зять мой Мижуев! Мы с ним все утро говорили о тебе. «Ну, +— смотри, говорю, если мы не встретим Чичикова» Ну, брат, если б ты +— знал, как я продулся! Поверишь ли, что не только убухал четырех +— рысаков — всё спустил. Ведь на мне нет ни цепочки, ни часов… — +— Чичиков взглянул и увидел точно, что на нем не было ни цепочки, ни +— часов. Ему даже показалось, что и один бакенбард был у него меньше и +— не так густ, как другой. — А ведь будь только двадцать рублей в +— кармане, — продолжал Ноздрев, — именно не больше как двадцать, я +— отыграл бы все, то есть кроме того, что отыграл бы, вот как честный +— человек, тридцать тысяч сейчас положил бы в бумажник. + +— Ты, однако, и тогда так говорил, — отвечал белокурый, — а когда я +— тебе дал пятьдесят рублей, тут же просадил их. + +— И не просадил бы! ей-богу, не просадил бы! Не сделай я сам глупость, +— право, не просадил бы. Не загни я после пароле на проклятой семерке +— утку, я бы мог сорвать весь банк. + +— Однако ж не сорвал, — сказал белокурый. + +— Не сорвал потому, что загнул утку не вовремя. А ты думаешь, майор +— твой хорошо играет? + +— Хорошо или не хорошо, однако ж он тебя обыграл. + +— Эка важность! — сказал Ноздрев, — этак и я его обыграю. Нет, вот +— попробуй он играть дублетом, так вот тогда я посмотрю, я посмотрю +— тогда, какой он игрок! Зато, брат Чичиков, как покатили мы в первые +— дни! Правда, ярмарка была отличнейшая. Сами купцы говорят, что +— никогда не было такого съезда. У меня все, что ни привезли из +— деревни, продали по самой выгоднейшей цене. Эх, братец, как +— покутили! Теперь даже, как вспомнишь… черт возьми! то есть как жаль, +— что ты не был. Вообрази, что в трех верстах от города стоял +— драгунский полк. Веришь ли, что офицеры, сколько их ни было, сорок +— человек одних офицеров было в городе; как начали мы, братец, пить… +— Штабс-ротмистр Поцелуев… такой славный! усы, братец, такие! Бордо +— называет просто бурдашкой. «Принеси-ка, брат, говорит, бурдашки!» +— Поручик Кувшинников… Ах, братец, какой премилый человек! вот уж, +— можно сказать, во всей форме кутила. Мы все были с ним вместе. +— Какого вина отпустил нам Пономарев! Нужно тебе знать, что он +— мошенник и в его лавке ничего нельзя брать: в вино мешает всякую +— дрянь: сандал, жженую пробку и даже бузиной, подлец, затирает; но +— зато уж если вытащит из дальней комнатки, которая называется у него +— особенной, какую-нибудь бутылочку — ну просто, брат, находишься в +— эмпиреях. Шампанское у нас было такое — что пред ним губернаторское? +— просто квас. Вообрази, не клико, а какое-то клико-матрадура, это +— значит двойное клико. И еще достал одну бутылочку французского под +— названием: бонбон. Запах? — розетка и все что хочешь. Уж так +— покутили!.. После нас приехал какой-то князь, послал в лавку за +— шампанским, нет ни одной бутылки во всем городе, все офицеры выпили. +— Веришь ли, что я один в продолжение обеда выпил семнадцать бутылок +— шампанского! + +— Ну, семнадцать бутылок ты не выпьешь, — заметил белокурый. + +— Как честный человек говорю, что выпил, — отвечал Ноздрев. + +— Ты можешь себе говорить все что хочешь, а я тебе говорю, что и +— десяти не выпьешь. + +— Ну хочешь об заклад, что выпью! + +— К чему же об заклад? + +— Ну, поставь ружье, которое купил в городе. + +— Не хочу. + +— Ну да поставь, попробуй. + +— И пробовать не хочу + +— Да, был бы ты без ружья, как без шапки. Эх, брат Чичиков, то есть +— как я жалел, что тебя не было Я знаю, что ты бы не расстался с +— поручиком Кувшинниковым. Уж как бы вы с ним хорошо сошлись! Это не +— то что прокурор и все губернские скряги в нашем городе, которые так +— и трясутся за каждую копейку. Этот, братец, и в гальбик, и в +— банчишку, и во все что хочешь. Эх, Чичиков, ну что бы тебе стоило +— приехать? Право, свинтус ты за это, скотовод эдакой! Поцелуй меня, +— душа, смерть люблю тебя! Мижуев, смотри, вот судьба свела: ну что он +— мне или я ему? Он приехал бог знает откуда, я тоже здесь живу… А +— сколько было, брат, карет, и все это en gros[[1 - В большом +— количестве (франц.)]]. В фортунку крутнул: выиграл две банки помады, +— фарфоровую чашку и гитару; потом опять поставил один раз и +— прокрутил, канальство, еще сверх шесть целковых. А какой, если б ты +— знал, волокита Кувшинников! Мы с ним были на всех почти балах. Одна +— была такая разодетая, рюши на ней, и трюши, и черт знает чего не +— было… я думаю себе только: «черт возьми!» А Кувшинников, то есть это +— такая бестия, подсел к ней и на французском языке подпускает ей +— такие комплименты… Поверишь ли, простых баб не пропустил. Это он +— называет: попользоваться насчет клубнички. Рыб и балыков навезли +— чудных. Я таки привез с собою один; хорошо, что догадался купить, +— когда были еще деньги. Ты куда теперь едешь? + +— А я к человечку к одному, — сказал Чичиков. + +— Ну, что человечек, брось его! поедем во мне! + +— Нет, нельзя, есть дело. + +— Ну вот уж и дело! уж и выдумал! Ах ты, Оподелок Иванович! + +— Право, дело, да еще и нужное. + +— Пари держу, врешь! Ну скажи только, к кому едешь? + +— Ну, к Собакевичу. Здесь Ноздрей захохотал тем звонким смехом, каким заливается только свежий, здоровый человек, у которого все до последнего выказываются @@ -2365,120 +2366,120 @@ public function realText($maxNbChars = 200, $indexSize = 2) дверями, в третьей комнате, вскидывается со сна, вытаращив очи и произнося: «Эк его разобрало!» -— Что ж тут смешного? — сказал Чичиков, отчасти недовольный таким -— смехом. +— Что ж тут смешного? — сказал Чичиков, отчасти недовольный таким +— смехом. Но Ноздрев продолжал хохотать во все горло, приговаривая: -— Ой, пощади, право, тресну со смеху! - -— Ничего нет смешного: я дал ему слово, — сказал Чичиков. - -— Да ведь ты жизни не будешь рад, когда приедешь к нему, это просто -— жидомор! Ведь я знаю твой характер, ты жестоко опешишься, если -— думаешь найти там банчишку и добрую бутылку какого-нибудь бонбона. -— Послушай, братец: ну к черту Собакевича, поедем во мне! каким -— балыком попотчую! Пономарев, бестия, так раскланивался, говорит: -— «Для вас только, всю ярмарку, говорит, обыщите, не найдете такого». -— Плут, однако ж, ужасный. Я ему в глаза это говорил: «Вы, говорю, с -— нашим откупщиком первые мошенники!» Смеется, бестия, поглаживая -— бороду. Мы с Кувшинниковым каждый день завтракали в его лавке. Ах, -— брат, вот позабыл тебе сказать: знаю, что ты теперь не отстанешь, но -— за десять тысяч не отдам, наперед говорю. Эй, Порфирий! — закричал -— он, подошедши к окну, на своего человека, который держал в одной -— руке ножик, а в другой корку хлеба с куском балыка, который -— посчастливилось ему мимоходом отрезать, вынимая что-то из брички. — -— Эй, Порфирий, — кричал Ноздрев, — принеси-ка щенка! Каков щенок! — -— продолжал он, обращаясь к Чичикову. — Краденый, ни за самого себя не -— отдавал хозяин. Я ему сулил каурую кобылу, которую, помнишь, выменял -— у Хвостырева… — Чичиков, впрочем, отроду не видел ни каурой кобылы, -— ни Хвостырева. - -— Барин! ничего не хотите закусить? — сказала в это время, подходя к -— нему, старуха. - -— Ничего. Эх, брат, как покутили! Впрочем, давай рюмку водки; какая у -— тебя есть? - -— Анисовая, — отвечала старуха. - -— Ну, давай анисовой, — сказал Ноздрей. - -— Давай уж и мне рюмку! — сказал белокурый. - -— В театре одна актриса так, каналья, пела, как канарейка! -— Кувшинников, который сидел возле меня, «Вот, говорит, брат, -— попользоваться бы насчет клубнички!» Одних балаганов, я думаю, было -— пятьдесят. Фенарди четыре часа вертелся мельницею. — Здесь он принял -— рюмку из рук старухи, которая ему за то низко поклонилась. — А, -— давай его сюда! — закричал он увидевши Порфирия, вошедшего с щенком. -— Порфирий был одет, так же как и барин, в каком-то архалуке, -— стеганном на вате, но несколько позамасленней. - -— Давай его, клади сюда на пол! +— Ой, пощади, право, тресну со смеху! + +— Ничего нет смешного: я дал ему слово, — сказал Чичиков. + +— Да ведь ты жизни не будешь рад, когда приедешь к нему, это просто +— жидомор! Ведь я знаю твой характер, ты жестоко опешишься, если +— думаешь найти там банчишку и добрую бутылку какого-нибудь бонбона. +— Послушай, братец: ну к черту Собакевича, поедем во мне! каким +— балыком попотчую! Пономарев, бестия, так раскланивался, говорит: +— «Для вас только, всю ярмарку, говорит, обыщите, не найдете такого». +— Плут, однако ж, ужасный. Я ему в глаза это говорил: «Вы, говорю, с +— нашим откупщиком первые мошенники!» Смеется, бестия, поглаживая +— бороду. Мы с Кувшинниковым каждый день завтракали в его лавке. Ах, +— брат, вот позабыл тебе сказать: знаю, что ты теперь не отстанешь, но +— за десять тысяч не отдам, наперед говорю. Эй, Порфирий! — закричал +— он, подошедши к окну, на своего человека, который держал в одной +— руке ножик, а в другой корку хлеба с куском балыка, который +— посчастливилось ему мимоходом отрезать, вынимая что-то из брички. — +— Эй, Порфирий, — кричал Ноздрев, — принеси-ка щенка! Каков щенок! — +— продолжал он, обращаясь к Чичикову. — Краденый, ни за самого себя не +— отдавал хозяин. Я ему сулил каурую кобылу, которую, помнишь, выменял +— у Хвостырева… — Чичиков, впрочем, отроду не видел ни каурой кобылы, +— ни Хвостырева. + +— Барин! ничего не хотите закусить? — сказала в это время, подходя к +— нему, старуха. + +— Ничего. Эх, брат, как покутили! Впрочем, давай рюмку водки; какая у +— тебя есть? + +— Анисовая, — отвечала старуха. + +— Ну, давай анисовой, — сказал Ноздрей. + +— Давай уж и мне рюмку! — сказал белокурый. + +— В театре одна актриса так, каналья, пела, как канарейка! +— Кувшинников, который сидел возле меня, «Вот, говорит, брат, +— попользоваться бы насчет клубнички!» Одних балаганов, я думаю, было +— пятьдесят. Фенарди четыре часа вертелся мельницею. — Здесь он принял +— рюмку из рук старухи, которая ему за то низко поклонилась. — А, +— давай его сюда! — закричал он увидевши Порфирия, вошедшего с щенком. +— Порфирий был одет, так же как и барин, в каком-то архалуке, +— стеганном на вате, но несколько позамасленней. + +— Давай его, клади сюда на пол! Порфирий положил щенка на пол, который, растянувшись на все четыре лапы, нюхал землю. -— Вот щенок! — сказал Ноздрев, взявши его за приподнявши рукою. Щенок -— испустил довольно жалобный вой. +— Вот щенок! — сказал Ноздрев, взявши его за приподнявши рукою. Щенок +— испустил довольно жалобный вой. -— Ты, однако ж, не сделал того, что я тебе говорил, — сказал Ноздрев, -— обратившись к Порфирию и рассматривая брюхо щенка, — и не подумал -— вычесать его? +— Ты, однако ж, не сделал того, что я тебе говорил, — сказал Ноздрев, +— обратившись к Порфирию и рассматривая брюхо щенка, — и не подумал +— вычесать его? -— Нет, я его вычесывал. +— Нет, я его вычесывал. -— А отчего же блохи? +— А отчего же блохи? -— Не могу знать. Статься может, как-нибудь из брички поналезли. +— Не могу знать. Статься может, как-нибудь из брички поналезли. -— Врешь, врешь, и не воображал чесать; я думаю, дурак, еще своих -— напустил. Вот посмотри-ка, Чичиков, посмотри, какие уши, на-ка -— пощупай рукою. +— Врешь, врешь, и не воображал чесать; я думаю, дурак, еще своих +— напустил. Вот посмотри-ка, Чичиков, посмотри, какие уши, на-ка +— пощупай рукою. -— Да зачем, я и так вижу: доброй породы! — отвечал Чичиков. +— Да зачем, я и так вижу: доброй породы! — отвечал Чичиков. -— Нет, возьми-ка нарочно, пощупай уши! +— Нет, возьми-ка нарочно, пощупай уши! Чичиков в угодность ему пощупал уши, примолвивши: -— Да, хорошая будет собака. +— Да, хорошая будет собака. -— А нос, чувствуешь, какой холодный? возьми-на рукою. +— А нос, чувствуешь, какой холодный? возьми-на рукою. Не желая обидеть его, Чичиков взял и за нос, сказавши: -— Хорошее чутье. +— Хорошее чутье. -— Настоящий мордаш, — продолжал Ноздрев, — а, признаюсь, давно острил -— зубы на мордаша. На, Порфирий, отнеси его! +— Настоящий мордаш, — продолжал Ноздрев, — а, признаюсь, давно острил +— зубы на мордаша. На, Порфирий, отнеси его! Порфирий, взявши щенка под брюхо, унес его в бричку. -— Послушай, Чичиков, ты должен непременно теперь ехать ко мне, пять -— верст всего, духом домчимся, а там, пожалуй, можешь и к Собакевичу. +— Послушай, Чичиков, ты должен непременно теперь ехать ко мне, пять +— верст всего, духом домчимся, а там, пожалуй, можешь и к Собакевичу. -«А что ж, — подумал про себя Чичиков, — заеду я в самом деле к +«А что ж, — подумал про себя Чичиков, — заеду я в самом деле к «Ноздреву. Чем же он хуже других, такой же человек, да еще и «проигрался. Горазд он, как видно, на все, стало быть у него даром «можно кое-что выпросить». -— Изволь, едем, — сказал он, — но чур не задержать, мне время дорого. +— Изволь, едем, — сказал он, — но чур не задержать, мне время дорого. -— Ну, душа, вот это так! Вот это хорошо, постой же, я тебя поцелую за -— это. — Здесь Ноздрев и Чичиков поцеловались. — И славно: втроем и -— покатим! +— Ну, душа, вот это так! Вот это хорошо, постой же, я тебя поцелую за +— это. — Здесь Ноздрев и Чичиков поцеловались. — И славно: втроем и +— покатим! -— Нет, ты уж, пожалуйста, меня-то отпусти, — говорил белокурый, — мне -— нужно домой. +— Нет, ты уж, пожалуйста, меня-то отпусти, — говорил белокурый, — мне +— нужно домой. -— Пустяки, пустяки, брат, не пущу. +— Пустяки, пустяки, брат, не пущу. -— Право, жена будет сердиться; теперь же ты можешь, пересесть вот в -— ихнюю бричку. +— Право, жена будет сердиться; теперь же ты можешь, пересесть вот в +— ихнюю бричку. -— Ни, ни, ни! И не думай. +— Ни, ни, ни! И не думай. Белокурый был один из тех людей, в характере которых на первый взгляд есть какое-то упорство. Еще не успеешь открыть рта, как они уже готовы @@ -2487,27 +2488,27 @@ public function realText($maxNbChars = 200, $indexSize = 2) и что в особенности не согласятся плясать по чужой дудке; а кончится всегда тем, что в характере их окажется мягкость, что они согласятся именно на то, что отвергали, глупое назовут умным и пойдут потом -поплясывать как нельзя лучше под чужую дудку, — словом, начнут гладью, +поплясывать как нельзя лучше под чужую дудку, — словом, начнут гладью, а кончат гадью. -— Вздор! — сказал Ноздрев в ответ на каков-то ставление белокурого, -— надел ему на голову картуз, и — белокурый отправился вслед за ними. +— Вздор! — сказал Ноздрев в ответ на каков-то ставление белокурого, +— надел ему на голову картуз, и — белокурый отправился вслед за ними. -— За водочку, барин, не заплатили… — сказала старуха +— За водочку, барин, не заплатили… — сказала старуха -— А, хорошо, хорошо, матушка. Послушай, зятек! заплати, пожалуйста. У -— меня нет ни копейки в кармане. +— А, хорошо, хорошо, матушка. Послушай, зятек! заплати, пожалуйста. У +— меня нет ни копейки в кармане. -— Сколько тебе? — сказал зятек. +— Сколько тебе? — сказал зятек. -— Да что, батюшка, двугривенник всего, — сказала старуха. +— Да что, батюшка, двугривенник всего, — сказала старуха. -— Врешь, врешь. Дай ей полтину, предовольно с нее. +— Врешь, врешь. Дай ей полтину, предовольно с нее. -— Маловато, барин, — сказала старуха, однако ж взяла деньги с -— благодарностию и еще побежала впопыхах отворять им дверь. Она была -— не в убытке, потому что запросила вчетверо против того, что стоила -— водка. +— Маловато, барин, — сказала старуха, однако ж взяла деньги с +— благодарностию и еще побежала впопыхах отворять им дверь. Она была +— не в убытке, потому что запросила вчетверо против того, что стоила +— водка. Приезжие уселись. Бричка Чичикова ехала рядом с бричкой, в которой сидели Ноздрев и его зять, и потому они все трое могли свободно между @@ -2614,14 +2615,14 @@ public function realText($maxNbChars = 200, $indexSize = 2) другую каурую, потом гнедого жеребца, на вид и неказистого, но за которого Ноздрев божился, что заплатил десять тысяч. -— Десять тысяч ты за него не дал, — заметил зять. — Он и одной не -— стоит. +— Десять тысяч ты за него не дал, — заметил зять. — Он и одной не +— стоит. -— Ей-богу, дал десять тысяч, — сказал Ноздрев. +— Ей-богу, дал десять тысяч, — сказал Ноздрев. -— Ты себе можешь божиться, сколько хочешь, — отвечал зять. +— Ты себе можешь божиться, сколько хочешь, — отвечал зять. -— Ну, хочешь, побьемся об заклад! — сказал Ноздрев. +— Ну, хочешь, побьемся об заклад! — сказал Ноздрев. Об заклад зять не захотел биться. @@ -2629,12 +2630,12 @@ public function realText($maxNbChars = 200, $indexSize = 2) лошади. В этой же конюшне видели козла, которого, по старому поверью, почитали необходимым держать при лошадях, который, как казалось, был с ними в ладу, гулял под их брюхами, как у себя дома. Потом Ноздрев -повел их глядеть волчонка, бывшего на привязи. «Вот волчонок! — сказал -он. — Я его нарочно кормлю сырым мясом. Мне хочется, чтобы он был +повел их глядеть волчонка, бывшего на привязи. «Вот волчонок! — сказал +он. — Я его нарочно кормлю сырым мясом. Мне хочется, чтобы он был совершенным зверем!» Пошли смотреть пруд, в котором, по словам Ноздрева, водилась рыба такой величины, что два человека с трудом вытаскивали штуку, в чем, однако ж, родственник не преминул -усомниться. «Я тебе, Чичиков, — сказал Ноздрев, — покажу отличнейшую +усомниться. «Я тебе, Чичиков, — сказал Ноздрев, — покажу отличнейшую пару собак: крепость черных мясом просто наводит изумление, щиток — игла!» — и повел их к выстроенному очень красиво маленькому домику, окруженному большим загороженным со всех сторон двором. Вошедши на @@ -2649,27 +2650,27 @@ public function realText($maxNbChars = 200, $indexSize = 2) здороваться. Штук десять из них положили свои лапы Ноздреву на плеча. Обругай оказал такую же дружбу Чичикову и, поднявшись на задние ноги, лизнул его языком в самые губы, так что Чичиков тут же выплюнул. -Осмотрели собак, наводивших изумление крепостью черных мясов, — +Осмотрели собак, наводивших изумление крепостью черных мясов, — хорошие были собаки. Потом пошли осматривать крымскую суку, которая была уже слепая и, по словам Ноздрева, должна была скоро издохнуть, но года два тому назад была очень хорошая сука; осмотрели и суку — сука, точно, была слепая. Потом пошли осматривать водяную мельницу, где недоставало порхлицы, в которую утверждается верхний камень, быстро -вращающийся на веретене, — «порхающий», по чудному выражению русского +вращающийся на веретене, — «порхающий», по чудному выражению русского мужика. -— А вот тут скоро будет и кузница! — сказал Ноздрев. Немного прошедши, -— они увидели, точно, кузницу, осмотрели и кузницу. +— А вот тут скоро будет и кузница! — сказал Ноздрев. Немного прошедши, +— они увидели, точно, кузницу, осмотрели и кузницу. -— Вот на этом поле, — сказал Ноздрев, указывая пальцем на поле, — -— русаков такая гибель, что земли не видно; я сам своими руками поймал -— одного за задние ноги. +— Вот на этом поле, — сказал Ноздрев, указывая пальцем на поле, — +— русаков такая гибель, что земли не видно; я сам своими руками поймал +— одного за задние ноги. -— Ну, русака ты не поймаешь рукою! — заметил зять. +— Ну, русака ты не поймаешь рукою! — заметил зять. -— А вот же поймал, нарочно поймал! — отвечал Ноздрев — Теперь я поведу -— тебя посмотреть, — продолжал он, обращаясь к Чичикову, — границу, -— где оканчивается моя земля. +— А вот же поймал, нарочно поймал! — отвечал Ноздрев — Теперь я поведу +— тебя посмотреть, — продолжал он, обращаясь к Чичикову, — границу, +— где оканчивается моя земля. Ноздрев повел своих гостей полем, которое во многих местах состояло из кочек. Гости должны были пробираться между перелогами и взбороненными @@ -2680,26 +2681,26 @@ public function realText($maxNbChars = 200, $indexSize = 2) где меньшая грязь. Прошедши порядочное расстояние, увидели, точно, границу, состоявшую из деревянного столбика и узенького рва. -— Вот граница! — сказал Ноздрев. — Все, что ни видишь по эту сторону, -— все это мое, и даже по ту сторону, весь этот лес, которым вон -— синеет, и все, что за лесом, все мое. +— Вот граница! — сказал Ноздрев. — Все, что ни видишь по эту сторону, +— все это мое, и даже по ту сторону, весь этот лес, которым вон +— синеет, и все, что за лесом, все мое. -— Да когда же этот лес сделался твоим? — спросил зять. — Разве ты -— недавно купил его? Ведь он не был твой. +— Да когда же этот лес сделался твоим? — спросил зять. — Разве ты +— недавно купил его? Ведь он не был твой. -— Да, я купил его недавно, — отвечал Ноздрев. +— Да, я купил его недавно, — отвечал Ноздрев. -— Когда же ты успел его так скоро купить? +— Когда же ты успел его так скоро купить? -— Как же, я еще третьего дня купил, и дорого, черт возьми, дал. +— Как же, я еще третьего дня купил, и дорого, черт возьми, дал. -— Да ведь ты был в то время на ярмарке. +— Да ведь ты был в то время на ярмарке. -— Эх ты, Софрон! Разве нельзя быть в одно время и на ярмарке и купить -— землю? Ну, я был на ярмарке, а приказчик мой тут без меня и купил. +— Эх ты, Софрон! Разве нельзя быть в одно время и на ярмарке и купить +— землю? Ну, я был на ярмарке, а приказчик мой тут без меня и купил. -— Да, ну разве приказчик! — сказал зять, но и тут усумнился и покачал -— головою. +— Да, ну разве приказчик! — сказал зять, но и тут усумнился и покачал +— головою. Гости воротились тою же гадкою дорогою к дому. Ноздрев повел их в свой кабинет, в котором, впрочем, не было заметно следов того, что бывает в @@ -2718,7 +2719,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) замшею и необтянутые, чубук с янтарным мундштуком, недавно выигранный, кисет, вышитый какою-то графинею, где-то на почтовой станции влюбившеюся в него по уши, у которой ручки, по словам его, были самой -субдительной сюперфлю, — слово, вероятно означавшее у него высочайшую +субдительной сюперфлю, — слово, вероятно означавшее у него высочайшую точку совершенства. Закусивши балыком, они сели за стол близ пяти часов. Обед, как видно, не составлял у Ноздрева главного в жизни; блюда не играли большой роли: кое-что и пригорело, кое-что и вовсе не @@ -2755,147 +2756,147 @@ public function realText($maxNbChars = 200, $indexSize = 2) ленивым и вялым голосом, как будто бы, по русскому выражению, натаскивал клещами на лошадь хомут. -— И ни-ни! не пущу! — сказал Ноздрев +— И ни-ни! не пущу! — сказал Ноздрев -— Нет, не обижай меня, друг мой, право, поеду, — говорил зять, — ты -— меня очень обидишь. +— Нет, не обижай меня, друг мой, право, поеду, — говорил зять, — ты +— меня очень обидишь. -— Пустяки, пустяки! мы соорудим сию минуту банчишку. +— Пустяки, пустяки! мы соорудим сию минуту банчишку. -— Нет, сооружай, брат, сам, а я не могу, жена будет в большой -— претензии, право, я должен ей рассказать о ярмарке. Нужно, брат, -— право, нужно доставить ей удовольствие. Нет, ты не держи меня! +— Нет, сооружай, брат, сам, а я не могу, жена будет в большой +— претензии, право, я должен ей рассказать о ярмарке. Нужно, брат, +— право, нужно доставить ей удовольствие. Нет, ты не держи меня! -— Ну ее, жену, к..! важное в самом деле дело станете делать вместе! +— Ну ее, жену, к..! важное в самом деле дело станете делать вместе! -— Нет, брат! она такая почтенная и верная! Услуги оказывает такие… -— поверишь, у меня слезы на глазах. Нет, ты не держи меня; как честный -— человек, поеду. Я тебя в этом уверяю по истинной совести. +— Нет, брат! она такая почтенная и верная! Услуги оказывает такие… +— поверишь, у меня слезы на глазах. Нет, ты не держи меня; как честный +— человек, поеду. Я тебя в этом уверяю по истинной совести. -— Пусть его едет, что в нем проку! — сказал тихо Чичиков Ноздреву. +— Пусть его едет, что в нем проку! — сказал тихо Чичиков Ноздреву. -— А и вправду! — сказал Ноздрев. — Смерть не люблю таких растепелей! — -— и прибавил вслух: — Ну, черт с тобою, поезжай бабиться с женою, -— фетюк![[2 - Фетюк — слово, обидное для мужчины, происхоит от Фиты — -— буквы, почитаемой некоторыми неприличною буквою. (Прим. Н. В. -— Гоголя.)]] +— А и вправду! — сказал Ноздрев. — Смерть не люблю таких растепелей! — +— и прибавил вслух: — Ну, черт с тобою, поезжай бабиться с женою, +— фетюк![[2 - Фетюк — слово, обидное для мужчины, происхоит от Фиты — +— буквы, почитаемой некоторыми неприличною буквою. (Прим. Н. В. +— Гоголя.)]] -— Нет, брат, ты не ругай меня фетюком, — отвечал зять, — я ей жизнью -— обязан. Такая, право, добрая, милая, такие ласки оказывает… до слез -— разбирает; спросит, что видел на ярмарке — нужно все рассказать, -— такая, право, милая. +— Нет, брат, ты не ругай меня фетюком, — отвечал зять, — я ей жизнью +— обязан. Такая, право, добрая, милая, такие ласки оказывает… до слез +— разбирает; спросит, что видел на ярмарке — нужно все рассказать, +— такая, право, милая. -— Ну поезжай, ври ей чепуху! Вот картуз твой. +— Ну поезжай, ври ей чепуху! Вот картуз твой. -— Нет, брат, тебе совсем не следует о ней так отзываться; этим ты, -— можно сказать, меня самого обижаешь, она такая милая. +— Нет, брат, тебе совсем не следует о ней так отзываться; этим ты, +— можно сказать, меня самого обижаешь, она такая милая. -— Ну, так и убирайся к ней скорее! +— Ну, так и убирайся к ней скорее! -— Да, брат, поеду, извини, что не могу остаться. Душой рад бы был, но -— не могу. +— Да, брат, поеду, извини, что не могу остаться. Душой рад бы был, но +— не могу. Зять еще долго повторял свои извинения, не замечая, что сам уже давно сидел в бричке, давно выехал за ворота и перед ним давно были одни пустые поля. Должно думать, что жена не много слышала подробностей о ярмарке. -— Такая дрянь! — говорил Ноздрев, стоя перед окном и глядя на -— уезжавший экипаж. — Вон как потащился! конек пристяжной недурен, я -— давно хотел подцепить его. Да ведь с ним нельзя никак сойтиться. -— Фетюк, просто фетюк! +— Такая дрянь! — говорил Ноздрев, стоя перед окном и глядя на +— уезжавший экипаж. — Вон как потащился! конек пристяжной недурен, я +— давно хотел подцепить его. Да ведь с ним нельзя никак сойтиться. +— Фетюк, просто фетюк! Засим вошли они в комнату. Порфирий подал свечи, и Чичиков заметил в руках хозяина неизвестно откуда взявшуюся колоду карт. -— А что брат, — говорил Ноздрев, прижавши бока колоды пальцами и -— несколько погнувши ее, так что треснула и отскочила бумажка. — Ну, -— для препровождения времени, держу триста рублей банку! +— А что брат, — говорил Ноздрев, прижавши бока колоды пальцами и +— несколько погнувши ее, так что треснула и отскочила бумажка. — Ну, +— для препровождения времени, держу триста рублей банку! Но Чичиков прикинулся, как будто и не слышал, о чем речь, и сказал, как бы вдруг припомнив: -— А! чтоб не позабыть: у меня к тебе просьба. +— А! чтоб не позабыть: у меня к тебе просьба. -— Какая? +— Какая? -— Дай прежде слово, что исполнишь. +— Дай прежде слово, что исполнишь. -— Да какая просьба? +— Да какая просьба? -— Ну, да уж дай слово! +— Ну, да уж дай слово! -— Изволь +— Изволь -— Честное слово? +— Честное слово? -— Честное слово. +— Честное слово. -— Вот какая просьба: у тебя есть, чай, много умерших крестьян, которые -— еще не вычеркнуть из ревизии? +— Вот какая просьба: у тебя есть, чай, много умерших крестьян, которые +— еще не вычеркнуть из ревизии? -— Ну есть, а что? +— Ну есть, а что? -— Переведи их на меня, на мое имя. +— Переведи их на меня, на мое имя. -— А на что тебе? +— А на что тебе? -— Ну да мне нужно. +— Ну да мне нужно. -— Да на что? +— Да на что? -— Ну да уж нужно… уж это мое дело, — словом, нужно. +— Ну да уж нужно… уж это мое дело, — словом, нужно. -— Ну уж, верно, что-нибудь затеял. Признайся, что? +— Ну уж, верно, что-нибудь затеял. Признайся, что? -— Да что ж затеял? из этакого пустяка и затеять ничего нельзя. +— Да что ж затеял? из этакого пустяка и затеять ничего нельзя. -— Да зачем же они тебе? +— Да зачем же они тебе? -— Ох, какой любопытный! ему всякую дрянь хотелось бы пощупать рукой, -— да еще и понюхать! +— Ох, какой любопытный! ему всякую дрянь хотелось бы пощупать рукой, +— да еще и понюхать! -— Да к чему ж ты не хочешь сказать? +— Да к чему ж ты не хочешь сказать? -— Да что же тебе за прибыль знать? ну, просто так, пришла фантазия. +— Да что же тебе за прибыль знать? ну, просто так, пришла фантазия. -— Так вот же: до тех пор, пока не скажешь, не сделаю! +— Так вот же: до тех пор, пока не скажешь, не сделаю! -— Ну вот видишь, вот уж и нечестно с твоей стороны: слово дал, да и на -— попятный двор. +— Ну вот видишь, вот уж и нечестно с твоей стороны: слово дал, да и на +— попятный двор. -— Ну, как ты себе хочешь, а не сделаю, пока не скажешь, на что. +— Ну, как ты себе хочешь, а не сделаю, пока не скажешь, на что. «Что бы такое сказать ему?» — подумал Чичиков в после минутного «размышления объявил, что мертвые души нужны ему для приобретения весу «в обществе, что он поместьев больших не имеет, так до того времени «хоть бы какие-нибудь душонки. -— Врешь, врешь! — сказал Ноздрев, не давши окончить. — Врешь, брат! +— Врешь, врешь! — сказал Ноздрев, не давши окончить. — Врешь, брат! Чичиков и сам заметил, что придумал не очень ловко и предлог довольно слаб. -— Ну, так я ж тебе скажу прямее, — сказал он, поправившись, — только, -— пожалуйста, не проговорись никому. Я задумал жениться; но нужно тебе -— знать, что отец и мать невесты преамбициозные люди. Такая, право, -— комиссия: не рад, что связался, хотят непременно, чтоб у жениха было -— никак не меньше трехсот душ, а так как у меня целых почти -— полутораста крестьян недостает… +— Ну, так я ж тебе скажу прямее, — сказал он, поправившись, — только, +— пожалуйста, не проговорись никому. Я задумал жениться; но нужно тебе +— знать, что отец и мать невесты преамбициозные люди. Такая, право, +— комиссия: не рад, что связался, хотят непременно, чтоб у жениха было +— никак не меньше трехсот душ, а так как у меня целых почти +— полутораста крестьян недостает… -— Ну врешь! врешь! — закричал опять Ноздрев. +— Ну врешь! врешь! — закричал опять Ноздрев. -— Ну вот уж здесь, — сказал Чичиков, — ни вот на столько не солгал, — -— и показал большим пальцем на своем мизинце самую маленькую часть. +— Ну вот уж здесь, — сказал Чичиков, — ни вот на столько не солгал, — +— и показал большим пальцем на своем мизинце самую маленькую часть. -— Голову ставлю, что врешь! +— Голову ставлю, что врешь! -— Однако ж это обидно! что же я такое в самом деле! почему я -— непременно лгу? +— Однако ж это обидно! что же я такое в самом деле! почему я +— непременно лгу? -— Ну да ведь я знаю тебя: ведь ты большой мошенник, позволь мне это -— сказать тебе по дружбе! Ежели бы я был твоим начальником, я бы тебя -— повесил на первом дереве. +— Ну да ведь я знаю тебя: ведь ты большой мошенник, позволь мне это +— сказать тебе по дружбе! Ежели бы я был твоим начальником, я бы тебя +— повесил на первом дереве. Чичиков оскорбился таким замечанием. Уже всякое выражение, сколько- нибудь грубое или оскорбляющее благопристойность, было ему неприятно. @@ -2903,162 +2904,162 @@ public function realText($maxNbChars = 200, $indexSize = 2) обращения, разве только если особа была слишком высокого звания. И потому теперь он совершенно обиделся. -— Ей-богу, повесил бы, — повторил Ноздрев, — я тебе говорю это -— откровенно, не с тем чтобы тебя обидеть, а просто по-дружески -— говорю. +— Ей-богу, повесил бы, — повторил Ноздрев, — я тебе говорю это +— откровенно, не с тем чтобы тебя обидеть, а просто по-дружески +— говорю. -— Всему есть границы, — сказал Чичиков с чувством достоинства. — Если -— хочешь пощеголять подобными речами, так ступай в казармы, — и потом -— присовокупил: — Не хочешь подарить, так продай. +— Всему есть границы, — сказал Чичиков с чувством достоинства. — Если +— хочешь пощеголять подобными речами, так ступай в казармы, — и потом +— присовокупил: — Не хочешь подарить, так продай. -— Продать! Да ведь я знаю тебя, ведь ты подлец, ведь ты дорого не дашь -— за них? +— Продать! Да ведь я знаю тебя, ведь ты подлец, ведь ты дорого не дашь +— за них? -— Эх, да ты ведь тоже хорош! смотри ты! что они у тебя бриллиантовые, -— что ли? +— Эх, да ты ведь тоже хорош! смотри ты! что они у тебя бриллиантовые, +— что ли? -— Ну, так и есть. Я уж тебя знал. +— Ну, так и есть. Я уж тебя знал. -— Помилуй, брат, что ж у тебя за жидовское побуждение. Ты бы должен -— просто отдать мне их. +— Помилуй, брат, что ж у тебя за жидовское побуждение. Ты бы должен +— просто отдать мне их. -— Ну, послушай, чтоб доказать тебе, что я вовсе не какой-нибудь -— скалдырник, я не возьму за них ничего. Купи у меня жеребца, я тебе -— дам их в придачу. +— Ну, послушай, чтоб доказать тебе, что я вовсе не какой-нибудь +— скалдырник, я не возьму за них ничего. Купи у меня жеребца, я тебе +— дам их в придачу. -— Помилуй, на что ж мне жеребец? — сказал Чичиков, изумленный в самом -— деле таким предложением. +— Помилуй, на что ж мне жеребец? — сказал Чичиков, изумленный в самом +— деле таким предложением. -— Как на что? да ведь я за него заплатил десять тысяч, а тебе отдаю за -— четыре. +— Как на что? да ведь я за него заплатил десять тысяч, а тебе отдаю за +— четыре. -— Да на что мне жеребец? завода я не держу. +— Да на что мне жеребец? завода я не держу. -— Да послушай, ты не понимаешь: ведь я с тебя возьму теперь всего -— только три тысячи, а остальную тысячу ты можешь заплатить мне после. +— Да послушай, ты не понимаешь: ведь я с тебя возьму теперь всего +— только три тысячи, а остальную тысячу ты можешь заплатить мне после. -— Да не нужен мне жеребец, бог с ним! +— Да не нужен мне жеребец, бог с ним! -— Ну, купи каурую кобылу. +— Ну, купи каурую кобылу. -— И кобылы не нужно. +— И кобылы не нужно. -— За кобылу и за серого коня, которого ты у меня видел, возьму я с -— тебя только две тысячи. +— За кобылу и за серого коня, которого ты у меня видел, возьму я с +— тебя только две тысячи. -— Да не нужны мне лошади. +— Да не нужны мне лошади. -— Ты их продашь, тебе на первой ярмарке дадут за них втрое больше. +— Ты их продашь, тебе на первой ярмарке дадут за них втрое больше. -— Так лучше ж ты их сам продай, когда уверен, что выиграешь втрое. +— Так лучше ж ты их сам продай, когда уверен, что выиграешь втрое. -— Я знаю, что выиграю, да мне хочется, чтобы и ты получил выгоду. +— Я знаю, что выиграю, да мне хочется, чтобы и ты получил выгоду. Чичиков поблагодарил за расположение и напрямик отказался и от серого коня, и от каурой кобылы. -— Ну так купи собак. Я тебе продам такую пару, просто мороз по коже -— подирает! брудастая, с усами, шерсть стоит вверх, как щетина. -— Бочковатость ребр уму непостижимая, лапа вся в комке, земли не -— заденет. +— Ну так купи собак. Я тебе продам такую пару, просто мороз по коже +— подирает! брудастая, с усами, шерсть стоит вверх, как щетина. +— Бочковатость ребр уму непостижимая, лапа вся в комке, земли не +— заденет. -— Да зачем мне собаки? я не охотник. +— Да зачем мне собаки? я не охотник. -— Да мне хочется, чтобы у тебя были собаки. Послушай, если уж не -— хочешь собак, так купи у меня шарманку, чудная шарманка; самому, как -— честный человек, обошлась в полторы тысячи. тебе отдаю за девятьсот -— рублей. +— Да мне хочется, чтобы у тебя были собаки. Послушай, если уж не +— хочешь собак, так купи у меня шарманку, чудная шарманка; самому, как +— честный человек, обошлась в полторы тысячи. тебе отдаю за девятьсот +— рублей. -— Да зачем же мне шарманка? Ведь я не немец, чтобы, тащася с ней по -— дорогам, выпрашивать деньги. +— Да зачем же мне шарманка? Ведь я не немец, чтобы, тащася с ней по +— дорогам, выпрашивать деньги. -— Да ведь это не такая шарманка, как носят немцы. Это орган; посмотри -— нарочно: вся из красного дерева. Вот я тебе покажу ее еще! — Здесь -— Ноздрев, схвативши за руку Чичикова, стал тащить его в другую -— комнату, и как тот ни упирался ногами в пол и ни уверял, что он -— знает уже, какая шарманка, но должен был услышать еще раз, каким -— образом поехал в поход Мальбруг. — Когда ты не хочешь на деньги, так -— вот что, слушай: я тебе дам шарманку и все, сколько ни есть у меня, -— мертвые души, а ты мне дай свою бричку и триста рублей придачи. +— Да ведь это не такая шарманка, как носят немцы. Это орган; посмотри +— нарочно: вся из красного дерева. Вот я тебе покажу ее еще! — Здесь +— Ноздрев, схвативши за руку Чичикова, стал тащить его в другую +— комнату, и как тот ни упирался ногами в пол и ни уверял, что он +— знает уже, какая шарманка, но должен был услышать еще раз, каким +— образом поехал в поход Мальбруг. — Когда ты не хочешь на деньги, так +— вот что, слушай: я тебе дам шарманку и все, сколько ни есть у меня, +— мертвые души, а ты мне дай свою бричку и триста рублей придачи. -— Ну вот еще, а я-то в чем поеду? +— Ну вот еще, а я-то в чем поеду? -— Я тебе дам другую бричку. Вот пойдем в сарай, я тебе покажу ее! Ты -— ее только перекрасишь, и будет чудо бричка. +— Я тебе дам другую бричку. Вот пойдем в сарай, я тебе покажу ее! Ты +— ее только перекрасишь, и будет чудо бричка. «Эк его неугомонный бес как обуял!» — подумал про себя Чичиков и «решился во что бы то ни стало отделаться от всяких бричек, шарманок и «всех возможных собак, несмотря на непостижимую уму бочковатость ребр «и комкость лап. -— Да ведь бричка, шарманка и мертвые души, все вместе! +— Да ведь бричка, шарманка и мертвые души, все вместе! -— Не хочу, — сказал еще раз Чичиков. +— Не хочу, — сказал еще раз Чичиков. -— Отчего ж ты не хочешь? +— Отчего ж ты не хочешь? -— Оттого, что просто не хочу, да и полно. +— Оттого, что просто не хочу, да и полно. -— Экой ты, право, такой! с тобой, как я вижу, нельзя, как водится -— между хорошими друзьями и товарищами, такой, право!.. Сейчас видно, -— что двуличный человек! +— Экой ты, право, такой! с тобой, как я вижу, нельзя, как водится +— между хорошими друзьями и товарищами, такой, право!.. Сейчас видно, +— что двуличный человек! -— Да что же я, дурак, что ли? ты посуди сам: зачем же приобретать -— вещь, решительно для меня ненужную? +— Да что же я, дурак, что ли? ты посуди сам: зачем же приобретать +— вещь, решительно для меня ненужную? -— Ну уж, пожалуйста, не говори. Теперь я очень хорошо тебя знаю. -— Такая, право, ракалия! Ну, послушай, хочешь метнем банчик? Я -— поставлю всех умерших на карту, шарманку тоже. +— Ну уж, пожалуйста, не говори. Теперь я очень хорошо тебя знаю. +— Такая, право, ракалия! Ну, послушай, хочешь метнем банчик? Я +— поставлю всех умерших на карту, шарманку тоже. -— Ну, решаться в банк, значит подвергаться неизвестности, — говорил -— Чичиков и между тем взглянул искоса на бывшие в руках у него карты. -— Обе талии ему показались очень похожими на искусственные, и самый -— крап глядел весьма подозрительно. +— Ну, решаться в банк, значит подвергаться неизвестности, — говорил +— Чичиков и между тем взглянул искоса на бывшие в руках у него карты. +— Обе талии ему показались очень похожими на искусственные, и самый +— крап глядел весьма подозрительно. -— Отчего ж неизвестности? — сказал Ноздрев. — Никакой неизвестности! -— будь только на твоей стороне счастие, ты можешь выиграть чертову -— пропасть. Вон она! экое счастье! — говорил он, начиная метать для -— возбуждения задору. — Экое счастье! экое счастье! вон: так и -— колотит! вот та проклятая девятка, на которой я все просадил! -— Чувствовал, что продаст, да уже, зажмурив глаза, думаю себе: «Черт -— тебя побери, продавай, проклятая!» +— Отчего ж неизвестности? — сказал Ноздрев. — Никакой неизвестности! +— будь только на твоей стороне счастие, ты можешь выиграть чертову +— пропасть. Вон она! экое счастье! — говорил он, начиная метать для +— возбуждения задору. — Экое счастье! экое счастье! вон: так и +— колотит! вот та проклятая девятка, на которой я все просадил! +— Чувствовал, что продаст, да уже, зажмурив глаза, думаю себе: «Черт +— тебя побери, продавай, проклятая!» Когда Ноздрев это говорил, Порфирий принес бутылку. Но Чичиков отказался решительно как играть, так и пить. -— Отчего ж ты не хочешь играть? — сказал Ноздрев. +— Отчего ж ты не хочешь играть? — сказал Ноздрев. -— Ну оттого, что не расположен. Да, признаться сказать, я вовсе не -— охотник играть. +— Ну оттого, что не расположен. Да, признаться сказать, я вовсе не +— охотник играть. -— Отчего ж не охотник? +— Отчего ж не охотник? Чичиков пожал плечами и прибавил: -— Потому что не охотник. +— Потому что не охотник. -— Дрянь же ты! +— Дрянь же ты! -— Что ж делать? так бог создал. +— Что ж делать? так бог создал. -— Фетюк просто! Я думал было прежде, что ты хоть сколько-нибудь -— порядочный человек, а ты никакого не понимаешь обращения. С тобой -— никак нельзя говорить, как с человеком близким… никакого прямодушия, -— ни искренности! совершенный Собакевич, такой подлец! +— Фетюк просто! Я думал было прежде, что ты хоть сколько-нибудь +— порядочный человек, а ты никакого не понимаешь обращения. С тобой +— никак нельзя говорить, как с человеком близким… никакого прямодушия, +— ни искренности! совершенный Собакевич, такой подлец! -— Да за что же ты бранишь меня? Виноват разве я, что не играю? Продай -— мне душ одних, если уж ты такой человек, что дрожишь из-за этого -— вздору. +— Да за что же ты бранишь меня? Виноват разве я, что не играю? Продай +— мне душ одних, если уж ты такой человек, что дрожишь из-за этого +— вздору. -— Черта лысого получишь! хотел было, даром хотел отдать, но теперь вот -— не получишь же! Хоть три царства давай, не отдам. Такой шильник, -— печник гадкий! С этих пор с тобой никакого дела не хочу иметь. -— Порфирий, ступай скажи конюху, чтобы не давал овса лошадям его, -— пусть их едят одно сено. +— Черта лысого получишь! хотел было, даром хотел отдать, но теперь вот +— не получишь же! Хоть три царства давай, не отдам. Такой шильник, +— печник гадкий! С этих пор с тобой никакого дела не хочу иметь. +— Порфирий, ступай скажи конюху, чтобы не давал овса лошадям его, +— пусть их едят одно сено. Последнего заключения Чичиков никак не ожидал. -— Лучше б ты мне просто на глаза не показывался! — сказал Ноздрев. +— Лучше б ты мне просто на глаза не показывался! — сказал Ноздрев. Несмотря, однако ж, на такую размолвку, гость и хозяин поужинали вместе, хотя на этот раз не стояло на столе никаких вин с затейливыми @@ -3067,7 +3068,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) сказал Чичикову, отведя его в боковую комнату, где была приготовлена для него постель: -— Вот тебе постель! Не хочу и доброй ночи желать тебе! +— Вот тебе постель! Не хочу и доброй ночи желать тебе! Чичиков остался по уходе Ноздрева в самом неприятном расположении духа. Он внутренно досадовал на себя, бранил себя за то, что к нему @@ -3076,7 +3077,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) ибо дело совсем не такого роду, чтобы быть вверену Ноздреву… Ноздрев человек-дрянь, Ноздрев может наврать, прибавить, распустить черт знает что, выйдут еще какие-нибудь сплетни — нехорошо, нехорошо. «Просто -дурак я». — говорил он сам себе. Ночь спал он очень дурно. Какие-то +дурак я». — говорил он сам себе. Ночь спал он очень дурно. Какие-то маленькие пребойкие насекомые кусали его нестерпимо больно, так что он всей горстью скреб по уязвленному месту, приговаривая: «А, чтоб вас черт побрал вместе с Ноздревым!» Проснулся он ранним утром. Первым @@ -3087,20 +3088,20 @@ public function realText($maxNbChars = 200, $indexSize = 2) Ноздрев приветствовал его по-дружески и спросил, каково ему спалось. -— Так себе, — отвечал Чичиков весьма сухо. +— Так себе, — отвечал Чичиков весьма сухо. -— А я, брат, — говорил Ноздрев, — такая мерзость лезла всю ночь, что -— гнусно рассказывать, и во рту после вчерашнего точно эскадрон -— переночевал. Представь: снилось, что меня высекли, ей-ей! и, -— вообрази, кто? Вот ни за что не угадаешь: штабс-ротмистр Поцелуев -— вместе с Кувшинниковым. +— А я, брат, — говорил Ноздрев, — такая мерзость лезла всю ночь, что +— гнусно рассказывать, и во рту после вчерашнего точно эскадрон +— переночевал. Представь: снилось, что меня высекли, ей-ей! и, +— вообрази, кто? Вот ни за что не угадаешь: штабс-ротмистр Поцелуев +— вместе с Кувшинниковым. -«Да, — подумал про себя Чичиков, — хорошо бы, если б тебя отодрали +«Да, — подумал про себя Чичиков, — хорошо бы, если б тебя отодрали «наяву». -— Ей-богу! да пребольно! Проснулся: черт возьми, в самом деле что-то -— почесывается, — верно, ведьмы блохи. Ну, ты ступай теперь одевайся, -— я к тебе сейчас приду. Нужно только ругнуть подлеца приказчика. +— Ей-богу! да пребольно! Проснулся: черт возьми, в самом деле что-то +— почесывается, — верно, ведьмы блохи. Ну, ты ступай теперь одевайся, +— я к тебе сейчас приду. Нужно только ругнуть подлеца приказчика. Чичиков ушел в комнату одеться и умыться. Когда после того вышел он в столовую, там уже стоял на столе чайный прибор с бутылкою рома. В @@ -3112,136 +3113,136 @@ public function realText($maxNbChars = 200, $indexSize = 2) был очень хорош для живописца, не любящего страх господ прилизанных и завитых, подобно цирюльным вывескам, или выстриженных под гребенку. -— Ну, так как же думаешь? — сказал Ноздрев, немного помолчавши. — Не -— хочешь играть на души? +— Ну, так как же думаешь? — сказал Ноздрев, немного помолчавши. — Не +— хочешь играть на души? -— Я уже сказал тебе, брат, что не играю; купить — изволь, куплю. +— Я уже сказал тебе, брат, что не играю; купить — изволь, куплю. -— Продать я не хочу, это будет не по-приятельски. Я не стану снимать -— плевы с черт знает чего. В бантик — другое дело. Прокинем хоть -— талию! +— Продать я не хочу, это будет не по-приятельски. Я не стану снимать +— плевы с черт знает чего. В бантик — другое дело. Прокинем хоть +— талию! -— Я уж сказал, что нет. +— Я уж сказал, что нет. -— А меняться не хочешь? +— А меняться не хочешь? -— Не хочу. +— Не хочу. -— Ну, послушай, сыграем в шашки, выиграешь — твои все. Ведь у меня -— много таких, которых нужно вычеркнуть из ревизии. Эй, Порфирий, -— принеси-ка сюда шашечницу. +— Ну, послушай, сыграем в шашки, выиграешь — твои все. Ведь у меня +— много таких, которых нужно вычеркнуть из ревизии. Эй, Порфирий, +— принеси-ка сюда шашечницу. -— Напрасен труд, я не буду играть. +— Напрасен труд, я не буду играть. -— Да ведь это не в банк; тут никакого не может быть счастия или -— фальши: все ведь от искусства; я даже тебя предваряю, что я совсем -— не умею играть, разве что-нибудь мне дашь вперед. +— Да ведь это не в банк; тут никакого не может быть счастия или +— фальши: все ведь от искусства; я даже тебя предваряю, что я совсем +— не умею играть, разве что-нибудь мне дашь вперед. -«Сем-ка я, — подумал про себя Чичиков, — сыграю с ним в шашки! В шашки +«Сем-ка я, — подумал про себя Чичиков, — сыграю с ним в шашки! В шашки «игрывал я недурно, а на штуки ему здесь трудно подняться». -— Изволь, так и быть, в шашки сыграю. +— Изволь, так и быть, в шашки сыграю. -— Души идут в ста рублях! +— Души идут в ста рублях! -— Зачем же? довольно, если пойдут в пятидесяти. +— Зачем же? довольно, если пойдут в пятидесяти. -— Нет, что ж за куш пятьдесят? Лучше ж в эту сумму я включу тебе -— какого-нибудь щенка средней руки или золотую печатку к часам. +— Нет, что ж за куш пятьдесят? Лучше ж в эту сумму я включу тебе +— какого-нибудь щенка средней руки или золотую печатку к часам. -— Ну, изволь! — сказал Чичиков. +— Ну, изволь! — сказал Чичиков. -— Сколько же ты мне дашь вперед? — сказал Ноздрев. +— Сколько же ты мне дашь вперед? — сказал Ноздрев. -— Это с какой стати? Конечно, ничего. +— Это с какой стати? Конечно, ничего. -— По крайней мере пусть будут мои два хода. +— По крайней мере пусть будут мои два хода. -— Не хочу, я сам плохо играю. +— Не хочу, я сам плохо играю. -— Знаем мы вас, как вы плохо играете! — сказал Ноздрев, выступая -— шашкой. +— Знаем мы вас, как вы плохо играете! — сказал Ноздрев, выступая +— шашкой. -— Давненько не брал я в руки шашек! — говорил Чичиков, подвигая тоже -— шашку. +— Давненько не брал я в руки шашек! — говорил Чичиков, подвигая тоже +— шашку. -— Знаем мы вас, как вы плохо играете! — сказал Ноздрев, выступая -— шашкой. +— Знаем мы вас, как вы плохо играете! — сказал Ноздрев, выступая +— шашкой. -— Давненько не брал я в руки шашек! — говорил Чичиков, подвигая шашку. +— Давненько не брал я в руки шашек! — говорил Чичиков, подвигая шашку. -— Знаем мы вас, как вы плохо играете! — сказал Ноздрев, подвигая -— шашку, да в то же самое время подвинул обшлагом рукава и другую -— шашку. +— Знаем мы вас, как вы плохо играете! — сказал Ноздрев, подвигая +— шашку, да в то же самое время подвинул обшлагом рукава и другую +— шашку. -— Давненько не брал я в руки!.. Э, э! это, брат, что? отсади-ка ее -— назад! — говорил Чичиков. +— Давненько не брал я в руки!.. Э, э! это, брат, что? отсади-ка ее +— назад! — говорил Чичиков. -— Кого? +— Кого? -— Да шашку-то, — сказал Чичиков и в то же время увидел перед самым -— носом своим другую, которая, как казалось, пробиралась в дамки; -— откуда она взялась это один только бог знал. — Нет, — сказал -— Чичиков, вставши из-за стола, — с тобой нет никакой возможности -— играть! Этак не ходят, по три шашки вдруг! +— Да шашку-то, — сказал Чичиков и в то же время увидел перед самым +— носом своим другую, которая, как казалось, пробиралась в дамки; +— откуда она взялась это один только бог знал. — Нет, — сказал +— Чичиков, вставши из-за стола, — с тобой нет никакой возможности +— играть! Этак не ходят, по три шашки вдруг! -— Отчего ж по три? Это по ошибке. Одна подвинулась нечаянно, я ее -— отодвину, изволь. +— Отчего ж по три? Это по ошибке. Одна подвинулась нечаянно, я ее +— отодвину, изволь. -— А другая-то откуда взялась? +— А другая-то откуда взялась? -— Какая другая? +— Какая другая? -— А вот эта, что пробирается в дамки? +— А вот эта, что пробирается в дамки? -— Вот тебе на, будто не помнишь! +— Вот тебе на, будто не помнишь! -— Нет, брат, я все ходы считал и все помню; ты ее только теперь -— пристроил. Ей место вон где! +— Нет, брат, я все ходы считал и все помню; ты ее только теперь +— пристроил. Ей место вон где! -— Как, где место? — сказал Ноздрев, покрасневши. — Да, ты, брат, как я -— вижу, сочинитель! +— Как, где место? — сказал Ноздрев, покрасневши. — Да, ты, брат, как я +— вижу, сочинитель! -— Нет, брат, это, кажется, ты сочинитель, да только неудачно. +— Нет, брат, это, кажется, ты сочинитель, да только неудачно. -— За кого ж ты меня почитаешь? — говорил Ноздрев. — Стану я разве -— плутоватать? +— За кого ж ты меня почитаешь? — говорил Ноздрев. — Стану я разве +— плутоватать? -— Я тебя ни за кого не почитаю, но только играть с этих пор никогда не -— буду. +— Я тебя ни за кого не почитаю, но только играть с этих пор никогда не +— буду. -— Нет, ты не можешь отказаться, — говорил Ноздрев, горячась, — игра -— начата! +— Нет, ты не можешь отказаться, — говорил Ноздрев, горячась, — игра +— начата! -— Я имею право отказаться, потому что ты не так играешь, как прилично -— честному человеку. +— Я имею право отказаться, потому что ты не так играешь, как прилично +— честному человеку. -— Нет, врешь, ты этого не можешь сказать! +— Нет, врешь, ты этого не можешь сказать! -— Нет, брат, сам ты врешь! +— Нет, брат, сам ты врешь! -— Я не плутовал, а ты отказаться не можешь, ты должен кончить партию! +— Я не плутовал, а ты отказаться не можешь, ты должен кончить партию! -— Этого ты меня не заставишь сделать, — сказал Чичиков хладнокровно и, -— подошедши к доске, смешал шашки. +— Этого ты меня не заставишь сделать, — сказал Чичиков хладнокровно и, +— подошедши к доске, смешал шашки. Ноздрев вспыхнул и подошел к Чичикову так близко, что тот отступил шага два назад. -— Я тебя заставлю играть! Это ничего, что ты смешал шашки, я помню все -— ходы. Мы их поставим опять так, как были. +— Я тебя заставлю играть! Это ничего, что ты смешал шашки, я помню все +— ходы. Мы их поставим опять так, как были. -— Нет, брат, дело кончено, я с тобою не стану играть. +— Нет, брат, дело кончено, я с тобою не стану играть. -— Так ты не хочешь играть? +— Так ты не хочешь играть? -— Ты сам видишь, что с тобою нет возможности играть. +— Ты сам видишь, что с тобою нет возможности играть. -— Нет, скажи напрямик, ты не хочешь играть? — говорил Ноздрев, -— подступая еще ближе. +— Нет, скажи напрямик, ты не хочешь играть? — говорил Ноздрев, +— подступая еще ближе. -— Не хочу! — сказал Чичиков и поднес, однако ж, обе руки на всякий -— случай поближе к лицу, ибо дело становилось в самом деле жарко. +— Не хочу! — сказал Чичиков и поднес, однако ж, обе руки на всякий +— случай поближе к лицу, ибо дело становилось в самом деле жарко. Эта предосторожность была весьма у места, потому что Ноздрев размахнулся рукой… и очень бы могло статься, что одна из приятных и @@ -3249,8 +3250,8 @@ public function realText($maxNbChars = 200, $indexSize = 2) счастливо отведши удар, он схватил Ноздрева за обе задорные его руки и держал его крепко. -— Порфирий, Павлушка! — кричал Ноздрев в бешенстве, порываясь -— вырваться. +— Порфирий, Павлушка! — кричал Ноздрев в бешенстве, порываясь +— вырваться. Услыша эти слова, Чичиков, чтобы не сделать дворовых людей свидетелями соблазнительной сцены и вместе с тем чувствуя, что держать Ноздрева @@ -3258,81 +3259,81 @@ public function realText($maxNbChars = 200, $indexSize = 2) с ним Павлушка, парень дюжий, с которым иметь дело было совсем невыгодно. -— Так ты не хочешь оканчивать партии? — говорил Ноздрев. — Отвечай мне -— напрямик! - -— Партии нет возможности оканчивать, — говорил Чичиков и заглянул в -— окно. Он увидел свою бричку, которая стояла совсем готовая, а -— Селифан ожидал, казалось, мановения, чтобы подкатить под крыльцо, но -— из комнаты не было никакой возможности выбраться: в дверях стояли -— два дюжих крепостных дурака. - -— Так ты не хочешь доканчивать партии? — повторил Ноздрев с лицом, -— горевшим, как в огне. - -— Если бы ты играл, как прилично честному человеку. Но теперь не могу. - -— А! так ты не можешь, подлец! когда увидел, что не твоя берет, так и -— не можешь! Бейте его! — кричал он исступленно, обратившись к -— Порфирию и Павлушке, а сам схватил в руку черешневый чубук. Чичиков -— стал бледен как полотно. Он хотел что-то сказать, но чувствовал, что -— губы его шевелились без звука. - -— Бейте его! — кричал Ноздрев, порываясь вперед с черешневым чубуком, -— весь в жару, в поту, как будто подступал под неприступную крепость. -— — Бейте его! — кричал он таким же голосом, как во время великого -— приступа кричит своему взводу: «Ребята, вперед!» какой-нибудь -— отчаянный поручик, которого взбалмошная храбрость уже приобрела -— такую известность, что дается нарочный приказ держать его за руки во -— время горячих дел. Но поручик уже почувствовал бранный задор, все -— пошло кругом в голове его; перед ним носится Суворов, он лезет на -— великое дело. «Ребята, вперед!» — кричит он, порываясь, не помышляя, -— что вредит уже обдуманному плану общего приступа, что миллионы -— ружейных дул выставились в амбразуры неприступных, уходящих за- -— облака крепостных стен, что взлетит, как пух, на воздух его -— бессильный взвод и что уже свищет роковая пуля, готовясь захлопнуть -— его крикливую глотку. Но если Ноздрев выразил собою подступившего -— под крепость отчаянного, потерявшегося поручика, то крепость, на -— которую он шел, никак не была похожа на неприступную. Напротив, -— крепость чувствовала такой страх, что душа ее спряталась в самые -— пятки. Уже стул, которым он вздумал было защищаться, был вырван -— крепостными людьми из рук его, уже, зажмурив глаза, ни жив ни мертв, -— он готовился отведать черкесского чубука своего хозяина, и бог знает -— чего бы ни случилось с ним; но судьбам угодно было спасти бока, -— плеча и все благовоспитанные части нашего героя. Неожиданным образом -— звякнули вдруг, как с облаков, задребезжавшие звуки колокольчика, -— раздался ясно стук колес подлетевшей к крыльцу телеги, и отозвались -— даже в самой комнате тяжелый храп и тяжкая одышка разгоряченных -— коней остановившейся тройки. Все невольно глянули в окно: кто-то, с -— усами, в полувоенном сюртуке, вылезал из телеги. Осведомившись в -— передней, вошел он в ту самую минуту, когда Чичиков не успел еще -— опомниться от своего страха и был в самом жалком положении, в каком -— когда-либо находился смертный. - -— Позвольте узнать, кто здесь господин Ноздрев? — сказал незнакомец, -— посмотревши в некотором недоумении на Ноздрева, который стоял с -— чубуком в руке, и на Чичикова, который едва начинал оправляться от -— своего невыгодного положения. - -— Позвольте прежде узнать, с кем имею честь говорить? — сказал -— Ноздрев, подходя к нему ближе. - -— Капитан-исправник. - -— А что вам угодно? - -— Я приехал вам объявить сообщенное мне извещение, что вы находитесь -— под судом до времени окончания решения по вашему делу. - -— Что за вздор, по какому делу? — сказал Ноздрев. - -— Вы были замешаны в историю, по случаю нанесения помещику Максимову -— личной обиды розгами в пьяном виде. - -— Вы врете! я и в глаза не видал помещика Максимова! - -— Милостивый государь! позвольте вам доложить, что я офицер. Вы можете -— это сказать вашему слуге, а не мне! +— Так ты не хочешь оканчивать партии? — говорил Ноздрев. — Отвечай мне +— напрямик! + +— Партии нет возможности оканчивать, — говорил Чичиков и заглянул в +— окно. Он увидел свою бричку, которая стояла совсем готовая, а +— Селифан ожидал, казалось, мановения, чтобы подкатить под крыльцо, но +— из комнаты не было никакой возможности выбраться: в дверях стояли +— два дюжих крепостных дурака. + +— Так ты не хочешь доканчивать партии? — повторил Ноздрев с лицом, +— горевшим, как в огне. + +— Если бы ты играл, как прилично честному человеку. Но теперь не могу. + +— А! так ты не можешь, подлец! когда увидел, что не твоя берет, так и +— не можешь! Бейте его! — кричал он исступленно, обратившись к +— Порфирию и Павлушке, а сам схватил в руку черешневый чубук. Чичиков +— стал бледен как полотно. Он хотел что-то сказать, но чувствовал, что +— губы его шевелились без звука. + +— Бейте его! — кричал Ноздрев, порываясь вперед с черешневым чубуком, +— весь в жару, в поту, как будто подступал под неприступную крепость. +— — Бейте его! — кричал он таким же голосом, как во время великого +— приступа кричит своему взводу: «Ребята, вперед!» какой-нибудь +— отчаянный поручик, которого взбалмошная храбрость уже приобрела +— такую известность, что дается нарочный приказ держать его за руки во +— время горячих дел. Но поручик уже почувствовал бранный задор, все +— пошло кругом в голове его; перед ним носится Суворов, он лезет на +— великое дело. «Ребята, вперед!» — кричит он, порываясь, не помышляя, +— что вредит уже обдуманному плану общего приступа, что миллионы +— ружейных дул выставились в амбразуры неприступных, уходящих за- +— облака крепостных стен, что взлетит, как пух, на воздух его +— бессильный взвод и что уже свищет роковая пуля, готовясь захлопнуть +— его крикливую глотку. Но если Ноздрев выразил собою подступившего +— под крепость отчаянного, потерявшегося поручика, то крепость, на +— которую он шел, никак не была похожа на неприступную. Напротив, +— крепость чувствовала такой страх, что душа ее спряталась в самые +— пятки. Уже стул, которым он вздумал было защищаться, был вырван +— крепостными людьми из рук его, уже, зажмурив глаза, ни жив ни мертв, +— он готовился отведать черкесского чубука своего хозяина, и бог знает +— чего бы ни случилось с ним; но судьбам угодно было спасти бока, +— плеча и все благовоспитанные части нашего героя. Неожиданным образом +— звякнули вдруг, как с облаков, задребезжавшие звуки колокольчика, +— раздался ясно стук колес подлетевшей к крыльцу телеги, и отозвались +— даже в самой комнате тяжелый храп и тяжкая одышка разгоряченных +— коней остановившейся тройки. Все невольно глянули в окно: кто-то, с +— усами, в полувоенном сюртуке, вылезал из телеги. Осведомившись в +— передней, вошел он в ту самую минуту, когда Чичиков не успел еще +— опомниться от своего страха и был в самом жалком положении, в каком +— когда-либо находился смертный. + +— Позвольте узнать, кто здесь господин Ноздрев? — сказал незнакомец, +— посмотревши в некотором недоумении на Ноздрева, который стоял с +— чубуком в руке, и на Чичикова, который едва начинал оправляться от +— своего невыгодного положения. + +— Позвольте прежде узнать, с кем имею честь говорить? — сказал +— Ноздрев, подходя к нему ближе. + +— Капитан-исправник. + +— А что вам угодно? + +— Я приехал вам объявить сообщенное мне извещение, что вы находитесь +— под судом до времени окончания решения по вашему делу. + +— Что за вздор, по какому делу? — сказал Ноздрев. + +— Вы были замешаны в историю, по случаю нанесения помещику Максимову +— личной обиды розгами в пьяном виде. + +— Вы врете! я и в глаза не видал помещика Максимова! + +— Милостивый государь! позвольте вам доложить, что я офицер. Вы можете +— это сказать вашему слуге, а не мне! Здесь Чичиков, не дожидаясь, что будет отвечать на это Ноздрев, скорее за шапку да по-за спиною капитана-исправника выскользнул на крыльцо, @@ -3355,13 +3356,13 @@ public function realText($maxNbChars = 200, $indexSize = 2) задал! смотри ты какой!» Тут много было посулено Ноздреву всяких нелегких и сильных желаний; попались даже и нехорошие слова. Что ж делать? Русский человек, да еще и в сердцах. К тому ж дело было совсем -нешуточное. «Что ни говори, — сказал он сам в себе, — а не подоспей +нешуточное. «Что ни говори, — сказал он сам в себе, — а не подоспей капитан-исправник, мне бы, может быть, не далось бы более и на свет божий взглянуть! Пропал бы, как волдырь на воде, без всякого следа, не оставивши потомков, не доставив будущим детям ни состояния, ни честного имени!» Герой наш очень заботился о своих потомках. -«Экой скверный барин! — думал про себя Селифан. — Я еще не видал +«Экой скверный барин! — думал про себя Селифан. — Я еще не видал «такого барина. То есть плюнуть бы ему за это! Ты лучше человеку не «дай есть, а коня ты должен кормить, потому что конь любит овес. Это «его продовольство: что, примером, нам кошт, то для него овес, он его @@ -3425,17 +3426,17 @@ public function realText($maxNbChars = 200, $indexSize = 2) коренного коня и сделался похожим на деревенскую колокольню, или, лучше, на крючок, которым достают воду в колодцах. Кучер ударил по лошадям, но не тут-то было, ничего не пособил дядя Митяй. «Стой, стой! -— кричали мужики. — Садись-ка ты, дядя Митяй, на пристяжную, а на +— кричали мужики. — Садись-ка ты, дядя Митяй, на пристяжную, а на коренную пусть сядет дядя Миняй!» Дядя Миняй, широкоплечий мужик с черною, как уголь, бородою и брюхом, похожим на тот исполинский самовар, в котором варится сбитень для всего прозябнувшего рынка, с охотою сел на коренного, который чуть не пригнулся под ним до земли. -«Теперь дело пойдет! — кричали мужики. — Накаливай, накаливай его! +«Теперь дело пойдет! — кричали мужики. — Накаливай, накаливай его! пришпандорь кнутом вон того, того, солового, что он горячится, как корамора!»[[3 - Корамора — большой, длинный, вялый комар; иногда залетает в комнату и торчит где-нибудь одиночкой на стене. К нему спокойно можно подойти и ухватить его за ногу, в ответ на что он -только топырится или горячится, как говорит народ. (Прим. Н. В. +только топырится или горячится, как говорит народ. (Прим. Н. В. Гоголя.)]] Но, увидевши, что дело не шло и не помогло никакое накаливанье, дядя Митяй и дядя Миняй сели оба на коренного, а на пристяжного посадили Андрюшку. Наконец, кучер, потерявши терпение, @@ -3463,7 +3464,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) виду дивный экипаж. Так и блондинка тоже вдруг совершенно неожиданным образом показалась в нашей повести и так же скрылась. Попадись на ту пору вместо Чичикова какой-нибудь двадцатилетний юноша, гусар ли он, -студент ли он, или просто только что начавший жизненное поприще, — и +студент ли он, или просто только что начавший жизненное поприще, — и боже! чего бы не проснулось, не зашевелилось, не заговорило в нем! Долго бы стоял он бесчувственно на одном месте, вперивши бессмысленно очи в даль, позабыв и дорогу, и все ожидающие впереди выговоры, и @@ -3473,7 +3474,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) Но герой наш уже был средних лет и осмотрительно-охлажденного характера. Он тоже задумался и думал, но положительнее, не так безотчетны и даже отчасти очень основательны были его мысли. «Славная -бабешка! — сказал он, открывши табакерку и понюхавши табаку. — Но ведь +бабешка! — сказал он, открывши табакерку и понюхавши табаку. — Но ведь что, главное, в ней хорошо? Хорошо то, что она сейчас только, как видно, выпущена из какого-нибудь пансиона или института, что в ней, как говорится, нет еще ничего бабьего, то есть именно того, что у них @@ -3503,7 +3504,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) Деревня показалась ему довольно велика; два леса, березовый и сосновый, как два крыла, одно темнее, другое светлее, были у ней справа и слева; посреди виднелся деревянный дом с мезонином, красной -крышей и темными или, лучше, дикими стенами, — дом вроде тех, как у +крышей и темными или, лучше, дикими стенами, — дом вроде тех, как у нас строят для военных поселений и немецких колонистов. Было заметно, что при постройке его зодчий беспрестанно боролся со вкусом хозяина. Зодчий был педант и хотел симметрии, хозяин — удобства и, как видно, @@ -3574,14 +3575,14 @@ public function realText($maxNbChars = 200, $indexSize = 2) дама весьма высокая, в чепце с лентами, перекрашенными домашнею краскою. Вошла она степенно, держа голову прямо, как пальма. -— Это моя Феодулия Ивановна! — сказал Собакевич. +— Это моя Феодулия Ивановна! — сказал Собакевич. Чичиков подошел к ручке Феодулии Ивановны, которую она почти впихнула ему в губы, причем он имел случай заметить, что руки были вымыты огуречным рассолом. -— Душенька, рекомендую тебе, — продолжал Собакевич, — Павел Иванович -— Чичиков! У губернатора и почтмейстера имел честь познакомиться. +— Душенька, рекомендую тебе, — продолжал Собакевич, — Павел Иванович +— Чичиков! У губернатора и почтмейстера имел честь познакомиться. Феодулия Ивановна попросила садиться, сказавши тоже: «Прошу!» — и сделав движение головою, подобно актрисам, представляющим королев. @@ -3594,73 +3595,73 @@ public function realText($maxNbChars = 200, $indexSize = 2) Почти в течение целых пяти минут все хранили молчание; раздавался только стук, производимый носом дрозда о дерево деревянной клетки, на дне которой удил он хлебные зернышки. Чичиков еще раз окинул комнату, -и все, что в ней ни было, — все было прочно, неуклюже в высочайшей +и все, что в ней ни было, — все было прочно, неуклюже в высочайшей степени и имело какое-то странное сходство с самим хозяином дома; в углу гостиной стояло пузатое ореховое бюро на пренелепых четырех ногах, совершенный медведь. Стол, кресла, стулья — все было самого -тяжелого и беспокойного свойства, — словом, каждый предмет, каждый +тяжелого и беспокойного свойства, — словом, каждый предмет, каждый стул, казалось, говорил: «И я тоже Собакевич!» или: «И я тоже очень похож на Собакевича!» -— Мы об вас вспоминали у председателя палаты, у Ивана Григорьевича, — -— сказал наконец Чичиков, видя, что никто не располагается начинать -— разговора, — в прошедший четверг. Очень приятно провели там время. +— Мы об вас вспоминали у председателя палаты, у Ивана Григорьевича, — +— сказал наконец Чичиков, видя, что никто не располагается начинать +— разговора, — в прошедший четверг. Очень приятно провели там время. -— Да, я не был тогда у председателя, — отвечал Собакевич. +— Да, я не был тогда у председателя, — отвечал Собакевич. -— А прекрасный человек! +— А прекрасный человек! -— Кто такой? — сказал Собакевич, глядя на угол печи. +— Кто такой? — сказал Собакевич, глядя на угол печи. -— Председатель. +— Председатель. -— Ну, может быть, это вам так показалось: он только что масон, а такой -— дурак, какого свет не производил. +— Ну, может быть, это вам так показалось: он только что масон, а такой +— дурак, какого свет не производил. Чичиков немного озадачился таким отчасти резким определением, но потом, поправившись, продолжал: -— Конечно, всякий человек не без слабостей, но зато губернатор какой -— превосходный человек! +— Конечно, всякий человек не без слабостей, но зато губернатор какой +— превосходный человек! -— Губернатор превосходный человек? +— Губернатор превосходный человек? -— Да, не правда ли? +— Да, не правда ли? -— Первый разбойник в мире! +— Первый разбойник в мире! -— Как, губернатор разбойник? — сказал Чичиков и совершенно не мог -— понять, как губернатор мог попасть в разбойники. — Признаюсь, этого -— я бы никак не подумал, — продолжал он. — Но позвольте, однако же, -— заметить: поступки его совершенно не такие, напротив, скорее даже -— мягкости в нем много. — Тут он привел в доказательство даже -— кошельки, вышитые его собственными руками, и отозвался с похвалою об -— ласковом выражении лица его. +— Как, губернатор разбойник? — сказал Чичиков и совершенно не мог +— понять, как губернатор мог попасть в разбойники. — Признаюсь, этого +— я бы никак не подумал, — продолжал он. — Но позвольте, однако же, +— заметить: поступки его совершенно не такие, напротив, скорее даже +— мягкости в нем много. — Тут он привел в доказательство даже +— кошельки, вышитые его собственными руками, и отозвался с похвалою об +— ласковом выражении лица его. -— И лицо разбойничье! — сказал Собакевич. — Дайте ему только нож да -— выпустите его на большую дорогу — зарежет, за копейку зарежет! Он да -— еще вице-губернатор — это Гога и Магога! +— И лицо разбойничье! — сказал Собакевич. — Дайте ему только нож да +— выпустите его на большую дорогу — зарежет, за копейку зарежет! Он да +— еще вице-губернатор — это Гога и Магога! -«Нет, он с ними не в ладах, — подумал про себя Чичиков. — А вот +«Нет, он с ними не в ладах, — подумал про себя Чичиков. — А вот «заговорю я с ним о полицеймейстере: он, кажется, друг его». -— Впрочем, что до меня, — сказал он, — мне, признаюсь, более всех -— нравится полицеймейстер. Какой-то этакой характер прямой, открытый; -— в лице видно что-то простосердечное. +— Впрочем, что до меня, — сказал он, — мне, признаюсь, более всех +— нравится полицеймейстер. Какой-то этакой характер прямой, открытый; +— в лице видно что-то простосердечное. -— Мошенник! — сказал Собакевич очень хладнокровно, — продаст, обманет, -— еще и пообедает с вами! Я их знаю всех: это всё мошенники, весь -— город там такой: мошенник на мошеннике сидит и мошенником погоняет. -— Все христопродавцы. Один там только и есть порядочный человек: -— прокурор; да и тот, если сказать правду, свинья. +— Мошенник! — сказал Собакевич очень хладнокровно, — продаст, обманет, +— еще и пообедает с вами! Я их знаю всех: это всё мошенники, весь +— город там такой: мошенник на мошеннике сидит и мошенником погоняет. +— Все христопродавцы. Один там только и есть порядочный человек: +— прокурор; да и тот, если сказать правду, свинья. После таких похвальных, хотя несколько кратких биографий Чичиков увидел, что о других чиновниках нечего упоминать и вспомнил, что Собакевич не любил ни о ком хорошо отзываться. -— Что ж, душенька, пойдем обедать, — сказала Собакевичу его супруга. +— Что ж, душенька, пойдем обедать, — сказала Собакевичу его супруга. -— Прошу! — сказал Собакевич. +— Прошу! — сказал Собакевич. Засим, подошевши к столу, где была закуска, гость и хозяин выпили как следует по рюмке водки, закусили, как закусывает вся пространная @@ -3676,85 +3677,85 @@ public function realText($maxNbChars = 200, $indexSize = 2) думаешь, что отроду еще не выходило слово из таких уст; а где-нибудь в девичьей или в кладовой окажется просто: ого-го! -— Щи, моя душа, сегодня очень хороши! — сказал Собакевич, хлебнувши -— щей и отваливши себе с блюда огромный кусок няни, известного блюда, -— которое подается к щам и состоит из бараньего желудка, начиненного -— гречневой кашей, мозгом и ножками. — Эдакой няни, — продолжал он, -— обратившись к Чичикову, — вы не будете есть в городе, там вам черт -— знает что подадут! +— Щи, моя душа, сегодня очень хороши! — сказал Собакевич, хлебнувши +— щей и отваливши себе с блюда огромный кусок няни, известного блюда, +— которое подается к щам и состоит из бараньего желудка, начиненного +— гречневой кашей, мозгом и ножками. — Эдакой няни, — продолжал он, +— обратившись к Чичикову, — вы не будете есть в городе, там вам черт +— знает что подадут! -— У губернатора, однако ж, недурен стол, — сказал Чичиков. +— У губернатора, однако ж, недурен стол, — сказал Чичиков. -— Да знаете ли, из чего это все готовится? вы есть не станете, когда -— узнаете. +— Да знаете ли, из чего это все готовится? вы есть не станете, когда +— узнаете. -— Не знаю, как приготовляется, об этом я не могу судить, но свиные -— котлеты и разварная рыба были превосходны. +— Не знаю, как приготовляется, об этом я не могу судить, но свиные +— котлеты и разварная рыба были превосходны. -— Это вам так показалось. Ведь я знаю, что они на рынке покупают. -— Купит вон тот каналья повар, что выучился у француза, кота, обдерет -— его, да и подает на стол вместо зайца. +— Это вам так показалось. Ведь я знаю, что они на рынке покупают. +— Купит вон тот каналья повар, что выучился у француза, кота, обдерет +— его, да и подает на стол вместо зайца. -— Фу! какую ты неприятность говоришь, — сказала супруга Собакевича. +— Фу! какую ты неприятность говоришь, — сказала супруга Собакевича. -— А что ж, душенька, так у них делается, я не виноват, так у них у -— всех делается. Все что ни есть ненужного, что Акулька у нас бросает, -— с позволения сказать, в помойную лохань, они его в суп! да в суп! -— туда его! +— А что ж, душенька, так у них делается, я не виноват, так у них у +— всех делается. Все что ни есть ненужного, что Акулька у нас бросает, +— с позволения сказать, в помойную лохань, они его в суп! да в суп! +— туда его! -— Ты за столом всегда эдакое расскажешь! — возразила опять супруга -— Собакевича. +— Ты за столом всегда эдакое расскажешь! — возразила опять супруга +— Собакевича. -— Что ж, душа моя, — сказал Собакевич, — если б я сам это делал, но я -— тебе прямо в глаза скажу, что я гадостей не стану есть. Мне лягушку -— хоть сахаром облепи, не возьму ее в рот, и устрицы тоже не возьму: я -— знаю, на что устрица похожа. Возьмите барана, — продолжал он, -— обращаясь к Чичикову, — это бараний бок с кашей! Это не те фрикасе, -— что делаются на барских кухнях из баранины, какая суток по четыре на -— рынке валяется! Это все выдумали доктора немцы да французы, я бы их -— перевешал за это! Выдумали диету, лечить голодом! Что у них немецкая -— жидкостная натура, так они воображают, что и с русским желудком -— сладят! Нет, это все не то, это всё выдумки, это всё… — Здесь -— Собакевич даже сердито покачал головою. — Толкуют: просвещенье, -— просвещенье, а это просвещенье — фук! Сказал бы и другое слово, да -— вот только что за столом неприлично. У меня не так. У меня когда -— свинина — всю свинью давай на стол, баранина — всего барана тащи, -— гусь — всего гуся! Лучше я съем двух блюд, да съем в меру, как душа -— требует. — Собакевич подтвердил это делом: он опрокинул половину -— бараньего бока к себе на тарелку, съел все, обгрыз, обсосал до -— последней косточки. +— Что ж, душа моя, — сказал Собакевич, — если б я сам это делал, но я +— тебе прямо в глаза скажу, что я гадостей не стану есть. Мне лягушку +— хоть сахаром облепи, не возьму ее в рот, и устрицы тоже не возьму: я +— знаю, на что устрица похожа. Возьмите барана, — продолжал он, +— обращаясь к Чичикову, — это бараний бок с кашей! Это не те фрикасе, +— что делаются на барских кухнях из баранины, какая суток по четыре на +— рынке валяется! Это все выдумали доктора немцы да французы, я бы их +— перевешал за это! Выдумали диету, лечить голодом! Что у них немецкая +— жидкостная натура, так они воображают, что и с русским желудком +— сладят! Нет, это все не то, это всё выдумки, это всё… — Здесь +— Собакевич даже сердито покачал головою. — Толкуют: просвещенье, +— просвещенье, а это просвещенье — фук! Сказал бы и другое слово, да +— вот только что за столом неприлично. У меня не так. У меня когда +— свинина — всю свинью давай на стол, баранина — всего барана тащи, +— гусь — всего гуся! Лучше я съем двух блюд, да съем в меру, как душа +— требует. — Собакевич подтвердил это делом: он опрокинул половину +— бараньего бока к себе на тарелку, съел все, обгрыз, обсосал до +— последней косточки. -«Да, — подумал Чичиков, — у этого губа не дура». +«Да, — подумал Чичиков, — у этого губа не дура». -— У меня не так, — говорил Собакевич, вытирая салфеткою руки, — у меня -— не так, как у какого-нибудь Плюшкина: восемьсот душ имеет, а живет и -— обедает хуже моего пастуха! +— У меня не так, — говорил Собакевич, вытирая салфеткою руки, — у меня +— не так, как у какого-нибудь Плюшкина: восемьсот душ имеет, а живет и +— обедает хуже моего пастуха! -— Кто такой этот Плюшкин? — спросил Чичиков. +— Кто такой этот Плюшкин? — спросил Чичиков. -— Мошенник, — отвечал Собакевич. — Такой скряга, какого вообразитъ -— трудно. В тюрьме колодники лучше живут, чем он: всех людей переморил -— голодом. +— Мошенник, — отвечал Собакевич. — Такой скряга, какого вообразитъ +— трудно. В тюрьме колодники лучше живут, чем он: всех людей переморил +— голодом. -— Вправду! — подхватил с участием Чичиков. — И вы говорите, что у -— него, точно, люди умирают в большом количестве? +— Вправду! — подхватил с участием Чичиков. — И вы говорите, что у +— него, точно, люди умирают в большом количестве? -— Как мухи мрут. +— Как мухи мрут. -— Неужели как мухи! А позвольте спросить, как далеко живет он от вас? +— Неужели как мухи! А позвольте спросить, как далеко живет он от вас? -— В пяти верстах. +— В пяти верстах. -— В пяти верстах! — воскликнул Чичиков и даже почувствовал небольшое -— сердечное биение. — Но если выехать из ваших ворот, это будет -— направо или налево? +— В пяти верстах! — воскликнул Чичиков и даже почувствовал небольшое +— сердечное биение. — Но если выехать из ваших ворот, это будет +— направо или налево? -— Я вам даже не советую дороги знать к этой собаке! — сказал -— Собакевич. — Извинительней сходить в какое-нибудь непристойное -— место, чем к нему. +— Я вам даже не советую дороги знать к этой собаке! — сказал +— Собакевич. — Извинительней сходить в какое-нибудь непристойное +— место, чем к нему. -— Нет, я спросил не для каких-либо, а потому только, что интересуюсь -— познанием всякого рода мест, — отвечал на это Чичиков. +— Нет, я спросил не для каких-либо, а потому только, что интересуюсь +— познанием всякого рода мест, — отвечал на это Чичиков. За бараньим боком последовали ватрушки, из которых каждая была гораздо больше тарелки, потом индюк ростом в теленка, набитый всяким добром: @@ -3769,16 +3770,16 @@ public function realText($maxNbChars = 200, $indexSize = 2) какие-то невнятные звуки, крестясь и закрывая поминутно его рукою. Чичиков обратился к нему с такими словами: -— Я хотел было поговорить с вами об одном дельце. +— Я хотел было поговорить с вами об одном дельце. -— Вот еще варенье, — сказала хозяйка, возвращаясь с блюдечком, — -— редька, варенная в меду! +— Вот еще варенье, — сказала хозяйка, возвращаясь с блюдечком, — +— редька, варенная в меду! -— А вот мы его после! — сказал Собакевич. — Ты ступай теперь в свою -— комнату, мы с Павлом Ивановичем скинем фраки, маленько приотдохнем! +— А вот мы его после! — сказал Собакевич. — Ты ступай теперь в свою +— комнату, мы с Павлом Ивановичем скинем фраки, маленько приотдохнем! Хозяйка уже изъявила было готовность послать за пуховиками и -подушками, но хозяин сказал: «Ничего, мы отдохнем в креслах», — и +подушками, но хозяин сказал: «Ничего, мы отдохнем в креслах», — и хозяйка ушла. Собакевич слегка принагнул голову, приготовляясь слышать, в чем было @@ -3794,7 +3795,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) чтоб таким образом не обременить присутственные места множеством мелочных и бесполезных справок и не увеличить сложность и без того уже весьма сложного государственного механизма… Собакевич все слушал, -наклонивши голову, — и что, однако же, при всей справедливости этой +наклонивши голову, — и что, однако же, при всей справедливости этой меры она бывает отчасти тягостна для многих владельцев, обязывая их взносить подати так, как бы за живой предмет, и что он, чувствуя уважение личное к нему, готов бы даже отчасти принять на себя эту @@ -3809,111 +3810,111 @@ public function realText($maxNbChars = 200, $indexSize = 2) толстою скорлупою, что все, что ни ворочалось на дне ее, не производило решительно никакого потрясения на поверхности -— Итак?.. — сказал Чичиков, ожидая не без некоторого волнения ответа. +— Итак?.. — сказал Чичиков, ожидая не без некоторого волнения ответа. -— Вам нужно мертвых душ? — спросил Собакевич очень просто, без -— малейшего удивления, как бы речь шла о хлебе. +— Вам нужно мертвых душ? — спросил Собакевич очень просто, без +— малейшего удивления, как бы речь шла о хлебе. -— Да, — отвечал Чичиков и опять смягчил выражение, прибавивши: — -— несуществующих. +— Да, — отвечал Чичиков и опять смягчил выражение, прибавивши: — +— несуществующих. -— Найдутся, почему не быть… — сказал Собакевич. +— Найдутся, почему не быть… — сказал Собакевич. -— А если найдутся, то вам, без сомнения… будет приятно от них -— избавиться? +— А если найдутся, то вам, без сомнения… будет приятно от них +— избавиться? -— Извольте, я готов продать, — сказал Собакевич, уже несколько -— приподнявши голову и смекнувши, что покупщик, верно, должен иметь -— здесь какую-нибудь выгоду. +— Извольте, я готов продать, — сказал Собакевич, уже несколько +— приподнявши голову и смекнувши, что покупщик, верно, должен иметь +— здесь какую-нибудь выгоду. -«Черт возьми, — подумал Чичиков про себя, — этот уж продает прежде, +«Черт возьми, — подумал Чичиков про себя, — этот уж продает прежде, «чем я заикнулся!» — и проговорил вслух: -— А, например, как же цена? хотя, впрочем, это такой предмет… что о -— цене даже странно… +— А, например, как же цена? хотя, впрочем, это такой предмет… что о +— цене даже странно… -— Да чтобы не запрашивать с вас лишнего, по сту рублей за штуку! — -— сказал Собакевич. +— Да чтобы не запрашивать с вас лишнего, по сту рублей за штуку! — +— сказал Собакевич. -— По сту! — вскричал Чичиков, разинув рот и поглядевши ему в самые -— глаза, не зная, сам ли он ослышался, или язык Собакевича по своей -— тяжелой натуре, не так поворотившись, брякнул вместо одного другое -— слово. +— По сту! — вскричал Чичиков, разинув рот и поглядевши ему в самые +— глаза, не зная, сам ли он ослышался, или язык Собакевича по своей +— тяжелой натуре, не так поворотившись, брякнул вместо одного другое +— слово. -— Что ж, разве это для вас дорого? — произнес Собакевич и потом -— прибавил: — А какая бы, однако ж, ваша цена? +— Что ж, разве это для вас дорого? — произнес Собакевич и потом +— прибавил: — А какая бы, однако ж, ваша цена? -— Моя цена! Мы, верно, как-нибудь ошиблись или не понимаем друг друга, -— позабыли, в чем состоит предмет. Я полагаю с своей стороны, положа -— на руку на сердце: по восьми гривен за душу, это самая красная ценз! +— Моя цена! Мы, верно, как-нибудь ошиблись или не понимаем друг друга, +— позабыли, в чем состоит предмет. Я полагаю с своей стороны, положа +— на руку на сердце: по восьми гривен за душу, это самая красная ценз! -— Эк куда хватили — по восьми гривенок! +— Эк куда хватили — по восьми гривенок! -— Что ж, по моему суждению, как я думаю, больше нельзя. +— Что ж, по моему суждению, как я думаю, больше нельзя. -— Ведь я продаю не лапти. +— Ведь я продаю не лапти. -— Однако ж согласитесь сами: ведь это тоже и не люди. +— Однако ж согласитесь сами: ведь это тоже и не люди. -— Так вы думаете, сыщете такого дурака, который бы вам продал по -— двугривенному ревизскую душу? +— Так вы думаете, сыщете такого дурака, который бы вам продал по +— двугривенному ревизскую душу? -— Но позвольте: зачем вы их называете ревизскими, ведь души-то самые -— давно уже умерли, остался один неосязаемый чувствами звук. Впрочем, -— чтобы не входить в дальнейшие разговоры по этой части, по полтора -— рубли, извольте, дам, а больше не могу. +— Но позвольте: зачем вы их называете ревизскими, ведь души-то самые +— давно уже умерли, остался один неосязаемый чувствами звук. Впрочем, +— чтобы не входить в дальнейшие разговоры по этой части, по полтора +— рубли, извольте, дам, а больше не могу. -— Стыдно вам и говорить такую сумму! вы торгуйтесь, говорите настоящую -— цену! +— Стыдно вам и говорить такую сумму! вы торгуйтесь, говорите настоящую +— цену! -— Не могу, Михаил Семенович, поверьте моей совести, не могу: чего уж -— невозможно сделать, того невозможно сделать, — говорил Чичиков, -— однако ж по полтинке еще прибавил. +— Не могу, Михаил Семенович, поверьте моей совести, не могу: чего уж +— невозможно сделать, того невозможно сделать, — говорил Чичиков, +— однако ж по полтинке еще прибавил. -— Да чего вы скупитесь? — сказал Собакевич. — Право, недорого! Другой -— мошенник обманет вас, продаст вам дрянь, а не души; а у меня что -— ядреный орех, все на отбор: не мастеровой, так иной какой-нибудь -— здоровый мужик. Вы рассмотрите: вот, например, каретник Михеев! ведь -— больше никаких экипажей и не делал, как только рессорные. И не то, -— как бывает московская работа, что на один час, — прочность такая, -— сам и обобьет, и лаком покроет! +— Да чего вы скупитесь? — сказал Собакевич. — Право, недорого! Другой +— мошенник обманет вас, продаст вам дрянь, а не души; а у меня что +— ядреный орех, все на отбор: не мастеровой, так иной какой-нибудь +— здоровый мужик. Вы рассмотрите: вот, например, каретник Михеев! ведь +— больше никаких экипажей и не делал, как только рессорные. И не то, +— как бывает московская работа, что на один час, — прочность такая, +— сам и обобьет, и лаком покроет! Чичиков открыл рот, с тем чтобы заметить, что Михеева, однако же, давно нет на свете; но Собакевич вошел, как говорится, в самую силу речи, откуда взялась рысь и дар слова: -— А Пробка Степан, плотник? я голову прозакладую, если вы где сыщете -— такого мужика. Ведь что за силища была! Служи он в гвардии, ему бы -— бог знает что дали, трех аршин с вершком ростом! +— А Пробка Степан, плотник? я голову прозакладую, если вы где сыщете +— такого мужика. Ведь что за силища была! Служи он в гвардии, ему бы +— бог знает что дали, трех аршин с вершком ростом! Чичиков опять хотел заметить, что и Пробки нет на свете; но Собакевича, как видно, пронесло: полились такие потоки речей, что только нужно было слушать: -— Милушкин, кирпичник! мог поставить печь в каком угодно доме. Максим -— Телятников, сапожник: что шилом кольнет, то и сапоги, что сапоги, то -— и спасибо, и хоть бы в рот хмельного. А Еремей Сорокоплёхин! да этот -— мужик один станет за всех, в Москве торговал, одного оброку приносил -— по пятисот рублей. Ведь вот какой народ! Это не то, что вам продаст -— какой-нибудь Плюшкин. +— Милушкин, кирпичник! мог поставить печь в каком угодно доме. Максим +— Телятников, сапожник: что шилом кольнет, то и сапоги, что сапоги, то +— и спасибо, и хоть бы в рот хмельного. А Еремей Сорокоплёхин! да этот +— мужик один станет за всех, в Москве торговал, одного оброку приносил +— по пятисот рублей. Ведь вот какой народ! Это не то, что вам продаст +— какой-нибудь Плюшкин. -— Но позвольте, — сказал наконец Чичиков, изумленный таким обильным -— наводнением речей, которым, казалось, и конца не было, — зачем вы -— исчисляете все их качества, ведь в них толку теперь нет никакого, -— ведь это все народ мертвый. Мертвым телом хоть забор подпирай, -— говорит пословица. +— Но позвольте, — сказал наконец Чичиков, изумленный таким обильным +— наводнением речей, которым, казалось, и конца не было, — зачем вы +— исчисляете все их качества, ведь в них толку теперь нет никакого, +— ведь это все народ мертвый. Мертвым телом хоть забор подпирай, +— говорит пословица. -— Да, конечно, мертвые, — сказал Собакевич, как бы одумавшись и -— припомнив, что они в самом деле были уже мертвые, а потом прибавил: -— — Впрочем, и то сказать что из этих людей, которые числятся теперь -— живущими? Что это за люди? мухи, а не люди. +— Да, конечно, мертвые, — сказал Собакевич, как бы одумавшись и +— припомнив, что они в самом деле были уже мертвые, а потом прибавил: +— — Впрочем, и то сказать что из этих людей, которые числятся теперь +— живущими? Что это за люди? мухи, а не люди. -— Да все же они существуют, а это ведь мечта. +— Да все же они существуют, а это ведь мечта. -— Ну нет, не мечта! Я вам доложу, каков был Михеев, так вы таких людей -— не сыщете: машинища такая, что в эту комнату не войдет; нет, это не -— мечта! А в плечищах у него была такая силища, какой нет у лошади; -— хотел бы а знать, где бы вы в другом месте нашли такую мечту! +— Ну нет, не мечта! Я вам доложу, каков был Михеев, так вы таких людей +— не сыщете: машинища такая, что в эту комнату не войдет; нет, это не +— мечта! А в плечищах у него была такая силища, какой нет у лошади; +— хотел бы а знать, где бы вы в другом месте нашли такую мечту! Последние слова он уже сказал, обратившись к висевшим на стене портретам Багратиона и Колокотрони, как обыкновенно случается с @@ -3926,111 +3927,111 @@ public function realText($maxNbChars = 200, $indexSize = 2) знает, отвечать ли ему на то дело, о котором ничего не слышал, или так постоять, соблюдши надлежащее приличие, и потом уже уйти прочь. -— Нет, больше двух рублей я не могу дать, — сказал Чичиков. +— Нет, больше двух рублей я не могу дать, — сказал Чичиков. -— Извольте, чтоб не претендовали на меня, что дорого запрашиваю и не -— хочу сделать вам никакого одолжения, извольте — по семидесяти пяти -— рублей за душу, только ассигнациями, право только для знакомства! +— Извольте, чтоб не претендовали на меня, что дорого запрашиваю и не +— хочу сделать вам никакого одолжения, извольте — по семидесяти пяти +— рублей за душу, только ассигнациями, право только для знакомства! -«Что он в самом деле, — подумал про себя Чичиков, — за дурака, что ли, +«Что он в самом деле, — подумал про себя Чичиков, — за дурака, что ли, «принимает меня?» — и прибавил потом вслух: -— Мне странно, право: кажется, между нами происходит какое-то -— театральное представление или комедия, иначе я не могу себе -— объяснить… Вы, кажется, человек довольно умный, владеете сведениями -— образованности. Ведь предмет просто фу-фу. Что ж он стоит? кому -— нужен? +— Мне странно, право: кажется, между нами происходит какое-то +— театральное представление или комедия, иначе я не могу себе +— объяснить… Вы, кажется, человек довольно умный, владеете сведениями +— образованности. Ведь предмет просто фу-фу. Что ж он стоит? кому +— нужен? -— Да вот вы же покупаете, стало быть нужен. +— Да вот вы же покупаете, стало быть нужен. Здесь Чичиков закусил губу и не нашелся, что отвечать. Он стал было говорить про какие-то обстоятельства фамильные и семейственные, но Собакевич отвечал просто: -— Мне не нужно знать, какие у вас отношения; я в дела фамильные не -— мешаюсь, это ваше дело. Вам понадобились души, я и продаю вам, и -— будете раскаиваться, что не купили. +— Мне не нужно знать, какие у вас отношения; я в дела фамильные не +— мешаюсь, это ваше дело. Вам понадобились души, я и продаю вам, и +— будете раскаиваться, что не купили. -— Два рублика, — сказал Чичиков. +— Два рублика, — сказал Чичиков. -— Эк, право, затвердила сорока Якова одно про всякого, как говорит -— пословица; как наладили на два, так не хотите с них и съехать. Вы -— давайте настоящую цену! +— Эк, право, затвердила сорока Якова одно про всякого, как говорит +— пословица; как наладили на два, так не хотите с них и съехать. Вы +— давайте настоящую цену! -«Ну, уж черт его побери, — подумал про себя Чичиков, — по полтине ему +«Ну, уж черт его побери, — подумал про себя Чичиков, — по полтине ему «прибавлю, собаке, на орехи!» -— Извольте, по полтине прибавлю. +— Извольте, по полтине прибавлю. -— Ну, извольте, и я вам скажу тоже мое последнее слово: пятьдесят -— рублей! Право, убыток себе, дешевле нигде не купите такого хорошего -— народа! +— Ну, извольте, и я вам скажу тоже мое последнее слово: пятьдесят +— рублей! Право, убыток себе, дешевле нигде не купите такого хорошего +— народа! «Экой кулак!» — сказал про себя Чичиков и потом продолжал вслух с «некоторою досадою: -— Да что в самом деле… как будто точно сурьезное дело; да я в другом -— месте нипочем возьму. Еще мне всякий с охотой сбудет их, чтобы -— только поскорей избавиться. Дурак разве станет держать их при себе и -— платить за них подати! +— Да что в самом деле… как будто точно сурьезное дело; да я в другом +— месте нипочем возьму. Еще мне всякий с охотой сбудет их, чтобы +— только поскорей избавиться. Дурак разве станет держать их при себе и +— платить за них подати! -— Но знаете ли, что такого рода покупки, я это говорю между нами, по -— дружбе, не всегда позволительны, и расскажи я или кто иной — такому -— человеку не будет никакой доверенности относительно контрактов или -— вступления в какие-нибудь выгодные обязательства. +— Но знаете ли, что такого рода покупки, я это говорю между нами, по +— дружбе, не всегда позволительны, и расскажи я или кто иной — такому +— человеку не будет никакой доверенности относительно контрактов или +— вступления в какие-нибудь выгодные обязательства. «Вишь, куды метит, подлец!» — подумал Чичиков и тут же произнес с «самым хладнокровным видом: -— Как вы себе хотите, я покупаю не для какой-либо надобности, как вы -— думаете, а так, по наклонности собственных мыслей. Два с полтиною не -— хотите — прощайте! +— Как вы себе хотите, я покупаю не для какой-либо надобности, как вы +— думаете, а так, по наклонности собственных мыслей. Два с полтиною не +— хотите — прощайте! «Его не собьешь, неподатлив!» — подумал Собакевич. -— Ну, бог с вами, давайте по тридцати и берите их себе! +— Ну, бог с вами, давайте по тридцати и берите их себе! -— Нет, я вижу, вы не хотите продать, прощайте! +— Нет, я вижу, вы не хотите продать, прощайте! -— Позвольте, позвольте! — сказал Собакевич, не выпуская его руки и -— наступив ему на ногу, ибо герой наш позабыл поберечься, в наказанье -— за что должен был зашипеть и подскочить на одной ноге. +— Позвольте, позвольте! — сказал Собакевич, не выпуская его руки и +— наступив ему на ногу, ибо герой наш позабыл поберечься, в наказанье +— за что должен был зашипеть и подскочить на одной ноге. -— Прошу прощенья! я, кажется, вас побеспокоил. Пожалуйте, садитесь -— сюда! Прошу! — Здесь он усадил его в кресла с некоторою даже -— ловкостию, как такой медведь, который уже побывал в руках, умеет и -— перевертываться, и делать разные штуки на вопросы: «А покажи, Миша, -— как бабы парятся» или: «А как, Миша, малые ребята горох крадут?» +— Прошу прощенья! я, кажется, вас побеспокоил. Пожалуйте, садитесь +— сюда! Прошу! — Здесь он усадил его в кресла с некоторою даже +— ловкостию, как такой медведь, который уже побывал в руках, умеет и +— перевертываться, и делать разные штуки на вопросы: «А покажи, Миша, +— как бабы парятся» или: «А как, Миша, малые ребята горох крадут?» -— Право, я напрасно время трачу, мне нужно спешить. +— Право, я напрасно время трачу, мне нужно спешить. -— Посидите одну минуточку, я вам сейчас скажу одно приятное для вас -— слово. — Тут Собакевич подсел поближе и сказал ему тихо на ухо, как -— будто секрет: — Хотите угол? +— Посидите одну минуточку, я вам сейчас скажу одно приятное для вас +— слово. — Тут Собакевич подсел поближе и сказал ему тихо на ухо, как +— будто секрет: — Хотите угол? -— То есть двадцать пять рублей? Ни, ни, ни, даже четверти угла не дам, -— копейки не прибавлю. +— То есть двадцать пять рублей? Ни, ни, ни, даже четверти угла не дам, +— копейки не прибавлю. Собакевич замолчал. Чичиков тоже замолчал. Минуты две длилось молчание. Багратион с орлиным носом глядел со стены чрезвычайно внимательно на эту покупку. -— Какая ж ваша будет последняя цена? — сказал наконец Собакевич. +— Какая ж ваша будет последняя цена? — сказал наконец Собакевич. -— Два с полтиною. +— Два с полтиною. -— Право у вас душа человеческая все равно что пареная репа. Уж хоть по -— три рубли дайте! +— Право у вас душа человеческая все равно что пареная репа. Уж хоть по +— три рубли дайте! -— Не могу. +— Не могу. -— Ну, нечего с вами делать, извольте! Убыток, да нрав такой собачий: -— не могу не доставить удовольствия ближнему. Ведь, я чай, нужно и -— купчую совершить, чтоб все было в порядке. +— Ну, нечего с вами делать, извольте! Убыток, да нрав такой собачий: +— не могу не доставить удовольствия ближнему. Ведь, я чай, нужно и +— купчую совершить, чтоб все было в порядке. -— Разумеется. +— Разумеется. -— Ну вот то-то же, нужно будет ехать в город. +— Ну вот то-то же, нужно будет ехать в город. Так совершилось дело. Оба решили, что завтра же быть в городе и управиться с купчей крепостью. Чичиков попросил списочка крестьян. @@ -4061,44 +4062,44 @@ public function realText($maxNbChars = 200, $indexSize = 2) покажу!“ Да такое выдумает мудрое постановление, что многим придется солоно… Эх, если бы все кулаки!..» -— Готова записка, — сказал Собакевич, оборотившись. +— Готова записка, — сказал Собакевич, оборотившись. -— Готова? Пожалуйте ее сюда! — Он пробежал ее глазами и подивился -— аккуратности и точности: не только было обстоятельно прописано -— ремесло, звание, лета и семейное состояние, но даже на полях -— находились особенные отметки насчет поведения, трезвости, — словом, -— любо было глядеть. +— Готова? Пожалуйте ее сюда! — Он пробежал ее глазами и подивился +— аккуратности и точности: не только было обстоятельно прописано +— ремесло, звание, лета и семейное состояние, но даже на полях +— находились особенные отметки насчет поведения, трезвости, — словом, +— любо было глядеть. -— Теперь пожалуйте же задаточек, — сказал Собакевич. +— Теперь пожалуйте же задаточек, — сказал Собакевич. -— К чему же вам задаточек? Вы получите в городе за одним разом все -— деньги. +— К чему же вам задаточек? Вы получите в городе за одним разом все +— деньги. -— Все, знаете, так уж водится, — возразил Собакевич. +— Все, знаете, так уж водится, — возразил Собакевич. -— Не знаю, как вам дать, я не взял с собою денег. Да, вот десять -— рублей есть. +— Не знаю, как вам дать, я не взял с собою денег. Да, вот десять +— рублей есть. -— Что же десять! Дайте по крайней мере хоть пятьдесят! +— Что же десять! Дайте по крайней мере хоть пятьдесят! Чичиков стал было отговариваться, что нет; но Собакевич так сказал утвердительно, что у него есть деньги, что он вынул еще бумажку, сказавши: -— Пожалуй, вот вам еще пятнадцать, итого двадцать. Пожалуйте только -— расписку. +— Пожалуй, вот вам еще пятнадцать, итого двадцать. Пожалуйте только +— расписку. -— Да на что ж вам расписка? +— Да на что ж вам расписка? -— Все, знаете, лучше расписку. Не ровен час, все может случиться. +— Все, знаете, лучше расписку. Не ровен час, все может случиться. -— Хорошо, дайте же сюда деньги! +— Хорошо, дайте же сюда деньги! -— На что ж деньги? У меня вот они в руке! как только напишете -— расписку, в ту же минуту +— На что ж деньги? У меня вот они в руке! как только напишете +— расписку, в ту же минуту -— Да позвольте, как же мне писать расписку? прежде нужно видеть -— деньги. +— Да позвольте, как же мне писать расписку? прежде нужно видеть +— деньги. Чичиков выпустил из рук бумажки Собакевичу, который, приблизившись к столу и накрывши их пальцами левой руки, другою написал на лоскутке @@ -4106,35 +4107,35 @@ public function realText($maxNbChars = 200, $indexSize = 2) за проданные души получил сполна. Написавши записку, он пересмотрел еще раз ассигнации. -— Бумажка-то старенькая! — произнес он, рассматривая одну из них на -— свете, — немножко разорвана, ну да между приятелями нечего на это -— глядеть. +— Бумажка-то старенькая! — произнес он, рассматривая одну из них на +— свете, — немножко разорвана, ну да между приятелями нечего на это +— глядеть. -«Кулак, кулак! — подумал про себя Чичиков, — да еще и бестия в +«Кулак, кулак! — подумал про себя Чичиков, — да еще и бестия в «придачу!» -— А женского пола не хотите? +— А женского пола не хотите? -— Нет, благодарю. +— Нет, благодарю. -— Я бы недорого и взял. Для знакомства по рублику за штуку. +— Я бы недорого и взял. Для знакомства по рублику за штуку. -— Нет, в женском поле не нуждаюсь. +— Нет, в женском поле не нуждаюсь. -— Ну, когда не нуждаетесь, так нечего и говорить. На вкусы нет закона: -— кто любит попа, а кто попадью, говорит пословица. +— Ну, когда не нуждаетесь, так нечего и говорить. На вкусы нет закона: +— кто любит попа, а кто попадью, говорит пословица. -— Еще я хотел вас попросить, чтобы эта сделка осталась между нами, — -— говорил Чичиков, прощаясь. +— Еще я хотел вас попросить, чтобы эта сделка осталась между нами, — +— говорил Чичиков, прощаясь. -— Да уж само собою разумеется. Третьего сюда нечего мешать; что по -— искренности происходит между короткими друзьями, то должно остаться -— во взаимной их дружбе. Прощайте! Благодарю, что посетили; прошу и -— впредь не забывать: коли выберется свободный часик, приезжайте -— пообедать, время провести. Может быть, опять случится услужить чем- -— нибудь друг другу. +— Да уж само собою разумеется. Третьего сюда нечего мешать; что по +— искренности происходит между короткими друзьями, то должно остаться +— во взаимной их дружбе. Прощайте! Благодарю, что посетили; прошу и +— впредь не забывать: коли выберется свободный часик, приезжайте +— пообедать, время провести. Может быть, опять случится услужить чем- +— нибудь друг другу. -«Да, как бы не так! — думал про себя Чичиков, садясь. в бричку. — По +«Да, как бы не так! — думал про себя Чичиков, садясь. в бричку. — По «два с полтиною содрал за мертвую душу, чертов кулак!» Он был недоволен поведением Собакевича. Все-таки, как бы то ни было, @@ -4144,28 +4145,28 @@ public function realText($maxNbChars = 200, $indexSize = 2) стоял на крыльце и, как казалось, приглядывался, желая знать, куда гость поедет. -— Подлец, до сих пор еще стоит! — проговорил он сквозь зубы и велел -— Селифану, поворотивши к крестьянским избам, отъехать таким образом, -— чтобы нельзя было видеть экипажа со стороны господского двора. Ему -— хотелось заехать к Плюшкину, у которого, по словам Собакевича, люди -— умирали, как мухи, но не хотелось, чтобы Собакевич знал про это. -— Когда бричка была уже на конце деревни, он подозвал к себе первого -— мужика, который, попавши где-то на дороге претолстое бревно, тащил -— его на плече, подобно неутомимому муравью, к себе в избу. +— Подлец, до сих пор еще стоит! — проговорил он сквозь зубы и велел +— Селифану, поворотивши к крестьянским избам, отъехать таким образом, +— чтобы нельзя было видеть экипажа со стороны господского двора. Ему +— хотелось заехать к Плюшкину, у которого, по словам Собакевича, люди +— умирали, как мухи, но не хотелось, чтобы Собакевич знал про это. +— Когда бричка была уже на конце деревни, он подозвал к себе первого +— мужика, который, попавши где-то на дороге претолстое бревно, тащил +— его на плече, подобно неутомимому муравью, к себе в избу. -— Эй, борода! а как проехать отсюда к Плюшкину, так чтоб не мимо -— господского дома? +— Эй, борода! а как проехать отсюда к Плюшкину, так чтоб не мимо +— господского дома? Мужик, казалось, затруднился сим вопросом. -— Что ж, не знаешь? +— Что ж, не знаешь? -— Нет, барин, не знаю. +— Нет, барин, не знаю. -— Эх, ты! А и седым волосом еще подернуло! скрягу Плюшкина не знаешь, -— того, что плохо кормит людей? +— Эх, ты! А и седым волосом еще подернуло! скрягу Плюшкина не знаешь, +— того, что плохо кормит людей? -— А! заплатанной, заплатанной! — вскрикнул мужик. +— А! заплатанной, заплатанной! — вскрикнул мужик. Было им прибавлено и существительное к слову «заплатанной», очень удачное, но неупотребительное в светском разговоре, а потому мы его @@ -4184,7 +4185,7 @@ public function realText($maxNbChars = 200, $indexSize = 2) племен, а всё сам-самородок, живой и бойкий русский ум, что не лезет за словом в карман, не высиживает его, как наседка цыплят, а влепливает сразу, как пашпорт на вечную носку, и нечего прибавлять уже -потом, какой у тебя нос или губы, — одной чертой обрисован ты с ног до +потом, какой у тебя нос или губы, — одной чертой обрисован ты с ног до головы! Как несметное множество церквей, монастырей с куполами, главами, diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Address.php similarity index 94% rename from vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Address.php index c31132b..c47ecd7 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Address.php @@ -4,8 +4,7 @@ class Address extends \Faker\Provider\Address { - - protected static $cityName = array( + protected static $cityName = [ 'Ábelová', 'Abovce', 'Abrahám', 'Abrahámovce', 'Abrahámovce', 'Abramová', 'Abranovce', 'Adamovské Kochanovce', 'Adidovce', 'Alekšince', 'Andovce', 'Andrejová', 'Ardanovce', 'Ardovo', 'Arnutovce', 'Báb', 'Babie', 'Babín', 'Babiná', 'Babindol', 'Babinec', 'Bacúch', 'Bacúrov', 'Báč', 'Bačka', 'Bačkov', 'Bačkovík', 'Bádice', 'Badín', 'Baďan', 'Báhoň', 'Bajany', 'Bajč', 'Bajerov', 'Bajerovce', 'Bajka', 'Bajtava', @@ -292,16 +291,16 @@ class Address extends \Faker\Provider\Address 'Zubrohlava', 'Zvolen', 'Zvolenská Slatina', 'Zvončín', 'Žabokreky', 'Žabokreky nad Nitrou', 'Žakarovce', 'Žakovce', 'Žalobín', 'Žarnov', 'Žarnovica', 'Žaškov', 'Žbince', 'Ždaňa', 'Ždiar', 'Žehňa', 'Žehra', 'Železná Breznica', 'Železník', 'Želiezovce', 'Želmanovce', 'Želovce', 'Žemberovce', 'Žemliare', 'Žiar', 'Žiar', 'Žiar nad Hronom', 'Žibritov', 'Žihárec', 'Žikava', 'Žilina', - 'Žíp', 'Žipov', 'Žirany', 'Žitavany', 'Žitavce', 'Žitná-Radiša', 'Žlkovce', 'Župčany', 'Župkov' - ); + 'Žíp', 'Žipov', 'Žirany', 'Žitavany', 'Žitavce', 'Žitná-Radiša', 'Žlkovce', 'Župčany', 'Župkov', + ]; - protected static $buildingNumber = array('#####', '####', '###'); - protected static $streetSuffix = array( - 'Alley','Avenue','Branch','Bridge','Brook','Brooks','Burg','Burgs','Bypass','Camp','Canyon','Cape','Causeway','Center','Centers','Circle','Circles','Cliff','Cliffs','Club','Common','Corner','Corners','Course','Court','Courts','Cove','Coves','Creek','Crescent','Crest','Crossing','Crossroad','Curve','Dale','Dam','Divide','Drive','Drive','Drives','Estate','Estates','Expressway','Extension','Extensions','Fall','Falls','Ferry','Field','Fields','Flat','Flats','Ford','Fords','Forest','Forge','Forges','Fork','Forks','Fort','Freeway','Garden','Gardens','Gateway','Glen','Glens','Green','Greens','Grove','Groves','Harbor','Harbors','Haven','Heights','Highway','Hill','Hills','Hollow','Inlet','Inlet','Island','Island','Islands','Islands','Isle','Isle','Junction','Junctions','Key','Keys','Knoll','Knolls','Lake','Lakes','Land','Landing','Lane','Light','Lights','Loaf','Lock','Locks','Locks','Lodge','Lodge','Loop','Mall','Manor','Manors','Meadow','Meadows','Mews','Mill','Mills','Mission','Mission','Motorway','Mount','Mountain','Mountain','Mountains','Mountains','Neck','Orchard','Oval','Overpass','Park','Parks','Parkway','Parkways','Pass','Passage','Path','Pike','Pine','Pines','Place','Plain','Plains','Plains','Plaza','Plaza','Point','Points','Port','Port','Ports','Ports','Prairie','Prairie','Radial','Ramp','Ranch','Rapid','Rapids','Rest','Ridge','Ridges','River','Road','Road','Roads','Roads','Route','Row','Rue','Run','Shoal','Shoals','Shore','Shores','Skyway','Spring','Springs','Springs','Spur','Spurs','Square','Square','Squares','Squares','Station','Station','Stravenue','Stravenue','Stream','Stream','Street','Street','Streets','Summit','Summit','Terrace','Throughway','Trace','Track','Trafficway','Trail','Trail','Tunnel','Tunnel','Turnpike','Turnpike','Underpass','Union','Unions','Valley','Valleys','Via','Viaduct','View','Views','Village','Village','Villages','Ville','Vista','Vista','Walk','Walks','Wall','Way','Ways','Well','Wells' - ); - protected static $postcode = array('### ##'); + protected static $buildingNumber = ['%####', '%###', '%##']; + protected static $streetSuffix = [ + 'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape', 'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners', 'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve', 'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension', 'Extensions', 'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges', 'Fork', 'Forks', 'Fort', 'Freeway', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove', 'Groves', 'Harbor', 'Harbors', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Inlet', 'Island', 'Island', 'Islands', 'Islands', 'Isle', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake', 'Lakes', 'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop', 'Mall', 'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Mission', 'Mission', 'Motorway', 'Mount', 'Mountain', 'Mountain', 'Mountains', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks', 'Parkway', 'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plains', 'Plaza', 'Plaza', 'Point', 'Points', 'Port', 'Port', 'Ports', 'Ports', 'Prairie', 'Prairie', 'Radial', 'Ramp', 'Ranch', 'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue', 'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Skyway', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs', 'Square', 'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stravenue', 'Stravenue', 'Stream', 'Stream', 'Street', 'Street', 'Streets', 'Summit', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail', 'Trail', 'Tunnel', 'Tunnel', 'Turnpike', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via', 'Viaduct', 'View', 'Views', 'Village', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way', 'Ways', 'Well', 'Wells', + ]; + protected static $postcode = ['### ##']; - protected static $country = array( + protected static $country = [ 'Afganistan', 'Albánsko', 'Alžírsko', 'Andorra', 'Angola', 'Antigua a Barbuda', 'Argentína', 'Arménsko', 'Austrália', 'Azerbajdžan', 'Bahamy', 'Bahrajn', 'Bangladéš', 'Barbados', 'Belgicko', 'Belize', 'Benin', 'Bhután', 'Bielorusko', 'Bolívia', 'Bosna a Hercegovina', 'Botswana', 'Brazília', 'Brunej', 'Bulharsko', 'Burkina', 'Burundi', 'Cyprus', 'Čad', 'Česko', 'Čierna Hora', 'Čile', 'Čína', 'Dánsko', @@ -320,22 +319,22 @@ class Address extends \Faker\Provider\Address 'Svätý Krištof a Nevis', 'Svätý Tomáš a Princov ostrov', 'Svätý Vincent a Grenadíny', 'Svazijsko', 'Sýria', 'Šalamúnove ostrovy', 'Španielsko', 'Švajčiarsko', 'Švédsko', 'Tadžikistan', 'Taliansko', 'Tanzánia', 'Thajsko', 'Togo', 'Tonga', 'Trinidad a Tobago', 'Tunisko', 'Turecko', 'Turkménsko', 'Tuvalu', 'Uganda', 'Ukrajina', 'Uruguaj', 'Uzbekistan', 'Vanuatu', 'Vatikán', 'Venezuela', 'Vietnam', - 'Východný Timor', 'Zambia', 'Zimbabwe', 'Zvrchovaný vojenský špitálsky rád sv. Jána Jeruzalemského z Ródu a Malty' - ); - protected static $cityFormats = array( - '{{cityName}}' - ); - protected static $streetNameFormats = array( + 'Východný Timor', 'Zambia', 'Zimbabwe', 'Zvrchovaný vojenský špitálsky rád sv. Jána Jeruzalemského z Ródu a Malty', + ]; + protected static $cityFormats = [ + '{{cityName}}', + ]; + protected static $streetNameFormats = [ '{{firstName}} {{streetSuffix}}', - '{{lastName}} {{streetSuffix}}' - ); - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}' - ); + '{{lastName}} {{streetSuffix}}', + ]; + protected static $streetAddressFormats = [ + '{{streetName}} {{buildingNumber}}', + ]; - protected static $addressFormats = array( + protected static $addressFormats = [ '{{streetAddress}}\n {{postcode}}\n {{city}}', - ); + ]; public static function cityName() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Company.php similarity index 88% rename from vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Company.php index 53091d5..11b9e5b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Company.php @@ -4,49 +4,50 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( + protected static $formats = [ '{{lastName}} {{companySuffix}}', '{{lastName}}-{{lastName}}', - '{{lastName}}, {{lastName}} and {{lastName}}' - ); + '{{lastName}}, {{lastName}} and {{lastName}}', + ]; - protected static $catchPhraseWords = array( - array( + protected static $catchPhraseWords = [ + [ 'Adaptívne', 'Automatické', 'Vyvážené', 'Obchodný-sústredený', 'centralizované', 'Cloned', 'kompatibilné', 'nastaviteľný', 'Cross-group', 'Cross-platform', 'zákazníka zamerané', 'Prispôsobiteľné', 'Decentralizované', 'De-inžinierstva', 'prenesenú', 'Digitálne', 'distribuované', 'Rôzne', 'Down veľkosti', 'Rozšírený', 'Celopodnikové ', ' Ergonomická', 'Expanded', 'Rozšírené', 'Plne konfigurovateľné', 'Funkcia na báze', 'Základný', 'Perspektívne', 'inovatívne', 'integrované', 'Intuitívne', 'Inverzný', 'Povinne monitorovaná', 'Multi-prešitia', 'multi-laterálne', 'Viacvrstvová', 'Viacvrstvová', 'Sieťová', 'Objektovo založená', 'Open-architektúru', 'Open-source', 'Operatívny', 'Optimalizované', 'Voliteľný', 'Organické', 'Organizovaná', 'Trvalé', 'Polarizované', 'Preventívne', 'Aktívne', 'Na zisk zameraná', 'Hlboká', 'programovateľný', 'progresívne', 'verejného kľúča', 'kvalita zamerané', 'reaktívne', 'Rekonštruované', 'Znížená', 'Právo veľké', 'robustné', 'Bezpečné', 'Jednoduchšie', 'Prepínanie', 'Synchronizované', 'synergický', 'spojil', 'tím-orientovaná', 'Univerzálne', 'Užívateľsky prívetivý', 'Univerzálne', 'Virtuálne', 'Vizionárske', - ), - array( - 'kontrola', 'analýzu', 'asymetrický', 'asynchrónne', 'prístup orientovaný', 'pozadí', 'na šírku pásma, monitorovať', 'obojsmerná', 'rozštiepené', 'jasne myslenie', 'klient-driven', 'klient-server', 'koherentné', 'súdržnosti', 'kompozitné', 'kontextový', 'kontextovo založená', 'obsah na báze', 'oddaný', 'dopytom', 'učebný', 'riadiace', 'diskrétne', 'dynamická', 'posilnenie', 'zahŕňajúci', 'manažér', 'explicitné', 'vyžaruje', 'odolné proti chybám', 'popredia', 'čerstvé myslenia', 'Globálne', 'heuristický', 'homogénna', 'ľudských zdrojov', 'hybridný', 'pôsobivých', 'čiastkové', 'nehmotnej', 'interaktívny', 'stredné', 'miestna', 'logistické', 'maximálny', 'metodickú', 'kritické', 'mobil', 'modulárny', 'motivuje', 'multimediálny', 'multi-štát', 'multi-tasking', 'národný', 'založená na skutočných potrebách', 'neutrálny', 'objektovo orientovaný', 'optimálnu', 'optimalizácia', 'radikálne', 'v reálnom čase', 'vzájomná', 'regionálne', 'citlivý', 'škálovateľné', 'stredné', 'zameriavalo na hľadanie riešenia', 'stabilný', 'statické', 'systematické', 'systémové', 'systém-hodný', 'hmotná', 'terciárny', 'prechodné', 'jednotný', 'pridaná hodnota', 'dobre modulovaný' - ), - array( - 'schopnosť', 'prístup', 'algoritmus', 'aliancie', 'analyzátor', 'aplikácie', 'prístup', 'architektúra', 'archív', 'pole', 'postoj', 'referenčné', 'schopnosť', 'kapacita', 'výzva', 'okruh', 'spolupráca', 'zložitosť', 'koncept', 'konglomerát', 'pohotovostný', 'jadro', 'databáza', 'sklad dát', 'definície', 'emulácia', 'kódovanie', 'šifrovanie', 'extranet', 'firmware', 'flexibilita', 'počasia', 'rám', 'rámec', 'funkcie', 'funkcie', 'hardware', 'help-desk', 'hierarchie', 'húb', 'vykonávanie', 'infraštruktúra', 'iniciatíva', 'inštalácia', 'rozhranie', 'encyklopédia', 'pákový efekt', 'metodika', 'migrácia', 'model', 'moderátor', 'kontrola', 'moratórium', 'neurónové-siete', 'paradigma', 'paralelné', 'politika', 'portál', 'produkt', 'produktivita', 'projekt', 'projekcie', 'protokol', 'služba', 'softvér', 'riešenie', 'normalizácie', 'stratégia', 'štruktúra', 'úspech', 'nadstavba', 'pomoc', 'synergia', 'priepustnosť', 'časovom horizonte', 'sadu nástrojov', 'využitie', 'web', 'pracovná sila' - ) - ); + ], + [ + 'kontrola', 'analýzu', 'asymetrický', 'asynchrónne', 'prístup orientovaný', 'pozadí', 'na šírku pásma, monitorovať', 'obojsmerná', 'rozštiepené', 'jasne myslenie', 'klient-driven', 'klient-server', 'koherentné', 'súdržnosti', 'kompozitné', 'kontextový', 'kontextovo založená', 'obsah na báze', 'oddaný', 'dopytom', 'učebný', 'riadiace', 'diskrétne', 'dynamická', 'posilnenie', 'zahŕňajúci', 'manažér', 'explicitné', 'vyžaruje', 'odolné proti chybám', 'popredia', 'čerstvé myslenia', 'Globálne', 'heuristický', 'homogénna', 'ľudských zdrojov', 'hybridný', 'pôsobivých', 'čiastkové', 'nehmotnej', 'interaktívny', 'stredné', 'miestna', 'logistické', 'maximálny', 'metodickú', 'kritické', 'mobil', 'modulárny', 'motivuje', 'multimediálny', 'multi-štát', 'multi-tasking', 'národný', 'založená na skutočných potrebách', 'neutrálny', 'objektovo orientovaný', 'optimálnu', 'optimalizácia', 'radikálne', 'v reálnom čase', 'vzájomná', 'regionálne', 'citlivý', 'škálovateľné', 'stredné', 'zameriavalo na hľadanie riešenia', 'stabilný', 'statické', 'systematické', 'systémové', 'systém-hodný', 'hmotná', 'terciárny', 'prechodné', 'jednotný', 'pridaná hodnota', 'dobre modulovaný', + ], + [ + 'schopnosť', 'prístup', 'algoritmus', 'aliancie', 'analyzátor', 'aplikácie', 'prístup', 'architektúra', 'archív', 'pole', 'postoj', 'referenčné', 'schopnosť', 'kapacita', 'výzva', 'okruh', 'spolupráca', 'zložitosť', 'koncept', 'konglomerát', 'pohotovostný', 'jadro', 'databáza', 'sklad dát', 'definície', 'emulácia', 'kódovanie', 'šifrovanie', 'extranet', 'firmware', 'flexibilita', 'počasia', 'rám', 'rámec', 'funkcie', 'funkcie', 'hardware', 'help-desk', 'hierarchie', 'húb', 'vykonávanie', 'infraštruktúra', 'iniciatíva', 'inštalácia', 'rozhranie', 'encyklopédia', 'pákový efekt', 'metodika', 'migrácia', 'model', 'moderátor', 'kontrola', 'moratórium', 'neurónové-siete', 'paradigma', 'paralelné', 'politika', 'portál', 'produkt', 'produktivita', 'projekt', 'projekcie', 'protokol', 'služba', 'softvér', 'riešenie', 'normalizácie', 'stratégia', 'štruktúra', 'úspech', 'nadstavba', 'pomoc', 'synergia', 'priepustnosť', 'časovom horizonte', 'sadu nástrojov', 'využitie', 'web', 'pracovná sila', + ], + ]; - protected static $bsWords = array( - array( - 'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize' - ), - array( - 'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich' - ), - array( - 'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies' - ) - ); + protected static $bsWords = [ + [ + 'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable', 'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph', 'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize', 'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate', 'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose', 'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit', 'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize', + ], + [ + 'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable', 'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky', 'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral', 'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive', 'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless', 'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic', 'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent', 'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play', 'collaborative', 'compelling', 'holistic', 'rich', + ], + [ + 'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms', 'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services', 'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence', 'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth', 'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications', 'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies', + ], + ]; - protected static $companySuffix = array('s.r.o.', 'a.s.', 'v.o.s.'); + protected static $companySuffix = ['s.r.o.', 'a.s.', 'v.o.s.']; /** * @example 'Robust full-range hub' */ public function catchPhrase() { - $result = array(); + $result = []; + foreach (static::$catchPhraseWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } /** @@ -54,11 +55,12 @@ public function catchPhrase() */ public function bs() { - $result = array(); + $result = []; + foreach (static::$bsWords as &$word) { $result[] = static::randomElement($word); } - return join(' ', $result); + return implode(' ', $result); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Internet.php new file mode 100644 index 0000000..6e63c21 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Internet.php @@ -0,0 +1,9 @@ +format('ymd'); + $randomDigits = $this->getBirthNumber($gender); - if ($gender && $gender == static::GENDER_MALE) { - $randomDigits = (string)static::numerify('##') . static::randomElement(array(1,3,5,7,9)); - } elseif ($gender && $gender == static::GENDER_FEMALE) { - $randomDigits = (string)static::numerify('##') . static::randomElement(array(0,2,4,6,8)); - } else { - $randomDigits = (string)static::numerify('###'); + $checksum = Luhn::computeCheckDigit($datePart . $randomDigits); + + return $datePart . '-' . $randomDigits . $checksum; + } + + /** + * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE + * + * @return string of three digits + */ + protected function getBirthNumber($gender = null) + { + if ($gender && $gender === static::GENDER_MALE) { + return (string) static::numerify('##') . static::randomElement([1, 3, 5, 7, 9]); } + $zeroCheck = static function ($callback) { + do { + $randomDigits = $callback(); + } while ($randomDigits === '000'); - $checksum = Luhn::computeCheckDigit($datePart . $randomDigits); + return $randomDigits; + }; - return $datePart . '-' . $randomDigits . $checksum; + if ($gender && $gender === static::GENDER_FEMALE) { + return $zeroCheck(static function () { + return (string) static::numerify('##') . static::randomElement([0, 2, 4, 6, 8]); + }); + } + + return $zeroCheck(static function () { + return (string) static::numerify('###'); + }); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php new file mode 100644 index 0000000..2d5c588 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php @@ -0,0 +1,64 @@ + Swedish mobile number formats + */ + protected static array $mobileFormats = [ + '+467########', + '+46(0)7########', + '+46 (0)7## ## ## ##', + '+46 (0)7## ### ###', + '07## ## ## ##', + '07## ### ###', + '07##-## ## ##', + '07##-### ###', + '07# ### ## ##', + '07#-### ## ##', + '07#-#######', + ]; + + public function mobileNumber(): string + { + $format = static::randomElement(static::$mobileFormats); + + return self::numerify($this->generator->parse($format)); + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/th_TH/Address.php similarity index 93% rename from vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/th_TH/Address.php index 7420bf5..4918281 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/th_TH/Address.php @@ -4,23 +4,23 @@ class Address extends \Faker\Provider\Address { - protected static $cityPrefix = array( + protected static $cityPrefix = [ 'เมือง', 'หมู่บ้าน', 'ท่า', - ); + ]; - protected static $citySuffix = array( + protected static $citySuffix = [ 'เหนือ', 'ใต้', 'บุรี', - ); + ]; - protected static $buildingNumber = array( + protected static $buildingNumber = [ '#####', '####', '###', '##', '##/###', - ); + ]; - protected static $streetPrefix = array( + protected static $streetPrefix = [ 'ซอย', 'ถนน', 'สะพาน', 'วงเวียน', 'แยก', - ); + ]; - protected static $streetSuffix = array( + protected static $streetSuffix = [ 'กรุงเกษม', 'กรุงเทพกรีฑา', 'กรุงเทพ-นนทบุรี', 'กรุงธนบุรี', 'กรุงแมน', 'กล้วยน้ำไทตัดใหม่', 'กลันตัน', 'กะออม', 'กระออม', 'กัลปพฤกษ์', 'กัลยาณไมตรี', 'กาญจนาภิเษก', 'กำนันแม้น', 'กำแพงเพชร', 'กำแพงเพชร 1', 'กำแพงเพชร 2', 'กำแพงเพชร 3', 'กำแพงเพชร 4', 'กำแพงเพชร 5', 'กำแพงเพชร 6', 'กำแพงเพชร 7', 'กิ่งแก้ว', 'กิจพานิช', 'เกษมราษฎร์', 'แก้ว', 'แก้วเงินทอง', 'โกสุมรวมใจ', 'ไกรสีห์', 'ขวัญ', 'ขาว', 'ข้าวสาร', 'ข้าวหลาม', 'ขุมทอง-ลำต้อยติ่ง', 'เขียวไข่กา', 'ครุใน', 'คลองเก้า', 'คลองถมวัดพิเรนทร์', 'คลองถมวัดสระเกศ', 'คลองถมวัดโสมนัส', 'คลองลำเจียก', 'คลองลำปัก', 'คลองสิบ-คลองสิบสี่', 'คอนแวนต์', 'คุ้มเกล้า', 'คู้บอน', 'คู้-คลองสิบ', 'เคหะร่มเกล้า', @@ -48,16 +48,17 @@ class Address extends \Faker\Provider\Address 'สตรีวิทยา 2', 'สนามไชย', 'สมเด็จเจ้าพระยา', 'สมเด็จพระเจ้าตากสิน', 'สมเด็จพระปิ่นเกล้า', 'สรงประภา', 'สรณคมน์', 'สรรพาวุธ', 'สราญรมย์', 'สวนผัก', 'สวนพลู', 'สวนสยาม', 'สวนอ้อยซอยกลาง', 'สวรรคโลก', 'สวัสดิการ 1', 'สวัสดิการ 2', 'สวัสดิการ 3', 'สว่าง', 'สะแกงาม', 'สะพานพุทธ', 'สังคมสงเคราะห์', 'สังคโลก', 'สังฆประชา', 'สังฆสันติสุข', 'สันติภาพ', 'สาทรใต้', 'สาทรเหนือ', 'สาธุประดิษฐ์', 'สามวา', 'สามเสน', 'สายไหม', 'สารสิน', 'สารีบุตร', 'สารีบุตร-ทับยาว', 'สาลีรัฐวิภาค', 'สิบสามห้าง', 'สิรินธร', 'สี่พระยา', 'สีลม', 'สีหบุรานุกิจ', 'สุขสวัสดิ์', 'สุขาภิบาล 2', 'สุขาภิบาล 5', 'สุขาภิบาลบางระมาด', 'สุขุมวิท', 'สุโขทัย', 'สุคนธสวัสดิ์', 'สุคันธาราม', 'สุดประเสริฐ', 'สุทธาวาส', 'สุทธิสารวินิจฉัย', 'สุนทรโกษา', 'สุพรรณ', 'สุรวงศ์', 'สุรศักดิ์', 'สุวินทวงศ์', 'สุเหร่าคลองหนึ่ง', 'เสนานิคม 1', 'เสรีไทย', 'เสือป่า', 'แสนเกษม', 'แสมดำ', 'หทัยมิตร', 'หทัยราษฎร์', 'หนองแขม-วัดศรีนวล', 'หนองระแหง', 'หน้าพระธาตุ', 'หน้าพระลาน', 'หน้าหับเผย', 'หม่อมเจ้าสง่างาม สุประดิษฐ์', 'หมู่บ้านเศรษฐกิจ', 'หลวง', 'หลวงพรตพิทยพยัต', 'หลวงแพ่ง', 'หลักเมือง', 'หลังสวน', 'หลานหลวง', 'หอวัง', 'หัวหมาก', 'อนันตนาค', 'อนามัยงามเจริญ', 'อนุวงศ์', 'อยู่เย็น', 'อยู่วิทยา', 'อรุณอมรินทร์', 'อโศก-ดินแดง', 'อโศกมนตรี', 'อ่อนนุช', 'อังรีดูนังต์', 'อัศวพิเชษฐ์', 'อัษฎางค์', 'อัสสัมชัญ', 'อาจณรงค์', 'อำนวยสงคราม', 'อินทรพิทักษ์', 'อินทราวาส', 'อิสรภาพ', 'อุณากรรณ', 'อุดมสุข', 'อุทยาน', 'อู่ทองนอก', 'อู่ทองใน', 'เอกชัย', - '60 พรรษามหาราชินี' - ); + '60 พรรษามหาราชินี', + ]; - protected static $postcode = array('#####'); + protected static $postcode = ['#####']; /** * @var array Thai province names - * @link https://th.wikipedia.org/wiki/%E0%B8%88%E0%B8%B1%E0%B8%87%E0%B8%AB%E0%B8%A7%E0%B8%B1%E0%B8%94%E0%B9%83%E0%B8%99%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%97%E0%B8%A8%E0%B9%84%E0%B8%97%E0%B8%A2 + * + * @see https://th.wikipedia.org/wiki/%E0%B8%88%E0%B8%B1%E0%B8%87%E0%B8%AB%E0%B8%A7%E0%B8%B1%E0%B8%94%E0%B9%83%E0%B8%99%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%97%E0%B8%A8%E0%B9%84%E0%B8%97%E0%B8%A2 */ - protected static $province = array( + protected static $province = [ 'กระบี่', 'กรุงเทพมหานคร', 'กาญจนบุรี', 'กาฬสินธุ์', 'กำแพงเพชร', 'ขอนแก่น', 'จันทบุรี', 'ฉะเชิงเทรา', 'ชลบุรี', 'ชัยนาท', 'ชัยภูมิ', 'ชุมพร', 'ตรัง', 'ตราด', 'ตาก', 'นครนายก', 'นครปฐม', 'นครพนม', 'นครราชสีมา', @@ -69,20 +70,21 @@ class Address extends \Faker\Provider\Address 'สมุทรสาคร', 'สระบุรี', 'สระแก้ว', 'สิงห์บุรี', 'สุพรรณบุรี', 'สุราษฎร์ธานี', 'สุรินทร์', 'สุโขทัย', 'หนองคาย', 'หนองบัวลำภู', 'อำนาจเจริญ', 'อุดรธานี', 'อุตรดิตถ์', 'อุทัยธานี', 'อุบลราชธานี', 'อ่างทอง', 'เชียงราย', 'เชียงใหม่', 'เพชรบุรี', 'เพชรบูรณ์', 'เลย', 'แพร่', 'แม่ฮ่องสอน', - ); + ]; /** * @var array Country names in Thai - * @link https://th.wikipedia.org/wiki/%E0%B8%A3%E0%B8%B2%E0%B8%A2%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%97%E0%B8%A8_%E0%B8%94%E0%B8%B4%E0%B8%99%E0%B9%81%E0%B8%94%E0%B8%99_%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%87%E0%B8%AB%E0%B8%A5%E0%B8%A7%E0%B8%87 + * + * @see https://th.wikipedia.org/wiki/%E0%B8%A3%E0%B8%B2%E0%B8%A2%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%97%E0%B8%A8_%E0%B8%94%E0%B8%B4%E0%B8%99%E0%B9%81%E0%B8%94%E0%B8%99_%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%87%E0%B8%AB%E0%B8%A5%E0%B8%A7%E0%B8%87 */ - protected static $country = array( + protected static $country = [ 'กรีซ', 'กัมพูชา', 'กัวเตมาลา', 'กาตาร์', 'คอซอวอ', 'คาซัคสถาน', 'คิริบาส', 'คิวบา', 'คีร์กีซสถาน', 'คูเวต', - 'จอร์เจีย', 'จอร์แดน', 'จาเมกา', 'จีน','ชิลี', 'ซานมารีโน', 'ซามัว', 'ซาอุดีอาระเบีย', 'ซีเรีย', 'ซูรินาม', + 'จอร์เจีย', 'จอร์แดน', 'จาเมกา', 'จีน', 'ชิลี', 'ซานมารีโน', 'ซามัว', 'ซาอุดีอาระเบีย', 'ซีเรีย', 'ซูรินาม', 'ญี่ปุ่น', 'ดอมินีกา', 'ตรินิแดดและโตเบโก', 'ตองกา', 'ติมอร์-เลสเต', 'ตุรกี', 'ตูวาลู', 'ทาจิกิสถาน', 'นครรัฐวาติกัน', 'นอร์เวย์', 'นาอูรู', 'นิการากัว', 'นิวซีแลนด์', 'บราซิล', 'บรูไนดารุสซาลาม', 'บอสเนียและเฮอร์เซโกวีนา', 'บังกลาเทศ', 'บัลแกเรีย', 'บาร์เบโดส', 'บาห์เรน', 'บาฮามาส', 'ปากีสถาน', 'ปานามา', 'ปาปัวนิวกินี', 'ปารากวัย', 'ปาเลา', - 'ฝรั่งเศส', 'พม่า', 'ฟิจิ', 'ฟินแลนด์', 'ฟิลิปปินส์', 'ภูฏาน', 'มองโกเลีย', 'มอนเตเนโกร', 'มอลตา','มอลโดวา', 'มัลดีฟส์', 'มาเลเซีย', - 'ยูเครน', 'รัสเซีย', 'ลักเซมเบิร์ก', 'ลัตเวีย', 'ลาว', 'ลิกเตนสไตน์','ลิทัวเนีย', 'ศรีลังกา', + 'ฝรั่งเศส', 'พม่า', 'ฟิจิ', 'ฟินแลนด์', 'ฟิลิปปินส์', 'ภูฏาน', 'มองโกเลีย', 'มอนเตเนโกร', 'มอลตา', 'มอลโดวา', 'มัลดีฟส์', 'มาเลเซีย', + 'ยูเครน', 'รัสเซีย', 'ลักเซมเบิร์ก', 'ลัตเวีย', 'ลาว', 'ลิกเตนสไตน์', 'ลิทัวเนีย', 'ศรีลังกา', 'สวิตเซอร์แลนด์', 'สวีเดน', 'สหรัฐอาหรับเอมิเรตส์', 'สหรัฐอเมริกา', 'สหราชอาณาจักร', 'สาธารณรัฐมาซิโดเนีย', 'สาธารณรัฐเช็ก', 'สาธารณรัฐโดมินิกัน', 'สิงคโปร์', 'สเปน', 'สโลวาเกีย', 'สโลวีเนีย', 'หมู่เกาะมาร์แชลล์', 'หมู่เกาะโซโลมอน', 'ออสเตรีย', 'ออสเตรเลีย', 'อันดอร์รา', 'อัฟกานิสถาน', 'อาร์มีเนีย', 'อาร์เจนตินา', 'อาเซอร์ไบจาน', @@ -92,26 +94,26 @@ class Address extends \Faker\Provider\Address 'เยอรมนี', 'เยเมน', 'เลบานอน', 'เวียดนาม', 'เวเนซุเอลา', 'เอกวาดอร์', 'เอลซัลวาดอร์', 'เอสโตเนีย', 'เฮติ', 'แคนาดา', 'แอนติกาและบาร์บูดา', 'แอลเบเนีย', 'โครเอเชีย', 'โคลอมเบีย', 'โบลิเวีย', 'โปรตุเกส', 'โปแลนด์', 'โมนาโก', 'โรมาเนีย', 'โอมาน', 'ไซปรัส', 'ไทย', 'ไมโครนีเซีย', 'ไอซ์แลนด์', 'ไอร์แลนด์', - ); + ]; - protected static $cityFormats = array( + protected static $cityFormats = [ '{{cityPrefix}} {{firstName}}{{citySuffix}}', '{{cityPrefix}} {{firstName}}', '{{firstName}}{{citySuffix}}', '{{lastName}}{{citySuffix}}', - ); + ]; - protected static $streetNameFormats = array( - '{{streetPrefix}} {{streetSuffix}}' - ); + protected static $streetNameFormats = [ + '{{streetPrefix}} {{streetSuffix}}', + ]; - protected static $streetAddressFormats = array( + protected static $streetAddressFormats = [ '{{buildingNumber}} {{streetName}}', - ); - - protected static $addressFormats = array( + ]; + + protected static $addressFormats = [ "{{streetAddress}}\n{{city}}, {{postcode}}", - ); + ]; /** * @example 'เมือง' @@ -121,7 +123,7 @@ public static function cityPrefix() return static::randomElement(static::$cityPrefix); } - /** + /** * @example 'ถนน' */ public static function streetPrefix() diff --git a/vendor/fakerphp/faker/src/Faker/Provider/th_TH/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/th_TH/Color.php new file mode 100644 index 0000000..21ea7a9 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/th_TH/Color.php @@ -0,0 +1,16 @@ + 'Pazar', 'Monday' => 'Pazartesi', 'Tuesday' => 'Salı', @@ -19,14 +19,15 @@ public static function dayOfWeek($max = 'now') 'Thursday' => 'Perşembe', 'Friday' => 'Cuma', 'Saturday' => 'Cumartesi', - ); + ]; $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; + + return $map[$week] ?? $week; } public static function monthName($max = 'now') { - $map = array( + $map = [ 'January' => 'Ocak', 'February' => 'Şubat', 'March' => 'Mart', @@ -39,8 +40,9 @@ public static function monthName($max = 'now') 'October' => 'Ekim', 'November' => 'Kasım', 'December' => 'Aralık', - ); + ]; $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; + + return $map[$month] ?? $month; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/tr_TR/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/tr_TR/Internet.php new file mode 100644 index 0000000..9d82111 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/tr_TR/Internet.php @@ -0,0 +1,9 @@ + $digit) { + if ($index % 2 === 0) { + $evenSum += $digit; + } else { + $oddSum += $digit; + } + } + + $tenthDigit = (7 * $evenSum - $oddSum) % 10; + $eleventhDigit = ($evenSum + $oddSum + $tenthDigit) % 10; + + return $tenthDigit . $eleventhDigit; + } + + /** + * Checks whether a TCNo has a valid checksum + * + * @param string $tcNo + * + * @return bool + */ + public static function tcNoIsValid($tcNo) + { + return self::tcNoChecksum(substr($tcNo, 0, -2)) === substr($tcNo, -2, 2); + } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/tr_TR/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/tr_TR/PhoneNumber.php new file mode 100644 index 0000000..3103c77 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/tr_TR/PhoneNumber.php @@ -0,0 +1,186 @@ +middleNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { + } + + if ($gender === static::GENDER_FEMALE) { return $this->middleNameFemale(); } - return $this->middleName(static::randomElement(array( + return $this->middleName(static::randomElement([ static::GENDER_MALE, static::GENDER_FEMALE, - ))); + ])); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/uk_UA/PhoneNumber.php similarity index 68% rename from vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/uk_UA/PhoneNumber.php index 24187f3..15b443f 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/uk_UA/PhoneNumber.php @@ -7,7 +7,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber /** * @see list of Ukraine mobile formats (2017-08-08), source: https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BB%D0%B0%D0%BD_%D0%BD%D1%83%D0%BC%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D1%8B */ - protected static $formats = array( + protected static $formats = [ // International format (mobile) '+38050#######', @@ -46,6 +46,27 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber // More generic formats '+38(0##)#######', '+38(0###)######', - '+38(0####)#####' - ); + '+38(0####)#####', + ]; + + /** + * @see Detailed numbering scheme. Source: https://www.itu.int/oth/T02020000DB/en + */ + protected static $e164Formats = [ + '+38050#######', + '+38066#######', + '+38068#######', + '+38096#######', + '+38067#######', + '+38091#######', + '+38092#######', + '+38093#######', + '+38094#######', + '+38095#######', + '+38096#######', + '+38097#######', + '+38098#######', + '+38063#######', + '+38099#######', + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/uk_UA/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/uk_UA/Text.php index 337df3e..758bd2a 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/uk_UA/Text.php @@ -22,7 +22,8 @@ class Text extends \Faker\Provider\Text * Language: Ukrainian * * @see https://wikimediafoundation.org/wiki/Terms_of_Use/ - * @link http://uk.wikisource.org/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80_%D0%91%D0%B5%D1%80%D0%BA%D1%83%D1%82 + * @see http://uk.wikisource.org/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80_%D0%91%D0%B5%D1%80%D0%BA%D1%83%D1%82 + * * @var string */ protected static $baseText = <<<'EOT' diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Address.php similarity index 90% rename from vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Address.php index 47414f1..0970309 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Address.php @@ -4,9 +4,9 @@ class Address extends \Faker\Provider\Address { - protected static $buildingNumber = array('####', '###', '##', '#'); - protected static $postcode = array('#####', '######', '#####-####'); - protected static $province = array( + protected static $buildingNumber = ['%###', '%##', '%#', '%']; + protected static $postcode = ['#####', '######', '#####-####']; + protected static $province = [ 'An Giang', 'Bà Rịa - Vũng Tàu', 'Bắc Giang', 'Bắc Kạn', 'Bạc Liêu', 'Bắc Ninh', 'Bến Tre', 'Bình Định', @@ -27,21 +27,21 @@ class Address extends \Faker\Provider\Address 'Thừa Thiên Huế', 'Tiền Giang', 'Trà Vinh', 'Tuyên Quang', 'Vĩnh Long', 'Vĩnh Phúc', 'Yên Bái', 'Phú Yên', - ); - protected static $city = array( + ]; + protected static $city = [ 'Cần Thơ', 'Đà Nẵng', 'Hải Phòng', 'Hà Nội', 'Hồ Chí Minh', - ); - protected static $streetNameFormats = array( + ]; + protected static $streetNameFormats = [ 'Phố {{lastName}} {{middleName}} {{firstName}}', 'Phố {{lastName}} {{middleName}} {{firstName}}', 'Phố {{lastName}} {{middleName}} {{firstName}}', 'Phố {{firstName}}', 'Phố {{lastName}}', - ); - protected static $streetAddressFormats = array( + ]; + protected static $streetAddressFormats = [ '{{buildingNumber}} {{streetName}}', - ); - protected static $hamletNameFormats = array( + ]; + protected static $hamletNameFormats = [ '{{hamletPrefix}} {{middleName}} {{firstName}}', '{{hamletPrefix}} {{lastName}} {{firstName}}', '{{hamletPrefix}} {{firstName}} {{lastName}}', @@ -51,11 +51,11 @@ class Address extends \Faker\Provider\Address '{{hamletPrefix}} {{lastName}}', '{{hamletPrefix}} ##', '{{hamletPrefix}} #', - ); - protected static $hamletPrefix = array( + ]; + protected static $hamletPrefix = [ 'Thôn', 'Ấp', - ); - protected static $wardNameFormats = array( + ]; + protected static $wardNameFormats = [ '{{hamletPrefix}} {{middleName}} {{firstName}}', '{{hamletPrefix}} {{lastName}} {{firstName}}', '{{wardPrefix}} {{firstName}} {{lastName}}', @@ -65,11 +65,11 @@ class Address extends \Faker\Provider\Address '{{wardPrefix}} {{lastName}}', '{{wardPrefix}} ##', '{{wardPrefix}} #', - ); - protected static $wardPrefix = array( + ]; + protected static $wardPrefix = [ 'Phường', 'Xã', - ); - protected static $districtNameFormats = array( + ]; + protected static $districtNameFormats = [ '{{districtPrefix}} {{middleName}} {{firstName}}', '{{districtPrefix}} {{lastName}} {{firstName}}', '{{districtPrefix}} {{firstName}} {{lastName}}', @@ -79,16 +79,16 @@ class Address extends \Faker\Provider\Address '{{districtPrefix}} {{lastName}}', '{{districtPrefix}} ##', '{{districtPrefix}} #', - ); - protected static $districtPrefix = array( + ]; + protected static $districtPrefix = [ 'Quận', 'Huyện', - ); - protected static $addressFormats = array( + ]; + protected static $addressFormats = [ "{{streetAddress}}, {{wardName}}, {{districtName}}\n{{city}}", "{{streetAddress}}, {{wardName}}, {{districtName}}\n{{province}}", "{{buildingNumber}}, {{hamletName}}, {{wardName}}, {{districtName}}\n{{province}}", - ); - protected static $country = array( + ]; + protected static $country = [ 'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil', 'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic', @@ -113,8 +113,8 @@ class Address extends \Faker\Provider\Address 'Vanuatu', 'Venezuela', 'Vietnam', 'Wallis and Futuna', 'Western Sahara', 'Yemen', - 'Zambia', 'Zimbabwe' - ); + 'Zambia', 'Zimbabwe', + ]; public function hamletName() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Color.php similarity index 91% rename from vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Color.php index 4deaa2f..df78855 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Color.php @@ -4,13 +4,13 @@ class Color extends \Faker\Provider\Color { - protected static $safeColorNames = array( + protected static $safeColorNames = [ 'đen', 'xanh', 'ô liu', 'tím ', 'vôi', 'xanh', 'bạc', 'xám', 'vàng', 'trắng', - ); + ]; - protected static $allColorNames = array( + protected static $allColorNames = [ 'Hổ phách', 'Ametit', 'Xanh berin', 'Xanh da trời', 'Be', 'Nâu sẫm', 'Đen', 'Xanh lam', 'Nâu', @@ -32,5 +32,5 @@ class Color extends \Faker\Provider\Color 'Bạc', 'Nâu tanin', 'Mòng két', 'Xanh Thổ', 'Đỏ son', 'Tím', 'Xanh crôm', 'Trắng', 'Vàng', - ); + ]; } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Internet.php new file mode 100644 index 0000000..2bfb15a --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/vi_VN/Internet.php @@ -0,0 +1,8 @@ + array( + protected static $formats = [ + '7' => [ '0[a] ### ####', '(0[a]) ### ####', '0[a]-###-####', @@ -34,8 +34,8 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '84-[a]-###-####', '(84)([a])###-####', '+84-[a]-###-####', - ), - '8' => array( + ], + '8' => [ '0[a] #### ####', '(0[a]) #### ####', '0[a]-####-####', @@ -43,8 +43,8 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '84-[a]-####-####', '(84)([a])####-####', '+84-[a]-####-####', - ), - ); + ], + ]; public function phoneNumber() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Address.php similarity index 89% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Address.php index 19d1c94..00b9eb7 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Address.php @@ -4,8 +4,7 @@ class Address extends \Faker\Provider\Address { - - protected static $cites = array( + protected static $cites = [ '北京', '上海', '天津', '重庆', '哈尔滨', '长春', '沈阳', '呼和浩特', '石家庄', '乌鲁木齐', '兰州', '西宁', @@ -14,10 +13,10 @@ class Address extends \Faker\Provider\Address '南京', '成都', '贵阳', '昆明', '南宁', '拉萨', '杭州', '南昌', '广州', '福州', '海口', - '香港', '澳门' - ); + '香港', '澳门', + ]; - protected static $states = array( + protected static $states = [ '北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省', '黑龙江省', '上海市', '江苏省', @@ -27,10 +26,10 @@ class Address extends \Faker\Provider\Address '重庆市', '四川省', '贵州省', '云南省', '西藏自治区', '陕西省', '甘肃省', '青海省', '宁夏回族自治区', '新疆维吾尔自治区', - '香港特别行政区', '澳门特别行政区', '台湾省' - ); + '香港特别行政区', '澳门特别行政区', '台湾省', + ]; - protected static $stateAbbr = array( + protected static $stateAbbr = [ '京', '皖', '渝', '闽', '甘', '粤', '桂', '黔', '琼', '冀', '豫', '黑', @@ -39,10 +38,10 @@ class Address extends \Faker\Provider\Address '青', '鲁', '晋', '陕', '沪', '川', '津', '藏', '新', '滇', '浙', '港', - '澳', '台' - ); + '澳', '台', + ]; - protected static $areas = array( + protected static $areas = [ '西夏区', '永川区', '秀英区', '高港区', '清城区', '兴山区', '锡山区', '清河区', '龙潭区', '华龙区', '海陵区', '滨城区', @@ -56,10 +55,10 @@ class Address extends \Faker\Provider\Address '花溪区', '吉利区', '新城区', '怀柔区', '六枝特区', '涪城区', '清浦区', '南溪区', '淄川区', '高明区', '金水区', '中原区', - '高新开发区', '经济开发新区', '新区' - ); + '高新开发区', '经济开发新区', '新区', + ]; - protected static $country = array( + protected static $country = [ '阿富汗', '阿拉斯加', '阿尔巴尼亚', '阿尔及利亚', '安道尔', '安哥拉', '安圭拉岛英', '安提瓜和巴布达', '阿根廷', '亚美尼亚', '阿鲁巴岛', '阿森松', '澳大利亚', @@ -102,12 +101,12 @@ class Address extends \Faker\Provider\Address '斯威士兰', '瑞典', '瑞士', '叙利亚', '塔吉克斯坦', '坦桑尼亚', '泰国', '阿拉伯联合酋长国', '多哥', '托克劳群岛', '汤加', '特立尼达和多巴哥', '突尼斯', '土耳其', '土库曼斯坦', - '特克斯和凯科斯群岛(', '图瓦卢', '美国', '乌干达', '乌克兰', + '特克斯和凯科斯群岛', '图瓦卢', '美国', '乌干达', '乌克兰', '英国', '乌拉圭', '乌兹别克斯坦', '瓦努阿图', '梵蒂冈', '委内瑞拉', '越南', '维尔京群岛', '维尔京群岛和圣罗克伊', '威克岛', '瓦里斯和富士那群岛', '西撒哈拉', '也门', '南斯拉夫', - '扎伊尔', '赞比亚', '桑给巴尔', '津巴布韦', '中华人民共和国', '中国' - ); + '扎伊尔', '赞比亚', '桑给巴尔', '津巴布韦', '中华人民共和国', '中国', + ]; public function city() { @@ -126,24 +125,24 @@ public function stateAbbr() public static function area() { - return static::randomElement(static::$areas); + return static::randomElement(static::$areas); } public static function country() { - return static::randomElement(static::$country); + return static::randomElement(static::$country); } public function address() { - return $this->city() . static::area(); + return $this->city() . static::area(); } public static function postcode() { - $prefix = str_pad(mt_rand(1, 85), 2, 0, STR_PAD_LEFT); + $prefix = str_pad(self::numberBetween(1, 85), 2, 0, STR_PAD_LEFT); $suffix = '00'; - return $prefix . mt_rand(10, 88) . $suffix; + return $prefix . self::numberBetween(10, 88) . $suffix; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Color.php similarity index 93% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Color.php index 12d29e3..254fd07 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Color.php @@ -5,15 +5,15 @@ class Color extends \Faker\Provider\Color { /** - * @link https://zh.wikipedia.org/zh-cn/%E9%A2%9C%E8%89%B2%E5%88%97%E8%A1%A8 + * @see https://zh.wikipedia.org/zh-cn/%E9%A2%9C%E8%89%B2%E5%88%97%E8%A1%A8 */ - protected static $safeColorNames = array( + protected static $safeColorNames = [ '黑色', '粟色', '绿色', '藏青', '橄榄色', '紫', '凫绿', '鲜绿色', '蓝色', '银色', - '灰色', '黄色', '品红', '水色', '白色' - ); + '灰色', '黄色', '品红', '水色', '白色', + ]; - protected static $allColorNames = array( + protected static $allColorNames = [ '黑色', '昏灰', '灰色', '暗灰', '银色', '亮灰色', '庚斯博罗灰', '白烟色', '白色', '雪色', '铁灰色', '沙棕', '玫瑰褐', '亮珊瑚色', '印度红', '褐色', @@ -62,5 +62,5 @@ class Color extends \Faker\Provider\Color '胭脂红', '浅粉红', '枢机红', '薰衣草紫红', '灰紫红', '樱桃红', '浅鲑红', '绯红', '粉红', '亮粉红', '壳黄红', '茜红', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Company.php similarity index 96% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Company.php index b3b4803..d6ca17a 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Company.php @@ -4,11 +4,11 @@ class Company extends \Faker\Provider\Company { - protected static $formats = array( - '{{companyPrefix}}{{companySuffix}}' - ); + protected static $formats = [ + '{{companyPrefix}}{{companySuffix}}', + ]; - protected static $companyPrefix = array( + protected static $companyPrefix = [ '超艺', '和泰', '九方', '鑫博腾飞', '戴硕电子', '济南亿次元', '海创', '创联世纪', '凌云', '泰麒麟', '彩虹', '兰金电子', '晖来计算机', '天益', '恒聪百汇', @@ -25,16 +25,17 @@ class Company extends \Faker\Provider\Company '太极', '群英', '合联电子', '同兴万点', '襄樊地球村', '精芯', '艾提科信', '昊嘉', '鸿睿思博', '四通', '富罳', '商软冠联', '诺依曼软件', '东方峻景', '华成育卓', '趋势', - '维涛', '通际名联' - ); + '维涛', '通际名联', + ]; - protected static $companySuffix = array('科技', '网络', '信息', '传媒'); + protected static $companySuffix = ['科技', '网络', '信息', '传媒']; /** * @see blog.renren.com/share/223844062/2387611567 + * * @var array */ - protected static $catchPhrase = array( + protected static $catchPhrase = [ '燕舞,燕舞,一曲歌来一片情。', '康师傅方便面,好吃看得见。', '不要太潇洒!', @@ -215,7 +216,7 @@ class Company extends \Faker\Provider\Company '自讨苦吃!', '成功与科技共辉映', '没有最', - ); + ]; public static function companyPrefix() { diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/DateTime.php similarity index 86% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_CN/DateTime.php index 97b1ec2..c17774c 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/DateTime.php @@ -11,7 +11,7 @@ public static function amPm($max = 'now') public static function dayOfWeek($max = 'now') { - $map = array( + $map = [ 'Sunday' => '星期日', 'Monday' => '星期一', 'Tuesday' => '星期二', @@ -19,14 +19,15 @@ public static function dayOfWeek($max = 'now') 'Thursday' => '星期四', 'Friday' => '星期五', 'Saturday' => '星期六', - ); + ]; $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; + + return $map[$week] ?? $week; } public static function monthName($max = 'now') { - $map = array( + $map = [ 'January' => '一月', 'February' => '二月', 'March' => '三月', @@ -39,8 +40,9 @@ public static function monthName($max = 'now') 'October' => '十月', 'November' => '十一月', 'December' => '十二月', - ); + ]; $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; + + return $map[$month] ?? $month; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Internet.php similarity index 64% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Internet.php index ca10822..e1a8796 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Internet.php @@ -4,21 +4,21 @@ class Internet extends \Faker\Provider\Internet { - protected static $freeEmailDomain = array( - 'gmail.com', 'yahoo.com', 'hotmail.com', '126.com', '163.com', 'qq.com', 'sohu.com', 'sina.com' - ); - protected static $tld = array( + protected static $freeEmailDomain = [ + 'gmail.com', 'yahoo.com', 'hotmail.com', '126.com', '163.com', 'qq.com', 'sohu.com', 'sina.com', + ]; + protected static $tld = [ 'com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'cn', - 'com.cn', 'edu.cn', 'net.cn', 'biz.cn', 'gov.cn', 'org.cn' - ); + 'com.cn', 'edu.cn', 'net.cn', 'biz.cn', 'gov.cn', 'org.cn', + ]; - protected static $userNameFormats = array( + protected static $userNameFormats = [ '{{word}}.{{word}}', '{{word}}_{{word}}', '{{word}}##', '?{{word}}', - ); - protected static $emailFormats = array( + ]; + protected static $emailFormats = [ '{{userName}}@{{freeEmailDomain}}', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Payment.php similarity index 94% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Payment.php index 183fff1..8f10d1b 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Payment.php @@ -6,9 +6,10 @@ class Payment extends \Faker\Provider\Payment { /** * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E9%93%B6%E8%A1%8C%E5%88%97%E8%A1%A8 + * * @var array */ - protected static $banks = array( + protected static $banks = [ '渤海银行', '广发银行', '国家开发银行', @@ -28,10 +29,11 @@ class Payment extends \Faker\Provider\Payment '中国银行', '中国邮政储蓄银行', '中信银行', - ); + ]; /** * @example '中国建设银行' + * * @return string */ public static function bank() diff --git a/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Person.php new file mode 100644 index 0000000..2e22d52 --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Person.php @@ -0,0 +1,83 @@ + array( + protected static $city = [ + '新北市' => [ '板橋區', '三重區', '中和區', '永和區', '新莊區', '新店區', '樹林區', '鶯歌區', '三峽區', '淡水區', '汐止區', '瑞芳區', @@ -170,62 +170,62 @@ class Address extends \Faker\Provider\Address '三芝區', '石門區', '八里區', '平溪區', '雙溪區', '貢寮區', '金山區', '萬里區', '烏來區', - ), - '宜蘭縣' => array( + ], + '宜蘭縣' => [ '宜蘭市', '羅東鎮', '蘇澳鎮', '頭城鎮', '礁溪鄉', '壯圍鄉', '員山鄉', '冬山鄉', '五結鄉', '三星鄉', '大同鄉', '南澳鄉', - ), - '桃園市' => array( + ], + '桃園市' => [ '桃園區', '中壢區', '大溪區', '楊梅區', '蘆竹區', '大園區', '龜山區', '八德區', '龍潭區', '平鎮區', '新屋區', '觀音區', '復興區', - ), - '新竹縣' => array( + ], + '新竹縣' => [ '竹北市', '竹東鎮', '新埔鎮', '關西鎮', '湖口鄉', '新豐鄉', '芎林鄉', '橫山鄉', '北埔鄉', '寶山鄉', '峨眉鄉', '尖石鄉', '五峰鄉', - ), - '苗栗縣' => array( + ], + '苗栗縣' => [ '苗栗市', '苑裡鎮', '通霄鎮', '竹南鎮', '頭份鎮', '後龍鎮', '卓蘭鎮', '大湖鄉', '公館鄉', '銅鑼鄉', '南庄鄉', '頭屋鄉', '三義鄉', '西湖鄉', '造橋鄉', '三灣鄉', '獅潭鄉', '泰安鄉', - ), - '臺中市' => array( + ], + '臺中市' => [ '豐原區', '東勢區', '大甲區', '清水區', '沙鹿區', '梧棲區', '后里區', '神岡區', '潭子區', '大雅區', '新社區', '石岡區', '外埔區', '大安區', '烏日區', '大肚區', '龍井區', '霧峰區', '太平區', '大里區', '和平區', '中區', '東區', '南區', '西區', '北區', '西屯區', '南屯區', '北屯區', - ), - '彰化縣' => array( + ], + '彰化縣' => [ '彰化市', '鹿港鎮', '和美鎮', '線西鄉', '伸港鄉', '福興鄉', '秀水鄉', '花壇鄉', '芬園鄉', '員林鎮', '溪湖鎮', '田中鎮', '大村鄉', '埔鹽鄉', '埔心鄉', '永靖鄉', '社頭鄉', '二水鄉', '北斗鎮', '二林鎮', '田尾鄉', '埤頭鄉', '芳苑鄉', '大城鄉', '竹塘鄉', '溪州鄉', - ), - '南投縣' => array( + ], + '南投縣' => [ '南投市', '埔里鎮', '草屯鎮', '竹山鎮', '集集鎮', '名間鄉', '鹿谷鄉', '中寮鄉', '魚池鄉', '國姓鄉', '水里鄉', '信義鄉', '仁愛鄉', - ), - '雲林縣' => array( + ], + '雲林縣' => [ '斗六市', '斗南鎮', '虎尾鎮', '西螺鎮', '土庫鎮', '北港鎮', '古坑鄉', '大埤鄉', '莿桐鄉', '林內鄉', '二崙鄉', '崙背鄉', '麥寮鄉', '東勢鄉', '褒忠鄉', '臺西鄉', '元長鄉', '四湖鄉', '口湖鄉', '水林鄉', - ), - '嘉義縣' => array( + ], + '嘉義縣' => [ '太保市', '朴子市', '布袋鎮', '大林鎮', '民雄鄉', '溪口鄉', '新港鄉', '六腳鄉', '東石鄉', '義竹鄉', '鹿草鄉', '水上鄉', '中埔鄉', '竹崎鄉', '梅山鄉', '番路鄉', '大埔鄉', '阿里山鄉', - ), - '臺南市' => array( + ], + '臺南市' => [ '新營區', '鹽水區', '白河區', '柳營區', '後壁區', '東山區', '麻豆區', '下營區', '六甲區', '官田區', '大內區', '佳里區', '學甲區', '西港區', '七股區', @@ -234,8 +234,8 @@ class Address extends \Faker\Provider\Address '左鎮區', '仁德區', '歸仁區', '關廟區', '龍崎區', '永康區', '東區', '南區', '西區', '北區', '中區', '安南區', '安平區', - ), - '高雄市' => array( + ], + '高雄市' => [ '鳳山區', '林園區', '大寮區', '大樹區', '大社區', '仁武區', '鳥松區', '岡山區', '橋頭區', '燕巢區', '田寮區', '阿蓮區', '路竹區', '湖內區', '茄萣區', @@ -244,8 +244,8 @@ class Address extends \Faker\Provider\Address '桃源區', '三民區', '鹽埕區', '鼓山區', '左營區', '楠梓區', '三民區', '新興區', '前金區', '苓雅區', '前鎮區', '旗津區', '小港區', - ), - '屏東縣' => array( + ], + '屏東縣' => [ '屏東市', '潮州鎮', '東港鎮', '恆春鎮', '萬丹鄉', '長治鄉', '麟洛鄉', '九如鄉', '里港鄉', '鹽埔鄉', '高樹鄉', '萬巒鄉', '內埔鄉', '竹田鄉', '新埤鄉', @@ -253,49 +253,49 @@ class Address extends \Faker\Provider\Address '佳冬鄉', '琉球鄉', '車城鄉', '滿州鄉', '枋山鄉', '三地門鄉', '霧臺鄉', '瑪家鄉', '泰武鄉', '來義鄉', '春日鄉', '獅子鄉', '牡丹鄉', - ), - '臺東縣' => array( + ], + '臺東縣' => [ '臺東市', '成功鎮', '關山鎮', '卑南鄉', '鹿野鄉', '池上鄉', '東河鄉', '長濱鄉', '太麻里鄉', '大武鄉', '綠島鄉', '海端鄉', '延平鄉', '金峰鄉', '達仁鄉', '蘭嶼鄉', - ), - '花蓮縣' => array( + ], + '花蓮縣' => [ '花蓮市', '鳳林鎮', '玉里鎮', '新城鄉', '吉安鄉', '壽豐鄉', '光復鄉', '豐濱鄉', '瑞穗鄉', '富里鄉', '秀林鄉', '萬榮鄉', '卓溪鄉', - ), - '澎湖縣' => array( + ], + '澎湖縣' => [ '馬公市', '湖西鄉', '白沙鄉', '西嶼鄉', '望安鄉', '七美鄉', - ), - '基隆市' => array( + ], + '基隆市' => [ '中正區', '七堵區', '暖暖區', '仁愛區', '中山區', '安樂區', '信義區', - ), - '新竹市' => array( + ], + '新竹市' => [ '東區', '北區', '香山區', - ), - '嘉義市' => array( + ], + '嘉義市' => [ '東區', '西區', - ), - '臺北市' => array( + ], + '臺北市' => [ '松山區', '信義區', '大安區', '中山區', '中正區', '大同區', '萬華區', '文山區', '南港區', '內湖區', '士林區', '北投區', - ), - '連江縣' => array( + ], + '連江縣' => [ '南竿鄉', '北竿鄉', '莒光鄉', '東引鄉', - ), - '金門縣' => array( + ], + '金門縣' => [ '金城鎮', '金沙鎮', '金湖鎮', '金寧鄉', '烈嶼鄉', '烏坵鄉', - ), - ); + ], + ]; /** - * @link http://terms.naer.edu.tw/download/287/ + * @see http://terms.naer.edu.tw/download/287/ */ - protected static $country = array( + protected static $country = [ '不丹', '中非', '丹麥', '伊朗', '冰島', '剛果', '加彭', '北韓', '南非', '卡達', '印尼', '印度', '古巴', '哥德', '埃及', '多哥', '寮國', '尼日', @@ -348,9 +348,9 @@ class Address extends \Faker\Provider\Address '阿爾及尼亞', '阿爾巴尼亞', '馬紹爾群島', '馬達加斯加', '密克羅尼西亞', '沙烏地阿拉伯', '千里達及托巴哥', - ); + ]; - protected static $postcode = array('###-##', '###'); + protected static $postcode = ['###-##', '###']; public function street() { @@ -359,9 +359,10 @@ public function street() public static function randomChineseNumber() { - $digits = array( + $digits = [ '', '一', '二', '三', '四', '五', '六', '七', '八', '九', - ); + ]; + return $digits[static::randomDigitNotNull()]; } @@ -377,19 +378,20 @@ public static function randomNumber3() public static function localLatitude() { - return number_format(mt_rand(22000000, 25000000)/1000000, 6); + return static::randomFloat(6, 22, 25); } public static function localLongitude() { - return number_format(mt_rand(120000000, 122000000)/1000000, 6); + return static::randomFloat(6, 120, 122); } public function city() { $county = static::randomElement(array_keys(static::$city)); $city = static::randomElement(static::$city[$county]); - return $county.$city; + + return $county . $city; } public function state() @@ -414,6 +416,6 @@ public static function citySuffix() public static function secondaryAddress() { - return (static::randomNumber(2)+1).static::randomElement(static::$secondaryAddressSuffix); + return (static::randomNumber(2) + 1) . static::randomElement(static::$secondaryAddressSuffix); } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Color.php similarity index 93% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Color.php index 7be5953..19fa6d8 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Color.php @@ -5,15 +5,15 @@ class Color extends \Faker\Provider\Color { /** - * @link http://zh.wikipedia.org/zh-tw/%E9%A2%9C%E8%89%B2%E5%88%97%E8%A1%A8 + * @see http://zh.wikipedia.org/zh-tw/%E9%A2%9C%E8%89%B2%E5%88%97%E8%A1%A8 */ - protected static $safeColorNames = array( + protected static $safeColorNames = [ '黑色', '粟色', '綠色', '藏青', '橄欖色', '紫', '鳧綠', '鮮綠色', '藍色', '銀色', - '灰色', '黃色', '品紅', '水色', '白色' - ); + '灰色', '黃色', '品紅', '水色', '白色', + ]; - protected static $allColorNames = array( + protected static $allColorNames = [ '黑色', '昏灰', '灰色', '暗灰', '銀色', '亮灰色', '庚斯博羅灰', '白煙色', '白色', '雪色', '鐵灰色', '沙棕', '玫瑰褐', '亮珊瑚色', '印度紅', '褐色', @@ -62,5 +62,5 @@ class Color extends \Faker\Provider\Color '胭脂紅', '淺粉紅', '樞機紅', '薰衣草紫紅', '灰紫紅', '櫻桃紅', '淺鮭紅', '緋紅', '粉紅', '亮粉紅', '殼黃紅', '茜紅', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Company.php similarity index 90% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Company.php index 26704ab..e356fb0 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Company.php @@ -4,26 +4,26 @@ class Company extends \Faker\Provider\Company { - protected static $companyEnSuffix = array( - 'Inc', 'and Sons', 'LLC', 'Group', 'PLC', 'Ltd' - ); + protected static $companyEnSuffix = [ + 'Inc', 'and Sons', 'LLC', 'Group', 'PLC', 'Ltd', + ]; - protected static $companyEnFormats = array( + protected static $companyEnFormats = [ '{{lastNameEn}} {{companyEnSuffix}}', '{{lastNameEn}}-{{lastNameEn}}', - '{{lastNameEn}}, {{lastNameEn}} and {{lastNameEn}}' - ); + '{{lastNameEn}}, {{lastNameEn}} and {{lastNameEn}}', + ]; - protected static $formats = array( + protected static $formats = [ '{{companyPrefix}}{{companyModifier}}', '{{companyPrefix}}{{companySuffix}}', '{{companyPrefix}}{{companyModifier}}{{CompanySuffix}}', - ); + ]; /** - * @link http://zh.wikipedia.org/zh-tw/Category:%E5%8F%B0%E7%81%A3%E5%85%AC%E5%8F%B8%E5%88%97%E8%A1%A8 + * @see http://zh.wikipedia.org/zh-tw/Category:%E5%8F%B0%E7%81%A3%E5%85%AC%E5%8F%B8%E5%88%97%E8%A1%A8 */ - protected static $companyPrefix = array( + protected static $companyPrefix = [ '乾坤', '亞神', '光譜', '典選', '凱基', '前衛花園', '創見', '友訊', '台達', '合勤', '喜瑪拉雅', '喬山', '多利安', '大國', '大宇', '太陽', '太陽動力', '宏碁', @@ -37,19 +37,19 @@ class Company extends \Faker\Provider\Company '華碩', '華義', '角頭', '訊連', '豐華', '豪客', '豪記', '貴族', '趨勢', '遊戲橘子', '野火樂集', '金革', '銀魚', '阿爾發', '風和日麗', '風潮', '風雲', - ); - protected static $companyModifier = array( + ]; + protected static $companyModifier = [ '科技', '電腦', '國際', '電子', '娛樂', '音樂', '唱片', '證券', '集團', '企業', '機械', '工業', '文化', '汽車', '百貨', '酒店', '數位', - ); - protected static $companySuffix = array( - '公司', '有限公司', '股份有限公司' - ); + ]; + protected static $companySuffix = [ + '公司', '有限公司', '股份有限公司', + ]; /** - * @link https://zh-tw.facebook.com/notes/%E7%8E%A9%E5%BB%A3%E5%91%8Aplaying-with-advertising/%E5%9B%9E%E9%A1%A7%E8%87%BA%E7%81%A3%E6%AD%B7%E5%B1%86%E5%BB%A3%E5%91%8A%E9%87%91%E5%8F%A5%E7%8D%8E/294008963985215 + * @see https://zh-tw.facebook.com/notes/%E7%8E%A9%E5%BB%A3%E5%91%8Aplaying-with-advertising/%E5%9B%9E%E9%A1%A7%E8%87%BA%E7%81%A3%E6%AD%B7%E5%B1%86%E5%BB%A3%E5%91%8A%E9%87%91%E5%8F%A5%E7%8D%8E/294008963985215 */ - protected static $catchPhrase = array( + protected static $catchPhrase = [ 'Everything\'s ok', 'Just call me be happy', 'Keep Walking', @@ -191,30 +191,30 @@ class Company extends \Faker\Provider\Company '青菜底呷啦', '靜得讓您耳根清靜', '馬上就會好', - ); + ]; - protected static $bsWords = array( - array( + protected static $bsWords = [ + [ '實現', '實作', '整合', '最佳化', '革命', '轉變', '提昇', '啟用', '指揮', '利用', '重現', '結合', '架構', '加強', '集中', '變形', '強化', '推廣', '延伸', '生產', '進化', '改善', '提高', '開發', '創造', '專注', - ), array( + ], [ '加值', '縱向', '堅固', '全球', '在地', '領先', '虛擬', '動態', '完全', '成熟', '穩定', '穩健', '即時', '全年無休', '高效', '快速', '互動', '世界級', '下一代', '新一代', '無線', '無限', '豐富', '開源', '前端', '分散式', '無縫', '跨平臺', - ), - array( + ], + [ '典範', '市場', '合作', '架構', '基礎平臺', '頻道', '焦點', '方案', '解決方案', '社群', '科技', '技術', '內容', '入口', '供應鍊', '介面', '系統', '頻寬', '模型', '網路', '使用經驗', '評量', '方法', - ) - ); + ], + ]; public static function companyEnSuffix() { @@ -224,6 +224,7 @@ public static function companyEnSuffix() public function companyEn() { $format = static::randomElement(static::$companyEnFormats); + return $this->generator->parse($format); } @@ -245,9 +246,11 @@ public function catchPhrase() public function bs() { $result = ''; + foreach (static::$bsWords as &$word) { $result .= static::randomElement($word); } + return $result; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/DateTime.php similarity index 86% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_TW/DateTime.php index 6df5e92..102a716 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/DateTime.php @@ -11,7 +11,7 @@ public static function amPm($max = 'now') public static function dayOfWeek($max = 'now') { - $map = array( + $map = [ 'Sunday' => '星期日', 'Monday' => '星期一', 'Tuesday' => '星期二', @@ -19,14 +19,15 @@ public static function dayOfWeek($max = 'now') 'Thursday' => '星期四', 'Friday' => '星期五', 'Saturday' => '星期六', - ); + ]; $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; + + return $map[$week] ?? $week; } public static function monthName($max = 'now') { - $map = array( + $map = [ 'January' => '一月', 'February' => '二月', 'March' => '三月', @@ -39,8 +40,9 @@ public static function monthName($max = 'now') 'October' => '十月', 'November' => '十一月', 'December' => '十二月', - ); + ]; $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; + + return $map[$month] ?? $month; } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Internet.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Internet.php new file mode 100644 index 0000000..c3fb5ff --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Internet.php @@ -0,0 +1,28 @@ + 10, 'B' => 11, 'C' => 12, @@ -29,29 +29,29 @@ class Person extends \Faker\Provider\Person 'V' => 29, 'W' => 32, 'X' => 30, - 'Z' => 33 - ); + 'Z' => 33, + ]; /** * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89 */ - public static $idDigitValidator = array(1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1); + public static $idDigitValidator = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1]; - protected static $maleNameFormats = array( + protected static $maleNameFormats = [ '{{lastName}}{{firstNameMale}}', - ); + ]; - protected static $femaleNameFormats = array( + protected static $femaleNameFormats = [ '{{lastName}}{{firstNameFemale}}', - ); + ]; - protected static $titleMale = array('先生', '博士', '教授'); - protected static $titleFemale = array('小姐', '太太', '博士', '教授'); + protected static $titleMale = ['先生', '博士', '教授']; + protected static $titleFemale = ['小姐', '太太', '博士', '教授']; /** - * @link http://zh.wikipedia.org/wiki/%E7%99%BE%E5%AE%B6%E5%A7%93 + * @see http://zh.wikipedia.org/wiki/%E7%99%BE%E5%AE%B6%E5%A7%93 */ - protected static $lastName = array( + protected static $lastName = [ '趙', '錢', '孫', '李', '周', '吳', '鄭', '王', '馮', '陳', '褚', '衛', '蔣', '沈', '韓', '楊', '朱', '秦', '尤', '許', '何', '呂', '施', '張', '孔', '曹', '嚴', @@ -117,45 +117,47 @@ class Person extends \Faker\Provider\Person '左丘', '東門', '西門', '商', '牟', '佘', '佴', '伯', '賞', '南宮', '墨', '哈', '譙', '笪', '年', '愛', '陽', '佟', '第五', '言', '福', - ); + ]; /** - * @link http://technology.chtsai.org/namefreq/ + * @see http://technology.chtsai.org/namefreq/ */ - protected static $characterMale = array( + protected static $characterMale = [ '佳', '俊', '信', '偉', '傑', '冠', '君', '哲', '嘉', '威', '宇', '安', '宏', '宗', '宜', '家', '庭', '廷', '建', '彥', '心', '志', '思', '承', '文', '柏', '樺', '瑋', '穎', '美', '翰', '華', '詩', '豪', '賢', '軒', '銘', '霖', - ); + ]; - protected static $characterFemale = array( + protected static $characterFemale = [ '伶', '佩', '佳', '依', '儀', '冠', '君', '嘉', '如', '娟', '婉', '婷', '安', '宜', '家', '庭', '心', '思', '怡', '惠', '慧', '文', '欣', '涵', '淑', '玲', '珊', '琪', '琬', '瑜', '穎', '筑', '筱', '美', '芬', '芳', '華', '萍', '萱', '蓉', '詩', '貞', '郁', '鈺', '雅', '雯', '靜', '馨', - ); + ]; public static function randomName($pool, $n) { $name = ''; + for ($i = 0; $i < $n; ++$i) { $name .= static::randomElement($pool); } + return $name; } public static function firstNameMale() { - return static::randomName(static::$characterMale, mt_rand(1, 2)); + return static::randomName(static::$characterMale, self::numberBetween(1, 2)); } public static function firstNameFemale() { - return static::randomName(static::$characterFemale, mt_rand(1, 2)); + return static::randomName(static::$characterFemale, self::numberBetween(1, 2)); } public static function suffix() @@ -169,14 +171,14 @@ public static function suffix() * @see https://en.wikipedia.org/wiki/National_Identification_Card_(Republic_of_China) * * @return string Length 10 alphanumeric characters, begins with 1 latin character (birthplace), - * 1 number (gender) and then 8 numbers (the last one is check digit). + * 1 number (gender) and then 8 numbers (the last one is check digit). */ public function personalIdentityNumber($gender = null) { $birthPlace = self::randomKey(self::$idBirthplaceCode); $birthPlaceCode = self::$idBirthplaceCode[$birthPlace]; - $gender = ($gender != null) ? $gender : self::randomElement(array(self::GENDER_FEMALE, self::GENDER_MALE)); + $gender = ($gender != null) ? $gender : self::randomElement([self::GENDER_FEMALE, self::GENDER_MALE]); $genderCode = ($gender === self::GENDER_MALE) ? 1 : 2; $randomNumberCode = self::randomNumber(7, true); @@ -194,8 +196,6 @@ public function personalIdentityNumber($gender = null) $checkSumDigit = 0; } - $id = $birthPlace . $genderCode . $randomNumberCode . $checkSumDigit; - - return $id; + return $birthPlace . $genderCode . $randomNumberCode . $checkSumDigit; } } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/PhoneNumber.php similarity index 88% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_TW/PhoneNumber.php index 7c31a97..db9ac32 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/PhoneNumber.php @@ -4,7 +4,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber { - protected static $formats = array( + protected static $formats = [ '+8869########', '+886-9##-###-###', '09########', @@ -15,5 +15,5 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber '(0#)###-####', '(0##)######', '(0##)###-###', - ); + ]; } diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Text.php similarity index 99% rename from vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php rename to vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Text.php index 887d12b..34cc72d 100644 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/zh_TW/Text.php @@ -10,15 +10,17 @@ class Text extends \Faker\Provider\Text /** * All punctuation in $baseText: 、 。 「 」 『 』 ! ? ー , : ; */ - protected static $notEndPunct = array('、', '「', '『', 'ー', ',', ':', ';'); - protected static $endPunct = array('。', '」', '』', '!', '?'); - protected static $notBeginPunct = array('、', '。', '」', '』', '!', '?', 'ー', ',', ':', ';'); + protected static $notEndPunct = ['、', '「', '『', 'ー', ',', ':', ';']; + protected static $endPunct = ['。', '」', '』', '!', '?']; + protected static $notBeginPunct = ['、', '。', '」', '』', '!', '?', 'ー', ',', ':', ';']; /** * Title: 吶喊 Call to Arms (1922) * Author: 魯迅 Lu Xun * Language: Traditional Chinese + * * @see https://zh.wikisource.org/wiki/%E5%90%B6%E5%96%8A + * * @var string */ protected static $baseText = <<<'EOT' @@ -802,10 +804,10 @@ class Text extends \Faker\Provider\Text protected static function explode($text) { - $chars = array(); + $chars = []; foreach (preg_split('//u', str_replace(PHP_EOL, '', $text)) as $char) { - if (! empty($char)) { + if (!empty($char)) { $chars[] = $char; } } @@ -822,7 +824,7 @@ protected static function strlen($text) protected static function validStart($word) { - return ! in_array($word, static::$notBeginPunct); + return !in_array($word, static::$notBeginPunct, false); } protected static function appendEnd($text) @@ -840,7 +842,7 @@ protected static function appendEnd($text) } // if the last char is a not-valid-end punctuation, remove it - if (in_array($last, static::$notEndPunct)) { + if (in_array($last, static::$notEndPunct, false)) { if ($mbAvailable) { $text = mb_substr($text, 0, mb_strlen($text, static::$encoding) - 1, static::$encoding); } else { @@ -850,18 +852,19 @@ protected static function appendEnd($text) } // if the last char is not a valid punctuation, append a default one. - return in_array($last, static::$endPunct) ? $text : $text . '。'; + return in_array($last, static::$endPunct, false) ? $text : $text . '。'; } /** * Convert original string to utf-8 encoding. * * @param string $text + * * @return array */ protected static function utf8Encoding($text) { - $encoding = array(); + $encoding = []; $chars = str_split($text); @@ -887,7 +890,6 @@ protected static function utf8Encoding($text) // no break case $ord > 191: $temp .= $chars[++$i]; - // no break } $encoding[] = $temp; diff --git a/vendor/fakerphp/faker/src/Faker/UniqueGenerator.php b/vendor/fakerphp/faker/src/Faker/UniqueGenerator.php new file mode 100644 index 0000000..fef167b --- /dev/null +++ b/vendor/fakerphp/faker/src/Faker/UniqueGenerator.php @@ -0,0 +1,87 @@ + ['0123' => null], + * 'city' => ['London' => null, 'Tokyo' => null], + * ] + * + * @var array> + */ + protected $uniques = []; + + /** + * @param Extension|Generator $generator + * @param int $maxRetries + * @param array> $uniques + */ + public function __construct($generator, $maxRetries = 10000, &$uniques = []) + { + $this->generator = $generator; + $this->maxRetries = $maxRetries; + $this->uniques = &$uniques; + } + + public function ext(string $id) + { + return new self($this->generator->ext($id), $this->maxRetries, $this->uniques); + } + + /** + * Catch and proxy all generator calls but return only unique values + * + * @param string $attribute + * + * @deprecated Use a method instead. + */ + public function __get($attribute) + { + trigger_deprecation('fakerphp/faker', '1.14', 'Accessing property "%s" is deprecated, use "%s()" instead.', $attribute, $attribute); + + return $this->__call($attribute, []); + } + + /** + * Catch and proxy all generator calls with arguments but return only unique values + * + * @param string $name + * @param array $arguments + */ + public function __call($name, $arguments) + { + if (!isset($this->uniques[$name])) { + $this->uniques[$name] = []; + } + $i = 0; + + do { + $res = call_user_func_array([$this->generator, $name], $arguments); + ++$i; + + if ($i > $this->maxRetries) { + throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a unique value', $this->maxRetries)); + } + } while (array_key_exists(serialize($res), $this->uniques[$name])); + $this->uniques[$name][serialize($res)] = null; + + return $res; + } +} diff --git a/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php b/vendor/fakerphp/faker/src/Faker/ValidGenerator.php similarity index 59% rename from vendor/fzaninotto/faker/src/Faker/ValidGenerator.php rename to vendor/fakerphp/faker/src/Faker/ValidGenerator.php index 1352dfc..bf40945 100644 --- a/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php +++ b/vendor/fakerphp/faker/src/Faker/ValidGenerator.php @@ -2,9 +2,13 @@ namespace Faker; +use Faker\Extension\Extension; + /** * Proxy for other generators, to return only valid values. Works with * Faker\Generator\Base->valid() + * + * @mixin Generator */ class ValidGenerator { @@ -13,14 +17,14 @@ class ValidGenerator protected $maxRetries; /** - * @param Generator $generator - * @param callable|null $validator - * @param integer $maxRetries + * @param Extension|Generator $generator + * @param callable|null $validator + * @param int $maxRetries */ - public function __construct(Generator $generator, $validator = null, $maxRetries = 10000) + public function __construct($generator, $validator = null, $maxRetries = 10000) { - if (is_null($validator)) { - $validator = function () { + if (null === $validator) { + $validator = static function () { return true; }; } elseif (!is_callable($validator)) { @@ -31,30 +35,39 @@ public function __construct(Generator $generator, $validator = null, $maxRetries $this->maxRetries = $maxRetries; } + public function ext(string $id) + { + return new self($this->generator->ext($id), $this->validator, $this->maxRetries); + } + /** * Catch and proxy all generator calls but return only valid values + * * @param string $attribute * - * @return mixed + * @deprecated Use a method instead. */ public function __get($attribute) { - return $this->__call($attribute, array()); + trigger_deprecation('fakerphp/faker', '1.14', 'Accessing property "%s" is deprecated, use "%s()" instead.', $attribute, $attribute); + + return $this->__call($attribute, []); } /** * Catch and proxy all generator calls with arguments but return only valid values - * @param string $name - * @param array $arguments * - * @return mixed + * @param string $name + * @param array $arguments */ public function __call($name, $arguments) { $i = 0; + do { - $res = call_user_func_array(array($this->generator, $name), $arguments); - $i++; + $res = call_user_func_array([$this->generator, $name], $arguments); + ++$i; + if ($i > $this->maxRetries) { throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a valid value', $this->maxRetries)); } diff --git a/vendor/fzaninotto/faker/src/autoload.php b/vendor/fakerphp/faker/src/autoload.php similarity index 99% rename from vendor/fzaninotto/faker/src/autoload.php rename to vendor/fakerphp/faker/src/autoload.php index f55914d..a4dfa9e 100644 --- a/vendor/fzaninotto/faker/src/autoload.php +++ b/vendor/fakerphp/faker/src/autoload.php @@ -2,6 +2,7 @@ /** * Simple autoloader that follow the PHP Standards Recommendation #0 (PSR-0) + * * @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md for more informations. * * Code inspired from the SplClassLoader RFC @@ -10,12 +11,14 @@ spl_autoload_register(function ($className) { $className = ltrim($className, '\\'); $fileName = ''; + if ($lastNsPos = strripos($className, '\\')) { $namespace = substr($className, 0, $lastNsPos); $className = substr($className, $lastNsPos + 1); $fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR; } $fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className . '.php'; + if (file_exists($fileName)) { require $fileName; diff --git a/vendor/fzaninotto/faker/composer.json b/vendor/fzaninotto/faker/composer.json deleted file mode 100644 index b6e2a14..0000000 --- a/vendor/fzaninotto/faker/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "fzaninotto/faker", - "type": "library", - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "faker", - "fixtures", - "data" - ], - "license": "MIT", - "authors": [ - { - "name": "François Zaninotto" - } - ], - "require": { - "php": "^5.3.3 || ^7.0 || ^8.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^2.9.2" - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "autoload-dev": { - "psr-4": { - "Faker\\Test\\": "test/Faker/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "config": { - "sort-packages": true - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/Ean.php b/vendor/fzaninotto/faker/src/Faker/Calculator/Ean.php deleted file mode 100644 index a1e0c07..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/Ean.php +++ /dev/null @@ -1,55 +0,0 @@ -= 0; $i -= 2) { - $even += $digits[$i]; - } - - $odd = 0; - for ($i = $length - 2; $i >= 0; $i -= 2) { - $odd += $digits[$i]; - } - - return (10 - ((3 * $even + $odd) % 10)) % 10; - } - - /** - * Checks whether the provided number is an EAN compliant number and that - * the checksum is correct. - * - * @param string $ean An EAN number - * @return boolean - */ - public static function isValid($ean) - { - if (!preg_match(self::PATTERN, $ean)) { - return false; - } - - return self::checksum(substr($ean, 0, -1)) === intval(substr($ean, -1)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php b/vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php deleted file mode 100644 index 291c212..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php +++ /dev/null @@ -1,52 +0,0 @@ - $digit) { - if ($index % 2 == 0) { - $evenSum += $digit; - } else { - $oddSum += $digit; - } - } - - $tenthDigit = (7 * $evenSum - $oddSum) % 10; - $eleventhDigit = ($evenSum + $oddSum + $tenthDigit) % 10; - - return $tenthDigit . $eleventhDigit; - } - - /** - * Checks whether a TCNo has a valid checksum - * - * @param string $tcNo - * @return boolean - */ - public static function isValid($tcNo) - { - return self::checksum(substr($tcNo, 0, -2)) === substr($tcNo, -2, 2); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Generator.php b/vendor/fzaninotto/faker/src/Faker/Generator.php deleted file mode 100644 index 97d28d7..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Generator.php +++ /dev/null @@ -1,299 +0,0 @@ -providers, $provider); - } - - public function getProviders() - { - return $this->providers; - } - - public function seed($seed = null) - { - if ($seed === null) { - mt_srand(); - } else { - if (PHP_VERSION_ID < 70100) { - mt_srand((int) $seed); - } else { - mt_srand((int) $seed, MT_RAND_PHP); - } - } - } - - public function format($formatter, $arguments = array()) - { - return call_user_func_array($this->getFormatter($formatter), $arguments); - } - - /** - * @param string $formatter - * - * @return Callable - */ - public function getFormatter($formatter) - { - if (isset($this->formatters[$formatter])) { - return $this->formatters[$formatter]; - } - foreach ($this->providers as $provider) { - if (method_exists($provider, $formatter)) { - $this->formatters[$formatter] = array($provider, $formatter); - - return $this->formatters[$formatter]; - } - } - throw new \InvalidArgumentException(sprintf('Unknown formatter "%s"', $formatter)); - } - - /** - * Replaces tokens ('{{ tokenName }}') with the result from the token method call - * - * @param string $string String that needs to bet parsed - * @return string - */ - public function parse($string) - { - return preg_replace_callback('/\{\{\s?(\w+)\s?\}\}/u', array($this, 'callFormatWithMatches'), $string); - } - - protected function callFormatWithMatches($matches) - { - return $this->format($matches[1]); - } - - /** - * @param string $attribute - * - * @return mixed - */ - public function __get($attribute) - { - return $this->format($attribute); - } - - /** - * @param string $method - * @param array $attributes - * - * @return mixed - */ - public function __call($method, $attributes) - { - return $this->format($method, $attributes); - } - - public function __destruct() - { - $this->seed(); - } - - public function __wakeup() - { - $this->formatters = []; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php b/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php deleted file mode 100644 index 0b303db..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php +++ /dev/null @@ -1,156 +0,0 @@ -generator = $generator; - } - - /** - * @param string $name - * @param int|null $size Length of field, if known - * @return callable - */ - public function guessFormat($name, $size = null) - { - $name = Base::toLower($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 (str_replace('_', '', $name)) { - case 'firstname': - return function () use ($generator) { - return $generator->firstName; - }; - case 'lastname': - return function () use ($generator) { - return $generator->lastName; - }; - case 'username': - case 'login': - return function () use ($generator) { - return $generator->userName; - }; - case 'email': - case 'emailaddress': - return function () use ($generator) { - return $generator->email; - }; - case 'phonenumber': - case 'phone': - case 'telephone': - case 'telnumber': - return function () use ($generator) { - return $generator->phoneNumber; - }; - case 'address': - return function () use ($generator) { - return $generator->address; - }; - case 'city': - case 'town': - 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 'county': - if ($this->generator->locale == 'en_US') { - return function () use ($generator) { - return sprintf('%s County', $generator->city); - }; - } - - return function () use ($generator) { - return $generator->state; - }; - case 'country': - switch ($size) { - case 2: - return function () use ($generator) { - return $generator->countryCode; - }; - case 3: - return function () use ($generator) { - return $generator->countryISOAlpha3; - }; - case 5: - case 6: - return function () use ($generator) { - return $generator->locale; - }; - default: - return function () use ($generator) { - return $generator->country; - }; - } - break; - case 'locale': - return function () use ($generator) { - return $generator->locale; - }; - case 'currency': - case 'currencycode': - return function () use ($generator) { - return $generator->currencyCode; - }; - case 'url': - case 'website': - return function () use ($generator) { - return $generator->url; - }; - case 'company': - case 'companyname': - case 'employer': - return function () use ($generator) { - return $generator->company; - }; - case 'title': - if ($size !== null && $size <= 10) { - return function () use ($generator) { - return $generator->title; - }; - } - - return function () use ($generator) { - return $generator->sentence; - }; - case 'body': - case 'summary': - case 'article': - case 'description': - return function () use ($generator) { - return $generator->text; - }; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php deleted file mode 100644 index 1df7049..0000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php +++ /dev/null @@ -1,107 +0,0 @@ -generator = $generator; - } - - /** - * @param ColumnMap $column - * @return \Closure|null - */ - public function guessFormat(ColumnMap $column) - { - $generator = $this->generator; - if ($column->isTemporal()) { - if ($column->isEpochTemporal()) { - return function () use ($generator) { - return $generator->dateTime; - }; - } - - return function () use ($generator) { - return $generator->dateTimeAD; - }; - } - $type = $column->getType(); - switch ($type) { - case PropelColumnTypes::BOOLEAN: - case PropelColumnTypes::BOOLEAN_EMU: - return function () use ($generator) { - return $generator->boolean; - }; - case PropelColumnTypes::NUMERIC: - case PropelColumnTypes::DECIMAL: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case PropelColumnTypes::TINYINT: - return function () { - return mt_rand(0, 127); - }; - case PropelColumnTypes::SMALLINT: - return function () { - return mt_rand(0, 32767); - }; - case PropelColumnTypes::INTEGER: - return function () { - return mt_rand(0, intval('2147483647')); - }; - case PropelColumnTypes::BIGINT: - return function () { - return mt_rand(0, intval('9223372036854775807')); - }; - case PropelColumnTypes::FLOAT: - return function () { - return mt_rand(0, intval('2147483647'))/mt_rand(1, intval('2147483647')); - }; - case PropelColumnTypes::DOUBLE: - case PropelColumnTypes::REAL: - return function () { - return mt_rand(0, intval('9223372036854775807'))/mt_rand(1, intval('9223372036854775807')); - }; - case PropelColumnTypes::CHAR: - case PropelColumnTypes::VARCHAR: - case PropelColumnTypes::BINARY: - case PropelColumnTypes::VARBINARY: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case PropelColumnTypes::LONGVARCHAR: - case PropelColumnTypes::LONGVARBINARY: - case PropelColumnTypes::CLOB: - case PropelColumnTypes::CLOB_EMU: - case PropelColumnTypes::BLOB: - return function () use ($generator) { - return $generator->text; - }; - case PropelColumnTypes::ENUM: - $valueSet = $column->getValueSet(); - - return function () use ($generator, $valueSet) { - return $generator->randomElement($valueSet); - }; - case PropelColumnTypes::OBJECT: - case PropelColumnTypes::PHP_ARRAY: - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php b/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php deleted file mode 100644 index 05759a3..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php +++ /dev/null @@ -1,114 +0,0 @@ - $digit) { - $sums += $digit * $sequence[$n % 2]; - } - return (10 - $sums % 10) % 10; - } - - /** - * ISBN-10 check digit - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digits - * - * @param string $input ISBN without check-digit - * @throws \LengthException When wrong input length passed - * - * @return integer Check digit - */ - protected static function isbnChecksum($input) - { - // We're calculating check digit for ISBN-10 - // so, the length of the input should be 9 - $length = 9; - - if (strlen($input) !== $length) { - throw new \LengthException(sprintf('Input length should be equal to %d', $length)); - } - - $digits = str_split($input); - array_walk( - $digits, - function (&$digit, $position) { - $digit = (10 - $position) * $digit; - } - ); - $result = (11 - array_sum($digits) % 11) % 11; - - // 10 is replaced by X - return ($result < 10)?$result:'X'; - } - - /** - * Get a random EAN13 barcode. - * @return string - * @example '4006381333931' - */ - public function ean13() - { - return $this->ean(13); - } - - /** - * Get a random EAN8 barcode. - * @return string - * @example '73513537' - */ - public function ean8() - { - return $this->ean(8); - } - - /** - * Get a random ISBN-10 code - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number - * - * @return string - * @example '4881416324' - */ - public function isbn10() - { - $code = static::numerify(str_repeat('#', 9)); - - return $code . static::isbnChecksum($code); - } - - /** - * Get a random ISBN-13 code - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number - * - * @return string - * @example '9790404436093' - */ - public function isbn13() - { - $code = '97' . static::numberBetween(8, 9) . static::numerify(str_repeat('#', 9)); - - return $code . static::eanChecksum($code); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/File.php b/vendor/fzaninotto/faker/src/Faker/Provider/File.php deleted file mode 100644 index ba01594..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/File.php +++ /dev/null @@ -1,606 +0,0 @@ - file extension(s) - * @link http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types - */ - protected static $mimeTypes = array( - 'application/atom+xml' => 'atom', - 'application/ecmascript' => 'ecma', - 'application/emma+xml' => 'emma', - 'application/epub+zip' => 'epub', - 'application/java-archive' => 'jar', - 'application/java-vm' => 'class', - 'application/javascript' => 'js', - 'application/json' => 'json', - 'application/jsonml+json' => 'jsonml', - 'application/lost+xml' => 'lostxml', - 'application/mathml+xml' => 'mathml', - 'application/mets+xml' => 'mets', - 'application/mods+xml' => 'mods', - 'application/mp4' => 'mp4s', - 'application/msword' => array('doc', 'dot'), - 'application/octet-stream' => array( - 'bin', - 'dms', - 'lrf', - 'mar', - 'so', - 'dist', - 'distz', - 'pkg', - 'bpk', - 'dump', - 'elc', - 'deploy' - ), - 'application/ogg' => 'ogx', - 'application/omdoc+xml' => 'omdoc', - 'application/pdf' => 'pdf', - 'application/pgp-encrypted' => 'pgp', - 'application/pgp-signature' => array('asc', 'sig'), - 'application/pkix-pkipath' => 'pkipath', - 'application/pkixcmp' => 'pki', - 'application/pls+xml' => 'pls', - 'application/postscript' => array('ai', 'eps', 'ps'), - 'application/pskc+xml' => 'pskcxml', - 'application/rdf+xml' => 'rdf', - 'application/reginfo+xml' => 'rif', - 'application/rss+xml' => 'rss', - 'application/rtf' => 'rtf', - 'application/sbml+xml' => 'sbml', - 'application/vnd.adobe.air-application-installer-package+zip' => 'air', - 'application/vnd.adobe.xdp+xml' => 'xdp', - 'application/vnd.adobe.xfdf' => 'xfdf', - 'application/vnd.ahead.space' => 'ahead', - 'application/vnd.dart' => 'dart', - 'application/vnd.data-vision.rdz' => 'rdz', - 'application/vnd.dece.data' => array('uvf', 'uvvf', 'uvd', 'uvvd'), - 'application/vnd.dece.ttml+xml' => array('uvt', 'uvvt'), - 'application/vnd.dece.unspecified' => array('uvx', 'uvvx'), - 'application/vnd.dece.zip' => array('uvz', 'uvvz'), - 'application/vnd.denovo.fcselayout-link' => 'fe_launch', - 'application/vnd.dna' => 'dna', - 'application/vnd.dolby.mlp' => 'mlp', - 'application/vnd.dpgraph' => 'dpg', - 'application/vnd.dreamfactory' => 'dfac', - 'application/vnd.ds-keypoint' => 'kpxx', - 'application/vnd.dvb.ait' => 'ait', - 'application/vnd.dvb.service' => 'svc', - 'application/vnd.dynageo' => 'geo', - 'application/vnd.ecowin.chart' => 'mag', - 'application/vnd.enliven' => 'nml', - 'application/vnd.epson.esf' => 'esf', - 'application/vnd.epson.msf' => 'msf', - 'application/vnd.epson.quickanime' => 'qam', - 'application/vnd.epson.salt' => 'slt', - 'application/vnd.epson.ssf' => 'ssf', - 'application/vnd.ezpix-album' => 'ez2', - 'application/vnd.ezpix-package' => 'ez3', - 'application/vnd.fdf' => 'fdf', - 'application/vnd.fdsn.mseed' => 'mseed', - 'application/vnd.fdsn.seed' => array('seed', 'dataless'), - 'application/vnd.flographit' => 'gph', - 'application/vnd.fluxtime.clip' => 'ftc', - 'application/vnd.hal+xml' => 'hal', - 'application/vnd.hydrostatix.sof-data' => 'sfd-hdstx', - 'application/vnd.ibm.minipay' => 'mpy', - 'application/vnd.ibm.secure-container' => 'sc', - 'application/vnd.iccprofile' => array('icc', 'icm'), - 'application/vnd.igloader' => 'igl', - 'application/vnd.immervision-ivp' => 'ivp', - 'application/vnd.kde.karbon' => 'karbon', - 'application/vnd.kde.kchart' => 'chrt', - 'application/vnd.kde.kformula' => 'kfo', - 'application/vnd.kde.kivio' => 'flw', - 'application/vnd.kde.kontour' => 'kon', - 'application/vnd.kde.kpresenter' => array('kpr', 'kpt'), - 'application/vnd.kde.kspread' => 'ksp', - 'application/vnd.kde.kword' => array('kwd', 'kwt'), - 'application/vnd.kenameaapp' => 'htke', - 'application/vnd.kidspiration' => 'kia', - 'application/vnd.kinar' => array('kne', 'knp'), - 'application/vnd.koan' => array('skp', 'skd', 'skt', 'skm'), - 'application/vnd.kodak-descriptor' => 'sse', - 'application/vnd.las.las+xml' => 'lasxml', - 'application/vnd.llamagraphics.life-balance.desktop' => 'lbd', - 'application/vnd.llamagraphics.life-balance.exchange+xml' => 'lbe', - 'application/vnd.lotus-1-2-3' => '123', - 'application/vnd.lotus-approach' => 'apr', - 'application/vnd.lotus-freelance' => 'pre', - 'application/vnd.lotus-notes' => 'nsf', - 'application/vnd.lotus-organizer' => 'org', - 'application/vnd.lotus-screencam' => 'scm', - 'application/vnd.mozilla.xul+xml' => 'xul', - 'application/vnd.ms-artgalry' => 'cil', - 'application/vnd.ms-cab-compressed' => 'cab', - 'application/vnd.ms-excel' => array( - 'xls', - 'xlm', - 'xla', - 'xlc', - 'xlt', - 'xlw' - ), - 'application/vnd.ms-excel.addin.macroenabled.12' => 'xlam', - 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => 'xlsb', - 'application/vnd.ms-excel.sheet.macroenabled.12' => 'xlsm', - 'application/vnd.ms-excel.template.macroenabled.12' => 'xltm', - 'application/vnd.ms-fontobject' => 'eot', - 'application/vnd.ms-htmlhelp' => 'chm', - 'application/vnd.ms-ims' => 'ims', - 'application/vnd.ms-lrm' => 'lrm', - 'application/vnd.ms-officetheme' => 'thmx', - 'application/vnd.ms-pki.seccat' => 'cat', - 'application/vnd.ms-pki.stl' => 'stl', - 'application/vnd.ms-powerpoint' => array('ppt', 'pps', 'pot'), - 'application/vnd.ms-powerpoint.addin.macroenabled.12' => 'ppam', - 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => 'pptm', - 'application/vnd.ms-powerpoint.slide.macroenabled.12' => 'sldm', - 'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => 'ppsm', - 'application/vnd.ms-powerpoint.template.macroenabled.12' => 'potm', - 'application/vnd.ms-project' => array('mpp', 'mpt'), - 'application/vnd.ms-word.document.macroenabled.12' => 'docm', - 'application/vnd.ms-word.template.macroenabled.12' => 'dotm', - 'application/vnd.ms-works' => array('wps', 'wks', 'wcm', 'wdb'), - 'application/vnd.ms-wpl' => 'wpl', - 'application/vnd.ms-xpsdocument' => 'xps', - 'application/vnd.mseq' => 'mseq', - 'application/vnd.musician' => 'mus', - 'application/vnd.oasis.opendocument.chart' => 'odc', - 'application/vnd.oasis.opendocument.chart-template' => 'otc', - 'application/vnd.oasis.opendocument.database' => 'odb', - 'application/vnd.oasis.opendocument.formula' => 'odf', - 'application/vnd.oasis.opendocument.formula-template' => 'odft', - 'application/vnd.oasis.opendocument.graphics' => 'odg', - 'application/vnd.oasis.opendocument.graphics-template' => 'otg', - 'application/vnd.oasis.opendocument.image' => 'odi', - 'application/vnd.oasis.opendocument.image-template' => 'oti', - 'application/vnd.oasis.opendocument.presentation' => 'odp', - 'application/vnd.oasis.opendocument.presentation-template' => 'otp', - 'application/vnd.oasis.opendocument.spreadsheet' => 'ods', - 'application/vnd.oasis.opendocument.spreadsheet-template' => 'ots', - 'application/vnd.oasis.opendocument.text' => 'odt', - 'application/vnd.oasis.opendocument.text-master' => 'odm', - 'application/vnd.oasis.opendocument.text-template' => 'ott', - 'application/vnd.oasis.opendocument.text-web' => 'oth', - 'application/vnd.olpc-sugar' => 'xo', - 'application/vnd.oma.dd2+xml' => 'dd2', - 'application/vnd.openofficeorg.extension' => 'oxt', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', - 'application/vnd.openxmlformats-officedocument.presentationml.slide' => 'sldx', - 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx', - 'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx', - 'application/vnd.pvi.ptid1' => 'ptid', - 'application/vnd.quark.quarkxpress' => array( - 'qxd', - 'qxt', - 'qwd', - 'qwt', - 'qxl', - 'qxb' - ), - 'application/vnd.realvnc.bed' => 'bed', - 'application/vnd.recordare.musicxml' => 'mxl', - 'application/vnd.recordare.musicxml+xml' => 'musicxml', - 'application/vnd.rig.cryptonote' => 'cryptonote', - 'application/vnd.rim.cod' => 'cod', - 'application/vnd.rn-realmedia' => 'rm', - 'application/vnd.rn-realmedia-vbr' => 'rmvb', - 'application/vnd.route66.link66+xml' => 'link66', - 'application/vnd.sailingtracker.track' => 'st', - 'application/vnd.seemail' => 'see', - 'application/vnd.sema' => 'sema', - 'application/vnd.semd' => 'semd', - 'application/vnd.semf' => 'semf', - 'application/vnd.shana.informed.formdata' => 'ifm', - 'application/vnd.shana.informed.formtemplate' => 'itp', - 'application/vnd.shana.informed.interchange' => 'iif', - 'application/vnd.shana.informed.package' => 'ipk', - 'application/vnd.simtech-mindmapper' => array('twd', 'twds'), - 'application/vnd.smaf' => 'mmf', - 'application/vnd.stepmania.stepchart' => 'sm', - 'application/vnd.sun.xml.calc' => 'sxc', - 'application/vnd.sun.xml.calc.template' => 'stc', - 'application/vnd.sun.xml.draw' => 'sxd', - 'application/vnd.sun.xml.draw.template' => 'std', - 'application/vnd.sun.xml.impress' => 'sxi', - 'application/vnd.sun.xml.impress.template' => 'sti', - 'application/vnd.sun.xml.math' => 'sxm', - 'application/vnd.sun.xml.writer' => 'sxw', - 'application/vnd.sun.xml.writer.global' => 'sxg', - 'application/vnd.sun.xml.writer.template' => 'stw', - 'application/vnd.sus-calendar' => array('sus', 'susp'), - 'application/vnd.svd' => 'svd', - 'application/vnd.symbian.install' => array('sis', 'sisx'), - 'application/vnd.syncml+xml' => 'xsm', - 'application/vnd.syncml.dm+wbxml' => 'bdm', - 'application/vnd.syncml.dm+xml' => 'xdm', - 'application/vnd.tao.intent-module-archive' => 'tao', - 'application/vnd.tcpdump.pcap' => array('pcap', 'cap', 'dmp'), - 'application/vnd.tmobile-livetv' => 'tmo', - 'application/vnd.trid.tpt' => 'tpt', - 'application/vnd.triscape.mxs' => 'mxs', - 'application/vnd.trueapp' => 'tra', - 'application/vnd.ufdl' => array('ufd', 'ufdl'), - 'application/vnd.uiq.theme' => 'utz', - 'application/vnd.umajin' => 'umj', - 'application/vnd.unity' => 'unityweb', - 'application/vnd.uoml+xml' => 'uoml', - 'application/vnd.vcx' => 'vcx', - 'application/vnd.visio' => array('vsd', 'vst', 'vss', 'vsw'), - 'application/vnd.visionary' => 'vis', - 'application/vnd.vsf' => 'vsf', - 'application/vnd.wap.wbxml' => 'wbxml', - 'application/vnd.wap.wmlc' => 'wmlc', - 'application/vnd.wap.wmlscriptc' => 'wmlsc', - 'application/vnd.webturbo' => 'wtb', - 'application/vnd.wolfram.player' => 'nbp', - 'application/vnd.wordperfect' => 'wpd', - 'application/vnd.wqd' => 'wqd', - 'application/vnd.wt.stf' => 'stf', - 'application/vnd.xara' => 'xar', - 'application/vnd.xfdl' => 'xfdl', - 'application/voicexml+xml' => 'vxml', - 'application/widget' => 'wgt', - 'application/winhlp' => 'hlp', - 'application/wsdl+xml' => 'wsdl', - 'application/wspolicy+xml' => 'wspolicy', - 'application/x-7z-compressed' => '7z', - 'application/x-bittorrent' => 'torrent', - 'application/x-blorb' => array('blb', 'blorb'), - 'application/x-bzip' => 'bz', - 'application/x-cdlink' => 'vcd', - 'application/x-cfs-compressed' => 'cfs', - 'application/x-chat' => 'chat', - 'application/x-chess-pgn' => 'pgn', - 'application/x-conference' => 'nsc', - 'application/x-cpio' => 'cpio', - 'application/x-csh' => 'csh', - 'application/x-debian-package' => array('deb', 'udeb'), - 'application/x-dgc-compressed' => 'dgc', - 'application/x-director' => array( - 'dir', - 'dcr', - 'dxr', - 'cst', - 'cct', - 'cxt', - 'w3d', - 'fgd', - 'swa' - ), - 'application/x-font-ttf' => array('ttf', 'ttc'), - 'application/x-font-type1' => array('pfa', 'pfb', 'pfm', 'afm'), - 'application/x-font-woff' => 'woff', - 'application/x-freearc' => 'arc', - 'application/x-futuresplash' => 'spl', - 'application/x-gca-compressed' => 'gca', - 'application/x-glulx' => 'ulx', - 'application/x-gnumeric' => 'gnumeric', - 'application/x-gramps-xml' => 'gramps', - 'application/x-gtar' => 'gtar', - 'application/x-hdf' => 'hdf', - 'application/x-install-instructions' => 'install', - 'application/x-iso9660-image' => 'iso', - 'application/x-java-jnlp-file' => 'jnlp', - 'application/x-latex' => 'latex', - 'application/x-lzh-compressed' => array('lzh', 'lha'), - 'application/x-mie' => 'mie', - 'application/x-mobipocket-ebook' => array('prc', 'mobi'), - 'application/x-ms-application' => 'application', - 'application/x-ms-shortcut' => 'lnk', - 'application/x-ms-wmd' => 'wmd', - 'application/x-ms-wmz' => 'wmz', - 'application/x-ms-xbap' => 'xbap', - 'application/x-msaccess' => 'mdb', - 'application/x-msbinder' => 'obd', - 'application/x-mscardfile' => 'crd', - 'application/x-msclip' => 'clp', - 'application/x-msdownload' => array('exe', 'dll', 'com', 'bat', 'msi'), - 'application/x-msmediaview' => array( - 'mvb', - 'm13', - 'm14' - ), - 'application/x-msmetafile' => array('wmf', 'wmz', 'emf', 'emz'), - 'application/x-rar-compressed' => 'rar', - 'application/x-research-info-systems' => 'ris', - 'application/x-sh' => 'sh', - 'application/x-shar' => 'shar', - 'application/x-shockwave-flash' => 'swf', - 'application/x-silverlight-app' => 'xap', - 'application/x-sql' => 'sql', - 'application/x-stuffit' => 'sit', - 'application/x-stuffitx' => 'sitx', - 'application/x-subrip' => 'srt', - 'application/x-sv4cpio' => 'sv4cpio', - 'application/x-sv4crc' => 'sv4crc', - 'application/x-t3vm-image' => 't3', - 'application/x-tads' => 'gam', - 'application/x-tar' => 'tar', - 'application/x-tcl' => 'tcl', - 'application/x-tex' => 'tex', - 'application/x-tex-tfm' => 'tfm', - 'application/x-texinfo' => array('texinfo', 'texi'), - 'application/x-tgif' => 'obj', - 'application/x-ustar' => 'ustar', - 'application/x-wais-source' => 'src', - 'application/x-x509-ca-cert' => array('der', 'crt'), - 'application/x-xfig' => 'fig', - 'application/x-xliff+xml' => 'xlf', - 'application/x-xpinstall' => 'xpi', - 'application/x-xz' => 'xz', - 'application/x-zmachine' => 'z1', - 'application/xaml+xml' => 'xaml', - 'application/xcap-diff+xml' => 'xdf', - 'application/xenc+xml' => 'xenc', - 'application/xhtml+xml' => array('xhtml', 'xht'), - 'application/xml' => array('xml', 'xsl'), - 'application/xml-dtd' => 'dtd', - 'application/xop+xml' => 'xop', - 'application/xproc+xml' => 'xpl', - 'application/xslt+xml' => 'xslt', - 'application/xspf+xml' => 'xspf', - 'application/xv+xml' => array('mxml', 'xhvml', 'xvml', 'xvm'), - 'application/yang' => 'yang', - 'application/yin+xml' => 'yin', - 'application/zip' => 'zip', - 'audio/adpcm' => 'adp', - 'audio/basic' => array('au', 'snd'), - 'audio/midi' => array('mid', 'midi', 'kar', 'rmi'), - 'audio/mp4' => 'mp4a', - 'audio/mpeg' => array( - 'mpga', - 'mp2', - 'mp2a', - 'mp3', - 'm2a', - 'm3a' - ), - 'audio/ogg' => array('oga', 'ogg', 'spx'), - 'audio/vnd.dece.audio' => array('uva', 'uvva'), - 'audio/vnd.rip' => 'rip', - 'audio/webm' => 'weba', - 'audio/x-aac' => 'aac', - 'audio/x-aiff' => array('aif', 'aiff', 'aifc'), - 'audio/x-caf' => 'caf', - 'audio/x-flac' => 'flac', - 'audio/x-matroska' => 'mka', - 'audio/x-mpegurl' => 'm3u', - 'audio/x-ms-wax' => 'wax', - 'audio/x-ms-wma' => 'wma', - 'audio/x-pn-realaudio' => array('ram', 'ra'), - 'audio/x-pn-realaudio-plugin' => 'rmp', - 'audio/x-wav' => 'wav', - 'audio/xm' => 'xm', - 'image/bmp' => 'bmp', - 'image/cgm' => 'cgm', - 'image/g3fax' => 'g3', - 'image/gif' => 'gif', - 'image/ief' => 'ief', - 'image/jpeg' => array('jpeg', 'jpg', 'jpe'), - 'image/ktx' => 'ktx', - 'image/png' => 'png', - 'image/prs.btif' => 'btif', - 'image/sgi' => 'sgi', - 'image/svg+xml' => array('svg', 'svgz'), - 'image/tiff' => array('tiff', 'tif'), - 'image/vnd.adobe.photoshop' => 'psd', - 'image/vnd.dece.graphic' => array('uvi', 'uvvi', 'uvg', 'uvvg'), - 'image/vnd.dvb.subtitle' => 'sub', - 'image/vnd.djvu' => array('djvu', 'djv'), - 'image/vnd.dwg' => 'dwg', - 'image/vnd.dxf' => 'dxf', - 'image/vnd.fastbidsheet' => 'fbs', - 'image/vnd.fpx' => 'fpx', - 'image/vnd.fst' => 'fst', - 'image/vnd.fujixerox.edmics-mmr' => 'mmr', - 'image/vnd.fujixerox.edmics-rlc' => 'rlc', - 'image/vnd.ms-modi' => 'mdi', - 'image/vnd.ms-photo' => 'wdp', - 'image/vnd.net-fpx' => 'npx', - 'image/vnd.wap.wbmp' => 'wbmp', - 'image/vnd.xiff' => 'xif', - 'image/webp' => 'webp', - 'image/x-3ds' => '3ds', - 'image/x-cmu-raster' => 'ras', - 'image/x-cmx' => 'cmx', - 'image/x-freehand' => array('fh', 'fhc', 'fh4', 'fh5', 'fh7'), - 'image/x-icon' => 'ico', - 'image/x-mrsid-image' => 'sid', - 'image/x-pcx' => 'pcx', - 'image/x-pict' => array('pic', 'pct'), - 'image/x-portable-anymap' => 'pnm', - 'image/x-portable-bitmap' => 'pbm', - 'image/x-portable-graymap' => 'pgm', - 'image/x-portable-pixmap' => 'ppm', - 'image/x-rgb' => 'rgb', - 'image/x-tga' => 'tga', - 'image/x-xbitmap' => 'xbm', - 'image/x-xpixmap' => 'xpm', - 'image/x-xwindowdump' => 'xwd', - 'message/rfc822' => array('eml', 'mime'), - 'model/iges' => array('igs', 'iges'), - 'model/mesh' => array('msh', 'mesh', 'silo'), - 'model/vnd.collada+xml' => 'dae', - 'model/vnd.dwf' => 'dwf', - 'model/vnd.gdl' => 'gdl', - 'model/vnd.gtw' => 'gtw', - 'model/vnd.mts' => 'mts', - 'model/vnd.vtu' => 'vtu', - 'model/vrml' => array('wrl', 'vrml'), - 'model/x3d+binary' => 'x3db', - 'model/x3d+vrml' => 'x3dv', - 'model/x3d+xml' => 'x3d', - 'text/cache-manifest' => 'appcache', - 'text/calendar' => array('ics', 'ifb'), - 'text/css' => 'css', - 'text/csv' => 'csv', - 'text/html' => array('html', 'htm'), - 'text/n3' => 'n3', - 'text/plain' => array( - 'txt', - 'text', - 'conf', - 'def', - 'list', - 'log', - 'in' - ), - 'text/prs.lines.tag' => 'dsc', - 'text/richtext' => 'rtx', - 'text/sgml' => array('sgml', 'sgm'), - 'text/tab-separated-values' => 'tsv', - 'text/troff' => array( - 't', - 'tr', - 'roff', - 'man', - 'me', - 'ms' - ), - 'text/turtle' => 'ttl', - 'text/uri-list' => array('uri', 'uris', 'urls'), - 'text/vcard' => 'vcard', - 'text/vnd.curl' => 'curl', - 'text/vnd.curl.dcurl' => 'dcurl', - 'text/vnd.curl.scurl' => 'scurl', - 'text/vnd.curl.mcurl' => 'mcurl', - 'text/vnd.dvb.subtitle' => 'sub', - 'text/vnd.fly' => 'fly', - 'text/vnd.fmi.flexstor' => 'flx', - 'text/vnd.graphviz' => 'gv', - 'text/vnd.in3d.3dml' => '3dml', - 'text/vnd.in3d.spot' => 'spot', - 'text/vnd.sun.j2me.app-descriptor' => 'jad', - 'text/vnd.wap.wml' => 'wml', - 'text/vnd.wap.wmlscript' => 'wmls', - 'text/x-asm' => array('s', 'asm'), - 'text/x-fortran' => array('f', 'for', 'f77', 'f90'), - 'text/x-java-source' => 'java', - 'text/x-opml' => 'opml', - 'text/x-pascal' => array('p', 'pas'), - 'text/x-nfo' => 'nfo', - 'text/x-setext' => 'etx', - 'text/x-sfv' => 'sfv', - 'text/x-uuencode' => 'uu', - 'text/x-vcalendar' => 'vcs', - 'text/x-vcard' => 'vcf', - 'video/3gpp' => '3gp', - 'video/3gpp2' => '3g2', - 'video/h261' => 'h261', - 'video/h263' => 'h263', - 'video/h264' => 'h264', - 'video/jpeg' => 'jpgv', - 'video/jpm' => array('jpm', 'jpgm'), - 'video/mj2' => 'mj2', - 'video/mp4' => 'mp4', - 'video/mpeg' => array('mpeg', 'mpg', 'mpe', 'm1v', 'm2v'), - 'video/ogg' => 'ogv', - 'video/quicktime' => array('qt', 'mov'), - 'video/vnd.dece.hd' => array('uvh', 'uvvh'), - 'video/vnd.dece.mobile' => array('uvm', 'uvvm'), - 'video/vnd.dece.pd' => array('uvp', 'uvvp'), - 'video/vnd.dece.sd' => array('uvs', 'uvvs'), - 'video/vnd.dece.video' => array('uvv', 'uvvv'), - 'video/vnd.dvb.file' => 'dvb', - 'video/vnd.fvt' => 'fvt', - 'video/vnd.mpegurl' => array('mxu', 'm4u'), - 'video/vnd.ms-playready.media.pyv' => 'pyv', - 'video/vnd.uvvu.mp4' => array('uvu', 'uvvu'), - 'video/vnd.vivo' => 'viv', - 'video/webm' => 'webm', - 'video/x-f4v' => 'f4v', - 'video/x-fli' => 'fli', - 'video/x-flv' => 'flv', - 'video/x-m4v' => 'm4v', - 'video/x-matroska' => array('mkv', 'mk3d', 'mks'), - 'video/x-mng' => 'mng', - 'video/x-ms-asf' => array('asf', 'asx'), - 'video/x-ms-vob' => 'vob', - 'video/x-ms-wm' => 'wm', - 'video/x-ms-wmv' => 'wmv', - 'video/x-ms-wmx' => 'wmx', - 'video/x-ms-wvx' => 'wvx', - 'video/x-msvideo' => 'avi', - 'video/x-sgi-movie' => 'movie', - ); - - /** - * Get a random MIME type - * - * @return string - * @example 'video/avi' - */ - public static function mimeType() - { - return static::randomElement(array_keys(static::$mimeTypes)); - } - - /** - * Get a random file extension (without a dot) - * - * @example avi - * @return string - */ - public static function fileExtension() - { - $random_extension = static::randomElement(array_values(static::$mimeTypes)); - - return is_array($random_extension) ? static::randomElement($random_extension) : $random_extension; - } - - /** - * Copy a random file from the source directory to the target directory and returns the filename/fullpath - * - * @param string $sourceDirectory The directory to look for random file taking - * @param string $targetDirectory - * @param boolean $fullPath Whether to have the full path or just the filename - * @return string - */ - public static function file($sourceDirectory = '/tmp', $targetDirectory = '/tmp', $fullPath = true) - { - if (!is_dir($sourceDirectory)) { - throw new \InvalidArgumentException(sprintf('Source directory %s does not exist or is not a directory.', $sourceDirectory)); - } - - if (!is_dir($targetDirectory)) { - throw new \InvalidArgumentException(sprintf('Target directory %s does not exist or is not a directory.', $targetDirectory)); - } - - if ($sourceDirectory == $targetDirectory) { - throw new \InvalidArgumentException('Source and target directories must differ.'); - } - - // Drop . and .. and reset array keys - $files = array_filter(array_values(array_diff(scandir($sourceDirectory), array('.', '..'))), function ($file) use ($sourceDirectory) { - return is_file($sourceDirectory . DIRECTORY_SEPARATOR . $file) && is_readable($sourceDirectory . DIRECTORY_SEPARATOR . $file); - }); - - if (empty($files)) { - throw new \InvalidArgumentException(sprintf('Source directory %s is empty.', $sourceDirectory)); - } - - $sourceFullPath = $sourceDirectory . DIRECTORY_SEPARATOR . static::randomElement($files); - - $destinationFile = Uuid::uuid() . '.' . pathinfo($sourceFullPath, PATHINFO_EXTENSION); - $destinationFullPath = $targetDirectory . DIRECTORY_SEPARATOR . $destinationFile; - - if (false === copy($sourceFullPath, $destinationFullPath)) { - return false; - } - - return $fullPath ? $destinationFullPath : $destinationFile; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php b/vendor/fzaninotto/faker/src/Faker/Provider/Image.php deleted file mode 100644 index 14f1b39..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php +++ /dev/null @@ -1,105 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'jdoe@example.com' - */ - final public function safeEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . static::safeEmailDomain()); - } - - /** - * @example 'jdoe@gmail.com' - */ - public function freeEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . static::freeEmailDomain()); - } - - /** - * @example 'jdoe@dawson.com' - */ - public function companyEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . $this->domainName()); - } - - /** - * @example 'gmail.com' - */ - public static function freeEmailDomain() - { - return static::randomElement(static::$freeEmailDomain); - } - - /** - * @example 'example.org' - */ - final public static function safeEmailDomain() - { - $domains = array( - 'example.com', - 'example.org', - 'example.net' - ); - - return static::randomElement($domains); - } - /** - * @example 'jdoe' - */ - public function userName() - { - $format = static::randomElement(static::$userNameFormats); - $username = static::bothify($this->generator->parse($format)); - - $username = strtolower(static::transliterate($username)); - - // check if transliterate() didn't support the language and removed all letters - if (trim($username, '._') === '') { - throw new \Exception('userName failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); - } - - // clean possible trailing dots from first/last names - $username = str_replace('..', '.', $username); - $username = rtrim($username, '.'); - - return $username; - } - /** - * @example 'fY4èHdZv68' - */ - public function password($minLength = 6, $maxLength = 20) - { - $pattern = str_repeat('*', $this->numberBetween($minLength, $maxLength)); - - return $this->asciify($pattern); - } - - /** - * @example 'tiramisu.com' - */ - public function domainName() - { - return $this->domainWord() . '.' . $this->tld(); - } - - /** - * @example 'faber' - */ - public function domainWord() - { - $lastName = $this->generator->format('lastName'); - - $lastName = strtolower(static::transliterate($lastName)); - - // check if transliterate() didn't support the language and removed all letters - if (trim($lastName, '._') === '') { - throw new \Exception('domainWord failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); - } - - // clean possible trailing dot from last name - $lastName = rtrim($lastName, '.'); - - return $lastName; - } - - /** - * @example 'com' - */ - public function tld() - { - return static::randomElement(static::$tld); - } - - /** - * @example 'http://www.runolfsdottir.com/' - */ - public function url() - { - $format = static::randomElement(static::$urlFormats); - - return $this->generator->parse($format); - } - - /** - * @example 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum' - */ - public function slug($nbWords = 6, $variableNbWords = true) - { - if ($nbWords <= 0) { - return ''; - } - if ($variableNbWords) { - $nbWords = (int) ($nbWords * mt_rand(60, 140) / 100) + 1; - } - $words = $this->generator->words($nbWords); - - return join('-', $words); - } - - /** - * @example '237.149.115.38' - */ - public function ipv4() - { - return long2ip(mt_rand(0, 1) == 0 ? mt_rand(-2147483648, -2) : mt_rand(16777216, 2147483647)); - } - - /** - * @example '35cd:186d:3e23:2986:ef9f:5b41:42a4:e6f1' - */ - public function ipv6() - { - $res = array(); - for ($i=0; $i < 8; $i++) { - $res []= dechex(mt_rand(0, "65535")); - } - - return join(':', $res); - } - - /** - * @example '10.1.1.17' - */ - public static function localIpv4() - { - if (static::numberBetween(0, 1) === 0) { - // 10.x.x.x range - return long2ip(static::numberBetween(ip2long("10.0.0.0"), ip2long("10.255.255.255"))); - } - - // 192.168.x.x range - return long2ip(static::numberBetween(ip2long("192.168.0.0"), ip2long("192.168.255.255"))); - } - - /** - * @example '32:F1:39:2F:D6:18' - */ - public static function macAddress() - { - for ($i=0; $i<6; $i++) { - $mac[] = sprintf('%02X', static::numberBetween(0, 0xff)); - } - $mac = implode(':', $mac); - - return $mac; - } - - protected static function transliterate($string) - { - if (0 === preg_match('/[^A-Za-z0-9_.]/', $string)) { - return $string; - } - - $transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;'; - if (class_exists('Transliterator', false) && $transliterator = \Transliterator::create($transId)) { - $transString = $transliterator->transliterate($string); - } else { - $transString = static::toAscii($string); - } - - return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString); - } - - protected static function toAscii($string) - { - static $arrayFrom, $arrayTo; - - if (empty($arrayFrom)) { - $transliterationTable = array( - 'IJ'=>'I', 'Ö'=>'O', 'Œ'=>'O', 'Ü'=>'U', 'ä'=>'a', 'æ'=>'a', - 'ij'=>'i', 'ö'=>'o', 'œ'=>'o', 'ü'=>'u', 'ß'=>'s', 'ſ'=>'s', - 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', - 'Æ'=>'A', 'Ā'=>'A', 'Ą'=>'A', 'Ă'=>'A', 'Ç'=>'C', 'Ć'=>'C', - 'Č'=>'C', 'Ĉ'=>'C', 'Ċ'=>'C', 'Ď'=>'D', 'Đ'=>'D', 'È'=>'E', - 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ē'=>'E', 'Ę'=>'E', 'Ě'=>'E', - 'Ĕ'=>'E', 'Ė'=>'E', 'Ĝ'=>'G', 'Ğ'=>'G', 'Ġ'=>'G', 'Ģ'=>'G', - 'Ĥ'=>'H', 'Ħ'=>'H', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', - 'Ī'=>'I', 'Ĩ'=>'I', 'Ĭ'=>'I', 'Į'=>'I', 'İ'=>'I', 'Ĵ'=>'J', - 'Ķ'=>'K', 'Ľ'=>'K', 'Ĺ'=>'K', 'Ļ'=>'K', 'Ŀ'=>'K', 'Ł'=>'L', - 'Ñ'=>'N', 'Ń'=>'N', 'Ň'=>'N', 'Ņ'=>'N', 'Ŋ'=>'N', 'Ò'=>'O', - 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ø'=>'O', 'Ō'=>'O', 'Ő'=>'O', - 'Ŏ'=>'O', 'Ŕ'=>'R', 'Ř'=>'R', 'Ŗ'=>'R', 'Ś'=>'S', 'Ş'=>'S', - 'Ŝ'=>'S', 'Ș'=>'S', 'Š'=>'S', 'Ť'=>'T', 'Ţ'=>'T', 'Ŧ'=>'T', - 'Ț'=>'T', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ū'=>'U', 'Ů'=>'U', - 'Ű'=>'U', 'Ŭ'=>'U', 'Ũ'=>'U', 'Ų'=>'U', 'Ŵ'=>'W', 'Ŷ'=>'Y', - 'Ÿ'=>'Y', 'Ý'=>'Y', 'Ź'=>'Z', 'Ż'=>'Z', 'Ž'=>'Z', 'à'=>'a', - 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ā'=>'a', 'ą'=>'a', 'ă'=>'a', - 'å'=>'a', 'ç'=>'c', 'ć'=>'c', 'č'=>'c', 'ĉ'=>'c', 'ċ'=>'c', - 'ď'=>'d', 'đ'=>'d', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', - 'ē'=>'e', 'ę'=>'e', 'ě'=>'e', 'ĕ'=>'e', 'ė'=>'e', 'ƒ'=>'f', - 'ĝ'=>'g', 'ğ'=>'g', 'ġ'=>'g', 'ģ'=>'g', 'ĥ'=>'h', 'ħ'=>'h', - 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ī'=>'i', 'ĩ'=>'i', - 'ĭ'=>'i', 'į'=>'i', 'ı'=>'i', 'ĵ'=>'j', 'ķ'=>'k', 'ĸ'=>'k', - 'ł'=>'l', 'ľ'=>'l', 'ĺ'=>'l', 'ļ'=>'l', 'ŀ'=>'l', 'ñ'=>'n', - 'ń'=>'n', 'ň'=>'n', 'ņ'=>'n', 'ʼn'=>'n', 'ŋ'=>'n', 'ò'=>'o', - 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ø'=>'o', 'ō'=>'o', 'ő'=>'o', - 'ŏ'=>'o', 'ŕ'=>'r', 'ř'=>'r', 'ŗ'=>'r', 'ś'=>'s', 'š'=>'s', - 'ť'=>'t', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ū'=>'u', 'ů'=>'u', - 'ű'=>'u', 'ŭ'=>'u', 'ũ'=>'u', 'ų'=>'u', 'ŵ'=>'w', 'ÿ'=>'y', - 'ý'=>'y', 'ŷ'=>'y', 'ż'=>'z', 'ź'=>'z', 'ž'=>'z', 'Α'=>'A', - 'Ά'=>'A', 'Ἀ'=>'A', 'Ἁ'=>'A', 'Ἂ'=>'A', 'Ἃ'=>'A', 'Ἄ'=>'A', - 'Ἅ'=>'A', 'Ἆ'=>'A', 'Ἇ'=>'A', 'ᾈ'=>'A', 'ᾉ'=>'A', 'ᾊ'=>'A', - 'ᾋ'=>'A', 'ᾌ'=>'A', 'ᾍ'=>'A', 'ᾎ'=>'A', 'ᾏ'=>'A', 'Ᾰ'=>'A', - 'Ᾱ'=>'A', 'Ὰ'=>'A', 'ᾼ'=>'A', 'Β'=>'B', 'Γ'=>'G', 'Δ'=>'D', - 'Ε'=>'E', 'Έ'=>'E', 'Ἐ'=>'E', 'Ἑ'=>'E', 'Ἒ'=>'E', 'Ἓ'=>'E', - 'Ἔ'=>'E', 'Ἕ'=>'E', 'Ὲ'=>'E', 'Ζ'=>'Z', 'Η'=>'I', 'Ή'=>'I', - 'Ἠ'=>'I', 'Ἡ'=>'I', 'Ἢ'=>'I', 'Ἣ'=>'I', 'Ἤ'=>'I', 'Ἥ'=>'I', - 'Ἦ'=>'I', 'Ἧ'=>'I', 'ᾘ'=>'I', 'ᾙ'=>'I', 'ᾚ'=>'I', 'ᾛ'=>'I', - 'ᾜ'=>'I', 'ᾝ'=>'I', 'ᾞ'=>'I', 'ᾟ'=>'I', 'Ὴ'=>'I', 'ῌ'=>'I', - 'Θ'=>'T', 'Ι'=>'I', 'Ί'=>'I', 'Ϊ'=>'I', 'Ἰ'=>'I', 'Ἱ'=>'I', - 'Ἲ'=>'I', 'Ἳ'=>'I', 'Ἴ'=>'I', 'Ἵ'=>'I', 'Ἶ'=>'I', 'Ἷ'=>'I', - 'Ῐ'=>'I', 'Ῑ'=>'I', 'Ὶ'=>'I', 'Κ'=>'K', 'Λ'=>'L', 'Μ'=>'M', - 'Ν'=>'N', 'Ξ'=>'K', 'Ο'=>'O', 'Ό'=>'O', 'Ὀ'=>'O', 'Ὁ'=>'O', - 'Ὂ'=>'O', 'Ὃ'=>'O', 'Ὄ'=>'O', 'Ὅ'=>'O', 'Ὸ'=>'O', 'Π'=>'P', - 'Ρ'=>'R', 'Ῥ'=>'R', 'Σ'=>'S', 'Τ'=>'T', 'Υ'=>'Y', 'Ύ'=>'Y', - 'Ϋ'=>'Y', 'Ὑ'=>'Y', 'Ὓ'=>'Y', 'Ὕ'=>'Y', 'Ὗ'=>'Y', 'Ῠ'=>'Y', - 'Ῡ'=>'Y', 'Ὺ'=>'Y', 'Φ'=>'F', 'Χ'=>'X', 'Ψ'=>'P', 'Ω'=>'O', - 'Ώ'=>'O', 'Ὠ'=>'O', 'Ὡ'=>'O', 'Ὢ'=>'O', 'Ὣ'=>'O', 'Ὤ'=>'O', - 'Ὥ'=>'O', 'Ὦ'=>'O', 'Ὧ'=>'O', 'ᾨ'=>'O', 'ᾩ'=>'O', 'ᾪ'=>'O', - 'ᾫ'=>'O', 'ᾬ'=>'O', 'ᾭ'=>'O', 'ᾮ'=>'O', 'ᾯ'=>'O', 'Ὼ'=>'O', - 'ῼ'=>'O', 'α'=>'a', 'ά'=>'a', 'ἀ'=>'a', 'ἁ'=>'a', 'ἂ'=>'a', - 'ἃ'=>'a', 'ἄ'=>'a', 'ἅ'=>'a', 'ἆ'=>'a', 'ἇ'=>'a', 'ᾀ'=>'a', - 'ᾁ'=>'a', 'ᾂ'=>'a', 'ᾃ'=>'a', 'ᾄ'=>'a', 'ᾅ'=>'a', 'ᾆ'=>'a', - 'ᾇ'=>'a', 'ὰ'=>'a', 'ᾰ'=>'a', 'ᾱ'=>'a', 'ᾲ'=>'a', 'ᾳ'=>'a', - 'ᾴ'=>'a', 'ᾶ'=>'a', 'ᾷ'=>'a', 'β'=>'b', 'γ'=>'g', 'δ'=>'d', - 'ε'=>'e', 'έ'=>'e', 'ἐ'=>'e', 'ἑ'=>'e', 'ἒ'=>'e', 'ἓ'=>'e', - 'ἔ'=>'e', 'ἕ'=>'e', 'ὲ'=>'e', 'ζ'=>'z', 'η'=>'i', 'ή'=>'i', - 'ἠ'=>'i', 'ἡ'=>'i', 'ἢ'=>'i', 'ἣ'=>'i', 'ἤ'=>'i', 'ἥ'=>'i', - 'ἦ'=>'i', 'ἧ'=>'i', 'ᾐ'=>'i', 'ᾑ'=>'i', 'ᾒ'=>'i', 'ᾓ'=>'i', - 'ᾔ'=>'i', 'ᾕ'=>'i', 'ᾖ'=>'i', 'ᾗ'=>'i', 'ὴ'=>'i', 'ῂ'=>'i', - 'ῃ'=>'i', 'ῄ'=>'i', 'ῆ'=>'i', 'ῇ'=>'i', 'θ'=>'t', 'ι'=>'i', - 'ί'=>'i', 'ϊ'=>'i', 'ΐ'=>'i', 'ἰ'=>'i', 'ἱ'=>'i', 'ἲ'=>'i', - 'ἳ'=>'i', 'ἴ'=>'i', 'ἵ'=>'i', 'ἶ'=>'i', 'ἷ'=>'i', 'ὶ'=>'i', - 'ῐ'=>'i', 'ῑ'=>'i', 'ῒ'=>'i', 'ῖ'=>'i', 'ῗ'=>'i', 'κ'=>'k', - 'λ'=>'l', 'μ'=>'m', 'ν'=>'n', 'ξ'=>'k', 'ο'=>'o', 'ό'=>'o', - 'ὀ'=>'o', 'ὁ'=>'o', 'ὂ'=>'o', 'ὃ'=>'o', 'ὄ'=>'o', 'ὅ'=>'o', - 'ὸ'=>'o', 'π'=>'p', 'ρ'=>'r', 'ῤ'=>'r', 'ῥ'=>'r', 'σ'=>'s', - 'ς'=>'s', 'τ'=>'t', 'υ'=>'y', 'ύ'=>'y', 'ϋ'=>'y', 'ΰ'=>'y', - 'ὐ'=>'y', 'ὑ'=>'y', 'ὒ'=>'y', 'ὓ'=>'y', 'ὔ'=>'y', 'ὕ'=>'y', - 'ὖ'=>'y', 'ὗ'=>'y', 'ὺ'=>'y', 'ῠ'=>'y', 'ῡ'=>'y', 'ῢ'=>'y', - 'ῦ'=>'y', 'ῧ'=>'y', 'φ'=>'f', 'χ'=>'x', 'ψ'=>'p', 'ω'=>'o', - 'ώ'=>'o', 'ὠ'=>'o', 'ὡ'=>'o', 'ὢ'=>'o', 'ὣ'=>'o', 'ὤ'=>'o', - 'ὥ'=>'o', 'ὦ'=>'o', 'ὧ'=>'o', 'ᾠ'=>'o', 'ᾡ'=>'o', 'ᾢ'=>'o', - 'ᾣ'=>'o', 'ᾤ'=>'o', 'ᾥ'=>'o', 'ᾦ'=>'o', 'ᾧ'=>'o', 'ὼ'=>'o', - 'ῲ'=>'o', 'ῳ'=>'o', 'ῴ'=>'o', 'ῶ'=>'o', 'ῷ'=>'o', 'А'=>'A', - 'Б'=>'B', 'В'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ё'=>'E', - 'Ж'=>'Z', 'З'=>'Z', 'И'=>'I', 'Й'=>'I', 'К'=>'K', 'Л'=>'L', - 'М'=>'M', 'Н'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R', 'С'=>'S', - 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Х'=>'K', 'Ц'=>'T', 'Ч'=>'C', - 'Ш'=>'S', 'Щ'=>'S', 'Ы'=>'Y', 'Э'=>'E', 'Ю'=>'Y', 'Я'=>'Y', - 'а'=>'A', 'б'=>'B', 'в'=>'V', 'г'=>'G', 'д'=>'D', 'е'=>'E', - 'ё'=>'E', 'ж'=>'Z', 'з'=>'Z', 'и'=>'I', 'й'=>'I', 'к'=>'K', - 'л'=>'L', 'м'=>'M', 'н'=>'N', 'о'=>'O', 'п'=>'P', 'р'=>'R', - 'с'=>'S', 'т'=>'T', 'у'=>'U', 'ф'=>'F', 'х'=>'K', 'ц'=>'T', - 'ч'=>'C', 'ш'=>'S', 'щ'=>'S', 'ы'=>'Y', 'э'=>'E', 'ю'=>'Y', - 'я'=>'Y', 'ð'=>'d', 'Ð'=>'D', 'þ'=>'t', 'Þ'=>'T', 'ა'=>'a', - 'ბ'=>'b', 'გ'=>'g', 'დ'=>'d', 'ე'=>'e', 'ვ'=>'v', 'ზ'=>'z', - 'თ'=>'t', 'ი'=>'i', 'კ'=>'k', 'ლ'=>'l', 'მ'=>'m', 'ნ'=>'n', - 'ო'=>'o', 'პ'=>'p', 'ჟ'=>'z', 'რ'=>'r', 'ს'=>'s', 'ტ'=>'t', - 'უ'=>'u', 'ფ'=>'p', 'ქ'=>'k', 'ღ'=>'g', 'ყ'=>'q', 'შ'=>'s', - 'ჩ'=>'c', 'ც'=>'t', 'ძ'=>'d', 'წ'=>'t', 'ჭ'=>'c', 'ხ'=>'k', - 'ჯ'=>'j', 'ჰ'=>'h', 'ţ'=>'t', 'ʼ'=>"'", '̧'=>'', 'ḩ'=>'h', - '‘'=>"'", '’'=>"'", 'ừ'=>'u', '/'=>'', 'ế'=>'e', 'ả'=>'a', - 'ị'=>'i', 'ậ'=>'a', 'ệ'=>'e', 'ỉ'=>'i', 'ồ'=>'o', 'ề'=>'e', - 'ơ'=>'o', 'ạ'=>'a', 'ẵ'=>'a', 'ư'=>'u', 'ằ'=>'a', 'ầ'=>'a', - 'ḑ'=>'d', 'Ḩ'=>'H', 'Ḑ'=>'D', 'ș'=>'s', 'ț'=>'t', 'ộ'=>'o', - 'ắ'=>'a', 'ş'=>'s', "'"=>'', 'ու'=>'u', 'ա'=>'a', 'բ'=>'b', - 'գ'=>'g', 'դ'=>'d', 'ե'=>'e', 'զ'=>'z', 'է'=>'e', 'ը'=>'y', - 'թ'=>'t', 'ժ'=>'zh', 'ի'=>'i', 'լ'=>'l', 'խ'=>'kh', 'ծ'=>'ts', - 'կ'=>'k', 'հ'=>'h', 'ձ'=>'dz', 'ղ'=>'gh', 'ճ'=>'ch', 'մ'=>'m', - 'յ'=>'y', 'ն'=>'n', 'շ'=>'sh', 'ո'=>'o', 'չ'=>'ch', 'պ'=>'p', - 'ջ'=>'j', 'ռ'=>'r', 'ս'=>'s', 'վ'=>'v', 'տ'=>'t', 'ր'=>'r', - 'ց'=>'ts', 'փ'=>'p', 'ք'=>'q', 'և'=>'ev', 'օ'=>'o', 'ֆ'=>'f', - ); - $arrayFrom = array_keys($transliterationTable); - $arrayTo = array_values($transliterationTable); - } - - return str_replace($arrayFrom, $arrayTo, $string); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/Payment.php deleted file mode 100644 index a75a510..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Payment.php +++ /dev/null @@ -1,286 +0,0 @@ - array( - "4539###########", - "4556###########", - "4916###########", - "4532###########", - "4929###########", - "40240071#######", - "4485###########", - "4716###########", - "4##############" - ), - 'Visa Retired' => array( - "4539########", - "4556########", - "4916########", - "4532########", - "4929########", - "40240071####", - "4485########", - "4716########", - "4###########", - ), - 'MasterCard' => array( - "2221###########", - "23#############", - "24#############", - "25#############", - "26#############", - "2720###########", - "51#############", - "52#############", - "53#############", - "54#############", - "55#############" - ), - 'American Express' => array( - "34############", - "37############" - ), - 'Discover Card' => array( - "6011###########" - ), - ); - - /** - * @var array list of IBAN formats, source: @link https://www.swift.com/standards/data-standards/iban - */ - protected static $ibanFormats = array( - 'AD' => array(array('n', 4), array('n', 4), array('c', 12)), - 'AE' => array(array('n', 3), array('n', 16)), - 'AL' => array(array('n', 8), array('c', 16)), - 'AT' => array(array('n', 5), array('n', 11)), - 'AZ' => array(array('a', 4), array('c', 20)), - 'BA' => array(array('n', 3), array('n', 3), array('n', 8), array('n', 2)), - 'BE' => array(array('n', 3), array('n', 7), array('n', 2)), - 'BG' => array(array('a', 4), array('n', 4), array('n', 2), array('c', 8)), - 'BH' => array(array('a', 4), array('c', 14)), - 'BR' => array(array('n', 8), array('n', 5), array('n', 10), array('a', 1), array('c', 1)), - 'CH' => array(array('n', 5), array('c', 12)), - 'CR' => array(array('n', 4), array('n', 14)), - 'CY' => array(array('n', 3), array('n', 5), array('c', 16)), - 'CZ' => array(array('n', 4), array('n', 6), array('n', 10)), - 'DE' => array(array('n', 8), array('n', 10)), - 'DK' => array(array('n', 4), array('n', 9), array('n', 1)), - 'DO' => array(array('c', 4), array('n', 20)), - 'EE' => array(array('n', 2), array('n', 2), array('n', 11), array('n', 1)), - 'ES' => array(array('n', 4), array('n', 4), array('n', 1), array('n', 1), array('n', 10)), - 'FI' => array(array('n', 6), array('n', 7), array('n', 1)), - 'FR' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'GB' => array(array('a', 4), array('n', 6), array('n', 8)), - 'GE' => array(array('a', 2), array('n', 16)), - 'GI' => array(array('a', 4), array('c', 15)), - 'GR' => array(array('n', 3), array('n', 4), array('c', 16)), - 'GT' => array(array('c', 4), array('c', 20)), - 'HR' => array(array('n', 7), array('n', 10)), - 'HU' => array(array('n', 3), array('n', 4), array('n', 1), array('n', 15), array('n', 1)), - 'IE' => array(array('a', 4), array('n', 6), array('n', 8)), - 'IL' => array(array('n', 3), array('n', 3), array('n', 13)), - 'IS' => array(array('n', 4), array('n', 2), array('n', 6), array('n', 10)), - 'IT' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'KW' => array(array('a', 4), array('n', 22)), - 'KZ' => array(array('n', 3), array('c', 13)), - 'LB' => array(array('n', 4), array('c', 20)), - 'LI' => array(array('n', 5), array('c', 12)), - 'LT' => array(array('n', 5), array('n', 11)), - 'LU' => array(array('n', 3), array('c', 13)), - 'LV' => array(array('a', 4), array('c', 13)), - 'MC' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'MD' => array(array('c', 2), array('c', 18)), - 'ME' => array(array('n', 3), array('n', 13), array('n', 2)), - 'MK' => array(array('n', 3), array('c', 10), array('n', 2)), - 'MR' => array(array('n', 5), array('n', 5), array('n', 11), array('n', 2)), - 'MT' => array(array('a', 4), array('n', 5), array('c', 18)), - 'MU' => array(array('a', 4), array('n', 2), array('n', 2), array('n', 12), array('n', 3), array('a', 3)), - 'NL' => array(array('a', 4), array('n', 10)), - 'NO' => array(array('n', 4), array('n', 6), array('n', 1)), - 'PK' => array(array('a', 4), array('c', 16)), - 'PL' => array(array('n', 8), array('n', 16)), - 'PS' => array(array('a', 4), array('c', 21)), - 'PT' => array(array('n', 4), array('n', 4), array('n', 11), array('n', 2)), - 'RO' => array(array('a', 4), array('c', 16)), - 'RS' => array(array('n', 3), array('n', 13), array('n', 2)), - 'SA' => array(array('n', 2), array('c', 18)), - 'SE' => array(array('n', 3), array('n', 16), array('n', 1)), - 'SI' => array(array('n', 5), array('n', 8), array('n', 2)), - 'SK' => array(array('n', 4), array('n', 6), array('n', 10)), - 'SM' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'TN' => array(array('n', 2), array('n', 3), array('n', 13), array('n', 2)), - 'TR' => array(array('n', 5), array('n', 1), array('c', 16)), - 'VG' => array(array('a', 4), array('n', 16)), - ); - - /** - * @return string Returns a credit card vendor name - * - * @example 'MasterCard' - */ - public static function creditCardType() - { - return static::randomElement(static::$cardVendors); - } - - /** - * Returns the String of a credit card number. - * - * @param string $type Supporting any of 'Visa', 'MasterCard', 'American Express', and 'Discover' - * @param boolean $formatted Set to true if the output string should contain one separator every 4 digits - * @param string $separator Separator string for formatting card number. Defaults to dash (-). - * @return string - * - * @example '4485480221084675' - */ - public static function creditCardNumber($type = null, $formatted = false, $separator = '-') - { - if (is_null($type)) { - $type = static::creditCardType(); - } - $mask = static::randomElement(static::$cardParams[$type]); - - $number = static::numerify($mask); - $number .= Luhn::computeCheckDigit($number); - - if ($formatted) { - $p1 = substr($number, 0, 4); - $p2 = substr($number, 4, 4); - $p3 = substr($number, 8, 4); - $p4 = substr($number, 12); - $number = $p1 . $separator . $p2 . $separator . $p3 . $separator . $p4; - } - - return $number; - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @return \DateTime - * @example 04/13 - */ - public function creditCardExpirationDate($valid = true) - { - if ($valid) { - return $this->generator->dateTimeBetween('now', '36 months'); - } - - return $this->generator->dateTimeBetween('-36 months', '36 months'); - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @param string $expirationDateFormat - * @return string - * @example '04/13' - */ - public function creditCardExpirationDateString($valid = true, $expirationDateFormat = null) - { - return $this->creditCardExpirationDate($valid)->format(is_null($expirationDateFormat) ? static::$expirationDateFormat : $expirationDateFormat); - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @return array - */ - public function creditCardDetails($valid = true) - { - $type = static::creditCardType(); - - return array( - 'type' => $type, - 'number' => static::creditCardNumber($type), - 'name' => $this->generator->name(), - 'expirationDate' => $this->creditCardExpirationDateString($valid) - ); - } - - /** - * International Bank Account Number (IBAN) - * - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param string $prefix for generating bank account number of a specific bank - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function iban($countryCode = null, $prefix = '', $length = null) - { - $countryCode = is_null($countryCode) ? self::randomKey(self::$ibanFormats) : strtoupper($countryCode); - - $format = !isset(static::$ibanFormats[$countryCode]) ? null : static::$ibanFormats[$countryCode]; - if ($length === null) { - if ($format === null) { - $length = 24; - } else { - $length = 0; - foreach ($format as $part) { - list($class, $groupCount) = $part; - $length += $groupCount; - } - } - } - if ($format === null) { - $format = array(array('n', $length)); - } - - $expandedFormat = ''; - foreach ($format as $item) { - list($class, $length) = $item; - $expandedFormat .= str_repeat($class, $length); - } - - $result = $prefix; - $expandedFormat = substr($expandedFormat, strlen($result)); - foreach (str_split($expandedFormat) as $class) { - switch ($class) { - default: - case 'c': - $result .= mt_rand(0, 100) <= 50 ? static::randomDigit() : strtoupper(static::randomLetter()); - break; - case 'a': - $result .= strtoupper(static::randomLetter()); - break; - case 'n': - $result .= static::randomDigit(); - break; - } - } - - $checksum = Iban::checksum($countryCode . '00' . $result); - - return $countryCode . $checksum . $result; - } - - /** - * Return the String of a SWIFT/BIC number - * - * @example 'RZTIAT22263' - * @link http://en.wikipedia.org/wiki/ISO_9362 - * @return string Swift/Bic number - */ - public static function swiftBicNumber() - { - return self::regexify("^([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?$"); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php deleted file mode 100644 index d9d1f6b..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php +++ /dev/null @@ -1,43 +0,0 @@ -generator->parse(static::randomElement(static::$formats))); - } - - /** - * @example +27113456789 - * @return string - */ - public function e164PhoneNumber() - { - $formats = array('+%############'); - return static::numerify($this->generator->parse(static::randomElement($formats))); - } - - /** - * International Mobile Equipment Identity (IMEI) - * - * @link http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity - * @link http://imei-number.com/imei-validation-check/ - * @example '720084494799532' - * @return int $imei - */ - public function imei() - { - $imei = (string) static::numerify('##############'); - $imei .= Luhn::computeCheckDigit($imei); - return $imei; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php b/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php deleted file mode 100644 index d659f4b..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php +++ /dev/null @@ -1,165 +0,0 @@ -generator->boolean() ? static::GENDER_MALE : static::GENDER_FEMALE; - } - - $startTimestamp = strtotime("-${maxAge} year"); - $endTimestamp = strtotime("-${minAge} year"); - $randTimestamp = static::numberBetween($startTimestamp, $endTimestamp); - - $year = intval(date('Y', $randTimestamp)); - $month = intval(date('n', $randTimestamp)); - $day = intval(date('j', $randTimestamp)); - $suffix = static::numberBetween(0, 999); - - // women has +50 to month - if ($gender == static::GENDER_FEMALE) { - $month += 50; - } - // from year 2004 everyone has +20 to month when birth numbers in one day are exhausted - if ($year >= 2004 && $this->generator->boolean(10)) { - $month += 20; - } - - $birthNumber = sprintf('%02d%02d%02d%03d', $year % 100, $month, $day, $suffix); - - // from year 1954 birth number includes CRC - if ($year >= 1954) { - $crc = intval($birthNumber, 10) % 11; - if ($crc == 10) { - $crc = 0; - } - $birthNumber .= sprintf('%d', $crc); - } - - // add slash - if ($this->generator->boolean($slashProbability)) { - $birthNumber = substr($birthNumber, 0, 6) . '/' . substr($birthNumber, 6); - } - - return $birthNumber; - } - - public static function birthNumberMale() - { - return static::birthNumber(static::GENDER_MALE); - } - - public static function birthNumberFemale() - { - return static::birthNumber(static::GENDER_FEMALE); - } - - public function title($gender = null) - { - return static::titleMale(); - } - - /** - * replaced by specific unisex Czech title - */ - public static function titleMale() - { - return static::randomElement(static::$title); - } - - /** - * replaced by specific unisex Czech title - */ - public static function titleFemale() - { - return static::titleMale(); - } - - /** - * @param string|null $gender 'male', 'female' or null for any - * @example 'Albrecht' - */ - public function lastName($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::lastNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::lastNameFemale(); - } - - return $this->generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php deleted file mode 100644 index 015de89..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php +++ /dev/null @@ -1,13 +0,0 @@ - - */ -class Person extends \Faker\Provider\Person -{ - /** - * @link https://news.err.ee/114745/most-popular-baby-names-of-2014 - * @link https://www.stat.ee/public/apps/nimed/TOP - */ - protected static $firstNameMale = array( - "Andrei", "Aleksei", "Andres", "Alexander", "Aivar", "Aleksander", "Artur", "Andrus", "Ants", "Artjom", "Anatoli", "Anton", "Arvo", "Aare", "Ain", "Aleksandr", - "Dmitri", "Daniil", "Daniel", - "Eduard", "Erik", "Enn", - "Fjodorov", - "Gennadi", - "Heino", "Henri", "Hugo", - "Igor", "Indrek", "Ivan", "Ilja", - "Jüri", "Jaan", "Jevgeni", "Jaanus", "Janek", "Jaak", - "Kristjan", "Kalev", "Karl", "Kalle", "Kaido", "Kevin", "Konstantin", "Kaspar", "Kirill", "Kristo", "Kalju", "Kristofer", - "Lauri", "Lembit", "Laur", - "Martin", "Margus", "Maksim", "Marko", "Mati", "Meelis", "Mihhail", "Marek", "Mihkel", "Mart", "Madis", "Markus", "Mark", "Marten", - "Nikolai", "Nikita", "Nikolay", - "Oleg", "Oliver", "Oskar", - "Peeter", "Priit", "Pavel", - "Rein", "Roman", "Raivo", "Rasmus", "Raul", "Robert", "Riho", "Robin", "Romet", - "Sergei", "Sander", "Sergey", "Siim", "Silver", "Sebastian", - "Toomas", "Tarmo", "Tõnu", "Tiit", "Tanel", "Taavi", "Toivo", "Tõnis", - "Urmas", "Ülo", - "Vladimir", "Viktor", "Valeri", "Vello", "Vadim", "Vitali", "Vladislav", "Vjatšeslav", "Victor", - ); - - /** - * @link https://news.err.ee/114745/most-popular-baby-names-of-2014 - * @link https://www.stat.ee/public/apps/nimed/TOP - */ - protected static $firstNameFemale = array( - "Aino", "Aleksandra", "Alisa", "Anastasia", "Anna", "Anne", "Anneli", "Anu", "Arina", "Annika", "Anastassia", "Alla", "Aili", "Alina", "Aime", "Antonina", - "Darja", "Diana", - "Elena", "Eliise", "Elisabeth", "Emma", "Ene", "Eve", "Eha", "Evi", - "Galina", - "Hanna", "Helen", "Heli", "Helle", "Helgi", - "Irina", "Inna", "Ingrid", - "Jekaterina", "Jelena", "Julia", "Jana", - "Kadri", "Katrin", "Kristi", "Kristiina", "Kristina", "Karin", "Kersti", "Kristel", "Kaja", "Külli", "Kätlin", "Krista", - "Laura", "Lenna", "Liisa", "Linda", "Lisandra", "Ljubov", "Ljudmila", "Liina", "Ljudmilla", "Larissa", "Liis", "Lea", "Laine", "Liudmila", - "Maie", "Malle", "Mare", "Maria", "Marina", "Marleen", "Marta", "Merike", "Mia", "Milana", "Mirtel", "Marika", "Merle", "Margit", "Milvi", "Maire", "Margarita", "Mari", "Maarja", - "Natalia", "Niina", "Nora", "Natalja", "Nadežda", "Nina", - "Olga", "Oksana", - "Piret", "Polina", "Pille", - "Reet", "Riina", - "Sandra", "Sirje", "Sofia", "Svetlana", "Silvi", - "Tamara", "Tatiana", "Tiina", "Tiiu", "Triin", "Tatjana", "Tiia", - "Ülle", "Urve", - "Valentina", "Viktoria", "Veera", "Veronika", "Vaike", - "Zinaida", - ); - - /** - * @link https://en.wikipedia.org/wiki/Category:Estonian-language_surnames - * @link https://www.stat.ee/public/apps/nimed/pere/TOP - */ - protected static $lastName = array( - "Aleksejev", "Andrejev", "Allik", "Aas", "Aleksandrov", "Aare", "Aarma", "Aas", "Aasmäe", "Aav", "Aavik", "Allik", "Alver", "Andrejeva", "Aleksejeva", "Aleksandrova", "Allik", "Aas", - "Bogdanova", "Bogdanov", - "Eenpalu", "Eskola", - "Fjodorov", "Fjodorov", "Fjodorova", "Fjodorova", - "Grigorjev", "Grigorjeva", - "Hunt", "Hein", "Hein", "Härma", - "Ivanov", "Ilves", "Ilves", "Ivanov", "Ivanova", "Ivanova", "Ilves", - "Jõgi", "Jakobson", "Jakovlev", "Jürgenson", "Jegorov", "Järv", "Johanson", "Järve", "Jakobson", "Jänes", "Järve", "Järvis", "Jõgi", "Jõgi", "Johanson", "Jürgenson", "Järv", "Jakovleva", "Jegorova", "Järve", "Jakobson", - "Kuzmina", "Kalda", "Kozlova", "Kruus", "Kask", "Kukk", "Kuznetsov", "Koppel", "Kaasik", "Kuusk", "Karu", "Kütt", "Kallas", "Kivi", "Kangur", "Kuusik", "Kõiv", "Kozlov", "Kull", "Kuzmin", "Kalda", "Kaaleste", "Kaasik", "Käbin", "Kalda", "Kaljulaid", "Kaljurand", "Kallas", "Kallaste", "Kangro", "Kangur", "Kapp", "Kärner", "Karu", "Kask", "Käsper", "Kass", "Keres", "Keskküla", "Kesküla", "Kikkas", "Kingsepp", "Kirs", "Kirsipuu", "Kivi", "Klavan", "Kõiv", "Kokk", "Kontaveit", "Koppel", "Korjus", "Kotkas", "Kreek", "Kross", "Kruus", "Kukk", "Kull", "Kütt", "Kuusik", "Kuusk", "Kuznetsov", "Kuznetsova", "Kask", "Kukk", "Kuznetsova", "Koppel", "Kaasik", "Kuusk", "Karu", "Kütt", "Kallas", "Kivi", "Kuusik", "Kangur", "Kõiv", "Kull", - "Luik", "Lepik", "Lepp", "Lõhmus", "Liiv", "Laur", "Leppik", "Lebedev", "Laas", "Laar", "Laht", "Lass", "Laur", "Laurits", "Lemsalu", "Lepik", "Lepmets", "Lepp", "Leppik", "Levandi", "Liiv", "Lill", "Lindmaa", "Linna", "Lipp", "Lippmaa", "Lõhmus", "Loo", "Lõoke", "Luik", "Luts", "Luik", "Lepik", "Lepp", "Lõhmus", "Laur", "Liiv", "Leppik", "Lebedeva", "Laas", - "Männik", "Mänd", "Mitt", "Makarova", "Mägi", "Mets", "Mihhailov", "Mölder", "Morozov", "Mitt", "Männik", "Mõttus", "Mänd", "Makarov", "Mägi", "Mälk", "Mänd", "Männik", "Margiste", "Mark", "Masing", "Mets", "Mihhailov", "Mihhailova", "Mölder", "Must", "Mägi", "Mets", "Mihhailova", "Mölder", "Morozova", - "Nikolajev", "Nõmm", "Nikitin", "Novikov", "Nõmmik", "Nurme", "Nurmsalu", "Nõmm", "Nikitina", "Nikolajeva", - "Orlova", "Orav", "Oja", "Ots", "Orav", "Orlov", "Oja", "Olesk", "Öpik", "Orav", "Ots", "Oja", "Ots", - "Petrov", "Pärn", "Põder", "Pavlov", "Popov", "Peterson", "Puusepp", "Paju", "Põld", "Pukk", "Paas", "Palm", "Pääsuke", "Padar", "Pärn", "Pavlov", "Pavlova", "Peebo", "Peetre", "Peterson", "Petrov", "Petrova", "Pihlak", "Piho", "Piip", "Põder", "Põld", "Popov", "Popova", "Poska", "Puhvel", "Pütsep", "Puusepp", "Petrova", "Pärn", "Pavlova", "Põder", "Peterson", "Popova", "Puusepp", "Paas", "Paju", "Pukk", "Parts", "Palm", "Põld", - "Romanova", "Rand", "Roos", "Rebane", "Raudsepp", "Raud", "Rand", "Roos", "Rätsep", "Raag", "Raud", "Raudsepp", "Rebane", "Reek", "Reinsalu", "Rooba", "Roolaid", "Rootare", "Rummo", "Rüütel", "Rüütli", "Rebane", "Raudsepp", "Raud", - "Saar", "Sepp", "Smirnov", "Stepanov", "Semjonov", "Sokolov", "Sild", "Sarapuu", "Saks", "Saar", "Salumäe", "Semjonov", "Sepp", "Sibul", "Siimar", "Simm", "Sirel", "Sisask", "Smirnov", "Smirnova", "Sokk", "Sokolov", "Soosaar", "Stepanov", "Stepanova", "Susi", "Saar", "Sepp", "Smirnova", "Stepanova", "Sokolova", "Saks", "Sarapuu", "Sild", "Semjonova", - "Tamme", "Tomson", "Tamm", "Teder", "Toom", "Tomson", "Tamme", "Talts", "Tamm", "Tamme", "Tarvas", "Teder", "Toom", "Toome", "Toots", "Tamm", "Teder", "Toom", - "Uibo", "Uibo", - "Vassiljev", "Vaher", "Volkov", "Valk", "Vaher", "Vahtra", "Vaino", "Vainola", "Välbe", "Valdma", "Väljas", "Valk", "Vassiljev", "Vassiljeva", "Vesik", "Veski", "Viiding", "Vitsut", "Võigemast", "Volkov", "Volkova", "Võsu", "Vassiljeva", "Vaher", "Volkova", - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php deleted file mode 100644 index fb80b1d..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php +++ /dev/null @@ -1,75 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function cityPrefix() - { - return static::randomElement(static::$cityPrefix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php deleted file mode 100644 index e4ae2a0..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->parse($format); - } - - public static function street() - { - return static::randomElement(static::$street); - } - - public static function buildingNumber() - { - return static::numberBetween(1, 999); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php deleted file mode 100644 index 7839f1e..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class Person extends \Faker\Provider\Person -{ - /** - * @var array Icelandic person name formats. - */ - protected static $maleNameFormats = array( - '{{firstNameMale}} {{lastNameMale}}', - '{{firstNameMale}} {{lastNameMale}}', - '{{firstNameMale}} {{middleName}} {{lastNameMale}}', - '{{firstNameMale}} {{middleName}} {{lastNameMale}}', - ); - - protected static $femaleNameFormats = array( - '{{firstNameFemale}} {{lastNameFemale}}', - '{{firstNameFemale}} {{lastNameFemale}}', - '{{firstNameFemale}} {{middleName}} {{lastNameFemale}}', - '{{firstNameFemale}} {{middleName}} {{lastNameFemale}}', - ); - - /** - * @var string Icelandic women names. - */ - protected static $firstNameFemale = array('Aagot', 'Abela', 'Abigael', 'Ada', 'Adda', 'Addý', 'Adela', 'Adelía', 'Adríana', 'Aðalbjörg', 'Aðalbjört', 'Aðalborg', 'Aðaldís', 'Aðalfríður', 'Aðalheiður', 'Aðalrós', 'Aðalsteina', 'Aðalsteinunn', 'Aðalveig', 'Agata', 'Agatha', 'Agða', 'Agla', 'Agnea', 'Agnes', 'Agneta', 'Alanta', 'Alba', 'Alberta', 'Albína', 'Alda', 'Aldís', 'Aldný', 'Aleta', 'Aletta', 'Alexa', 'Alexandra', 'Alexandría', 'Alexis', 'Alexía', 'Alfa', 'Alfífa', 'Alice', 'Alida', 'Alída', 'Alína', 'Alís', 'Alísa', 'Alla', 'Allý', 'Alma', 'Alrún', 'Alva', 'Alvilda', 'Amadea', 'Amal', 'Amalía', 'Amanda', 'Amelía', 'Amilía', 'Amíra', 'Amy', 'Amý', 'Analía', 'Anastasía', 'Andra', 'Andrá', 'Andrea', 'Anetta', 'Angela', 'Angelíka', 'Anika', 'Anita', 'Aníka', 'Anína', 'Aníta', 'Anja', 'Ann', 'Anna', 'Annabella', 'Annalísa', 'Anne', 'Annelí', 'Annetta', 'Anney', 'Annika', 'Annía', 'Anný', 'Antonía', 'Apríl', 'Ardís', 'Arey', 'Arinbjörg', 'Aris', 'Arisa', 'Aría', 'Aríanna', 'Aríella', 'Arín', 'Arína', 'Arís', 'Armenía', 'Arna', 'Arnbjörg', 'Arnborg', 'Arndís', 'Arney', 'Arnfinna', 'Arnfríður', 'Arngerður', 'Arngunnur', 'Arnheiður', 'Arnhildur', 'Arnika', 'Arnkatla', 'Arnlaug', 'Arnleif', 'Arnlín', 'Arnljót', 'Arnóra', 'Arnrós', 'Arnrún', 'Arnþóra', 'Arnþrúður', 'Asírí', 'Askja', 'Assa', 'Astrid', 'Atalía', 'Atena', 'Athena', 'Atla', 'Atlanta', 'Auðbjörg', 'Auðbjört', 'Auðdís', 'Auðlín', 'Auðna', 'Auðný', 'Auðrún', 'Auður', 'Aurora', 'Axelía', 'Axelma', 'Aþena', 'Ágústa', 'Ágústína', 'Álfdís', 'Álfey', 'Álfgerður', 'Álfheiður', 'Álfhildur', 'Álfrós', 'Álfrún', 'Álfsól', 'Árbjörg', 'Árbjört', 'Árdís', 'Árelía', 'Árlaug', 'Ármey', 'Árna', 'Árndís', 'Árney', 'Árnheiður', 'Árnína', 'Árný', 'Áróra', 'Ársól', 'Ársæl', 'Árún', 'Árveig', 'Árvök', 'Árþóra', 'Ása', 'Ásbjörg', 'Ásborg', 'Ásdís', 'Ásfríður', 'Ásgerður', 'Áshildur', 'Áskatla', 'Ásla', 'Áslaug', 'Ásleif', 'Ásný', 'Ásrós', 'Ásrún', 'Ást', 'Ásta', 'Ástbjörg', 'Ástbjört', 'Ástdís', 'Ástfríður', 'Ástgerður', 'Ástheiður', 'Ásthildur', 'Ástríður', 'Ástrós', 'Ástrún', 'Ástveig', 'Ástþóra', 'Ástþrúður', 'Ásvör', 'Baldey', 'Baldrún', 'Baldvina', 'Barbara', 'Barbára', 'Bassí', 'Bára', 'Bebba', 'Begga', 'Belinda', 'Bella', 'Benedikta', 'Bengta', 'Benidikta', 'Benía', 'Beníta', 'Benna', 'Benney', 'Benný', 'Benta', 'Bentey', 'Bentína', 'Bera', 'Bergdís', 'Bergey', 'Bergfríður', 'Bergheiður', 'Berghildur', 'Berglaug', 'Berglind', 'Berglín', 'Bergljót', 'Bergmannía', 'Bergný', 'Bergrán', 'Bergrín', 'Bergrós', 'Bergrún', 'Bergþóra', 'Berit', 'Bernódía', 'Berta', 'Bertha', 'Bessí', 'Bestla', 'Beta', 'Betanía', 'Betsý', 'Bettý', 'Bil', 'Birgit', 'Birgitta', 'Birna', 'Birta', 'Birtna', 'Bíbí', 'Bína', 'Bjargdís', 'Bjargey', 'Bjargheiður', 'Bjarghildur', 'Bjarglind', 'Bjarkey', 'Bjarklind', 'Bjarma', 'Bjarndís', 'Bjarney', 'Bjarnfríður', 'Bjarngerður', 'Bjarnheiður', 'Bjarnhildur', 'Bjarnlaug', 'Bjarnrún', 'Bjarnveig', 'Bjarný', 'Bjarnþóra', 'Bjarnþrúður', 'Bjartey', 'Bjartmey', 'Björg', 'Björgey', 'Björgheiður', 'Björghildur', 'Björk', 'Björney', 'Björnfríður', 'Björt', 'Bláey', 'Blíða', 'Blín', 'Blómey', 'Blædís', 'Blær', 'Bobba', 'Boga', 'Bogdís', 'Bogey', 'Bogga', 'Boghildur', 'Borg', 'Borgdís', 'Borghildur', 'Borgný', 'Borgrún', 'Borgþóra', 'Botnía', 'Bóel', 'Bót', 'Bóthildur', 'Braga', 'Braghildur', 'Branddís', 'Brá', 'Brák', 'Brigitta', 'Brimdís', 'Brimhildur', 'Brimrún', 'Brit', 'Britt', 'Britta', 'Bríana', 'Bríanna', 'Bríet', 'Bryndís', 'Brynfríður', 'Bryngerður', 'Brynheiður', 'Brynhildur', 'Brynja', 'Brynný', 'Burkney', 'Bylgja', 'Camilla', 'Carla', 'Carmen', 'Cecilia', 'Cecilía', 'Charlotta', 'Charlotte', 'Christina', 'Christine', 'Clara', 'Daðey', 'Daðína', 'Dagbjörg', 'Dagbjört', 'Dagfríður', 'Daggrós', 'Dagheiður', 'Dagmar', 'Dagmey', 'Dagný', 'Dagrún', 'Daldís', 'Daley', 'Dalía', 'Dalla', 'Dallilja', 'Dalrós', 'Dana', 'Daney', 'Danfríður', 'Danheiður', 'Danhildur', 'Danía', 'Daníela', 'Daníella', 'Dara', 'Debora', 'Debóra', 'Dendý', 'Didda', 'Dilja', 'Diljá', 'Dimmblá', 'Dimmey', 'Día', 'Díana', 'Díanna', 'Díma', 'Dís', 'Dísa', 'Dísella', 'Donna', 'Doris', 'Dorothea', 'Dóa', 'Dómhildur', 'Dóra', 'Dórey', 'Dóris', 'Dórothea', 'Dórótea', 'Dóróthea', 'Drauma', 'Draumey', 'Drífa', 'Droplaug', 'Drótt', 'Dröfn', 'Dúa', 'Dúfa', 'Dúna', 'Dýrborg', 'Dýrfinna', 'Dýrleif', 'Dýrley', 'Dýrunn', 'Dæja', 'Dögg', 'Dögun', 'Ebba', 'Ebonney', 'Edda', 'Edel', 'Edil', 'Edit', 'Edith', 'Eðna', 'Efemía', 'Egedía', 'Eggrún', 'Egla', 'Eiðný', 'Eiðunn', 'Eik', 'Einbjörg', 'Eindís', 'Einey', 'Einfríður', 'Einhildur', 'Einína', 'Einrún', 'Eir', 'Eirdís', 'Eirfinna', 'Eiríka', 'Eirný', 'Eirún', 'Elba', 'Eldbjörg', 'Eldey', 'Eldlilja', 'Eldrún', 'Eleina', 'Elektra', 'Elena', 'Elenborg', 'Elfa', 'Elfur', 'Elina', 'Elinborg', 'Elisabeth', 'Elía', 'Elíana', 'Elín', 'Elína', 'Elíná', 'Elínbet', 'Elínbjörg', 'Elínbjört', 'Elínborg', 'Elíndís', 'Elíngunnur', 'Elínheiður', 'Elínrós', 'Elírós', 'Elísa', 'Elísabet', 'Elísabeth', 'Elka', 'Ella', 'Ellen', 'Elley', 'Ellisif', 'Ellín', 'Elly', 'Ellý', 'Elma', 'Elna', 'Elsa', 'Elsabet', 'Elsie', 'Elsí', 'Elsý', 'Elva', 'Elvi', 'Elvíra', 'Elvý', 'Embla', 'Emelía', 'Emelíana', 'Emelína', 'Emeralda', 'Emilía', 'Emilíana', 'Emilíanna', 'Emilý', 'Emma', 'Emmý', 'Emý', 'Enea', 'Eneka', 'Engilbjört', 'Engilráð', 'Engilrós', 'Engla', 'Enika', 'Enja', 'Enóla', 'Eres', 'Erika', 'Erin', 'Erla', 'Erlen', 'Erlín', 'Erna', 'Esja', 'Esmeralda', 'Ester', 'Esther', 'Estiva', 'Ethel', 'Etna', 'Eufemía', 'Eva', 'Evelyn', 'Evey', 'Evfemía', 'Evgenía', 'Evíta', 'Evlalía', 'Ey', 'Eybjörg', 'Eybjört', 'Eydís', 'Eyfríður', 'Eygerður', 'Eygló', 'Eyhildur', 'Eyja', 'Eyjalín', 'Eyleif', 'Eylín', 'Eyrós', 'Eyrún', 'Eyveig', 'Eyvör', 'Eyþóra', 'Eyþrúður', 'Fanndís', 'Fanney', 'Fannlaug', 'Fanny', 'Fanný', 'Febrún', 'Fema', 'Filipía', 'Filippa', 'Filippía', 'Finna', 'Finnbjörg', 'Finnbjörk', 'Finnboga', 'Finnborg', 'Finndís', 'Finney', 'Finnfríður', 'Finnlaug', 'Finnrós', 'Fía', 'Fídes', 'Fífa', 'Fjalldís', 'Fjóla', 'Flóra', 'Folda', 'Fransiska', 'Franziska', 'Frán', 'Fregn', 'Freydís', 'Freygerður', 'Freyja', 'Freylaug', 'Freyleif', 'Friðbjörg', 'Friðbjört', 'Friðborg', 'Friðdís', 'Friðdóra', 'Friðey', 'Friðfinna', 'Friðgerður', 'Friðjóna', 'Friðlaug', 'Friðleif', 'Friðlín', 'Friðmey', 'Friðný', 'Friðrika', 'Friðrikka', 'Friðrós', 'Friðrún', 'Friðsemd', 'Friðveig', 'Friðþóra', 'Frigg', 'Fríða', 'Fríður', 'Frostrós', 'Fróðný', 'Fura', 'Fönn', 'Gabríela', 'Gabríella', 'Gauja', 'Gauthildur', 'Gefjun', 'Gefn', 'Geira', 'Geirbjörg', 'Geirdís', 'Geirfinna', 'Geirfríður', 'Geirhildur', 'Geirlaug', 'Geirlöð', 'Geirný', 'Geirríður', 'Geirrún', 'Geirþrúður', 'Georgía', 'Gerða', 'Gerður', 'Gestheiður', 'Gestný', 'Gestrún', 'Gillý', 'Gilslaug', 'Gissunn', 'Gía', 'Gígja', 'Gísela', 'Gísla', 'Gísley', 'Gíslína', 'Gíslný', 'Gíslrún', 'Gíslunn', 'Gíta', 'Gjaflaug', 'Gloría', 'Gló', 'Glóa', 'Glóbjört', 'Glódís', 'Glóð', 'Glóey', 'Gná', 'Góa', 'Gógó', 'Grein', 'Gret', 'Greta', 'Grélöð', 'Grét', 'Gréta', 'Gríma', 'Grímey', 'Grímheiður', 'Grímhildur', 'Gróa', 'Guðbjörg', 'Guðbjört', 'Guðborg', 'Guðdís', 'Guðfinna', 'Guðfríður', 'Guðjóna', 'Guðlaug', 'Guðleif', 'Guðlín', 'Guðmey', 'Guðmunda', 'Guðmundína', 'Guðný', 'Guðríður', 'Guðrún', 'Guðsteina', 'Guðveig', 'Gullbrá', 'Gullveig', 'Gullý', 'Gumma', 'Gunnbjörg', 'Gunnbjört', 'Gunnborg', 'Gunndís', 'Gunndóra', 'Gunnella', 'Gunnfinna', 'Gunnfríður', 'Gunnharða', 'Gunnheiður', 'Gunnhildur', 'Gunnjóna', 'Gunnlaug', 'Gunnleif', 'Gunnlöð', 'Gunnrún', 'Gunnur', 'Gunnveig', 'Gunnvör', 'Gunný', 'Gunnþóra', 'Gunnþórunn', 'Gurrý', 'Gúa', 'Gyða', 'Gyðja', 'Gyðríður', 'Gytta', 'Gæfa', 'Gæflaug', 'Hadda', 'Haddý', 'Hafbjörg', 'Hafborg', 'Hafdís', 'Hafey', 'Hafliða', 'Haflína', 'Hafný', 'Hafrós', 'Hafrún', 'Hafsteina', 'Hafþóra', 'Halla', 'Hallbera', 'Hallbjörg', 'Hallborg', 'Halldís', 'Halldóra', 'Halley', 'Hallfríður', 'Hallgerður', 'Hallgunnur', 'Hallkatla', 'Hallný', 'Hallrún', 'Hallveig', 'Hallvör', 'Hanna', 'Hanney', 'Hansa', 'Hansína', 'Harpa', 'Hauður', 'Hákonía', 'Heba', 'Hedda', 'Hedí', 'Heiða', 'Heiðbjörg', 'Heiðbjörk', 'Heiðbjört', 'Heiðbrá', 'Heiðdís', 'Heiðlaug', 'Heiðlóa', 'Heiðný', 'Heiðrós', 'Heiðrún', 'Heiður', 'Heiðveig', 'Hekla', 'Helen', 'Helena', 'Helga', 'Hella', 'Helma', 'Hendrikka', 'Henný', 'Henrietta', 'Henrika', 'Henríetta', 'Hera', 'Herbjörg', 'Herbjört', 'Herborg', 'Herdís', 'Herfríður', 'Hergerður', 'Herlaug', 'Hermína', 'Hersilía', 'Herta', 'Hertha', 'Hervör', 'Herþrúður', 'Hilda', 'Hildegard', 'Hildibjörg', 'Hildigerður', 'Hildigunnur', 'Hildiríður', 'Hildisif', 'Hildur', 'Hilma', 'Himinbjörg', 'Hind', 'Hinrika', 'Hinrikka', 'Hjalta', 'Hjaltey', 'Hjálmdís', 'Hjálmey', 'Hjálmfríður', 'Hjálmgerður', 'Hjálmrós', 'Hjálmrún', 'Hjálmveig', 'Hjördís', 'Hjörfríður', 'Hjörleif', 'Hjörný', 'Hjörtfríður', 'Hlaðgerður', 'Hlédís', 'Hlíf', 'Hlín', 'Hlökk', 'Hólmbjörg', 'Hólmdís', 'Hólmfríður', 'Hrafna', 'Hrafnborg', 'Hrafndís', 'Hrafney', 'Hrafngerður', 'Hrafnheiður', 'Hrafnhildur', 'Hrafnkatla', 'Hrafnlaug', 'Hrafntinna', 'Hraundís', 'Hrefna', 'Hreindís', 'Hróðný', 'Hrólfdís', 'Hrund', 'Hrönn', 'Hugbjörg', 'Hugbjört', 'Hugborg', 'Hugdís', 'Hugljúf', 'Hugrún', 'Huld', 'Hulda', 'Huldís', 'Huldrún', 'Húnbjörg', 'Húndís', 'Húngerður', 'Hvönn', 'Hödd', 'Högna', 'Hörn', 'Ida', 'Idda', 'Iða', 'Iðunn', 'Ilmur', 'Immý', 'Ina', 'Inda', 'India', 'Indiana', 'Indía', 'Indíana', 'Indíra', 'Indra', 'Inga', 'Ingdís', 'Ingeborg', 'Inger', 'Ingey', 'Ingheiður', 'Inghildur', 'Ingibjörg', 'Ingibjört', 'Ingiborg', 'Ingifinna', 'Ingifríður', 'Ingigerður', 'Ingilaug', 'Ingileif', 'Ingilín', 'Ingimaría', 'Ingimunda', 'Ingiríður', 'Ingirós', 'Ingisól', 'Ingiveig', 'Ingrid', 'Ingrún', 'Ingunn', 'Ingveldur', 'Inna', 'Irena', 'Irene', 'Irja', 'Irma', 'Irmý', 'Irpa', 'Isabel', 'Isabella', 'Ída', 'Íma', 'Ína', 'Ír', 'Íren', 'Írena', 'Íris', 'Írunn', 'Ísabel', 'Ísabella', 'Ísadóra', 'Ísafold', 'Ísalind', 'Ísbjörg', 'Ísdís', 'Ísey', 'Ísfold', 'Ísgerður', 'Íshildur', 'Ísis', 'Íslaug', 'Ísleif', 'Ísmey', 'Ísold', 'Ísól', 'Ísrún', 'Íssól', 'Ísveig', 'Íunn', 'Íva', 'Jakobína', 'Jana', 'Jane', 'Janetta', 'Jannika', 'Jara', 'Jarún', 'Jarþrúður', 'Jasmín', 'Járnbrá', 'Járngerður', 'Jenetta', 'Jenna', 'Jenný', 'Jensína', 'Jessý', 'Jovina', 'Jóa', 'Jóanna', 'Jódís', 'Jófríður', 'Jóhanna', 'Jólín', 'Jóna', 'Jónanna', 'Jónasína', 'Jónbjörg', 'Jónbjört', 'Jóndís', 'Jóndóra', 'Jóney', 'Jónfríður', 'Jóngerð', 'Jónheiður', 'Jónhildur', 'Jóninna', 'Jónída', 'Jónína', 'Jónný', 'Jóný', 'Jóra', 'Jóríður', 'Jórlaug', 'Jórunn', 'Jósebína', 'Jósefín', 'Jósefína', 'Judith', 'Júdea', 'Júdit', 'Júlía', 'Júlíana', 'Júlíanna', 'Júlíetta', 'Júlírós', 'Júnía', 'Júníana', 'Jökla', 'Jökulrós', 'Jörgína', 'Kaðlín', 'Kaja', 'Kalla', 'Kamilla', 'Kamí', 'Kamma', 'Kapitola', 'Kapítóla', 'Kara', 'Karen', 'Karin', 'Karitas', 'Karí', 'Karín', 'Karína', 'Karítas', 'Karla', 'Karlinna', 'Karlína', 'Karlotta', 'Karolína', 'Karó', 'Karólín', 'Karólína', 'Kassandra', 'Kata', 'Katarína', 'Katerína', 'Katharina', 'Kathinka', 'Katinka', 'Katla', 'Katrín', 'Katrína', 'Katý', 'Kára', 'Kellý', 'Kendra', 'Ketilbjörg', 'Ketilfríður', 'Ketilríður', 'Kiddý', 'Kira', 'Kirsten', 'Kirstín', 'Kittý', 'Kjalvör', 'Klara', 'Kládía', 'Klementína', 'Kleópatra', 'Kolbjörg', 'Kolbrá', 'Kolbrún', 'Koldís', 'Kolfinna', 'Kolfreyja', 'Kolgríma', 'Kolka', 'Konkordía', 'Konný', 'Korka', 'Kormlöð', 'Kornelía', 'Kókó', 'Krista', 'Kristbjörg', 'Kristborg', 'Kristel', 'Kristensa', 'Kristey', 'Kristfríður', 'Kristgerður', 'Kristin', 'Kristine', 'Kristíana', 'Kristíanna', 'Kristín', 'Kristína', 'Kristjana', 'Kristjóna', 'Kristlaug', 'Kristlind', 'Kristlín', 'Kristný', 'Kristólína', 'Kristrós', 'Kristrún', 'Kristveig', 'Kristvina', 'Kristþóra', 'Kría', 'Kæja', 'Laila', 'Laíla', 'Lana', 'Lara', 'Laufey', 'Laufheiður', 'Laufhildur', 'Lauga', 'Laugey', 'Laugheiður', 'Lára', 'Lárensína', 'Láretta', 'Lárey', 'Lea', 'Leikný', 'Leila', 'Lena', 'Leonóra', 'Leóna', 'Leónóra', 'Lilja', 'Liljá', 'Liljurós', 'Lill', 'Lilla', 'Lillian', 'Lillý', 'Lily', 'Lilý', 'Lind', 'Linda', 'Linddís', 'Lingný', 'Lisbeth', 'Listalín', 'Liv', 'Líba', 'Líf', 'Lífdís', 'Lín', 'Lína', 'Línbjörg', 'Líndís', 'Líneik', 'Líney', 'Línhildur', 'Lísa', 'Lísabet', 'Lísandra', 'Lísbet', 'Lísebet', 'Lív', 'Ljósbjörg', 'Ljósbrá', 'Ljótunn', 'Lofn', 'Loftveig', 'Logey', 'Lokbrá', 'Lotta', 'Louisa', 'Lousie', 'Lovísa', 'Lóa', 'Lóreley', 'Lukka', 'Lúcía', 'Lúðvíka', 'Lúísa', 'Lúna', 'Lúsinda', 'Lúsía', 'Lúvísa', 'Lydia', 'Lydía', 'Lyngheiður', 'Lýdía', 'Læla', 'Maddý', 'Magda', 'Magdalena', 'Magðalena', 'Magga', 'Maggey', 'Maggý', 'Magna', 'Magndís', 'Magnea', 'Magnes', 'Magney', 'Magnfríður', 'Magnheiður', 'Magnhildur', 'Magnúsína', 'Magný', 'Magnþóra', 'Maía', 'Maídís', 'Maísól', 'Maj', 'Maja', 'Malen', 'Malena', 'Malía', 'Malín', 'Malla', 'Manda', 'Manúela', 'Mara', 'Mardís', 'Marela', 'Marella', 'Maren', 'Marey', 'Marfríður', 'Margit', 'Margot', 'Margret', 'Margrét', 'Margrjet', 'Margunnur', 'Marheiður', 'Maria', 'Marie', 'Marikó', 'Marinella', 'Marit', 'Marí', 'María', 'Maríam', 'Marían', 'Maríana', 'Maríanna', 'Marín', 'Marína', 'Marínella', 'Maríon', 'Marísa', 'Marísól', 'Marít', 'Maríuerla', 'Marja', 'Markrún', 'Marlaug', 'Marlena', 'Marlín', 'Marlís', 'Marólína', 'Marsa', 'Marselía', 'Marselína', 'Marsibil', 'Marsilía', 'Marsý', 'Marta', 'Martha', 'Martína', 'Mary', 'Marý', 'Matta', 'Mattea', 'Matthea', 'Matthilda', 'Matthildur', 'Matthía', 'Mattíana', 'Mattína', 'Mattý', 'Maxima', 'Mábil', 'Málfríður', 'Málhildur', 'Málmfríður', 'Mánadís', 'Máney', 'Mára', 'Meda', 'Mekkin', 'Mekkín', 'Melinda', 'Melissa', 'Melkorka', 'Melrós', 'Messíana', 'Metta', 'Mey', 'Mikaela', 'Mikaelína', 'Mikkalína', 'Milda', 'Mildríður', 'Milla', 'Millý', 'Minerva', 'Minna', 'Minney', 'Minný', 'Miriam', 'Mirja', 'Mirjam', 'Mirra', 'Mist', 'Mía', 'Mínerva', 'Míra', 'Míranda', 'Mítra', 'Mjaðveig', 'Mjalldís', 'Mjallhvít', 'Mjöll', 'Mona', 'Monika', 'Módís', 'Móeiður', 'Móey', 'Móheiður', 'Móna', 'Mónika', 'Móníka', 'Munda', 'Mundheiður', 'Mundhildur', 'Mundína', 'Myrra', 'Mýr', 'Mýra', 'Mýrún', 'Mörk', 'Nadia', 'Nadía', 'Nadja', 'Nana', 'Nanna', 'Nanný', 'Nansý', 'Naomí', 'Naómí', 'Natalie', 'Natalía', 'Náttsól', 'Nella', 'Nellý', 'Nenna', 'Nicole', 'Niðbjörg', 'Nikíta', 'Nikoletta', 'Nikólína', 'Ninja', 'Ninna', 'Nína', 'Níní', 'Njála', 'Njóla', 'Norma', 'Nóa', 'Nóra', 'Nótt', 'Nýbjörg', 'Odda', 'Oddbjörg', 'Oddfreyja', 'Oddfríður', 'Oddgerður', 'Oddhildur', 'Oddlaug', 'Oddleif', 'Oddný', 'Oddrún', 'Oddveig', 'Oddvör', 'Oktavía', 'Októvía', 'Olga', 'Ollý', 'Ora', 'Orka', 'Ormheiður', 'Ormhildur', 'Otkatla', 'Otta', 'Óda', 'Ófelía', 'Óla', 'Ólafía', 'Ólafína', 'Ólavía', 'Ólivía', 'Ólína', 'Ólöf', 'Ósa', 'Ósk', 'Ótta', 'Pamela', 'París', 'Patricia', 'Patrisía', 'Pála', 'Páldís', 'Páley', 'Pálfríður', 'Pálhanna', 'Pálheiður', 'Pálhildur', 'Pálín', 'Pálína', 'Pálmey', 'Pálmfríður', 'Pálrún', 'Perla', 'Peta', 'Petra', 'Petrea', 'Petrína', 'Petronella', 'Petrónella', 'Petrós', 'Petrún', 'Petrúnella', 'Pétrína', 'Pétrún', 'Pía', 'Polly', 'Pollý', 'Pría', 'Rafney', 'Rafnhildur', 'Ragna', 'Ragnbjörg', 'Ragney', 'Ragnfríður', 'Ragnheiður', 'Ragnhildur', 'Rakel', 'Ramóna', 'Randalín', 'Randíður', 'Randý', 'Ranka', 'Rannva', 'Rannveig', 'Ráðhildur', 'Rán', 'Rebekka', 'Reginbjörg', 'Regína', 'Rein', 'Renata', 'Reyn', 'Reyndís', 'Reynheiður', 'Reynhildur', 'Rikka', 'Ripley', 'Rita', 'Ríkey', 'Rín', 'Ríta', 'Ronja', 'Rorí', 'Roxanna', 'Róberta', 'Róbjörg', 'Rós', 'Rósa', 'Rósalind', 'Rósanna', 'Rósbjörg', 'Rósborg', 'Róselía', 'Rósey', 'Rósfríður', 'Róshildur', 'Rósinkara', 'Rósinkransa', 'Róska', 'Róslaug', 'Róslind', 'Róslinda', 'Róslín', 'Rósmary', 'Rósmarý', 'Rósmunda', 'Rósný', 'Runný', 'Rut', 'Ruth', 'Rúbý', 'Rún', 'Rúna', 'Rúndís', 'Rúnhildur', 'Rúrí', 'Röfn', 'Rögn', 'Röskva', 'Sabína', 'Sabrína', 'Saga', 'Salbjörg', 'Saldís', 'Salgerður', 'Salín', 'Salína', 'Salka', 'Salma', 'Salný', 'Salome', 'Salóme', 'Salvör', 'Sandra', 'Sanna', 'Santía', 'Sara', 'Sarína', 'Sefanía', 'Selja', 'Selka', 'Selma', 'Senía', 'Septíma', 'Sera', 'Serena', 'Seselía', 'Sesilía', 'Sesselía', 'Sesselja', 'Sessilía', 'Sif', 'Sigdís', 'Sigdóra', 'Sigfríð', 'Sigfríður', 'Sigga', 'Siggerður', 'Sigmunda', 'Signa', 'Signhildur', 'Signý', 'Sigríður', 'Sigrún', 'Sigurást', 'Sigurásta', 'Sigurbára', 'Sigurbirna', 'Sigurbjörg', 'Sigurbjört', 'Sigurborg', 'Sigurdís', 'Sigurdóra', 'Sigurdríf', 'Sigurdrífa', 'Sigurða', 'Sigurey', 'Sigurfinna', 'Sigurfljóð', 'Sigurgeira', 'Sigurhanna', 'Sigurhelga', 'Sigurhildur', 'Sigurjóna', 'Sigurlaug', 'Sigurleif', 'Sigurlilja', 'Sigurlinn', 'Sigurlín', 'Sigurlína', 'Sigurmunda', 'Sigurnanna', 'Sigurósk', 'Sigurrós', 'Sigursteina', 'Sigurunn', 'Sigurveig', 'Sigurvina', 'Sigurþóra', 'Sigyn', 'Sigþóra', 'Sigþrúður', 'Silfa', 'Silfá', 'Silfrún', 'Silja', 'Silka', 'Silla', 'Silva', 'Silvana', 'Silvía', 'Sirra', 'Sirrý', 'Siv', 'Sía', 'Símonía', 'Sísí', 'Síta', 'Sjöfn', 'Skarpheiður', 'Skugga', 'Skuld', 'Skúla', 'Skúlína', 'Snjáfríður', 'Snjáka', 'Snjófríður', 'Snjólaug', 'Snorra', 'Snót', 'Snæbjörg', 'Snæbjört', 'Snæborg', 'Snæbrá', 'Snædís', 'Snæfríður', 'Snælaug', 'Snærós', 'Snærún', 'Soffía', 'Sofie', 'Sofía', 'Solveig', 'Sonja', 'Sonný', 'Sophia', 'Sophie', 'Sól', 'Sóla', 'Sólbjörg', 'Sólbjört', 'Sólborg', 'Sólbrá', 'Sólbrún', 'Sóldís', 'Sóldögg', 'Sóley', 'Sólfríður', 'Sólgerður', 'Sólhildur', 'Sólín', 'Sólkatla', 'Sóllilja', 'Sólný', 'Sólrós', 'Sólrún', 'Sólveig', 'Sólvör', 'Sónata', 'Stefana', 'Stefanía', 'Stefánný', 'Steina', 'Steinbjörg', 'Steinborg', 'Steindís', 'Steindóra', 'Steiney', 'Steinfríður', 'Steingerður', 'Steinhildur', 'Steinlaug', 'Steinrós', 'Steinrún', 'Steinunn', 'Steinvör', 'Steinþóra', 'Stella', 'Stígheiður', 'Stígrún', 'Stína', 'Stjarna', 'Styrgerður', 'Sumarlína', 'Sumarrós', 'Sunna', 'Sunnefa', 'Sunneva', 'Sunniva', 'Sunníva', 'Susan', 'Súla', 'Súsan', 'Súsanna', 'Svafa', 'Svala', 'Svalrún', 'Svana', 'Svanbjörg', 'Svanbjört', 'Svanborg', 'Svandís', 'Svaney', 'Svanfríður', 'Svanheiður', 'Svanhildur', 'Svanhvít', 'Svanlaug', 'Svanrós', 'Svanþrúður', 'Svava', 'Svea', 'Sveina', 'Sveinbjörg', 'Sveinborg', 'Sveindís', 'Sveiney', 'Sveinfríður', 'Sveingerður', 'Sveinhildur', 'Sveinlaug', 'Sveinrós', 'Sveinrún', 'Sveinsína', 'Sveinveig', 'Sylgja', 'Sylva', 'Sylvía', 'Sæbjörg', 'Sæbjört', 'Sæborg', 'Sædís', 'Sæfinna', 'Sæfríður', 'Sæhildur', 'Sælaug', 'Sæmunda', 'Sæný', 'Særós', 'Særún', 'Sæsól', 'Sæunn', 'Sævör', 'Sölva', 'Sölvey', 'Sölvína', 'Tala', 'Talía', 'Tamar', 'Tamara', 'Tanía', 'Tanja', 'Tanya', 'Tanya', 'Tara', 'Tea', 'Teitný', 'Tekla', 'Telma', 'Tera', 'Teresa', 'Teresía', 'Thea', 'Thelma', 'Theodóra', 'Theódóra', 'Theresa', 'Tindra', 'Tinna', 'Tirsa', 'Tía', 'Tíbrá', 'Tína', 'Todda', 'Torbjörg', 'Torfey', 'Torfheiður', 'Torfhildur', 'Tóbý', 'Tóka', 'Tóta', 'Tristana', 'Trú', 'Tryggva', 'Tryggvína', 'Týra', 'Ugla', 'Una', 'Undína', 'Unna', 'Unnbjörg', 'Unndís', 'Unnur', 'Urður', 'Úa', 'Úlfa', 'Úlfdís', 'Úlfey', 'Úlfheiður', 'Úlfhildur', 'Úlfrún', 'Úlla', 'Úna', 'Úndína', 'Úranía', 'Úrsúla', 'Vagna', 'Vagnbjörg', 'Vagnfríður', 'Vaka', 'Vala', 'Valbjörg', 'Valbjörk', 'Valbjört', 'Valborg', 'Valdheiður', 'Valdís', 'Valentína', 'Valería', 'Valey', 'Valfríður', 'Valgerða', 'Valgerður', 'Valhildur', 'Valka', 'Vallý', 'Valný', 'Valrós', 'Valrún', 'Valva', 'Valý', 'Valþrúður', 'Vanda', 'Vár', 'Veig', 'Veiga', 'Venus', 'Vera', 'Veronika', 'Verónika', 'Veróníka', 'Vetrarrós', 'Vébjörg', 'Védís', 'Végerður', 'Vélaug', 'Véný', 'Vibeka', 'Victoría', 'Viðja', 'Vigdís', 'Vigný', 'Viktoria', 'Viktoría', 'Vilborg', 'Vildís', 'Vilfríður', 'Vilgerður', 'Vilhelmína', 'Villa', 'Villimey', 'Vilma', 'Vilný', 'Vinbjörg', 'Vinný', 'Vinsý', 'Virginía', 'Víbekka', 'Víf', 'Vígdögg', 'Víggunnur', 'Víóla', 'Víóletta', 'Vísa', 'Von', 'Von', 'Voney', 'Vordís', 'Ylfa', 'Ylfur', 'Ylja', 'Ylva', 'Ynja', 'Yrja', 'Yrsa', 'Ýja', 'Ýma', 'Ýr', 'Ýrr', 'Þalía', 'Þeba', 'Þeódís', 'Þeódóra', 'Þjóðbjörg', 'Þjóðhildur', 'Þoka', 'Þorbjörg', 'Þorfinna', 'Þorgerður', 'Þorgríma', 'Þorkatla', 'Þorlaug', 'Þorleif', 'Þorsteina', 'Þorstína', 'Þóra', 'Þóranna', 'Þórarna', 'Þórbjörg', 'Þórdís', 'Þórða', 'Þórelfa', 'Þórelfur', 'Þórey', 'Þórfríður', 'Þórgunna', 'Þórgunnur', 'Þórhalla', 'Þórhanna', 'Þórheiður', 'Þórhildur', 'Þórkatla', 'Þórlaug', 'Þórleif', 'Þórný', 'Þórodda', 'Þórsteina', 'Þórsteinunn', 'Þórstína', 'Þórunn', 'Þórveig', 'Þórvör', 'Þrá', 'Þrúða', 'Þrúður', 'Þula', 'Þura', 'Þurí', 'Þuríður', 'Þurý', 'Þúfa', 'Þyri', 'Þyrí', 'Þöll', 'Ægileif', 'Æsa', 'Æsgerður', 'Ögmunda', 'Ögn', 'Ölrún', 'Ölveig', 'Örbrún', 'Örk', 'Ösp'); - - /** - * @var string Icelandic men names. - */ - protected static $firstNameMale = array('Aage', 'Abel', 'Abraham', 'Adam', 'Addi', 'Adel', 'Adíel', 'Adólf', 'Adrían', 'Adríel', 'Aðalberg', 'Aðalbergur', 'Aðalbert', 'Aðalbjörn', 'Aðalborgar', 'Aðalgeir', 'Aðalmundur', 'Aðalráður', 'Aðalsteinn', 'Aðólf', 'Agnar', 'Agni', 'Albert', 'Aldar', 'Alex', 'Alexander', 'Alexíus', 'Alfons', 'Alfred', 'Alfreð', 'Ali', 'Allan', 'Alli', 'Almar', 'Alrekur', 'Alvar', 'Alvin', 'Amír', 'Amos', 'Anders', 'Andreas', 'André', 'Andrés', 'Andri', 'Anes', 'Anfinn', 'Angantýr', 'Angi', 'Annar', 'Annarr', 'Annas', 'Annel', 'Annes', 'Anthony', 'Anton', 'Antoníus', 'Aran', 'Arent', 'Ares', 'Ari', 'Arilíus', 'Arinbjörn', 'Aríel', 'Aríus', 'Arnald', 'Arnaldur', 'Arnar', 'Arnberg', 'Arnbergur', 'Arnbjörn', 'Arndór', 'Arnes', 'Arnfinnur', 'Arnfreyr', 'Arngeir', 'Arngils', 'Arngrímur', 'Arnkell', 'Arnlaugur', 'Arnleifur', 'Arnljótur', 'Arnmóður', 'Arnmundur', 'Arnoddur', 'Arnold', 'Arnór', 'Arnsteinn', 'Arnúlfur', 'Arnviður', 'Arnþór', 'Aron', 'Arthur', 'Arthúr', 'Artúr', 'Asael', 'Askur', 'Aspar', 'Atlas', 'Atli', 'Auðbergur', 'Auðbert', 'Auðbjörn', 'Auðgeir', 'Auðkell', 'Auðmundur', 'Auðólfur', 'Auðun', 'Auðunn', 'Austar', 'Austmann', 'Austmar', 'Austri', 'Axel', 'Ágúst', 'Áki', 'Álfar', 'Álfgeir', 'Álfgrímur', 'Álfur', 'Álfþór', 'Ámundi', 'Árbjartur', 'Árbjörn', 'Árelíus', 'Árgeir', 'Árgils', 'Ármann', 'Árni', 'Ársæll', 'Ás', 'Ásberg', 'Ásbergur', 'Ásbjörn', 'Ásgautur', 'Ásgeir', 'Ásgils', 'Ásgrímur', 'Ási', 'Áskell', 'Áslaugur', 'Áslákur', 'Ásmar', 'Ásmundur', 'Ásólfur', 'Ásröður', 'Ástbjörn', 'Ástgeir', 'Ástmar', 'Ástmundur', 'Ástráður', 'Ástríkur', 'Ástvald', 'Ástvaldur', 'Ástvar', 'Ástvin', 'Ástþór', 'Ásvaldur', 'Ásvarður', 'Ásþór', 'Baldur', 'Baldvin', 'Baldwin', 'Baltasar', 'Bambi', 'Barði', 'Barri', 'Bassi', 'Bastían', 'Baugur', 'Bárður', 'Beinir', 'Beinteinn', 'Beitir', 'Bekan', 'Benedikt', 'Benidikt', 'Benjamín', 'Benoný', 'Benóní', 'Benóný', 'Bent', 'Berent', 'Berg', 'Bergfinnur', 'Berghreinn', 'Bergjón', 'Bergmann', 'Bergmar', 'Bergmundur', 'Bergsteinn', 'Bergsveinn', 'Bergur', 'Bergvin', 'Bergþór', 'Bernhard', 'Bernharð', 'Bernharður', 'Berni', 'Bernódus', 'Bersi', 'Bertel', 'Bertram', 'Bessi', 'Betúel', 'Bill', 'Birgir', 'Birkir', 'Birnir', 'Birtingur', 'Birtir', 'Bjargar', 'Bjargmundur', 'Bjargþór', 'Bjarkan', 'Bjarkar', 'Bjarki', 'Bjarmar', 'Bjarmi', 'Bjarnar', 'Bjarnfinnur', 'Bjarnfreður', 'Bjarnharður', 'Bjarnhéðinn', 'Bjarni', 'Bjarnlaugur', 'Bjarnleifur', 'Bjarnólfur', 'Bjarnsteinn', 'Bjarnþór', 'Bjartmann', 'Bjartmar', 'Bjartur', 'Bjartþór', 'Bjólan', 'Bjólfur', 'Björgmundur', 'Björgólfur', 'Björgúlfur', 'Björgvin', 'Björn', 'Björnólfur', 'Blængur', 'Blær', 'Blævar', 'Boði', 'Bogi', 'Bolli', 'Borgar', 'Borgúlfur', 'Borgþór', 'Bóas', 'Bói', 'Bótólfur', 'Bragi', 'Brandur', 'Breki', 'Bresi', 'Brestir', 'Brimar', 'Brimi', 'Brimir', 'Brími', 'Brjánn', 'Broddi', 'Bruno', 'Bryngeir', 'Brynjar', 'Brynjólfur', 'Brynjúlfur', 'Brynleifur', 'Brynsteinn', 'Bryntýr', 'Brynþór', 'Burkni', 'Búi', 'Búri', 'Bæring', 'Bæringur', 'Bæron', 'Böðvar', 'Börkur', 'Carl', 'Cecil', 'Christian', 'Christopher', 'Cýrus', 'Daði', 'Dagbjartur', 'Dagfari', 'Dagfinnur', 'Daggeir', 'Dagmann', 'Dagnýr', 'Dagur', 'Dagþór', 'Dalbert', 'Dalli', 'Dalmann', 'Dalmar', 'Dalvin', 'Damjan', 'Dan', 'Danelíus', 'Daniel', 'Danival', 'Daníel', 'Daníval', 'Dante', 'Daríus', 'Darri', 'Davíð', 'Demus', 'Deníel', 'Dennis', 'Diðrik', 'Díómedes', 'Dofri', 'Dolli', 'Dominik', 'Dómald', 'Dómaldi', 'Dómaldur', 'Dónald', 'Dónaldur', 'Dór', 'Dóri', 'Dósóþeus', 'Draupnir', 'Dreki', 'Drengur', 'Dufgus', 'Dufþakur', 'Dugfús', 'Dúi', 'Dúnn', 'Dvalinn', 'Dýri', 'Dýrmundur', 'Ebbi', 'Ebeneser', 'Ebenezer', 'Eberg', 'Edgar', 'Edilon', 'Edílon', 'Edvard', 'Edvin', 'Edward', 'Eðvald', 'Eðvar', 'Eðvarð', 'Efraím', 'Eggert', 'Eggþór', 'Egill', 'Eiðar', 'Eiður', 'Eikar', 'Eilífur', 'Einar', 'Einir', 'Einvarður', 'Einþór', 'Eiríkur', 'Eivin', 'Elberg', 'Elbert', 'Eldar', 'Eldgrímur', 'Eldjárn', 'Eldmar', 'Eldon', 'Eldór', 'Eldur', 'Elentínus', 'Elfar', 'Elfráður', 'Elimar', 'Elinór', 'Elis', 'Elí', 'Elías', 'Elíeser', 'Elímar', 'Elínbergur', 'Elínmundur', 'Elínór', 'Elís', 'Ellert', 'Elli', 'Elliði', 'Ellís', 'Elmar', 'Elvar', 'Elvin', 'Elvis', 'Emanúel', 'Embrek', 'Emerald', 'Emil', 'Emmanúel', 'Engilbert', 'Engilbjartur', 'Engiljón', 'Engill', 'Enok', 'Eric', 'Erik', 'Erlar', 'Erlendur', 'Erling', 'Erlingur', 'Ernestó', 'Ernir', 'Ernst', 'Eron', 'Erpur', 'Esekíel', 'Esjar', 'Esra', 'Estefan', 'Evald', 'Evan', 'Evert', 'Eyberg', 'Eyjólfur', 'Eylaugur', 'Eyleifur', 'Eymar', 'Eymundur', 'Eyríkur', 'Eysteinn', 'Eyvar', 'Eyvindur', 'Eyþór', 'Fabrisíus', 'Falgeir', 'Falur', 'Fannar', 'Fannberg', 'Fanngeir', 'Fáfnir', 'Fálki', 'Felix', 'Fengur', 'Fenrir', 'Ferdinand', 'Ferdínand', 'Fertram', 'Feykir', 'Filip', 'Filippus', 'Finn', 'Finnbjörn', 'Finnbogi', 'Finngeir', 'Finnjón', 'Finnlaugur', 'Finnur', 'Finnvarður', 'Fífill', 'Fjalar', 'Fjarki', 'Fjólar', 'Fjólmundur', 'Fjölnir', 'Fjölvar', 'Fjörnir', 'Flemming', 'Flosi', 'Flóki', 'Flórent', 'Flóvent', 'Forni', 'Fossmar', 'Fólki', 'Francis', 'Frank', 'Franklín', 'Frans', 'Franz', 'Fránn', 'Frár', 'Freybjörn', 'Freygarður', 'Freymar', 'Freymóður', 'Freymundur', 'Freyr', 'Freysteinn', 'Freyviður', 'Freyþór', 'Friðberg', 'Friðbergur', 'Friðbert', 'Friðbjörn', 'Friðfinnur', 'Friðgeir', 'Friðjón', 'Friðlaugur', 'Friðleifur', 'Friðmann', 'Friðmar', 'Friðmundur', 'Friðrik', 'Friðsteinn', 'Friður', 'Friðvin', 'Friðþjófur', 'Friðþór', 'Friedrich', 'Fritz', 'Frímann', 'Frosti', 'Fróði', 'Fróðmar', 'Funi', 'Fúsi', 'Fylkir', 'Gabriel', 'Gabríel', 'Gael', 'Galdur', 'Gamalíel', 'Garðar', 'Garibaldi', 'Garpur', 'Garri', 'Gaui', 'Gaukur', 'Gauti', 'Gautrekur', 'Gautur', 'Gautviður', 'Geir', 'Geirarður', 'Geirfinnur', 'Geirharður', 'Geirhjörtur', 'Geirhvatur', 'Geiri', 'Geirlaugur', 'Geirleifur', 'Geirmundur', 'Geirólfur', 'Geirröður', 'Geirtryggur', 'Geirvaldur', 'Geirþjófur', 'Geisli', 'Gellir', 'Georg', 'Gerald', 'Gerðar', 'Geri', 'Gestur', 'Gilbert', 'Gilmar', 'Gils', 'Gissur', 'Gizur', 'Gídeon', 'Gígjar', 'Gísli', 'Gjúki', 'Glói', 'Glúmur', 'Gneisti', 'Gnúpur', 'Gnýr', 'Goði', 'Goðmundur', 'Gottskálk', 'Gottsveinn', 'Gói', 'Grani', 'Grankell', 'Gregor', 'Greipur', 'Greppur', 'Gretar', 'Grettir', 'Grétar', 'Grímar', 'Grímkell', 'Grímlaugur', 'Grímnir', 'Grímólfur', 'Grímur', 'Grímúlfur', 'Guðberg', 'Guðbergur', 'Guðbjarni', 'Guðbjartur', 'Guðbjörn', 'Guðbrandur', 'Guðfinnur', 'Guðfreður', 'Guðgeir', 'Guðjón', 'Guðlaugur', 'Guðleifur', 'Guðleikur', 'Guðmann', 'Guðmar', 'Guðmon', 'Guðmundur', 'Guðni', 'Guðráður', 'Guðröður', 'Guðsteinn', 'Guðvarður', 'Guðveigur', 'Guðvin', 'Guðþór', 'Gumi', 'Gunnar', 'Gunnberg', 'Gunnbjörn', 'Gunndór', 'Gunngeir', 'Gunnhallur', 'Gunnlaugur', 'Gunnleifur', 'Gunnólfur', 'Gunnóli', 'Gunnröður', 'Gunnsteinn', 'Gunnvaldur', 'Gunnþór', 'Gustav', 'Gutti', 'Guttormur', 'Gústaf', 'Gústav', 'Gylfi', 'Gyrðir', 'Gýgjar', 'Gýmir', 'Haddi', 'Haddur', 'Hafberg', 'Hafgrímur', 'Hafliði', 'Hafnar', 'Hafni', 'Hafsteinn', 'Hafþór', 'Hagalín', 'Hagbarður', 'Hagbert', 'Haki', 'Hallberg', 'Hallbjörn', 'Halldór', 'Hallfreður', 'Hallgarður', 'Hallgeir', 'Hallgils', 'Hallgrímur', 'Hallkell', 'Hallmann', 'Hallmar', 'Hallmundur', 'Hallsteinn', 'Hallur', 'Hallvarður', 'Hallþór', 'Hamar', 'Hannes', 'Hannibal', 'Hans', 'Harald', 'Haraldur', 'Harri', 'Harry', 'Harrý', 'Hartmann', 'Hartvig', 'Hauksteinn', 'Haukur', 'Haukvaldur', 'Hákon', 'Háleygur', 'Hálfdan', 'Hálfdán', 'Hámundur', 'Hárekur', 'Hárlaugur', 'Hásteinn', 'Hávar', 'Hávarður', 'Hávarr', 'Hávarr', 'Heiðar', 'Heiðarr', 'Heiðberg', 'Heiðbert', 'Heiðlindur', 'Heiðmann', 'Heiðmar', 'Heiðmundur', 'Heiðrekur', 'Heikir', 'Heilmóður', 'Heimir', 'Heinrekur', 'Heisi', 'Hektor', 'Helgi', 'Helmút', 'Hemmert', 'Hendrik', 'Henning', 'Henrik', 'Henry', 'Henrý', 'Herbert', 'Herbjörn', 'Herfinnur', 'Hergeir', 'Hergill', 'Hergils', 'Herjólfur', 'Herlaugur', 'Herleifur', 'Herluf', 'Hermann', 'Hermóður', 'Hermundur', 'Hersir', 'Hersteinn', 'Hersveinn', 'Hervar', 'Hervarður', 'Hervin', 'Héðinn', 'Hilaríus', 'Hilbert', 'Hildar', 'Hildibergur', 'Hildibrandur', 'Hildigeir', 'Hildiglúmur', 'Hildimar', 'Hildimundur', 'Hildingur', 'Hildir', 'Hildiþór', 'Hilmar', 'Hilmir', 'Himri', 'Hinrik', 'Híram', 'Hjallkár', 'Hjalti', 'Hjarnar', 'Hjálmar', 'Hjálmgeir', 'Hjálmtýr', 'Hjálmur', 'Hjálmþór', 'Hjörleifur', 'Hjörtur', 'Hjörtþór', 'Hjörvar', 'Hleiðar', 'Hlégestur', 'Hlér', 'Hlini', 'Hlíðar', 'Hlíðberg', 'Hlífar', 'Hljómur', 'Hlynur', 'Hlöðmundur', 'Hlöður', 'Hlöðvarður', 'Hlöðver', 'Hnefill', 'Hnikar', 'Hnikarr', 'Holgeir', 'Holger', 'Holti', 'Hólm', 'Hólmar', 'Hólmbert', 'Hólmfastur', 'Hólmgeir', 'Hólmgrímur', 'Hólmkell', 'Hólmsteinn', 'Hólmþór', 'Hóseas', 'Hrafn', 'Hrafnar', 'Hrafnbergur', 'Hrafnkell', 'Hrafntýr', 'Hrannar', 'Hrappur', 'Hraunar', 'Hreggviður', 'Hreiðar', 'Hreiðmar', 'Hreimur', 'Hreinn', 'Hringur', 'Hrímnir', 'Hrollaugur', 'Hrolleifur', 'Hróaldur', 'Hróar', 'Hróbjartur', 'Hróðgeir', 'Hróðmar', 'Hróðólfur', 'Hróðvar', 'Hrói', 'Hrólfur', 'Hrómundur', 'Hrútur', 'Hrærekur', 'Hugberg', 'Hugi', 'Huginn', 'Hugleikur', 'Hugo', 'Hugó', 'Huldar', 'Huxley', 'Húbert', 'Húgó', 'Húmi', 'Húnbogi', 'Húni', 'Húnn', 'Húnröður', 'Hvannar', 'Hyltir', 'Hylur', 'Hængur', 'Hænir', 'Höður', 'Högni', 'Hörður', 'Höskuldur', 'Illugi', 'Immanúel', 'Indriði', 'Ingberg', 'Ingi', 'Ingiberg', 'Ingibergur', 'Ingibert', 'Ingibjartur', 'Ingibjörn', 'Ingileifur', 'Ingimagn', 'Ingimar', 'Ingimundur', 'Ingivaldur', 'Ingiþór', 'Ingjaldur', 'Ingmar', 'Ingólfur', 'Ingvaldur', 'Ingvar', 'Ingvi', 'Ingþór', 'Ismael', 'Issi', 'Ían', 'Ígor', 'Ími', 'Ísak', 'Ísar', 'Ísarr', 'Ísbjörn', 'Íseldur', 'Ísgeir', 'Ísidór', 'Ísleifur', 'Ísmael', 'Ísmar', 'Ísólfur', 'Ísrael', 'Ívan', 'Ívar', 'Jack', 'Jafet', 'Jaki', 'Jakob', 'Jakop', 'Jamil', 'Jan', 'Janus', 'Jarl', 'Jason', 'Járngrímur', 'Játgeir', 'Játmundur', 'Játvarður', 'Jenni', 'Jens', 'Jeremías', 'Jes', 'Jesper', 'Jochum', 'Johan', 'John', 'Joshua', 'Jóakim', 'Jóann', 'Jóel', 'Jóhann', 'Jóhannes', 'Jói', 'Jómar', 'Jómundur', 'Jón', 'Jónar', 'Jónas', 'Jónatan', 'Jónbjörn', 'Jóndór', 'Jóngeir', 'Jónmundur', 'Jónsteinn', 'Jónþór', 'Jósafat', 'Jósavin', 'Jósef', 'Jósep', 'Jósteinn', 'Jósúa', 'Jóvin', 'Julian', 'Júlí', 'Júlían', 'Júlíus', 'Júní', 'Júníus', 'Júrek', 'Jökull', 'Jörfi', 'Jörgen', 'Jörmundur', 'Jörri', 'Jörundur', 'Jörvar', 'Jörvi', 'Kaj', 'Kakali', 'Kaktus', 'Kaldi', 'Kaleb', 'Kali', 'Kalman', 'Kalmann', 'Kalmar', 'Kaprasíus', 'Karel', 'Karim', 'Karkur', 'Karl', 'Karles', 'Karli', 'Karvel', 'Kaspar', 'Kasper', 'Kastíel', 'Katarínus', 'Kató', 'Kár', 'Kári', 'Keran', 'Ketilbjörn', 'Ketill', 'Kilían', 'Kiljan', 'Kjalar', 'Kjallakur', 'Kjaran', 'Kjartan', 'Kjarval', 'Kjárr', 'Kjói', 'Klemens', 'Klemenz', 'Klængur', 'Knútur', 'Knörr', 'Koðrán', 'Koggi', 'Kolbeinn', 'Kolbjörn', 'Kolfinnur', 'Kolgrímur', 'Kolmar', 'Kolskeggur', 'Kolur', 'Kolviður', 'Konráð', 'Konstantínus', 'Kormákur', 'Kornelíus', 'Kort', 'Kópur', 'Kraki', 'Kris', 'Kristall', 'Kristberg', 'Kristbergur', 'Kristbjörn', 'Kristdór', 'Kristens', 'Krister', 'Kristfinnur', 'Kristgeir', 'Kristian', 'Kristinn', 'Kristján', 'Kristjón', 'Kristlaugur', 'Kristleifur', 'Kristmann', 'Kristmar', 'Kristmundur', 'Kristofer', 'Kristófer', 'Kristvaldur', 'Kristvarður', 'Kristvin', 'Kristþór', 'Krummi', 'Kveldúlfur', 'Lambert', 'Lars', 'Laufar', 'Laugi', 'Lauritz', 'Lár', 'Lárent', 'Lárentíus', 'Lárus', 'Leiðólfur', 'Leif', 'Leifur', 'Leiknir', 'Leo', 'Leon', 'Leonard', 'Leonhard', 'Leó', 'Leópold', 'Leví', 'Lér', 'Liljar', 'Lindar', 'Lindberg', 'Línberg', 'Líni', 'Ljósálfur', 'Ljótur', 'Ljúfur', 'Loðmundur', 'Loftur', 'Logi', 'Loki', 'Lórens', 'Lórenz', 'Ludvig', 'Lundi', 'Lúðvíg', 'Lúðvík', 'Lúkas', 'Lúter', 'Lúther', 'Lyngar', 'Lýður', 'Lýtingur', 'Maggi', 'Magngeir', 'Magni', 'Magnús', 'Magnþór', 'Makan', 'Manfred', 'Manfreð', 'Manúel', 'Mar', 'Marbjörn', 'Marel', 'Margeir', 'Margrímur', 'Mari', 'Marijón', 'Marinó', 'Marías', 'Marínó', 'Marís', 'Maríus', 'Marjón', 'Markó', 'Markús', 'Markþór', 'Maron', 'Marri', 'Mars', 'Marsellíus', 'Marteinn', 'Marten', 'Marthen', 'Martin', 'Marvin', 'Mathías', 'Matthías', 'Matti', 'Mattías', 'Max', 'Maximus', 'Máni', 'Már', 'Márus', 'Mekkinó', 'Melkíor', 'Melkólmur', 'Melrakki', 'Mensalder', 'Merkúr', 'Methúsalem', 'Metúsalem', 'Meyvant', 'Michael', 'Mikael', 'Mikjáll', 'Mikkael', 'Mikkel', 'Mildinberg', 'Mías', 'Mímir', 'Míó', 'Mír', 'Mjöllnir', 'Mjölnir', 'Moli', 'Morgan', 'Moritz', 'Mosi', 'Móði', 'Móri', 'Mórits', 'Móses', 'Muggur', 'Muni', 'Muninn', 'Múli', 'Myrkvi', 'Mýrkjartan', 'Mörður', 'Narfi', 'Natan', 'Natanael', 'Nataníel', 'Náttmörður', 'Náttúlfur', 'Neisti', 'Nenni', 'Neptúnus', 'Nicolas', 'Nikanor', 'Nikolai', 'Nikolas', 'Nikulás', 'Nils', 'Níels', 'Níls', 'Njáll', 'Njörður', 'Nonni', 'Norbert', 'Norðmann', 'Normann', 'Nóam', 'Nóel', 'Nói', 'Nóni', 'Nóri', 'Nóvember', 'Númi', 'Nývarð', 'Nökkvi', 'Oddbergur', 'Oddbjörn', 'Oddfreyr', 'Oddgeir', 'Oddi', 'Oddkell', 'Oddleifur', 'Oddmar', 'Oddsteinn', 'Oddur', 'Oddvar', 'Oddþór', 'Oktavíus', 'Októ', 'Októvíus', 'Olaf', 'Olav', 'Olgeir', 'Oliver', 'Olivert', 'Orfeus', 'Ormar', 'Ormur', 'Orri', 'Orvar', 'Otkell', 'Otri', 'Otti', 'Ottó', 'Otur', 'Óðinn', 'Ófeigur', 'Ólafur', 'Óli', 'Óliver', 'Ólíver', 'Ómar', 'Ómi', 'Óskar', 'Ósvald', 'Ósvaldur', 'Ósvífur', 'Óttar', 'Óttarr', 'Parmes', 'Patrek', 'Patrekur', 'Patrick', 'Patrik', 'Páll', 'Pálmar', 'Pálmi', 'Pedró', 'Per', 'Peter', 'Pétur', 'Pjetur', 'Príor', 'Rafael', 'Rafn', 'Rafnar', 'Rafnkell', 'Ragnar', 'Ragúel', 'Randver', 'Rannver', 'Rasmus', 'Ráðgeir', 'Ráðvarður', 'Refur', 'Reginbaldur', 'Reginn', 'Reidar', 'Reifnir', 'Reimar', 'Reinar', 'Reinhart', 'Reinhold', 'Reynald', 'Reynar', 'Reynir', 'Reyr', 'Richard', 'Rikharð', 'Rikharður', 'Ríkarður', 'Ríkharð', 'Ríkharður', 'Ríó', 'Robert', 'Rolf', 'Ronald', 'Róbert', 'Rólant', 'Róman', 'Rómeó', 'Rósant', 'Rósar', 'Rósberg', 'Rósenberg', 'Rósi', 'Rósinberg', 'Rósinkar', 'Rósinkrans', 'Rósmann', 'Rósmundur', 'Rudolf', 'Runi', 'Runólfur', 'Rúbar', 'Rúben', 'Rúdólf', 'Rúnar', 'Rúrik', 'Rútur', 'Röðull', 'Rögnvald', 'Rögnvaldur', 'Rögnvar', 'Rökkvi', 'Safír', 'Sakarías', 'Salmann', 'Salmar', 'Salómon', 'Salvar', 'Samson', 'Samúel', 'Sandel', 'Sandri', 'Sandur', 'Saxi', 'Sebastian', 'Sebastían', 'Seifur', 'Seimur', 'Sesar', 'Sesil', 'Sigbergur', 'Sigbert', 'Sigbjartur', 'Sigbjörn', 'Sigdór', 'Sigfastur', 'Sigfinnur', 'Sigfreður', 'Sigfús', 'Siggeir', 'Sighvatur', 'Sigjón', 'Siglaugur', 'Sigmann', 'Sigmar', 'Sigmundur', 'Signar', 'Sigri', 'Sigríkur', 'Sigsteinn', 'Sigtryggur', 'Sigtýr', 'Sigur', 'Sigurbaldur', 'Sigurberg', 'Sigurbergur', 'Sigurbjarni', 'Sigurbjartur', 'Sigurbjörn', 'Sigurbrandur', 'Sigurdór', 'Sigurður', 'Sigurfinnur', 'Sigurgeir', 'Sigurgestur', 'Sigurgísli', 'Sigurgrímur', 'Sigurhans', 'Sigurhjörtur', 'Sigurjón', 'Sigurkarl', 'Sigurlaugur', 'Sigurlás', 'Sigurleifur', 'Sigurliði', 'Sigurlinni', 'Sigurmann', 'Sigurmar', 'Sigurmon', 'Sigurmundur', 'Sigurnýas', 'Sigurnýjas', 'Siguroddur', 'Siguróli', 'Sigurpáll', 'Sigursteinn', 'Sigursveinn', 'Sigurvaldi', 'Sigurvin', 'Sigurþór', 'Sigvaldi', 'Sigvarður', 'Sigþór', 'Silli', 'Sindri', 'Símon', 'Sírnir', 'Sírus', 'Sívar', 'Sjafnar', 'Skafti', 'Skapti', 'Skarphéðinn', 'Skefill', 'Skeggi', 'Skíði', 'Skírnir', 'Skjöldur', 'Skorri', 'Skuggi', 'Skúli', 'Skúta', 'Skær', 'Skæringur', 'Smári', 'Smiður', 'Smyrill', 'Snjóki', 'Snjólaugur', 'Snjólfur', 'Snorri', 'Snæbjartur', 'Snæbjörn', 'Snæhólm', 'Snælaugur', 'Snær', 'Snæringur', 'Snævar', 'Snævarr', 'Snæþór', 'Soffanías', 'Sophanías', 'Sophus', 'Sófónías', 'Sófus', 'Sókrates', 'Sólberg', 'Sólbergur', 'Sólbjartur', 'Sólbjörn', 'Sólimann', 'Sólmar', 'Sólmundur', 'Sólon', 'Sólver', 'Sólvin', 'Spartakus', 'Sporði', 'Spói', 'Stanley', 'Stapi', 'Starkaður', 'Starri', 'Stefan', 'Stefán', 'Stefnir', 'Steinar', 'Steinarr', 'Steinberg', 'Steinbergur', 'Steinbjörn', 'Steindór', 'Steinfinnur', 'Steingrímur', 'Steini', 'Steinkell', 'Steinmann', 'Steinmar', 'Steinmóður', 'Steinn', 'Steinólfur', 'Steinröður', 'Steinvarður', 'Steinþór', 'Stirnir', 'Stígur', 'Stormur', 'Stórólfur', 'Sturla', 'Sturlaugur', 'Sturri', 'Styr', 'Styrbjörn', 'Styrkár', 'Styrmir', 'Styrr', 'Sumarliði', 'Svafar', 'Svali', 'Svan', 'Svanberg', 'Svanbergur', 'Svanbjörn', 'Svangeir', 'Svanhólm', 'Svani', 'Svanlaugur', 'Svanmundur', 'Svanur', 'Svanþór', 'Svavar', 'Sváfnir', 'Sveinar', 'Sveinberg', 'Sveinbjartur', 'Sveinbjörn', 'Sveinjón', 'Sveinlaugur', 'Sveinmar', 'Sveinn', 'Sveinungi', 'Sveinþór', 'Svend', 'Sverre', 'Sverrir', 'Svölnir', 'Svörfuður', 'Sýrus', 'Sæberg', 'Sæbergur', 'Sæbjörn', 'Sæi', 'Sælaugur', 'Sæmann', 'Sæmundur', 'Sær', 'Sævald', 'Sævaldur', 'Sævar', 'Sævarr', 'Sævin', 'Sæþór', 'Sölmundur', 'Sölvar', 'Sölvi', 'Sören', 'Sörli', 'Tandri', 'Tarfur', 'Teitur', 'Theodór', 'Theódór', 'Thomas', 'Thor', 'Thorberg', 'Thór', 'Tindar', 'Tindri', 'Tindur', 'Tinni', 'Tími', 'Tímon', 'Tímoteus', 'Tímóteus', 'Tístran', 'Tjaldur', 'Tjörfi', 'Tjörvi', 'Tobías', 'Tolli', 'Tonni', 'Torfi', 'Tóbías', 'Tói', 'Tóki', 'Tómas', 'Tór', 'Trausti', 'Tristan', 'Trostan', 'Trúmann', 'Tryggvi', 'Tumas', 'Tumi', 'Tyrfingur', 'Týr', 'Ubbi', 'Uggi', 'Ulrich', 'Uni', 'Unnar', 'Unnbjörn', 'Unndór', 'Unnsteinn', 'Unnþór', 'Urðar', 'Uxi', 'Úddi', 'Úlfar', 'Úlfgeir', 'Úlfhéðinn', 'Úlfkell', 'Úlfljótur', 'Úlftýr', 'Úlfur', 'Úlrik', 'Úranus', 'Vagn', 'Vakur', 'Valberg', 'Valbergur', 'Valbjörn', 'Valbrandur', 'Valdemar', 'Valdi', 'Valdimar', 'Valdór', 'Valentín', 'Valentínus', 'Valgarð', 'Valgarður', 'Valgeir', 'Valíant', 'Vallaður', 'Valmar', 'Valmundur', 'Valsteinn', 'Valter', 'Valtýr', 'Valur', 'Valves', 'Valþór', 'Varmar', 'Vatnar', 'Váli', 'Vápni', 'Veigar', 'Veigur', 'Ver', 'Vermundur', 'Vernharð', 'Vernharður', 'Vestar', 'Vestmar', 'Veturliði', 'Vébjörn', 'Végeir', 'Vékell', 'Vélaugur', 'Vémundur', 'Vésteinn', 'Victor', 'Viðar', 'Vigfús', 'Viggó', 'Vignir', 'Vigri', 'Vigtýr', 'Vigur', 'Vikar', 'Viktor', 'Vilberg', 'Vilbergur', 'Vilbert', 'Vilbjörn', 'Vilbogi', 'Vilbrandur', 'Vilgeir', 'Vilhelm', 'Vilhjálmur', 'Vili', 'Viljar', 'Vilji', 'Villi', 'Vilmar', 'Vilmundur', 'Vincent', 'Vinjar', 'Virgill', 'Víðar', 'Víðir', 'Vífill', 'Víglundur', 'Vígmar', 'Vígmundur', 'Vígsteinn', 'Vígþór', 'Víkingur', 'Vopni', 'Vorm', 'Vöggur', 'Völundur', 'Vörður', 'Vöttur', 'Walter', 'Werner', 'Wilhelm', 'Willard', 'William', 'Willum', 'Ylur', 'Ymir', 'Yngvar', 'Yngvi', 'Yrkill', 'Ýmir', 'Ýrar', 'Zakaría', 'Zakarías', 'Zophanías', 'Zophonías', 'Zóphanías', 'Zóphonías', 'Þangbrandur', 'Þengill', 'Þeyr', 'Þiðrandi', 'Þiðrik', 'Þinur', 'Þjálfi', 'Þjóðann', 'Þjóðbjörn', 'Þjóðgeir', 'Þjóðleifur', 'Þjóðmar', 'Þjóðólfur', 'Þjóðrekur', 'Þjóðvarður', 'Þjóstar', 'Þjóstólfur', 'Þorberg', 'Þorbergur', 'Þorbjörn', 'Þorbrandur', 'Þorfinnur', 'Þorgarður', 'Þorgautur', 'Þorgeir', 'Þorgestur', 'Þorgils', 'Þorgísl', 'Þorgnýr', 'Þorgrímur', 'Þorkell', 'Þorlaugur', 'Þorlákur', 'Þorleifur', 'Þorleikur', 'Þormar', 'Þormóður', 'Þormundur', 'Þorri', 'Þorsteinn', 'Þorvaldur', 'Þorvar', 'Þorvarður', 'Þór', 'Þórar', 'Þórarinn', 'Þórbergur', 'Þórbjörn', 'Þórður', 'Þórgnýr', 'Þórgrímur', 'Þórhaddur', 'Þórhalli', 'Þórhallur', 'Þórir', 'Þórlaugur', 'Þórleifur', 'Þórlindur', 'Þórmar', 'Þórmundur', 'Þóroddur', 'Þórormur', 'Þórólfur', 'Þórsteinn', 'Þórörn', 'Þrastar', 'Þráinn', 'Þrándur', 'Þróttur', 'Þrúðmar', 'Þrymur', 'Þröstur', 'Þyrnir', 'Ægir', 'Æsir', 'Ævar', 'Ævarr', 'Ögmundur', 'Ögri', 'Ölnir', 'Ölver', 'Ölvir', 'Öndólfur', 'Önundur', 'Örlaugur', 'Örlygur', 'Örn', 'Örnólfur', 'Örvar', 'Össur', 'Öxar'); - - /** - * @var string Icelandic middle names. - */ - protected static $middleName = array( - 'Aðaldal', 'Aldan', 'Arnberg', 'Arnfjörð', 'Austan', 'Austdal', 'Austfjörð', 'Áss', 'Bakkdal', 'Bakkmann', 'Bald', 'Ben', 'Bergholt', 'Bergland', 'Bíldsfells', 'Bjarg', 'Bjarndal', 'Bjarnfjörð', 'Bláfeld', 'Blómkvist', 'Borgdal', 'Brekkmann', 'Brim', 'Brúnsteð', 'Dalhoff', 'Dan', 'Diljan', 'Ektavon', 'Eldberg', 'Elísberg', 'Elvan', 'Espólín', 'Eyhlíð', 'Eyvík', 'Falk', 'Finndal', 'Fossberg', 'Freydal', 'Friðhólm', 'Giljan', 'Gilsfjörð', 'Gnarr', 'Gnurr', 'Grendal', 'Grindvík', 'Gull', 'Haffjörð', 'Hafnes', 'Hafnfjörð', 'Har', 'Heimdal', 'Heimsberg', 'Helgfell', 'Herberg', 'Hildiberg', 'Hjaltdal', 'Hlíðkvist', 'Hnappdal', 'Hnífsdal', 'Hofland', 'Hofteig', 'Hornfjörð', 'Hólmberg', 'Hrafnan', 'Hrafndal', 'Hraunberg', 'Hreinberg', 'Hreindal', 'Hrútfjörð', 'Hvammdal', 'Hvítfeld', 'Höfðdal', 'Hörðdal', 'Íshólm', 'Júl', 'Kjarrval', 'Knaran', 'Knarran', 'Krossdal', 'Laufkvist', 'Laufland', 'Laugdal', 'Laxfoss', 'Liljan', 'Linddal', 'Línberg', 'Ljós', 'Loðmfjörð', 'Lyngberg', 'Magdal', 'Magg', 'Matt', 'Miðdal', 'Miðvík', 'Mjófjörð', 'Móberg', 'Mýrmann', 'Nesmann', 'Norðland', 'Núpdal', 'Ólfjörð', 'Ósland', 'Ósmann', 'Reginbald', 'Reykfell', 'Reykfjörð', 'Reynholt', 'Salberg', 'Sandhólm', 'Seljan', 'Sigurhólm', 'Skagalín', 'Skíðdal', 'Snæberg', 'Snædahl', 'Sólan', 'Stardal', 'Stein', 'Steinbekk', 'Steinberg', 'Storm', 'Straumberg', 'Svanhild', 'Svarfdal', 'Sædal', 'Val', 'Valagils', 'Vald', 'Varmdal', 'Vatnsfjörð', 'Vattar', 'Vattnes', 'Viðfjörð', 'Vídalín', 'Víking', 'Vopnfjörð', 'Yngling', 'Þor', 'Önfjörð', 'Örbekk', 'Öxdal', 'Öxndal' - ); - - /** - * Randomly return a icelandic middle name. - * - * @return string - */ - public static function middleName() - { - return static::randomElement(static::$middleName); - } - - /** - * Generate prepared last name for further processing - * - * @return string - */ - public function lastName() - { - $name = static::firstNameMale(); - - if (substr($name, -2) === 'ur') { - $name = substr($name, 0, strlen($name) - 2); - } - - if (substr($name, -1) !== 's') { - $name .= 's'; - } - - return $name; - } - - /** - * Randomly return a icelandic last name for woman. - * - * @return string - */ - public function lastNameMale() - { - return $this->lastName().'son'; - } - - /** - * Randomly return a icelandic last name for man. - * - * @return string - */ - public function lastNameFemale() - { - return $this->lastName().'dóttir'; - } - - /** - * Randomly return a icelandic Kennitala (Social Security number) format. - * - * @link http://en.wikipedia.org/wiki/Kennitala - * - * @return string - */ - public static function ssn() - { - // random birth date - $birthdate = new \DateTime('@' . mt_rand(0, time())); - - // last four buffer - $lastFour = null; - - // security variable reference - $ref = '32765432'; - - // valid flag - $valid = false; - - while (! $valid) { - // make two random numbers - $rand = static::randomDigit().static::randomDigit(); - - // 8 char string with birth date and two random numbers - $tmp = $birthdate->format('dmy').$rand; - - // loop through temp string - for ($i = 7, $sum = 0; $i >= 0; $i--) { - // calculate security variable - $sum += ($tmp[$i] * $ref[$i]); - } - - // subtract 11 if not 11 - $chk = ($sum % 11 === 0) ? 0 : (11 - ($sum % 11)); - - if ($chk < 10) { - $lastFour = $rand.$chk.substr($birthdate->format('Y'), 1, 1); - - $valid = true; - } - } - - return sprintf('%s-%s', $birthdate->format('dmy'), $lastFour); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php deleted file mode 100644 index 352d619..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function citySuffix() - { - return static::randomElement(static::$citySuffix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public static function streetSuffix() - { - return static::randomElement(static::$streetSuffix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php deleted file mode 100644 index 1000480..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php +++ /dev/null @@ -1,371 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - /** - * Return male last name - * @return string - * @example 'Vasiliauskas' - */ - public function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - /** - * Return female last name - * @return string - * @example 'Žukauskaitė' - */ - public function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } - - /** - * Return driver license number - * @return string - * @example 12345678 - */ - public function driverLicence() - { - return $this->bothify("########"); - } - - /** - * Return passport number - * @return string - * @example 12345678 - */ - public function passportNumber() - { - return $this->bothify("########"); - } - - /** - * National Personal Identity number (asmens kodas) - * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania - * @link https://lt.wikipedia.org/wiki/Asmens_kodas - * @param string [male|female] - * @param \DateTime $birthdate - * @param string $randomNumber three integers - * @return string on format XXXXXXXXXXX - */ - public function personalIdentityNumber($gender = 'male', \DateTime $birthdate = null, $randomNumber = '') - { - if (!$birthdate) { - $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury(); - } - - $genderNumber = ($gender == 'male') ? 1 : 0; - $firstNumber = (int) floor($birthdate->format('Y') / 100) * 2 - 34 - $genderNumber; - - $datePart = $birthdate->format('ymd'); - $randomDigits = (string) ( ! $randomNumber || strlen($randomNumber) < 3) ? static::numerify('###') : substr($randomNumber, 0, 3); - $partOfPerosnalCode = $firstNumber . $datePart . $randomDigits; - - $sum = self::calculateSum($partOfPerosnalCode, 1); - $liekana = $sum % 11; - - if ($liekana !== 10) { - $lastNumber = $liekana; - return $firstNumber . $datePart . $randomDigits . $lastNumber; - } - - $sum = self::calculateSum($partOfPerosnalCode, 2); - $liekana = $sum % 11; - - $lastNumber = ($liekana !== 10) ? $liekana : 0; - return $firstNumber . $datePart . $randomDigits . $lastNumber; - } - - /** - * Calculate the sum of personal code - * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania - * @link https://lt.wikipedia.org/wiki/Asmens_kodas - * @param string $numbers - * @param int $time [1|2] - * @return int - */ - private static function calculateSum($numbers, $time = 1) - { - if ($time == 1) { - $multipliers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 1 ); - } else { - $multipliers = array(3, 4, 5, 6, 7, 8, 9, 1, 2, 3 ); - } - - $sum = 0; - for ($i=1; $i <= 10; $i++) { - $sum += $numbers[$i-1] * $multipliers[$i-1]; - } - - return (int) $sum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php deleted file mode 100644 index 26d5853..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ - Townships - * @link https://en.wikipedia.org/wiki/Template:Johor > Townships - * @link https://en.wikipedia.org/wiki/Template:Kedah > Townships - * @link https://en.wikipedia.org/wiki/Template:Kelantan > Townships - * @link https://en.wikipedia.org/wiki/Template:Melaka > Townships - * @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships - * @link https://en.wikipedia.org/wiki/Template:Perak > Townships - * @link https://en.wikipedia.org/wiki/Template:Penang > Townships - * @link https://en.wikipedia.org/wiki/Template:Selangor > Townships - * @link https://en.wikipedia.org/wiki/Template:Terengganu > Townships - */ - protected static $townshipPrefix = array( - 'Alam','Apartment','Ara', - 'Bandar','Bandar','Bandar','Bandar','Bandar','Bandar', - 'Bandar Bukit','Bandar Seri','Bandar Sri','Bandar Baru','Batu','Bukit', - 'Desa','Damansara', - 'Kampung','Kampung Baru','Kampung Baru','Kondominium','Kota', - 'Laman','Lembah', - 'Medan', - 'Pandan','Pangsapuri','Petaling','Puncak', - 'Seri','Sri', - 'Taman','Taman','Taman','Taman','Taman','Taman', - 'Taman Desa', - ); - protected static $townshipSuffix = array( - 'Aman','Amanjaya','Anggerik','Angkasa','Antarabangsa','Awan', - 'Bahagia','Bangsar','Baru','Belakong','Bendahara','Bestari','Bintang','Brickfields', - 'Casa','Changkat','Country Heights', - 'Damansara','Damai','Dato Harun','Delima','Duta', - 'Flora', - 'Gembira','Genting', - 'Harmoni','Hartamas', - 'Impian','Indah','Intan', - 'Jasa','Jaya', - 'Keramat','Kerinchi','Kiara','Kinrara','Kuchai', - 'Laksamana', - 'Mahkota','Maluri','Manggis','Maxwell','Medan','Melawati','Menjalara','Meru','Mulia','Mutiara', - 'Pahlawan','Perdana','Pertama','Permai','Pelangi','Petaling','Pinang','Puchong','Puteri','Putra', - 'Rahman','Rahmat','Raya','Razak','Ria', - 'Saujana','Segambut','Selamat','Selatan','Semarak','Sentosa','Seputeh','Setapak','Setia Jaya','Sinar','Sungai Besi','Sungai Buaya','Sungai Long','Suria', - 'Tasik Puteri','Tengah','Timur','Tinggi','Tropika','Tun Hussein Onn','Tun Perak','Tunku', - 'Ulu','Utama','Utara', - 'Wangi', - ); - - /** - * @link https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur - * @link https://en.wikipedia.org/wiki/Template:Johor - * @link https://en.wikipedia.org/wiki/Template:Kedah - * @link https://en.wikipedia.org/wiki/Template:Kelantan - * @link https://en.wikipedia.org/wiki/Template:Labuan - * @link https://en.wikipedia.org/wiki/Template:Melaka - * @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan - * @link https://en.wikipedia.org/wiki/Template:Pahang - * @link https://en.wikipedia.org/wiki/Template:Perak - * @link https://en.wikipedia.org/wiki/Template:Perlis - * @link https://en.wikipedia.org/wiki/Template:Penang - * @link https://en.wikipedia.org/wiki/Template:Sabah - * @link https://en.wikipedia.org/wiki/Template:Sarawak - * @link https://en.wikipedia.org/wiki/Template:Selangor - * @link https://en.wikipedia.org/wiki/Template:Terengganu - */ - protected static $towns = array( - 'johor' => array( - 'Ayer Hitam', - 'Batu Pahat','Bukit Gambir','Bukit Kepong','Bukit Naning', - 'Desaru', - 'Endau', - 'Gelang Patah','Gemas Baharu', - 'Iskandar Puteri', - 'Jementah','Johor Lama','Johor Bahru', - 'Kempas','Kluang','Kota Iskandar','Kota Tinggi','Kukup','Kulai', - 'Labis ','Larkin','Layang-Layang', - 'Mersing','Muar', - 'Pagoh','Paloh','Parit Jawa','Pasir Gudang','Pekan Nanas','Permas Jaya','Pontian Kechil', - 'Renggam', - 'Segamat','Senai','Simpang Renggam','Skudai','Sri Gading', - 'Tangkak','Tebrau', - 'Ulu Tiram', - 'Yong Peng', - ), - 'kedah' => array( - 'Alor Setar', - 'Baling','Bukit Kayu Hitam', - 'Changlun', - 'Durian Burung', - 'Gurun', - 'Jitra', - 'Kepala Batas','Kuah','Kuala Kedah','Kuala Ketil','Kulim', - 'Langgar','Lunas', - 'Merbok', - 'Padang Serai','Pendang', - 'Serdang','Sintok','Sungai Petani', - 'Tawar, Baling', - 'Yan', - ), - 'kelantan' => array( - 'Bachok','Bunut Payong', - 'Dabong', - 'Gua Musang', - 'Jeli', - 'Ketereh','Kota Bharu','Kuala Krai', - 'Lojing', - 'Machang', - 'Pasir Mas','Pasir Puteh', - 'Rantau Panjang', - 'Salor', - 'Tok Bali', - 'Wakaf Bharu','Wakaf Che Yeh', - ), - 'kl' => array( - 'Ampang', - 'Bandar Tasik Selatan','Bandar Tun Razak','Bangsar','Batu','Brickfields','Bukit Bintang','Bukit Jalil','Bukit Tunku', - 'Cheras','Chow Kit', - 'Damansara Town Centre','Dang Wangi','Desa Petaling','Desa Tun Hussein Onn', - 'Jinjang', - 'Kampung Baru','Kampung Kasipillay','Kampung Pandan','Kampung Sungai Penchala','Kepong','KLCC','Kuchai Lama', - 'Lake Gardens','Lembah Pantai', - 'Medan Tuanku','Mid Valley City','Mont Kiara', - 'Pantai Dalam','Pudu', - 'Salak South','Segambut','Semarak','Sentul','Setapak','Setiawangsa','Seputeh','Sri Hartamas','Sri Petaling','Sungai Besi', - 'Taman Desa','Taman Melawati','Taman OUG','Taman Tun Dr Ismail','Taman U-Thant','Taman Wahyu','Titiwangsa','Tun Razak Exchange', - 'Wangsa Maju', - ), - 'labuan' => array( - 'Batu Manikar', - 'Kiamsam', - 'Layang-Layang', - 'Rancha-Rancha' - ), - 'melaka' => array( - 'Alor Gajah', - 'Bandaraya Melaka','Batu Berendam','Bukit Beruang','Bukit Katil', - 'Cheng', - 'Durian Tunggal', - 'Hang Tuah Jaya', - 'Jasin', - 'Klebang', - 'Lubuk China', - 'Masjid Tanah', - 'Naning', - 'Pekan Asahan', - 'Ramuan China', - 'Simpang Ampat', - 'Tanjung Bidara','Telok Mas', - 'Umbai', - ), - 'nsembilan' => array( - 'Ayer Kuning','Ampangan', - 'Bahau','Batang Benar', - 'Chembong', - 'Dangi', - 'Gemas', - 'Juasseh', - 'Kuala Pilah', - 'Labu','Lenggeng','Linggi', - 'Mantin', - 'Nilai', - 'Pajam','Pedas','Pengkalan Kempas','Port Dickson', - 'Rantau','Rompin', - 'Senawang','Seremban','Sungai Gadut', - 'Tampin','Tiroi', - ), - 'pahang' => array( - 'Bandar Tun Razak','Bentong','Brinchang','Bukit Fraser','Bukit Tinggi', - 'Chendor', - 'Gambang','Genting Highlands','Genting Sempah', - 'Jerantut', - 'Karak','Kemayan','Kota Shahbandar','Kuala Lipis','Kuala Pahang','Kuala Rompin','Kuantan', - 'Lanchang','Lubuk Paku', - 'Maran','Mengkuang','Mentakab', - 'Nenasi', - 'Panching', - 'Pekan','Penor', - 'Raub', - 'Sebertak','Sungai Lembing', - 'Tanah Rata','Tanjung Sepat','Tasik Chini','Temerloh','Teriang','Tringkap', - ), - 'penang' => array( - 'Air Itam', - 'Balik Pulau','Batu Ferringhi','Batu Kawan','Bayan Lepas','Bukit Mertajam','Butterworth', - 'Gelugor','George Town', - 'Jelutong', - 'Kepala Batas', - 'Nibong Tebal', - 'Permatang Pauh','Pulau Tikus', - 'Simpang Ampat', - 'Tanjung Bungah','Tanjung Tokong', - ), - 'perak' => array( - 'Ayer Tawar', - 'Bagan Serai','Batu Gajah','Behrang','Bidor','Bukit Gantang','Bukit Merah', - 'Changkat Jering','Chemor','Chenderiang', - 'Damar Laut', - 'Gerik','Gopeng','Gua Tempurung', - 'Hutan Melintang', - 'Ipoh', - 'Jelapang', - 'Kamunting','Kampar','Kuala Kangsar', - 'Lekir','Lenggong','Lumut', - 'Malim Nawar','Manong','Menglembu', - 'Pantai Remis','Parit','Parit Buntar','Pasir Salak','Proton City', - 'Simpang Pulai','Sitiawan','Slim River','Sungai Siput','Sungkai', - 'Taiping','Tambun','Tanjung Malim','Tanjung Rambutan','Tapah','Teluk Intan', - 'Ulu Bernam', - ), - 'perlis' => array( - 'Arau', - 'Beseri', - 'Chuping', - 'Kaki Bukit','Kangar','Kuala Perlis', - 'Mata Ayer', - 'Padang Besar', - 'Sanglang','Simpang Empat', - 'Wang Kelian', - ), - 'putrajaya' => array( - 'Precinct 1','Precinct 4','Precinct 5', - 'Precinct 6','Precinct 8','Precinct 10', - 'Precinct 11','Precinct 12','Precinct 13', - 'Precinct 16','Precinct 18','Precinct 19', - ), - 'sabah' => array( - 'Beaufort','Bingkor', - 'Donggongon', - 'Inanam', - 'Kinabatangan','Kota Belud','Kota Kinabalu','Kuala Penyu','Kimanis','Kundasang', - 'Lahad Datu','Likas','Lok Kawi', - 'Manggatal', - 'Nabawan', - 'Papar','Pitas', - 'Ranau', - 'Sandakan','Sapulut','Semporna','Sepanggar', - 'Tambunan','Tanjung Aru','Tawau','Tenom','Tuaran', - 'Weston', - ), - 'sarawak' => array( - 'Asajaya', - 'Ba\'kelalan','Bario','Batu Kawa','Batu Niah','Betong','Bintulu', - 'Dalat','Daro', - 'Engkilili', - 'Julau', - 'Kapit','Kota Samarahan','Kuching', - 'Lawas','Limbang','Lubok Antu', - 'Marudi','Matu','Miri', - 'Oya', - 'Pakan', - 'Sadong Jaya','Sematan','Sibu','Siburan','Song','Sri Aman','Sungai Tujoh', - 'Tanjung Kidurong','Tanjung Manis','Tatau', - ), - 'selangor' => array( - 'Ampang','Assam Jawa', - 'Balakong','Bandar Baru Bangi','Bandar Baru Selayang','Bandar Sunway','Bangi','Banting','Batang Kali','Batu Caves','Bestari Jaya','Bukit Lanjan', - 'Cheras','Cyberjaya', - 'Damansara','Dengkil', - 'Ijok', - 'Jenjarom', - 'Kajang','Kelana Jaya','Klang','Kuala Kubu Bharu','Kuala Selangor','Kuang', - 'Lagong', - 'Morib', - 'Pandamaran','Paya Jaras','Petaling Jaya','Port Klang','Puchong', - 'Rasa','Rawang', - 'Salak Tinggi','Sekinchan','Selayang','Semenyih','Sepang','Serendah','Seri Kembangan','Shah Alam','Subang','Subang Jaya','Sungai Buloh', - 'Tanjung Karang','Tanjung Sepat', - 'Ulu Klang','Ulu Yam', - ), - 'terengganu' => array( - 'Ajil', - 'Bandar Ketengah Jaya','Bandar Permaisuri','Bukit Besi','Bukit Payong', - 'Chukai', - 'Jerteh', - 'Kampung Raja','Kerteh','Kijal','Kuala Besut','Kuala Berang','Kuala Dungun','Kuala Terengganu', - 'Marang','Merchang', - 'Pasir Raja', - 'Rantau Abang', - 'Teluk Kalung', - 'Wakaf Tapai', - ) - ); - - /** - * @link https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia - */ - protected static $states = array( - 'johor' => array( - 'Johor Darul Ta\'zim', - 'Johor' - ), - 'kedah' => array( - 'Kedah Darul Aman', - 'Kedah' - ), - 'kelantan' => array( - 'Kelantan Darul Naim', - 'Kelantan' - ), - 'kl' => array( - 'KL', - 'Kuala Lumpur', - 'WP Kuala Lumpur' - ), - 'labuan' => array( - 'Labuan' - ), - 'melaka' => array( - 'Malacca', - 'Melaka' - ), - 'nsembilan' => array( - 'Negeri Sembilan Darul Khusus', - 'Negeri Sembilan' - ), - 'pahang' => array( - 'Pahang Darul Makmur', - 'Pahang' - ), - 'penang' => array( - 'Penang', - 'Pulau Pinang' - ), - 'perak' => array( - 'Perak Darul Ridzuan', - 'Perak' - ), - 'perlis' => array( - 'Perlis Indera Kayangan', - 'Perlis' - ), - 'putrajaya' => array( - 'Putrajaya' - ), - 'sabah' => array( - 'Sabah' - ), - 'sarawak' => array( - 'Sarawak' - ), - 'selangor' => array( - 'Selangor Darul Ehsan', - 'Selangor' - ), - 'terengganu' => array( - 'Terengganu Darul Iman', - 'Terengganu' - ) - ); - - /** - * @link https://ms.wikipedia.org/wiki/Senarai_negara_berdaulat - */ - protected static $country = array( - 'Abkhazia','Afghanistan','Afrika Selatan','Republik Afrika Tengah','Akrotiri dan Dhekelia','Albania','Algeria','Amerika Syarikat','Andorra','Angola','Antigua dan Barbuda','Arab Saudi','Argentina','Armenia','Australia','Austria','Azerbaijan', - 'Bahamas','Bahrain','Bangladesh','Barbados','Belanda','Belarus','Belgium','Belize','Benin','Bhutan','Bolivia','Bonaire','Bosnia dan Herzegovina','Botswana','Brazil','Brunei Darussalam','Bulgaria','Burkina Faso','Burundi', - 'Cameroon','Chad','Chile','Republik Rakyat China','Republik China di Taiwan','Colombia','Comoros','Republik Demokratik Congo','Republik Congo','Kepulauan Cook','Costa Rica','Côte d\'Ivoire (Ivory Coast)','Croatia','Cuba','Curaçao','Cyprus','Republik Turki Cyprus Utara','Republik Czech', - 'Denmark','Djibouti','Dominika','Republik Dominika', - 'Ecuador','El Salvador','Emiriah Arab Bersatu','Eritrea','Estonia', - 'Kepulauan Faroe','Fiji','Filipina','Finland', - 'Gabon','Gambia','Georgia','Ghana','Grenada','Greece (Yunani)','Guatemala','Guinea','Guinea-Bissau','Guinea Khatulistiwa','Guiana Perancis','Guyana', - 'Habsyah (Etiopia)','Haiti','Honduras','Hungary', - 'Iceland','India','Indonesia','Iran','Iraq','Ireland','Israel','Itali', - 'Jamaika','Jepun','Jerman','Jordan', - 'Kanada','Kazakhstan','Kemboja','Kenya','Kiribati','Korea Selatan','Korea Utara','Kosovo','Kuwait','Kyrgyzstan', - 'Laos','Latvia','Lesotho','Liberia','Libya','Liechtenstein','Lithuania','Lubnan','Luxembourg', - 'Macedonia','Madagaskar','Maghribi','Malawi','Malaysia','Maldives','Mali','Malta','Kepulauan Marshall','Mauritania','Mauritius','Mesir','Mexico','Persekutuan Micronesia','Moldova','Monaco','Montenegro','Mongolia','Mozambique','Myanmar', - 'Namibia','Nauru','Nepal','New Zealand','Nicaragua','Niger','Nigeria','Niue','Norway', - 'Oman','Ossetia Selatan', - 'Pakistan','Palau','Palestin','Panama','Papua New Guinea','Paraguay','Perancis','Peru','Poland','Portugal', - 'Qatar', - 'Romania','Russia','Rwanda', - 'Sahara Barat','Saint Kitts dan Nevis','Saint Lucia','Saint Vincent dan Grenadines','Samoa','San Marino','São Tomé dan Príncipe','Scotland','Senegal','Sepanyol','Serbia','Seychelles','Sierra Leone','Singapura','Slovakia','Slovenia','Kepulauan Solomon','Somalia','Somaliland','Sri Lanka','Sudan','Sudan Selatan','Suriname','Swaziland','Sweden','Switzerland','Syria', - 'Tajikistan','Tanjung Verde','Tanzania','Thailand','Timor Leste','Togo','Tonga','Transnistria','Trinidad dan Tobago','Tunisia','Turki','Turkmenistan','Tuvalu', - 'Uganda','Ukraine','United Kingdom','Uruguay','Uzbekistan', - 'Vanuatu','Kota Vatican','Venezuela','Vietnam', - 'Yaman', - 'Zambia','Zimbabwe', - ); - - /** - * Return a building prefix - * - * @example 'No.' - * - * @return @string - */ - public static function buildingPrefix() - { - return static::randomElement(static::$buildingPrefix); - } - - /** - * Return a building number - * - * @example '123' - * - * @return @string - */ - public static function buildingNumber() - { - return static::toUpper(static::lexify(static::numerify(static::randomElement(static::$buildingNumber)))); - } - - /** - * Return a street prefix - * - * @example 'Jalan' - */ - public function streetPrefix() - { - $format = static::randomElement(static::$streetPrefix); - - return $this->generator->parse($format); - } - - /** - * Return a complete streename - * - * @example 'Jalan Utama 7' - * - * @return @string - */ - public function streetName() - { - $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$streetNameFormats)))); - - return $this->generator->parse($format); - } - - /** - * Return a randown township - * - * @example Taman Bahagia - * - * @return @string - */ - public function township() - { - $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$townshipFormats)))); - - return $this->generator->parse($format); - } - - /** - * Return a township prefix abbreviation - * - * @example 'USJ' - * - * @return @string - */ - public function townshipPrefixAbbr() - { - return static::randomElement(static::$townshipPrefixAbbr); - } - - /** - * Return a township prefix - * - * @example 'Taman' - * - * @return @string - */ - public function townshipPrefix() - { - return static::randomElement(static::$townshipPrefix); - } - - /** - * Return a township suffix - * - * @example 'Bahagia' - */ - public function townshipSuffix() - { - return static::randomElement(static::$townshipSuffix); - } - - /** - * Return a postcode based on state - * - * @example '55100' - * @link https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States - * - * @param null|string $state 'state' or null - * - * @return @string - */ - public static function postcode($state = null) - { - $format = array( - 'perlis' => array( // (01000 - 02800) - '0' . mt_rand(1000, 2800) - ), - 'kedah' => array( // (05000 - 09810) - '0' . mt_rand(5000, 9810) - ), - 'penang' => array( // (10000 - 14400) - mt_rand(10000, 14400) - ), - 'kelantan' => array( // (15000 - 18500) - mt_rand(15000, 18500) - ), - 'terengganu' => array( // (20000 - 24300) - mt_rand(20000, 24300) - ), - 'pahang' => array( // (25000 - 28800 | 39000 - 39200 | 49000, 69000) - mt_rand(25000, 28800), - mt_rand(39000, 39200), - mt_rand(49000, 69000) - ), - 'perak' => array( // (30000 - 36810) - mt_rand(30000, 36810) - ), - 'selangor' => array( // (40000 - 48300 | 63000 - 68100) - mt_rand(40000, 48300), - mt_rand(63000, 68100) - ), - 'kl' => array( // (50000 - 60000) - mt_rand(50000, 60000), - ), - 'putrajaya' => array( // (62000 - 62988) - mt_rand(62000, 62988) - ), - 'nsembilan' => array( // (70000 - 73509) - mt_rand(70000, 73509) - ), - 'melaka' => array( // (75000 - 78309) - mt_rand(75000, 78309) - ), - 'johor' => array( // (79000 - 86900) - mt_rand(79000, 86900) - ), - 'labuan' => array( // (87000 - 87033) - mt_rand(87000, 87033) - ), - 'sabah' => array( // (88000 - 91309) - mt_rand(88000, 91309) - ), - 'sarawak' => array( // (93000 - 98859) - mt_rand(93000, 98859) - ) - ); - - $postcode = is_null($state) ? static::randomElement($format) : $format[$state]; - return (string)static::randomElement($postcode); - } - - /** - * Return the complete town address with matching postcode and state - * - * @example 55100 Bukit Bintang, Kuala Lumpur - * - * @return @string - */ - public function townState() - { - $state = static::randomElement(array_keys(static::$states)); - $postcode = static::postcode($state); - $town = static::randomElement(static::$towns[$state]); - $state = static::randomElement(static::$states[$state]); - - return $postcode . ' ' . $town . ', ' . $state; - } - - /** - * Return a random city (town) - * - * @example 'Ampang' - * - * @return @string - */ - public function city() - { - $state = static::randomElement(array_keys(static::$towns)); - return static::randomElement(static::$towns[$state]); - } - - /** - * Return a random state - * - * @example 'Johor' - * - * @return @string - */ - public function state() - { - $state = static::randomElement(array_keys(static::$states)); - return static::randomElement(static::$states[$state]); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php deleted file mode 100644 index 0e68133..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php +++ /dev/null @@ -1,105 +0,0 @@ -generator->parse(static::randomElement($formats)); - } - - /** - * Return a Malaysian I.C. No. - * - * @example '890123-45-6789' - * - * @link https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_(NRIC) - * - * @param string|null $gender 'male', 'female' or null for any - * @param bool|string|null $hyphen true, false, or any separator characters - * - * @return string - */ - public static function myKadNumber($gender = null, $hyphen = false) - { - // year of birth - $yy = mt_rand(0, 99); - - // month of birth - $mm = DateTime::month(); - - // day of birth - $dd = DateTime::dayOfMonth(); - - // place of birth (1-59 except 17-20) - while (in_array($pb = mt_rand(1, 59), array(17, 18, 19, 20))) { - } - - // random number - $nnn = mt_rand(0, 999); - - // gender digit. Odd = MALE, Even = FEMALE - $g = mt_rand(0, 9); - //Credit: https://gist.github.com/mauris/3629548 - if ($gender === static::GENDER_MALE) { - $g = $g | 1; - } elseif ($gender === static::GENDER_FEMALE) { - $g = $g & ~1; - } - - // formatting with hyphen - if ($hyphen === true) { - $hyphen = "-"; - } elseif ($hyphen === false) { - $hyphen = ""; - } - - return sprintf("%02d%02d%02d%s%02d%s%03d%01d", $yy, $mm, $dd, $hyphen, $pb, $hyphen, $nnn, $g); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php deleted file mode 100644 index d1d8c9e..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php +++ /dev/null @@ -1,195 +0,0 @@ -format('dmy'); - - /** - * @todo These number should be random based on birth year - * @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer - */ - $randomDigits = (string)static::numerify('##'); - - switch ($gender) { - case static::GENDER_MALE: - $genderDigit = static::randomElement(array(1,3,5,7,9)); - break; - case static::GENDER_FEMALE: - $genderDigit = static::randomElement(array(0,2,4,6,8)); - break; - default: - $genderDigit = (string)static::numerify('#'); - } - - - $digits = $datePart.$randomDigits.$genderDigit; - - /** - * @todo Calculate modulo 11 of $digits - * @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer - */ - $checksum = (string)static::numerify('##'); - - - return $digits.$checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php deleted file mode 100644 index 7f2fd95..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Narodowy Bank Polski', - '102' => 'Powszechna Kasa Oszczędności Bank Polski SA', - '103' => 'Bank Handlowy w Warszawie SA', - '105' => 'ING Bank Śląski SA', - '106' => 'Bank BPH SA', - '109' => 'Bank Zachodni WBK SA', - '113' => 'Bank Gospodarstwa Krajowego', - '114' => 'mBank SA', - '116' => 'Bank Millennium SA', - '122' => 'Bank Handlowo-Kredytowy Spółka Akcyjna w Katowicach w likwidacji', - '124' => 'Bank Polska Kasa Opieki SA', - '128' => 'HSBC Bank Polska SA', - '132' => 'Bank Pocztowy SA', - '147' => 'Euro Bank SA', - '154' => 'Bank Ochrony Środowiska SA', - '158' => 'Mercedes-Benz Bank Polska SA', - '161' => 'SGB-Bank SA', - '167' => 'RBS Bank (Polska) SA', - '168' => 'PLUS BANK SA', - '175' => 'Raiffeisen Bank Polska SA', - '184' => 'Societe Generale SA Oddział w Polsce', - '187' => 'Nest Bank S.A.', - '189' => 'Pekao Bank Hipoteczny SA', - '191' => 'Deutsche Bank Polska SA', - '193' => 'BANK POLSKIEJ SPÓŁDZIELCZOŚCI SA', - '194' => 'Credit Agricole Bank Polska SA', - '195' => 'Idea Bank SA', - '203' => 'Bank BGŻ BNP Paribas SA', - '212' => 'Santander Consumer Bank SA', - '213' => 'VOLKSWAGEN BANK POLSKA SA', - '214' => 'FCA-Group Bank Polska SA', - '215' => 'mBank Hipoteczny SA', - '216' => 'Toyota Bank Polska SA', - '219' => 'DNB Bank Polska SA', - '224' => 'Banque PSA Finance SA Oddział w Polsce', - '225' => 'Svenska Handelsbanken AB SA Oddział w Polsce', - '229' => 'BPI Bank Polskich Inwestycji SA', - '232' => 'Nykredit Realkredit A/S SA - Oddział w Polsce', - '235' => 'BNP PARIBAS SA Oddział w Polsce', - '236' => 'Danske Bank A/S SA Oddział w Polsce', - '237' => 'Skandinaviska Enskilda Banken AB (SA) - Oddział w Polsce', - '239' => 'CAIXABANK, S.A. (SPÓŁKA AKCYJNA)ODDZIAŁ W POLSCE', - '241' => 'Elavon Financial Services Designated Activity Company (spółka z o.o. o wyznaczonym przedmiocie działalności) Oddział w Polsce', - '243' => 'BNP Paribas Securities Services SKA Oddział w Polsce', - '247' => 'HAITONG BANK, S.A. Spółka Akcyjna Oddział w Polsce', - '248' => 'Getin Noble Bank SA', - '249' => 'Alior Bank SA', - '251' => 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce', - '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce', - '255' => 'Ikano Bank AB (publ) Spółka Akcyjna Oddział w Polsce', - '256' => 'Nordea Bank AB SA Oddział w Polsce', - '257' => 'UBS Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', - '258' => 'J.P. Morgan Europe Limited Sp. z o.o. Oddział w Polsce', - '260' => 'Bank of China (Luxembourg) S.A. Spółka Akcyjna Oddział w Polsce', - '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', - '263' => 'Saxo Bank A/S Spółka Akcyjna Oddział w Polsce w likwidacji', - '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce', - '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce', - '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce', - '267' => 'Western Union International Bank GmbH, Sp. z o.o. Oddział w Polsce', - '269' => 'PKO Bank Hipoteczny SA', - '270' => 'TF BANK AB (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', - '271' => 'FCE Bank Spółka Akcyjna Oddział w Polsce', - '272' => 'AS Inbank Spółka Akcyjna - Oddział w Polsce', - '273' => 'China Construction Bank (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', - '274' => 'MUFG Bank (Europe) N.V. S.A. Oddział w Polsce', - '275' => 'John Deere Bank S.A. Spółka Akcyjna Oddział w Polsce', - ); - - /** - * @example 'Euro Bank SA' - */ - public static function bank() - { - return static::randomElement(static::$banks); - } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } - - protected static function addBankCodeChecksum($iban, $countryCode = 'PL') - { - if ($countryCode != 'PL' || strlen($iban) <= 8) { - return $iban; - } - $checksum = 0; - $weights = array(7, 1, 3, 9, 7, 1, 3); - for ($i = 0; $i < 7; $i++) { - $checksum += $weights[$i] * (int) $iban[$i]; - } - $checksum = $checksum % 10; - - return substr($iban, 0, 7) . $checksum . substr($iban, 8); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php deleted file mode 100644 index 7481a6f..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->numerify('#########'); - $n .= check_digit($n); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d%d.%d%d%d.%d%d%d-%d%d', str_split($n)) : $n; - } - - /** - * A random RG number, following Sao Paulo state's rules. - * @link http://pt.wikipedia.org/wiki/C%C3%A9dula_de_identidade - * @param bool $formatted If the number should have dots/dashes or not. - * @return string - */ - public function rg($formatted = true) - { - $n = $this->generator->numerify('########'); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d.%d%d%d.%d%d%d-%s', str_split($n)) : $n; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php deleted file mode 100644 index ab67db9..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php +++ /dev/null @@ -1,35 +0,0 @@ -= 12; - $verifier = 0; - - for ($i = 1; $i <= $length; $i++) { - if (!$second_algorithm) { - $multiplier = $i+1; - } else { - $multiplier = ($i >= 9)? $i-7 : $i+1; - } - $verifier += $numbers[$length-$i] * $multiplier; - } - - $verifier = 11 - ($verifier % 11); - if ($verifier >= 10) { - $verifier = 0; - } - - return $verifier; -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Internet.php deleted file mode 100644 index ce25d7d..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -userName(); - } - - public function domainWord() - { - return \Faker\Factory::create('en_US')->domainWord(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php deleted file mode 100644 index 6b1a582..0000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php +++ /dev/null @@ -1,11 +0,0 @@ -creditCardDetails($valid); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php b/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php deleted file mode 100644 index 431f765..0000000 --- a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php +++ /dev/null @@ -1,58 +0,0 @@ -unique() - */ -class UniqueGenerator -{ - protected $generator; - protected $maxRetries; - protected $uniques = array(); - - /** - * @param Generator $generator - * @param integer $maxRetries - */ - public function __construct(Generator $generator, $maxRetries = 10000) - { - $this->generator = $generator; - $this->maxRetries = $maxRetries; - } - - /** - * Catch and proxy all generator calls but return only unique values - * @param string $attribute - * @return mixed - */ - public function __get($attribute) - { - return $this->__call($attribute, array()); - } - - /** - * Catch and proxy all generator calls with arguments but return only unique values - * @param string $name - * @param array $arguments - * @return mixed - */ - public function __call($name, $arguments) - { - if (!isset($this->uniques[$name])) { - $this->uniques[$name] = array(); - } - $i = 0; - do { - $res = call_user_func_array(array($this->generator, $name), $arguments); - $i++; - if ($i > $this->maxRetries) { - throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a unique value', $this->maxRetries)); - } - } while (array_key_exists(serialize($res), $this->uniques[$name])); - $this->uniques[$name][serialize($res)]= null; - - return $res; - } -} diff --git a/vendor/psr/container/.gitignore b/vendor/psr/container/.gitignore new file mode 100644 index 0000000..b2395aa --- /dev/null +++ b/vendor/psr/container/.gitignore @@ -0,0 +1,3 @@ +composer.lock +composer.phar +/vendor/ diff --git a/vendor/psr/container/LICENSE b/vendor/psr/container/LICENSE new file mode 100644 index 0000000..2877a48 --- /dev/null +++ b/vendor/psr/container/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-2016 container-interop +Copyright (c) 2016 PHP Framework Interoperability Group + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/psr/container/README.md b/vendor/psr/container/README.md new file mode 100644 index 0000000..1b9d9e5 --- /dev/null +++ b/vendor/psr/container/README.md @@ -0,0 +1,13 @@ +Container interface +============== + +This repository holds all interfaces related to [PSR-11 (Container Interface)][psr-url]. + +Note that this is not a Container implementation of its own. It is merely abstractions that describe the components of a Dependency Injection Container. + +The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. + +[psr-url]: https://www.php-fig.org/psr/psr-11/ +[package-url]: https://packagist.org/packages/psr/container +[implementation-url]: https://packagist.org/providers/psr/container-implementation + diff --git a/vendor/psr/container/composer.json b/vendor/psr/container/composer.json new file mode 100644 index 0000000..baf6cd1 --- /dev/null +++ b/vendor/psr/container/composer.json @@ -0,0 +1,27 @@ +{ + "name": "psr/container", + "type": "library", + "description": "Common Container Interface (PHP FIG PSR-11)", + "keywords": ["psr", "psr-11", "container", "container-interop", "container-interface"], + "homepage": "https://github.com/php-fig/container", + "license": "MIT", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "require": { + "php": ">=7.4.0" + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + } +} diff --git a/vendor/psr/container/src/ContainerExceptionInterface.php b/vendor/psr/container/src/ContainerExceptionInterface.php new file mode 100644 index 0000000..0f213f2 --- /dev/null +++ b/vendor/psr/container/src/ContainerExceptionInterface.php @@ -0,0 +1,12 @@ +=8.1" + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + } +} diff --git a/vendor/symfony/deprecation-contracts/function.php b/vendor/symfony/deprecation-contracts/function.php new file mode 100644 index 0000000..2d56512 --- /dev/null +++ b/vendor/symfony/deprecation-contracts/function.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (!function_exists('trigger_deprecation')) { + /** + * Triggers a silenced deprecation notice. + * + * @param string $package The name of the Composer package that is triggering the deprecation + * @param string $version The version of the package that introduced the deprecation + * @param string $message The message of the deprecation + * @param mixed ...$args Values to insert in the message using printf() formatting + * + * @author Nicolas Grekas + */ + function trigger_deprecation(string $package, string $version, string $message, mixed ...$args): void + { + @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED); + } +} From e0581c88610de2120d621b468d615720c4d6a2af Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 8 Feb 2025 18:02:20 +0100 Subject: [PATCH 16/46] Translated using Weblate (French) Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/fr/ [ci skip] Co-authored-by: Alex Carmona --- lang/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/fr.json b/lang/fr.json index 76dd369..bbf08ea 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -17,7 +17,7 @@ "PleaseBePatient": "Générer des visites et des actions peut prendre quelques minutes.", "PluginDescription": "Crée des visites et actions de test dans Matomo. Génére des données simulées pour remplir les rapports Matomo.", "ReRunArchiveScript": "Veuillez exécuter à nouveau la tâche planifiée crontab './console core:archive' afin de rafraîchir les rapports, comme le prévoit la documentation %1$s\"Comment mettre en place l'archivage automatique de vos rapports\"%2$s", - "SelectWebsite": "Sélectionner le site Web", + "SelectWebsite": "Sélectionner le site web", "Submit": "Soumettre", "VisitorGenerator": "Générateur de visites", "Warning": "Vous êtes sur le point de générer des visites factices qui seront enregistrées dans votre base de données Matomo." From b576fd74c2378489bdf0016cb0d1f5bb6d1411ca Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 14:07:51 +1300 Subject: [PATCH 17/46] Used Rector to downgrade Faker library to PHP 7 --- vendor/fakerphp/faker/src/Faker/Container/Container.php | 7 +++++-- .../faker/src/Faker/Container/ContainerBuilder.php | 2 +- vendor/fakerphp/faker/src/Faker/Core/Barcode.php | 5 ++++- vendor/fakerphp/faker/src/Faker/Core/Blood.php | 4 ++-- vendor/fakerphp/faker/src/Faker/Core/Color.php | 9 ++++++--- vendor/fakerphp/faker/src/Faker/Core/Coordinates.php | 5 ++++- vendor/fakerphp/faker/src/Faker/Core/DateTime.php | 7 +++++-- vendor/fakerphp/faker/src/Faker/Core/File.php | 2 +- vendor/fakerphp/faker/src/Faker/Core/Uuid.php | 5 ++++- vendor/fakerphp/faker/src/Faker/Core/Version.php | 7 +++++-- vendor/fakerphp/faker/src/Faker/Provider/Base.php | 4 ++-- .../faker/src/Faker/Provider/sv_SE/PhoneNumber.php | 2 +- vendor/symfony/deprecation-contracts/function.php | 2 +- 13 files changed, 41 insertions(+), 20 deletions(-) diff --git a/vendor/fakerphp/faker/src/Faker/Container/Container.php b/vendor/fakerphp/faker/src/Faker/Container/Container.php index 9b36184..11333e7 100644 --- a/vendor/fakerphp/faker/src/Faker/Container/Container.php +++ b/vendor/fakerphp/faker/src/Faker/Container/Container.php @@ -16,9 +16,12 @@ final class Container implements ContainerInterface /** * @var array */ - private array $definitions; + private $definitions; - private array $services = []; + /** + * @var mixed[] + */ + private $services = []; /** * Create a container object with a set of definitions. The array value MUST diff --git a/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php b/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php index f2545e9..814ca8e 100644 --- a/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php +++ b/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php @@ -15,7 +15,7 @@ final class ContainerBuilder /** * @var array */ - private array $definitions = []; + private $definitions = []; /** * @param callable|object|string $definition diff --git a/vendor/fakerphp/faker/src/Faker/Core/Barcode.php b/vendor/fakerphp/faker/src/Faker/Core/Barcode.php index 4ad17e1..80b1927 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Barcode.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Barcode.php @@ -12,7 +12,10 @@ */ final class Barcode implements Extension\BarcodeExtension { - private Extension\NumberExtension $numberExtension; + /** + * @var \Faker\Extension\NumberExtension + */ + private $numberExtension; public function __construct(?Extension\NumberExtension $numberExtension = null) { diff --git a/vendor/fakerphp/faker/src/Faker/Core/Blood.php b/vendor/fakerphp/faker/src/Faker/Core/Blood.php index 03e563f..50a5806 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Blood.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Blood.php @@ -14,12 +14,12 @@ final class Blood implements Extension\BloodExtension /** * @var string[] */ - private array $bloodTypes = ['A', 'AB', 'B', 'O']; + private $bloodTypes = ['A', 'AB', 'B', 'O']; /** * @var string[] */ - private array $bloodRhFactors = ['+', '-']; + private $bloodRhFactors = ['+', '-']; public function bloodType(): string { diff --git a/vendor/fakerphp/faker/src/Faker/Core/Color.php b/vendor/fakerphp/faker/src/Faker/Core/Color.php index c6cac0d..5d82824 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Color.php @@ -12,12 +12,15 @@ */ final class Color implements Extension\ColorExtension { - private Extension\NumberExtension $numberExtension; + /** + * @var \Faker\Extension\NumberExtension + */ + private $numberExtension; /** * @var string[] */ - private array $safeColorNames = [ + private $safeColorNames = [ 'black', 'maroon', 'green', 'navy', 'olive', 'purple', 'teal', 'lime', 'blue', 'silver', 'gray', 'yellow', 'fuchsia', 'aqua', 'white', @@ -25,7 +28,7 @@ final class Color implements Extension\ColorExtension /** * @var string[] */ - private array $allColorNames = [ + private $allColorNames = [ 'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine', 'Azure', 'Beige', 'Bisque', 'Black', 'BlanchedAlmond', 'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue', diff --git a/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php b/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php index bc0678f..7b51131 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php @@ -11,7 +11,10 @@ */ final class Coordinates implements Extension\Extension { - private Extension\NumberExtension $numberExtension; + /** + * @var \Faker\Extension\NumberExtension + */ + private $numberExtension; public function __construct(?Extension\NumberExtension $numberExtension = null) { diff --git a/vendor/fakerphp/faker/src/Faker/Core/DateTime.php b/vendor/fakerphp/faker/src/Faker/Core/DateTime.php index 6e02c66..5ba519b 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/DateTime.php +++ b/vendor/fakerphp/faker/src/Faker/Core/DateTime.php @@ -19,9 +19,12 @@ final class DateTime implements DateTimeExtension, GeneratorAwareExtension /** * @var string[] */ - private array $centuries = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI']; + private $centuries = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI']; - private ?string $defaultTimezone = null; + /** + * @var string|null + */ + private $defaultTimezone; /** * Get the POSIX-timestamp of a DateTime, int or string. diff --git a/vendor/fakerphp/faker/src/Faker/Core/File.php b/vendor/fakerphp/faker/src/Faker/Core/File.php index 5151e90..adddb0c 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/File.php +++ b/vendor/fakerphp/faker/src/Faker/Core/File.php @@ -18,7 +18,7 @@ final class File implements Extension\FileExtension * * @see http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types */ - private array $mimeTypes = [ + private $mimeTypes = [ 'application/atom+xml' => 'atom', 'application/ecmascript' => 'ecma', 'application/emma+xml' => 'emma', diff --git a/vendor/fakerphp/faker/src/Faker/Core/Uuid.php b/vendor/fakerphp/faker/src/Faker/Core/Uuid.php index 4580460..0cf2cad 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Uuid.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Uuid.php @@ -9,7 +9,10 @@ */ final class Uuid implements Extension\UuidExtension { - private Extension\NumberExtension $numberExtension; + /** + * @var \Faker\Extension\NumberExtension + */ + private $numberExtension; public function __construct(?Extension\NumberExtension $numberExtension = null) { diff --git a/vendor/fakerphp/faker/src/Faker/Core/Version.php b/vendor/fakerphp/faker/src/Faker/Core/Version.php index 7c321e0..cd8b09b 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Version.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Version.php @@ -12,11 +12,14 @@ */ final class Version implements Extension\VersionExtension { - private Extension\NumberExtension $numberExtension; + /** + * @var \Faker\Extension\NumberExtension + */ + private $numberExtension; /** * @var string[] */ - private array $semverCommonPreReleaseIdentifiers = ['alpha', 'beta', 'rc']; + private $semverCommonPreReleaseIdentifiers = ['alpha', 'beta', 'rc']; public function __construct(?Extension\NumberExtension $numberExtension = null) { diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Base.php b/vendor/fakerphp/faker/src/Faker/Provider/Base.php index 6b9876b..4cfacdf 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/Base.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Base.php @@ -194,7 +194,7 @@ public static function randomElements($array = ['a', 'b', 'c'], $count = 1, $all { $elements = $array; - if (is_string($array) && function_exists('enum_exists') && enum_exists($array)) { + if (is_string($array) && function_exists('enum_exists') && class_exists($array)) { $elements = $array::cases(); } @@ -264,7 +264,7 @@ public static function randomElement($array = ['a', 'b', 'c']) { $elements = $array; - if (is_string($array) && function_exists('enum_exists') && enum_exists($array)) { + if (is_string($array) && function_exists('enum_exists') && class_exists($array)) { $elements = $array::cases(); } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php index 2d5c588..8d6ea07 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/PhoneNumber.php @@ -41,7 +41,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber /** * @var array Swedish mobile number formats */ - protected static array $mobileFormats = [ + protected static $mobileFormats = [ '+467########', '+46(0)7########', '+46 (0)7## ## ## ##', diff --git a/vendor/symfony/deprecation-contracts/function.php b/vendor/symfony/deprecation-contracts/function.php index 2d56512..d437150 100644 --- a/vendor/symfony/deprecation-contracts/function.php +++ b/vendor/symfony/deprecation-contracts/function.php @@ -20,7 +20,7 @@ * * @author Nicolas Grekas */ - function trigger_deprecation(string $package, string $version, string $message, mixed ...$args): void + function trigger_deprecation(string $package, string $version, string $message, ...$args): void { @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED); } From 79fc0f1f3add4153306a63b9f0e18860b8a879ab Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 14:19:42 +1300 Subject: [PATCH 18/46] Adjusting a couple things to allow older PHP version --- .github/workflows/phpcs.yml | 2 +- vendor/composer/platform_check.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml index 114f8b5..01ede90 100644 --- a/.github/workflows/phpcs.yml +++ b/.github/workflows/phpcs.yml @@ -26,7 +26,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.1' tools: cs2pr - name: Install dependencies run: diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index 4c3a5d6..62a8cc9 100644 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 80100)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 702000)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { From 2ce7487fece381bdf546d726d4f9c5782022983b Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 14:25:53 +1300 Subject: [PATCH 19/46] Removing platform check --- composer.json | 3 +++ vendor/composer/installed.php | 4 ++-- vendor/composer/platform_check.php | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 52e2849..9e6b823 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,8 @@ { "require": { "fakerphp/faker": "^1.24" + }, + "config": { + "platform-check": "false" } } diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 988c707..2e27530 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => 'b87aafd9eb25b5a6e8b3a85f73d8ac1a0430cee5', + 'reference' => '79fc0f1f3add4153306a63b9f0e18860b8a879ab', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => 'b87aafd9eb25b5a6e8b3a85f73d8ac1a0430cee5', + 'reference' => '79fc0f1f3add4153306a63b9f0e18860b8a879ab', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index 62a8cc9..4c3a5d6 100644 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 702000)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.0". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 80100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { From 700023e53b0edae31aae5ac903b1cbe42b12868c Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 14:38:22 +1300 Subject: [PATCH 20/46] Removing platform check --- composer.json | 1 + vendor/composer/autoload_real.php | 2 -- vendor/composer/installed.php | 4 ++-- vendor/composer/platform_check.php | 26 -------------------------- 4 files changed, 3 insertions(+), 30 deletions(-) delete mode 100644 vendor/composer/platform_check.php diff --git a/composer.json b/composer.json index 9e6b823..c72f546 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,6 @@ { "require": { + "php": ">=7.2.5", "fakerphp/faker": "^1.24" }, "config": { diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 1c197cc..57979f6 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -22,8 +22,6 @@ public static function getLoader() return self::$loader; } - require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit150f3641fba2aa7f9c7e1c8d776f657c', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInit150f3641fba2aa7f9c7e1c8d776f657c', 'loadClassLoader')); diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 2e27530..ef257c1 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => '79fc0f1f3add4153306a63b9f0e18860b8a879ab', + 'reference' => '2ce7487fece381bdf546d726d4f9c5782022983b', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-5.x-dev', 'version' => 'dev-5.x-dev', - 'reference' => '79fc0f1f3add4153306a63b9f0e18860b8a879ab', + 'reference' => '2ce7487fece381bdf546d726d4f9c5782022983b', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php deleted file mode 100644 index 4c3a5d6..0000000 --- a/vendor/composer/platform_check.php +++ /dev/null @@ -1,26 +0,0 @@ -= 80100)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; -} - -if ($issues) { - if (!headers_sent()) { - header('HTTP/1.1 500 Internal Server Error'); - } - if (!ini_get('display_errors')) { - if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { - fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); - } elseif (!headers_sent()) { - echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; - } - } - trigger_error( - 'Composer detected issues in your platform: ' . implode(' ', $issues), - E_USER_ERROR - ); -} From 15ab8eea0a010e3d0b6a722dfa0250a78fd8c85c Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 14:57:57 +1300 Subject: [PATCH 21/46] Updating readme and trying to fix parse error --- README.md | 22 +++++++++++++++++++ vendor/fakerphp/faker/src/Faker/Generator.php | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b35752c..a8d2c3a 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,28 @@ cd wp-content/plugins/matomo/app ./console visitorgenerator:generate-visits --idsite=1 ``` +## Dependencies +This plugin had its vendored dependencies made compatible with Matomo's minimum supported version of PHP using the [Rector library](https://github.com/rectorphp/rector-downgrade-php). It's preferable that you install the composer package in a separate project and point to this project so that it doesn't get committed in this project. You should also have a config file saved containing the following: +```php += 7.2.5, but PHP 7.3 is close enough. We don't want to downgrade further than necessary. + $rectorConfig->sets([ + \Rector\Set\ValueObject\DowngradeLevelSetList::DOWN_TO_PHP_73 + ]); + + $rectorConfig->skip([ + \Rector\DowngradePhp80\Rector\Class_\DowngradeAttributeToAnnotationRector::class + ]); +}; +``` +With all that in place, you should be able to run Rector like so: `vendor/bin/rector process {path_to_this_plugin/vendor} --config={path_to_config_file}` + +> **_NOTE:_** For Matomo developers, there's an internal DevPluginCommands plugin with a command that handles running Rector. Just make sure to use the `skip-scoping` option. See the SearchEngineKeywordsPerformance plugin's README.md for more details. + ### Legalnotice This plugin is released under the GPLv3+ license. diff --git a/vendor/fakerphp/faker/src/Faker/Generator.php b/vendor/fakerphp/faker/src/Faker/Generator.php index d132031..241045e 100644 --- a/vendor/fakerphp/faker/src/Faker/Generator.php +++ b/vendor/fakerphp/faker/src/Faker/Generator.php @@ -584,7 +584,7 @@ public function ext(string $id): Extension\Extension if (!$this->container->has($id)) { throw new Extension\ExtensionNotFound(sprintf( 'No Faker extension with id "%s" was loaded.', - $id, + $id )); } From 83941496f3c26994d89557d6aaeb0a11927ee40a Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 15:11:23 +1300 Subject: [PATCH 22/46] Downgrading further to remove trailing commas from function calls --- README.md | 5 +-- vendor/fakerphp/faker/rector-migrate.php | 13 ++---- .../faker/src/Faker/Calculator/Iban.php | 10 ++--- .../faker/src/Faker/Calculator/Isbn.php | 9 ++-- .../faker/src/Faker/Container/Container.php | 37 ++++------------ .../src/Faker/Container/ContainerBuilder.php | 5 +-- .../fakerphp/faker/src/Faker/Core/Blood.php | 6 +-- .../fakerphp/faker/src/Faker/Core/Color.php | 28 ++----------- .../faker/src/Faker/Core/DateTime.php | 15 ++----- vendor/fakerphp/faker/src/Faker/Core/Uuid.php | 15 +------ .../fakerphp/faker/src/Faker/Core/Version.php | 9 +--- vendor/fakerphp/faker/src/Faker/Generator.php | 4 +- .../Faker/ORM/Doctrine/EntityPopulator.php | 7 +--- .../src/Faker/ORM/Doctrine/Populator.php | 6 +-- .../faker/src/Faker/ORM/Spot/Populator.php | 4 +- .../faker/src/Faker/Provider/Base.php | 20 ++------- .../faker/src/Faker/Provider/Color.php | 7 +--- .../faker/src/Faker/Provider/DateTime.php | 21 ++-------- .../faker/src/Faker/Provider/Image.php | 38 +++-------------- .../faker/src/Faker/Provider/Uuid.php | 15 +------ .../faker/src/Faker/Provider/ar_SA/Person.php | 4 +- .../src/Faker/Provider/bg_BG/Payment.php | 5 ++- .../src/Faker/Provider/de_DE/PhoneNumber.php | 4 +- .../src/Faker/Provider/el_GR/PhoneNumber.php | 42 ++++++------------- .../src/Faker/Provider/en_GB/Company.php | 26 ++---------- .../src/Faker/Provider/en_ZA/Company.php | 7 +--- 26 files changed, 72 insertions(+), 290 deletions(-) diff --git a/README.md b/README.md index a8d2c3a..56fbc46 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,8 @@ This plugin had its vendored dependencies made compatible with Matomo's minimum use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { - // Matomo requires PHP >= 7.2.5, but PHP 7.3 is close enough. We don't want to downgrade further than necessary. $rectorConfig->sets([ - \Rector\Set\ValueObject\DowngradeLevelSetList::DOWN_TO_PHP_73 + \Rector\Set\ValueObject\DowngradeLevelSetList::DOWN_TO_PHP_72 ]); $rectorConfig->skip([ @@ -82,7 +81,7 @@ return static function (RectorConfig $rectorConfig): void { ``` With all that in place, you should be able to run Rector like so: `vendor/bin/rector process {path_to_this_plugin/vendor} --config={path_to_config_file}` -> **_NOTE:_** For Matomo developers, there's an internal DevPluginCommands plugin with a command that handles running Rector. Just make sure to use the `skip-scoping` option. See the SearchEngineKeywordsPerformance plugin's README.md for more details. +> **_NOTE:_** For Matomo developers, there's an internal DevPluginCommands plugin with a command that handles running Rector. Just make sure to use the `skip-scoping` option. Also make sure to downgrade to PHP 7.2 because all other plugins use 7.3. See the SearchEngineKeywordsPerformance plugin's README.md for more details. ### Legalnotice diff --git a/vendor/fakerphp/faker/rector-migrate.php b/vendor/fakerphp/faker/rector-migrate.php index 7d99b57..8ca25dc 100644 --- a/vendor/fakerphp/faker/rector-migrate.php +++ b/vendor/fakerphp/faker/rector-migrate.php @@ -148,14 +148,7 @@ 'year', ]; - $rectorConfig->ruleWithConfiguration( - Transform\Rector\Assign\PropertyFetchToMethodCallRector::class, - array_map(static function (string $property): Transform\ValueObject\PropertyFetchToMethodCall { - return new Transform\ValueObject\PropertyFetchToMethodCall( - Generator::class, - $property, - $property, - ); - }, $properties), - ); + $rectorConfig->ruleWithConfiguration(Transform\Rector\Assign\PropertyFetchToMethodCallRector::class, array_map(static function (string $property): Transform\ValueObject\PropertyFetchToMethodCall { + return new Transform\ValueObject\PropertyFetchToMethodCall(Generator::class, $property, $property); + }, $properties)); }; diff --git a/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php b/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php index 19068fd..761b069 100644 --- a/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php +++ b/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php @@ -15,13 +15,9 @@ public static function checksum(string $iban) $checkString = substr($iban, 4) . substr($iban, 0, 2) . '00'; // Replace all letters with their number equivalents - $checkString = preg_replace_callback( - '/[A-Z]/', - static function (array $matches): string { - return (string) self::alphaToNumber($matches[0]); - }, - $checkString, - ); + $checkString = preg_replace_callback('/[A-Z]/', static function (array $matches): string { + return (string) self::alphaToNumber($matches[0]); + }, $checkString); // Perform mod 97 and subtract from 98 $checksum = 98 - self::mod97($checkString); diff --git a/vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php b/vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php index df2f59d..b8fd21d 100644 --- a/vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php +++ b/vendor/fakerphp/faker/src/Faker/Calculator/Isbn.php @@ -32,12 +32,9 @@ public static function checksum(string $input): string } $digits = str_split($input); - array_walk( - $digits, - static function (&$digit, $position): void { - $digit = (10 - $position) * $digit; - }, - ); + array_walk($digits, static function (&$digit, $position): void { + $digit = (10 - $position) * $digit; + }); $result = (11 - array_sum($digits) % 11) % 11; // 10 is replaced by X diff --git a/vendor/fakerphp/faker/src/Faker/Container/Container.php b/vendor/fakerphp/faker/src/Faker/Container/Container.php index 11333e7..beb8e99 100644 --- a/vendor/fakerphp/faker/src/Faker/Container/Container.php +++ b/vendor/fakerphp/faker/src/Faker/Container/Container.php @@ -47,10 +47,7 @@ public function __construct(array $definitions) public function get($id): Extension { if (!is_string($id)) { - throw new \InvalidArgumentException(sprintf( - 'First argument of %s::get() must be string', - self::class, - )); + throw new \InvalidArgumentException(sprintf('First argument of %s::get() must be string', self::class)); } if (array_key_exists($id, $this->services)) { @@ -58,10 +55,7 @@ public function get($id): Extension } if (!$this->has($id)) { - throw new NotInContainerException(sprintf( - 'There is not service with id "%s" in the container.', - $id, - )); + throw new NotInContainerException(sprintf('There is not service with id "%s" in the container.', $id)); } $definition = $this->definitions[$id]; @@ -69,11 +63,7 @@ public function get($id): Extension $service = $this->getService($id, $definition); if (!$service instanceof Extension) { - throw new \RuntimeException(sprintf( - 'Service resolved for identifier "%s" does not implement the %s" interface.', - $id, - Extension::class, - )); + throw new \RuntimeException(sprintf('Service resolved for identifier "%s" does not implement the %s" interface.', $id, Extension::class)); } $this->services[$id] = $service; @@ -92,11 +82,7 @@ private function getService(string $id, $definition) try { return $definition(); } catch (\Throwable $e) { - throw new ContainerException( - sprintf('Error while invoking callable for "%s"', $id), - 0, - $e, - ); + throw new ContainerException(sprintf('Error while invoking callable for "%s"', $id), 0, $e); } } elseif (is_object($definition)) { return $definition; @@ -109,15 +95,9 @@ private function getService(string $id, $definition) } } - throw new ContainerException(sprintf( - 'Could not instantiate class "%s". Class was not found.', - $id, - )); + throw new ContainerException(sprintf('Could not instantiate class "%s". Class was not found.', $id)); } else { - throw new ContainerException(sprintf( - 'Invalid type for definition with id "%s"', - $id, - )); + throw new ContainerException(sprintf('Invalid type for definition with id "%s"', $id)); } } @@ -131,10 +111,7 @@ private function getService(string $id, $definition) public function has($id): bool { if (!is_string($id)) { - throw new \InvalidArgumentException(sprintf( - 'First argument of %s::get() must be string', - self::class, - )); + throw new \InvalidArgumentException(sprintf('First argument of %s::get() must be string', self::class)); } return array_key_exists($id, $this->definitions); diff --git a/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php b/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php index 814ca8e..c8c8386 100644 --- a/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php +++ b/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php @@ -25,10 +25,7 @@ final class ContainerBuilder public function add(string $id, $definition): self { if (!is_string($definition) && !is_callable($definition) && !is_object($definition)) { - throw new \InvalidArgumentException(sprintf( - 'First argument to "%s::add()" must be a string, callable or object.', - self::class, - )); + throw new \InvalidArgumentException(sprintf('First argument to "%s::add()" must be a string, callable or object.', self::class)); } $this->definitions[$id] = $definition; diff --git a/vendor/fakerphp/faker/src/Faker/Core/Blood.php b/vendor/fakerphp/faker/src/Faker/Core/Blood.php index 50a5806..a210b78 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Blood.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Blood.php @@ -33,10 +33,6 @@ public function bloodRh(): string public function bloodGroup(): string { - return sprintf( - '%s%s', - $this->bloodType(), - $this->bloodRh(), - ); + return sprintf('%s%s', $this->bloodType(), $this->bloodRh()); } } diff --git a/vendor/fakerphp/faker/src/Faker/Core/Color.php b/vendor/fakerphp/faker/src/Faker/Core/Color.php index 5d82824..b2721d3 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Color.php @@ -77,15 +77,7 @@ public function safeHexColor(): string { $color = str_pad(dechex($this->numberExtension->numberBetween(0, 255)), 3, '0', STR_PAD_LEFT); - return sprintf( - '#%s%s%s%s%s%s', - $color[0], - $color[0], - $color[1], - $color[1], - $color[2], - $color[2], - ); + return sprintf('#%s%s%s%s%s%s', $color[0], $color[0], $color[1], $color[1], $color[2], $color[2]); } /** @@ -117,10 +109,7 @@ public function rgbColor(): string */ public function rgbCssColor(): string { - return sprintf( - 'rgb(%s)', - $this->rgbColor(), - ); + return sprintf('rgb(%s)', $this->rgbColor()); } /** @@ -128,11 +117,7 @@ public function rgbCssColor(): string */ public function rgbaCssColor(): string { - return sprintf( - 'rgba(%s,%s)', - $this->rgbColor(), - $this->numberExtension->randomFloat(1, 0, 1), - ); + return sprintf('rgba(%s,%s)', $this->rgbColor(), $this->numberExtension->randomFloat(1, 0, 1)); } /** @@ -156,12 +141,7 @@ public function colorName(): string */ public function hslColor(): string { - return sprintf( - '%s,%s,%s', - $this->numberExtension->numberBetween(0, 360), - $this->numberExtension->numberBetween(0, 100), - $this->numberExtension->numberBetween(0, 100), - ); + return sprintf('%s,%s,%s', $this->numberExtension->numberBetween(0, 360), $this->numberExtension->numberBetween(0, 100), $this->numberExtension->numberBetween(0, 100)); } /** diff --git a/vendor/fakerphp/faker/src/Faker/Core/DateTime.php b/vendor/fakerphp/faker/src/Faker/Core/DateTime.php index 5ba519b..bd0a786 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/DateTime.php +++ b/vendor/fakerphp/faker/src/Faker/Core/DateTime.php @@ -77,20 +77,14 @@ private function setTimezone(\DateTime $dateTime, ?string $timezone): \DateTime public function dateTime($until = 'now', ?string $timezone = null): \DateTime { - return $this->setTimezone( - $this->getTimestampDateTime($this->unixTime($until)), - $timezone, - ); + return $this->setTimezone($this->getTimestampDateTime($this->unixTime($until)), $timezone); } public function dateTimeAD($until = 'now', ?string $timezone = null): \DateTime { $min = (PHP_INT_SIZE > 4) ? -62135597361 : -PHP_INT_MAX; - return $this->setTimezone( - $this->getTimestampDateTime($this->generator->numberBetween($min, $this->getTimestamp($until))), - $timezone, - ); + return $this->setTimezone($this->getTimestampDateTime($this->generator->numberBetween($min, $this->getTimestamp($until))), $timezone); } public function dateTimeBetween($from = '-30 years', $until = 'now', ?string $timezone = null): \DateTime @@ -104,10 +98,7 @@ public function dateTimeBetween($from = '-30 years', $until = 'now', ?string $ti $timestamp = $this->generator->numberBetween($start, $end); - return $this->setTimezone( - $this->getTimestampDateTime($timestamp), - $timezone, - ); + return $this->setTimezone($this->getTimestampDateTime($timestamp), $timezone); } public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', ?string $timezone = null): \DateTime diff --git a/vendor/fakerphp/faker/src/Faker/Core/Uuid.php b/vendor/fakerphp/faker/src/Faker/Core/Uuid.php index 0cf2cad..0976f25 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Uuid.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Uuid.php @@ -50,19 +50,6 @@ public function uuid3(): string $tHi |= (3 << 12); // cast to string - return sprintf( - '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x', - $tLo, - $tMi, - $tHi, - $csHi, - $csLo, - $byte[10], - $byte[11], - $byte[12], - $byte[13], - $byte[14], - $byte[15], - ); + return sprintf('%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x', $tLo, $tMi, $tHi, $csHi, $csLo, $byte[10], $byte[11], $byte[12], $byte[13], $byte[14], $byte[15]); } } diff --git a/vendor/fakerphp/faker/src/Faker/Core/Version.php b/vendor/fakerphp/faker/src/Faker/Core/Version.php index cd8b09b..ff9b544 100644 --- a/vendor/fakerphp/faker/src/Faker/Core/Version.php +++ b/vendor/fakerphp/faker/src/Faker/Core/Version.php @@ -32,14 +32,7 @@ public function __construct(?Extension\NumberExtension $numberExtension = null) */ public function semver(bool $preRelease = false, bool $build = false): string { - return sprintf( - '%d.%d.%d%s%s', - $this->numberExtension->numberBetween(0, 9), - $this->numberExtension->numberBetween(0, 99), - $this->numberExtension->numberBetween(0, 99), - $preRelease && $this->numberExtension->numberBetween(0, 1) === 1 ? '-' . $this->semverPreReleaseIdentifier() : '', - $build && $this->numberExtension->numberBetween(0, 1) === 1 ? '+' . $this->semverBuildIdentifier() : '', - ); + return sprintf('%d.%d.%d%s%s', $this->numberExtension->numberBetween(0, 9), $this->numberExtension->numberBetween(0, 99), $this->numberExtension->numberBetween(0, 99), $preRelease && $this->numberExtension->numberBetween(0, 1) === 1 ? '-' . $this->semverPreReleaseIdentifier() : '', $build && $this->numberExtension->numberBetween(0, 1) === 1 ? '+' . $this->semverBuildIdentifier() : ''); } /** diff --git a/vendor/fakerphp/faker/src/Faker/Generator.php b/vendor/fakerphp/faker/src/Faker/Generator.php index 241045e..2532942 100644 --- a/vendor/fakerphp/faker/src/Faker/Generator.php +++ b/vendor/fakerphp/faker/src/Faker/Generator.php @@ -905,7 +905,7 @@ public function randomFloat($nbMaxDecimals = null, $min = 0, $max = null): float return $this->ext(Extension\NumberExtension::class)->randomFloat( $nbMaxDecimals !== null ? (int) $nbMaxDecimals : null, (float) $min, - $max !== null ? (float) $max : null, + $max !== null ? (float) $max : null ); } @@ -923,7 +923,7 @@ public function randomNumber($nbDigits = null, $strict = false): int { return $this->ext(Extension\NumberExtension::class)->randomNumber( $nbDigits !== null ? (int) $nbDigits : null, - (bool) $strict, + (bool) $strict ); } diff --git a/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/EntityPopulator.php b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/EntityPopulator.php index 4792399..375c08f 100644 --- a/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/EntityPopulator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/EntityPopulator.php @@ -201,12 +201,7 @@ private function fillColumns($obj, $insertedEntities): void try { $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; } catch (\InvalidArgumentException $ex) { - throw new \InvalidArgumentException(sprintf( - 'Failed to generate a value for %s::%s: %s', - get_class($obj), - $field, - $ex->getMessage(), - )); + throw new \InvalidArgumentException(sprintf('Failed to generate a value for %s::%s: %s', get_class($obj), $field, $ex->getMessage())); } // Try a standard setter if it's available, otherwise fall back on reflection $setter = sprintf('set%s', ucfirst($field)); diff --git a/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php index 61d4171..f7da931 100644 --- a/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php @@ -108,11 +108,7 @@ public function execute($entityManager = null) $generateId = $this->generateId[$class]; for ($i = 0; $i < $number; ++$i) { - $insertedEntities[$class][] = $this->entities[$class]->execute( - $entityManager, - $insertedEntities, - $generateId, - ); + $insertedEntities[$class][] = $this->entities[$class]->execute($entityManager, $insertedEntities, $generateId); if (count($insertedEntities) % $this->batchSize === 0) { $entityManager->flush(); diff --git a/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php b/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php index 9ad3bfb..4e3fe89 100644 --- a/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php +++ b/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php @@ -78,9 +78,7 @@ public function execute($locator = null) foreach ($this->quantities as $entityName => $number) { for ($i = 0; $i < $number; ++$i) { - $insertedEntities[$entityName][] = $this->entities[$entityName]->execute( - $insertedEntities, - ); + $insertedEntities[$entityName][] = $this->entities[$entityName]->execute($insertedEntities); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Base.php b/vendor/fakerphp/faker/src/Faker/Provider/Base.php index 4cfacdf..5fb0a2f 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/Base.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Base.php @@ -203,22 +203,13 @@ public static function randomElements($array = ['a', 'b', 'c'], $count = 1, $all } if (!is_array($elements)) { - throw new \InvalidArgumentException(sprintf( - 'Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.', - \UnitEnum::class, - \Traversable::class, - is_object($array) ? get_class($array) : gettype($array), - )); + throw new \InvalidArgumentException(sprintf('Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.', \UnitEnum::class, \Traversable::class, is_object($array) ? get_class($array) : gettype($array))); } $numberOfElements = count($elements); if (!$allowDuplicates && null !== $count && $numberOfElements < $count) { - throw new \LengthException(sprintf( - 'Cannot get %d elements, only %d in array', - $count, - $numberOfElements, - )); + throw new \LengthException(sprintf('Cannot get %d elements, only %d in array', $count, $numberOfElements)); } if (null === $count) { @@ -277,12 +268,7 @@ public static function randomElement($array = ['a', 'b', 'c']) } if (!is_array($elements)) { - throw new \InvalidArgumentException(sprintf( - 'Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.', - \UnitEnum::class, - \Traversable::class, - is_object($array) ? get_class($array) : gettype($array), - )); + throw new \InvalidArgumentException(sprintf('Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.', \UnitEnum::class, \Traversable::class, is_object($array) ? get_class($array) : gettype($array))); } $randomElements = static::randomElements($elements, 1); diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Color.php b/vendor/fakerphp/faker/src/Faker/Provider/Color.php index d14e705..9b50a66 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/Color.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Color.php @@ -134,12 +134,7 @@ public static function colorName() */ public static function hslColor() { - return sprintf( - '%s,%s,%s', - self::numberBetween(0, 360), - self::numberBetween(0, 100), - self::numberBetween(0, 100), - ); + return sprintf('%s,%s,%s', self::numberBetween(0, 360), self::numberBetween(0, 100), self::numberBetween(0, 100)); } /** diff --git a/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php b/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php index a8a1992..72e24d0 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php @@ -55,10 +55,7 @@ public static function unixTime($max = 'now') */ public static function dateTime($max = 'now', $timezone = null) { - return static::setTimezone( - new \DateTime('@' . static::unixTime($max)), - $timezone, - ); + return static::setTimezone(new \DateTime('@' . static::unixTime($max)), $timezone); } /** @@ -78,10 +75,7 @@ public static function dateTimeAD($max = 'now', $timezone = null) { $min = (PHP_INT_SIZE > 4 ? -62135597361 : -PHP_INT_MAX); - return static::setTimezone( - new \DateTime('@' . self::numberBetween($min, static::getMaxTimestamp($max))), - $timezone, - ); + return static::setTimezone(new \DateTime('@' . self::numberBetween($min, static::getMaxTimestamp($max))), $timezone); } /** @@ -154,10 +148,7 @@ public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now $timestamp = self::numberBetween($startTimestamp, $endTimestamp); - return static::setTimezone( - new \DateTime('@' . $timestamp), - $timezone, - ); + return static::setTimezone(new \DateTime('@' . $timestamp), $timezone); } /** @@ -186,11 +177,7 @@ public static function dateTimeInInterval($date = '-30 years', $interval = '+5 d $begin = min($datetime, $otherDatetime); $end = $datetime === $begin ? $otherDatetime : $datetime; - return static::dateTimeBetween( - $begin, - $end, - $timezone, - ); + return static::dateTimeBetween($begin, $end, $timezone); } /** diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Image.php b/vendor/fakerphp/faker/src/Faker/Provider/Image.php index e787142..fc1c7ac 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/Image.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Image.php @@ -52,21 +52,13 @@ public static function imageUrl( $gray = false, $format = 'png' ) { - trigger_deprecation( - 'fakerphp/faker', - '1.20', - 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead', - ); + trigger_deprecation('fakerphp/faker', '1.20', 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'); // Validate image format $imageFormats = static::getFormats(); if (!in_array(strtolower($format), $imageFormats, true)) { - throw new \InvalidArgumentException(sprintf( - 'Invalid image format "%s". Allowable formats are: %s', - $format, - implode(', ', $imageFormats), - )); + throw new \InvalidArgumentException(sprintf('Invalid image format "%s". Allowable formats are: %s', $format, implode(', ', $imageFormats))); } $size = sprintf('%dx%d.%s', $width, $height, $format); @@ -87,13 +79,7 @@ public static function imageUrl( $backgroundColor = $gray === true ? 'CCCCCC' : str_replace('#', '', Color::safeHexColor()); - return sprintf( - '%s/%s/%s%s', - self::BASE_URL, - $size, - $backgroundColor, - count($imageParts) > 0 ? '?text=' . urlencode(implode(' ', $imageParts)) : '', - ); + return sprintf('%s/%s/%s%s', self::BASE_URL, $size, $backgroundColor, count($imageParts) > 0 ? '?text=' . urlencode(implode(' ', $imageParts)) : ''); } /** @@ -116,11 +102,7 @@ public static function image( $gray = false, $format = 'png' ) { - trigger_deprecation( - 'fakerphp/faker', - '1.20', - 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead', - ); + trigger_deprecation('fakerphp/faker', '1.20', 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'); $dir = null === $dir ? sys_get_temp_dir() : $dir; // GNU/Linux / OS X / Windows compatible @@ -170,22 +152,14 @@ public static function image( public static function getFormats(): array { - trigger_deprecation( - 'fakerphp/faker', - '1.20', - 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead', - ); + trigger_deprecation('fakerphp/faker', '1.20', 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'); return array_keys(static::getFormatConstants()); } public static function getFormatConstants(): array { - trigger_deprecation( - 'fakerphp/faker', - '1.20', - 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead', - ); + trigger_deprecation('fakerphp/faker', '1.20', 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'); return [ static::FORMAT_JPG => constant('IMAGETYPE_JPEG'), diff --git a/vendor/fakerphp/faker/src/Faker/Provider/Uuid.php b/vendor/fakerphp/faker/src/Faker/Provider/Uuid.php index bcfcb05..ec3dac6 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/Uuid.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/Uuid.php @@ -41,19 +41,6 @@ public static function uuid() $tHi |= (3 << 12); // cast to string - return sprintf( - '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x', - $tLo, - $tMi, - $tHi, - $csHi, - $csLo, - $byte[10], - $byte[11], - $byte[12], - $byte[13], - $byte[14], - $byte[15], - ); + return sprintf('%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x', $tLo, $tMi, $tHi, $csHi, $csLo, $byte[10], $byte[11], $byte[12], $byte[13], $byte[14], $byte[15]); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php b/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php index 91527c3..ae219df 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php @@ -92,9 +92,7 @@ public static function prefix() */ public static function idNumber() { - $partialValue = static::numerify( - static::randomElement([1, 2]) . str_repeat('#', 8), - ); + $partialValue = static::numerify(static::randomElement([1, 2]) . str_repeat('#', 8)); return Luhn::generateLuhnNumber($partialValue); } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/bg_BG/Payment.php b/vendor/fakerphp/faker/src/Faker/Provider/bg_BG/Payment.php index d7ed58b..6c1664c 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/bg_BG/Payment.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/bg_BG/Payment.php @@ -39,8 +39,9 @@ public static function vat($spacedNationalPrefix = true) return sprintf( '%s%d%d', $prefix, - self::randomNumber(5, true), // workaround for mt_getrandmax() limitation - self::randomNumber(self::randomElement([4, 5]), true), + self::randomNumber(5, true), + // workaround for mt_getrandmax() limitation + self::randomNumber(self::randomElement([4, 5]), true) ); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/de_DE/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/PhoneNumber.php index 610ae8e..13f6a40 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/de_DE/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/de_DE/PhoneNumber.php @@ -120,8 +120,6 @@ public static function mobileCode() */ public function mobileNumber() { - return ltrim(static::numerify($this->generator->parse( - static::randomElement(static::$mobileFormats), - ))); + return ltrim(static::numerify($this->generator->parse(static::randomElement(static::$mobileFormats)))); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/el_GR/PhoneNumber.php b/vendor/fakerphp/faker/src/Faker/Provider/el_GR/PhoneNumber.php index 5303248..92be4b7 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/el_GR/PhoneNumber.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/el_GR/PhoneNumber.php @@ -157,9 +157,7 @@ public static function internationalCodePrefix() */ public static function areaCode() { - return static::numerify( - str_pad(static::randomElement(static::$areaCodes), 4, '#'), - ); + return static::numerify(str_pad(static::randomElement(static::$areaCodes), 4, '#')); } /** @@ -181,9 +179,7 @@ public static function areaCode() */ public function fixedLineNumber() { - return ltrim(static::numerify($this->generator->parse( - static::randomElement(static::$fixedLineFormats), - ))); + return ltrim(static::numerify($this->generator->parse(static::randomElement(static::$fixedLineFormats)))); } /** @@ -210,9 +206,7 @@ public static function mobileCode() */ public function mobileNumber() { - return ltrim(static::numerify($this->generator->parse( - static::randomElement(static::$mobileFormats), - ))); + return ltrim(static::numerify($this->generator->parse(static::randomElement(static::$mobileFormats)))); } /** @@ -220,12 +214,10 @@ public function mobileNumber() */ public static function mobilePhoneNumber() { - return static::numerify( - strtr(static::randomElement(static::$mobileFormats), [ - '{{internationalCodePrefix}}' => static::internationalCodePrefix(), - '{{mobileCode}}' => static::mobileCode(), - ]), - ); + return static::numerify(strtr(static::randomElement(static::$mobileFormats), [ + '{{internationalCodePrefix}}' => static::internationalCodePrefix(), + '{{mobileCode}}' => static::mobileCode(), + ])); } /** @@ -240,9 +232,7 @@ public static function mobilePhoneNumber() */ public function personalNumber() { - return ltrim(static::numerify($this->generator->parse( - static::randomElement(static::$personalFormats), - ))); + return ltrim(static::numerify($this->generator->parse(static::randomElement(static::$personalFormats)))); } /** @@ -257,11 +247,9 @@ public function personalNumber() */ public static function tollFreeNumber() { - return ltrim(static::numerify( - strtr(static::randomElement(static::$tollFreeFormats), [ - '{{internationalCodePrefix}}' => static::internationalCodePrefix(), - ]), - )); + return ltrim(static::numerify(strtr(static::randomElement(static::$tollFreeFormats), [ + '{{internationalCodePrefix}}' => static::internationalCodePrefix(), + ]))); } /** @@ -288,9 +276,7 @@ public static function sharedCostCode() */ public function sharedCostNumber() { - return ltrim(static::numerify($this->generator->parse( - static::randomElement(static::$sharedCostFormats), - ))); + return ltrim(static::numerify($this->generator->parse(static::randomElement(static::$sharedCostFormats)))); } /** @@ -317,8 +303,6 @@ public static function premiumRateCode() */ public function premiumRateNumber() { - return ltrim(static::numerify($this->generator->parse( - static::randomElement(static::$premiumRateFormats), - ))); + return ltrim(static::numerify($this->generator->parse(static::randomElement(static::$premiumRateFormats)))); } } diff --git a/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php index b0c3ccc..1f5f265 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php @@ -48,13 +48,7 @@ private static function generateStandardVatNumber(): string $firstBlock = static::numberBetween(100, 999); $secondBlock = static::randomNumber(4, true); - return sprintf( - '%s%d %d %d', - static::VAT_PREFIX, - $firstBlock, - $secondBlock, - static::calculateModulus97($firstBlock . $secondBlock), - ); + return sprintf('%s%d %d %d', static::VAT_PREFIX, $firstBlock, $secondBlock, static::calculateModulus97($firstBlock . $secondBlock)); } /** @@ -63,11 +57,7 @@ private static function generateStandardVatNumber(): string */ private static function generateHealthAuthorityVatNumber(): string { - return sprintf( - '%sHA%d', - static::VAT_PREFIX, - static::numberBetween(500, 999), - ); + return sprintf('%sHA%d', static::VAT_PREFIX, static::numberBetween(500, 999)); } /** @@ -76,11 +66,7 @@ private static function generateHealthAuthorityVatNumber(): string */ private static function generateBranchTraderVatNumber(): string { - return sprintf( - '%s %d', - static::generateStandardVatNumber(), - static::randomNumber(3, true), - ); + return sprintf('%s %d', static::generateStandardVatNumber(), static::randomNumber(3, true)); } /** @@ -89,11 +75,7 @@ private static function generateBranchTraderVatNumber(): string */ private static function generateGovernmentVatNumber(): string { - return sprintf( - '%sGD%s', - static::VAT_PREFIX, - str_pad((string) static::numberBetween(0, 499), 3, '0', STR_PAD_LEFT), - ); + return sprintf('%sGD%s', static::VAT_PREFIX, str_pad((string) static::numberBetween(0, 499), 3, '0', STR_PAD_LEFT)); } /** diff --git a/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Company.php b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Company.php index 6480c69..a584751 100644 --- a/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Company.php +++ b/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Company.php @@ -16,11 +16,6 @@ class Company extends \Faker\Provider\Company */ public function companyNumber() { - return sprintf( - '%s/%s/%s', - \Faker\Provider\DateTime::dateTimeBetween('-50 years', 'now')->format('Y'), - static::randomNumber(6, true), - static::randomElement(static::$legalEntities), - ); + return sprintf('%s/%s/%s', \Faker\Provider\DateTime::dateTimeBetween('-50 years', 'now')->format('Y'), static::randomNumber(6, true), static::randomElement(static::$legalEntities)); } } From f85704e6b17ddb565b25ce67fbef6490553287f4 Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 15:16:54 +1300 Subject: [PATCH 23/46] Revert workflow file now that platform check has been removed --- .github/workflows/phpcs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml index 01ede90..114f8b5 100644 --- a/.github/workflows/phpcs.yml +++ b/.github/workflows/phpcs.yml @@ -26,7 +26,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.1' + php-version: '7.4' tools: cs2pr - name: Install dependencies run: From 4ed6953299e7d9c08ebd63d46d43865dee2c3d5e Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 15:20:08 +1300 Subject: [PATCH 24/46] Revert "Revert workflow file now that platform check has been removed" This reverts commit f85704e6b17ddb565b25ce67fbef6490553287f4. --- .github/workflows/phpcs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml index 114f8b5..01ede90 100644 --- a/.github/workflows/phpcs.yml +++ b/.github/workflows/phpcs.yml @@ -26,7 +26,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.1' tools: cs2pr - name: Install dependencies run: From 252bf9fc59f62dacea2651a37be628ddd03dfeb4 Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 17 Feb 2025 17:02:44 +1300 Subject: [PATCH 25/46] Bumping version --- CHANGELOG.md | 2 ++ plugin.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 031fa52..4a886e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,3 +59,5 @@ * Added plugin category for Marketplace - 5.1.0 - 2024-09-09 * Replaced Symfony\Process with Piwik\Process +- 5.1.1 - 2025-02-17 + * Fixed deprecation warning from dependency diff --git a/plugin.json b/plugin.json index b522634..6cb35f6 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "VisitorGenerator", - "version": "5.1.0", + "version": "5.1.1", "description": "Developer tool that lets you generate fake visits. Useful if you are working with plugins or themes or if you use the Matomo API.", "keywords": ["development", "tools"], "license": "GPL v3+", From e165ae69e20314cc42882ec16af2357cdfc26bdb Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 18 Feb 2025 11:38:40 +0100 Subject: [PATCH 26/46] Translated using Weblate (Finnish) Currently translated at 57.1% (12 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/fi/ [ci skip] Co-authored-by: Ricky Tigg --- lang/fi.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/fi.json b/lang/fi.json index 3997367..ea5e027 100644 --- a/lang/fi.json +++ b/lang/fi.json @@ -13,7 +13,7 @@ "NotReversible": "Näitä käyntejä %1$sei voi%2$s helposti poistaa Matomon lokeista.", "NumberOfGeneratedActions": "Toimeenpantujen toimintojen lukumäärä", "PleaseBePatient": "Vierailujen ja toimien luominen voi kestää muutaman minuutin.", - "ReRunArchiveScript": "Ole hyvä ja aja uudelleen './console core:archive' crontabissa päivittääksesi raportit. %1$sKatso \"Miten asennan automaattisen raporttien arkistoinnin\"%2$s", + "ReRunArchiveScript": "Suorita crontab-komento './console core:archive' uudelleen virkistääksesi raportit kohdan %1$s\"Raporttien automaattisen arkistoinnin määrittäminen\"%2$s mukaisesti", "SelectWebsite": "Valitse sivusto", "Submit": "Lähetä", "VisitorGenerator": "Kävijöiden luonti", From 8bc37209d9fe04e4f741b2fc876c530f04a72fb2 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Thu, 6 Mar 2025 09:01:34 +0530 Subject: [PATCH 27/46] Updated matomo-tests.yml to run on ubuntu-24.04 --- .github/workflows/matomo-tests.yml | 2 +- .github/workflows/phpcs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/matomo-tests.yml b/.github/workflows/matomo-tests.yml index 12236df..ed4bfad 100644 --- a/.github/workflows/matomo-tests.yml +++ b/.github/workflows/matomo-tests.yml @@ -33,7 +33,7 @@ concurrency: jobs: PluginTests: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml index 01ede90..ace3f24 100644 --- a/.github/workflows/phpcs.yml +++ b/.github/workflows/phpcs.yml @@ -17,7 +17,7 @@ permissions: jobs: phpcs: name: PHPCS - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: From c2c7ab0b7937f8eaa4c96497eed0a1b28a9373f8 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Tue, 18 Mar 2025 10:55:49 +0530 Subject: [PATCH 28/46] Adds pull request template to stop bouncing review questions --- pull_request_template.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 pull_request_template.md diff --git a/pull_request_template.md b/pull_request_template.md new file mode 100644 index 0000000..e7d9cf5 --- /dev/null +++ b/pull_request_template.md @@ -0,0 +1,26 @@ +## Description + + +## Issue No + + +## Steps to Replicate the Issue +1. +2. +3. + + + +## Checklist +- [✔/✖] Tested locally or on demo2/demo3? +- [✔/✖/NA] New test case added/updated? +- [✔/✖/NA] Are all newly added texts included via translation? +- [✔/✖/NA] Are text sanitized properly? (Eg use of v-text v/s v-html for vue) +- [✔/✖/NA] Version bumped? \ No newline at end of file From 20e7562150f1c12909c0221090f170397100d378 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 7 May 2025 20:03:12 +0200 Subject: [PATCH 29/46] Translated using Weblate (Spanish) Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/es/ [ci skip] Co-authored-by: Javier Llorente --- lang/es.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/es.json b/lang/es.json index 90b9aa5..afb4aef 100644 --- a/lang/es.json +++ b/lang/es.json @@ -5,7 +5,7 @@ "ChoiceYes": "Sí", "CliToolUsage": "Utilizando la %1$sherramienta Matomo CLI%2$s no solo puede generar más visitas sino también usuarios, páginas web y objetivos.", "ConfirmVisitorGeneration": "Por favor, marque la casilla para confirmar la generación de visitantes", - "CustomMatomoUrl": "URL Matomo personalizado", + "CustomMatomoUrl": "URL personalizada de Matomo", "DaysToCompute": "Días a computar", "GenerateFakeActions": "Esto generará al menos %d acciones falsas en este sitio cada día.", "GeneratedVisitsFor": "Visitas generadas para %1$sy los últimos %2$s dias", From 9a1a58de6df15eb1f028a2abeb5790bf4e35bd0d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 23 Jun 2025 13:07:05 +0200 Subject: [PATCH 30/46] Translated using Weblate (Tamil) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ta/ [ci skip] Co-authored-by: தமிழ்நேரம் --- lang/ta.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/ta.json b/lang/ta.json index 231b702..c062205 100644 --- a/lang/ta.json +++ b/lang/ta.json @@ -3,7 +3,7 @@ "AreYouSure": "போலி வருகைகளை உருவாக்கவா?", "AutomaticReprocess": "அடுத்த முறை நீங்கள் மாடோமோ அறிக்கைகளைப் பார்வையிடும்போது அவை மீண்டும் செயலாக்கப்படும். இதற்கு சில நிமிடங்கள் ஆகலாம்.", "ChoiceYes": "ஆம்", - "CliToolUsage": "%1$sச்மாடோமோ சி.எல்.ஐ கருவி %2$s இன்னும் அதிகமான வருகைகளை உருவாக்குவது மட்டுமல்லாமல், பயனர்கள், வலைத்தளங்கள் மற்றும் குறிக்கோள்களையும் உருவாக்க முடியும்.", + "CliToolUsage": "%1$sச்மாடோமோ சி.எல்.ஐ கருவி %2$s மேலும் அதிக வருகைகளை உருவாக்குவது மட்டுமல்லாமல், பயனர்கள், வலைத்தளங்கள் மற்றும் இலக்குகளையும் உருவாக்க முடியும்.", "ConfirmVisitorGeneration": "பார்வையாளர் தலைமுறையை உறுதிப்படுத்த பெட்டியைத் தட்டவும்", "CustomMatomoUrl": "தனிப்பயன் மாடோமோ முகவரி", "DaysToCompute": "கணக்கிட நாட்கள்", @@ -16,7 +16,7 @@ "OverwriteLogFiles": "\"அப்பாச்சி ஒருங்கிணைந்த பதிவு\" வடிவத்தில் போலி வருகைகளை உருவாக்க \"matomo.php\" பதிவு கோப்புகளை மேலெழுதவும் ( %s இல் கோப்புகளை மாற்றவும் அல்லது சேர்க்கவும்). சொருகி உருவாக்குபவர்கள் தங்கள் சொந்த பதிவு கோப்புகளை '*.log' கோப்புகளாக தங்கள் சொருகி 'தரவு' கோப்புறையில் சேர்க்கின்றனர்.", "PleaseBePatient": "வருகைகள் மற்றும் செயல்களை உருவாக்குவது சில நிமிடங்கள் ஆகலாம்.", "PluginDescription": "மாடோமோவில் போலி வருகைகள் மற்றும் செயல்களை உருவாக்கவும். மாடோமோ அறிக்கைகளை விரிவுபடுத்த போலி தரவை உருவாக்குங்கள்.", - "ReRunArchiveScript": "", + "ReRunArchiveScript": "தயவுசெய்து அறிக்கைகளை புதுப்பிக்க கணம் './console வயிரம்:archive' கட்டளையை மீண்டும் இயக்குங்கள், ஒன்றுக்கு %1$s\"உங்கள் அறிக்கைகளை தானாக ஆர்கைவ் செய்வது எப்படி\"%2$s", "SelectWebsite": "வலைத்தளத்தைத் தேர்ந்தெடுக்கவும்", "Submit": "சமர்ப்பிக்கவும்", "VisitorGenerator": "பார்வையாளர் செனரேட்டர்", From d6995a1c6aed8183c9260bf153d397d31656fd35 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 14 Jul 2025 11:03:23 +0200 Subject: [PATCH 31/46] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 76.1% (16 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/zh_Hans/ [ci skip] Co-authored-by: KDGZ --- lang/zh-cn.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lang/zh-cn.json b/lang/zh-cn.json index 7b43b37..2745a93 100644 --- a/lang/zh-cn.json +++ b/lang/zh-cn.json @@ -1,8 +1,8 @@ { "VisitorGenerator": { - "AreYouSure": "您确定要产生假的访客吗?", + "AreYouSure": "确定生成虚假访问数据?", "AutomaticReprocess": "下次您访问Matomo报告时,将重新处理报告,这可能需要几分钟。", - "ChoiceYes": "是,我确定!", + "ChoiceYes": "是", "CliToolUsage": "通过使用%1$sMatomo CLI工具%2$s,您不仅可以产生更多的访问,而且可以产生用户,网站和目标。", "ConfirmVisitorGeneration": "请在方框中打勾以确认访客的年龄", "CustomMatomoUrl": "自定义Matomo URL", @@ -13,13 +13,13 @@ "NbRequestsPerSec": "每秒请求数", "NotReversible": "它可能%1$s无法%2$s简单地从 piwik 记录中刪除。", "NumberOfGeneratedActions": "产生动作的数量", - "OverwriteLogFiles": "您可以覆盖用于生成虚假访问的日志文件(在%s中更改或添加文件)。 存在对“ matomo.php”的请求的日志文件,格式为“ Apache组合日志”。 插件开发人员可以通过将“ * .log”文件放在其插件的“数据”目录中来提供自己的日志文件。", - "PleaseBePatient": "注意:可能需要几分钟才能生成访问和操作,请耐心等待…", - "PluginDescription": "在Matomo中创建虚假访问和行为。 Matomo用户或开发人员可以将其用作生成伪造数据以填充Matomo报告的简单方法。", + "OverwriteLogFiles": "按“Apache combined log”格式覆盖“matomo.php”的日志文件以生成虚假访问数据(在%s中更改或添加文件)。插件开发者在其插件的“data”文件夹以“*.log”文件形式添加自己的日志文件。", + "PleaseBePatient": "生成访问和操作需要一些时间,请耐心等待。", + "PluginDescription": "在Matomo中创建虚假访问和行为。生成伪造数据以填充Matomo报告。", "ReRunArchiveScript": "请重新运行crontab './console core:archive'命令以刷新报告。%1$s请参阅“如何设置报告的自动存档” %2$s", "SelectWebsite": "选择网站", "Submit": "送出", "VisitorGenerator": "访客产生器", - "Warning": "您将产生的假访客将会记录在您的 Matomo 数据库里。" + "Warning": "您即将在Matomo数据库里生成虚假访问数据。" } } From 96126f23ec50929c9cf838de2fc0892694b3e8d1 Mon Sep 17 00:00:00 2001 From: Stefan Giehl Date: Wed, 6 Aug 2025 16:47:47 +0200 Subject: [PATCH 32/46] Generate AI referrer URLs (#173) * Generate AI referrer URLs * fix phpcs --- Faker/Request.php | 23 +++++++++++++++++++++++ Generator/VisitsFromLogs.php | 6 ++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Faker/Request.php b/Faker/Request.php index eb3d63b..659f3b9 100644 --- a/Faker/Request.php +++ b/Faker/Request.php @@ -1004,6 +1004,23 @@ public function searchEngineUrlWithOutKeyword() return $url; } + public function aiAssistantUrl() + { + return static::randomElement([ + 'https://chat.openai.com/', + 'https://chat.openai.com/c/', + 'https://chat.openai.com/share/' . $this->generator->uuid, + 'https://matomo.chat.openai.com/', + 'https://www.perplexity.ai/search?q=' . $this->generator->word, + 'https://www.perplexity.ai/', + 'https://claude.ai/', + 'https://claude.ai/chat/' . $this->generator->uuid, + 'https://gemini.google.com/app', + 'https://gemini.google.com/share/' . $this->generator->uuid, + 'https://chat.mistral.ai/', + ]); + } + public function videoFile() { return static::randomElement([ @@ -1044,6 +1061,7 @@ public function referrer() $urlReferrer = $this->generator->url; $urlKeyword = $this->searchEngineUrlWithKeyword($this->generator->word); $urlNoKeyword = $this->searchEngineUrlWithOutKeyword(); + $urlAI = $this->aiAssistantUrl(); return static::randomElement(array( '', @@ -1071,6 +1089,11 @@ public function referrer() $urlKeyword, $urlKeyword, $urlKeyword, + $urlAI, + $urlAI, + $urlAI, + $urlAI, + $urlAI, 'https://www.facebook.com/', 'https://fb.me/', 'https://twitter.com/', diff --git a/Generator/VisitsFromLogs.php b/Generator/VisitsFromLogs.php index b293aa1..5fc094b 100644 --- a/Generator/VisitsFromLogs.php +++ b/Generator/VisitsFromLogs.php @@ -26,8 +26,10 @@ class VisitsFromLogs extends Generator { private $authToken; - public function setTokenAuth($tokenAuth) - { + public function setTokenAuth( + #[\SensitiveParameter] + $tokenAuth + ) { $this->authToken = $tokenAuth; } From 4c36df47b48293dd74ff591cadb2b797bab08d48 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Mon, 18 Aug 2025 12:09:07 +0530 Subject: [PATCH 33/46] Bumped version to 5.1.2 --- CHANGELOG.md | 2 ++ plugin.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a886e7..465cb5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,3 +61,5 @@ * Replaced Symfony\Process with Piwik\Process - 5.1.1 - 2025-02-17 * Fixed deprecation warning from dependency +- 5.1.2 - 2025-08-18 + * Started generating AI referrer URLs diff --git a/plugin.json b/plugin.json index 6cb35f6..1944495 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "VisitorGenerator", - "version": "5.1.1", + "version": "5.1.2", "description": "Developer tool that lets you generate fake visits. Useful if you are working with plugins or themes or if you use the Matomo API.", "keywords": ["development", "tools"], "license": "GPL v3+", From d7d322629c3c2ed8b56a2d311089a92b6241efb2 Mon Sep 17 00:00:00 2001 From: James Hill Date: Tue, 26 Aug 2025 09:24:26 +1200 Subject: [PATCH 34/46] Fix: orderId=0 invalid Occasionally, an orderId of 0 was generated, which is invalid. --- Generator/VisitsFake.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Generator/VisitsFake.php b/Generator/VisitsFake.php index ebb2e8b..a3ace48 100644 --- a/Generator/VisitsFake.php +++ b/Generator/VisitsFake.php @@ -176,12 +176,17 @@ public function generate($time = false, $idSite = 1, $limit = 1000) if ($this->faker->boolean(50)) { $tracker->doTrackEcommerceCartUpdate(50); } else { + $orderId = $this->faker->randomNumber(5); + // randomNumber() can produce 0, which is an invalid order number. + if (0 === $orderId) { + $orderId = 1; + } $subtotal = $price * $quantity; $tax = $subtotal * 0.19; $shipping = $subtotal * 0.05; $discount = $subtotal * 0.10; $grandTotal = $subtotal + $shipping + $tax - $discount; - $tracker->doTrackEcommerceOrder($this->faker->randomNumber(5), $grandTotal, $subtotal, $tax, $shipping, $discount); + $tracker->doTrackEcommerceOrder($orderId, $grandTotal, $subtotal, $tax, $shipping, $discount); } } From 9ba583e191f4d53ad216a6dd61efbdc19495c7db Mon Sep 17 00:00:00 2001 From: James Hill Date: Tue, 26 Aug 2025 09:41:13 +1200 Subject: [PATCH 35/46] Bumped version after orderId 0 bugfix --- CHANGELOG.md | 2 ++ plugin.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 465cb5c..36d14e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -63,3 +63,5 @@ * Fixed deprecation warning from dependency - 5.1.2 - 2025-08-18 * Started generating AI referrer URLs +- 5.1.3 - 2025-09-01 + * Fix for generation of ecommerce order ID 0 diff --git a/plugin.json b/plugin.json index 1944495..2aa08f7 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "VisitorGenerator", - "version": "5.1.2", + "version": "5.1.3", "description": "Developer tool that lets you generate fake visits. Useful if you are working with plugins or themes or if you use the Matomo API.", "keywords": ["development", "tools"], "license": "GPL v3+", From 1964c7a16fa12984d532e5b32b1f881e508120ba Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 8 Oct 2025 00:02:02 +0200 Subject: [PATCH 36/46] Translated using Weblate (Croatian) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/hr/ [ci skip] Co-authored-by: Milo Ivir --- lang/hr.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lang/hr.json b/lang/hr.json index 0967ef4..ab1abb9 100644 --- a/lang/hr.json +++ b/lang/hr.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "SelectWebsite": "Odaberi web-stranicu" + } +} From 52be152922443d012fed054a70d1e26bb35bd991 Mon Sep 17 00:00:00 2001 From: Stefan Giehl Date: Thu, 23 Oct 2025 11:47:22 +0200 Subject: [PATCH 37/46] Mark visits randomly as coming from ChatGPT Agent (#176) * Mark visits randomly as coming from ChatGPT Agent * adjust ai parameter names --- Generator/VisitsFake.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Generator/VisitsFake.php b/Generator/VisitsFake.php index a3ace48..069f51d 100644 --- a/Generator/VisitsFake.php +++ b/Generator/VisitsFake.php @@ -48,6 +48,14 @@ public function generate($time = false, $idSite = 1, $limit = 1000) $i++; $tracker->setTokenAuth($tokenAuth); $tracker->setUserAgent($this->faker->userAgent); + + // Mark visit randomly as ChatGPT Agent + if ($this->faker->boolean(10)) { + $tracker->setCustomTrackingParameter('ai_s', 'request specific, value not relevant'); + $tracker->setCustomTrackingParameter('ai_sa', '"https://chatgpt.com"'); + $tracker->setCustomTrackingParameter('ai_si', 'request specific, value not relevant'); + } + $tracker->setBrowserLanguage($this->faker->locale); $tracker->setCity($this->faker->city); $countryCode = $this->faker->countryCode; From 74e75ebd410fa184dacadd49eaddcc9b3f8babcb Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Sun, 2 Nov 2025 21:45:17 +0100 Subject: [PATCH 38/46] Translations update from Hosted Weblate (#179) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Translated using Weblate (Galician) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/gl/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Latvian) Currently translated at 9.5% (2 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/lv/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Lithuanian) Currently translated at 19.0% (4 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/lt/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Thai) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/th/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Telugu) Currently translated at 9.5% (2 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/te/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Danish) Currently translated at 47.6% (10 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/da/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Esperanto) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/eo/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Estonian) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/et/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Russian) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ru/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Romanian) Currently translated at 42.8% (9 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ro/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Belarusian) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/be/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Bosnian) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/bs/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Welsh) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/cy/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Vietnamese) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/vi/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Icelandic) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/is/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Croatian) Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/hr/ [ci skip] Translated using Weblate (Croatian) Currently translated at 100.0% (21 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/hr/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate Co-authored-by: Milo Ivir * Translated using Weblate (Hungarian) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/hu/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Polish) Currently translated at 47.6% (10 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/pl/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Amharic) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/am/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Arabic) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ar/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Indonesian) Currently translated at 61.9% (13 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/id/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Norwegian Nynorsk) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/nn/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Persian) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/fa/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Serbian) Currently translated at 52.3% (11 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/sr/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Korean) Currently translated at 42.8% (9 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ko/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Slovak) Currently translated at 33.3% (7 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/sk/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Kurdish) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ku/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Slovenian) Currently translated at 19.0% (4 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/sl/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Urdu) Currently translated at 4.7% (1 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/ur/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Spanish (Argentina)) Currently translated at 47.6% (10 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/es_AR/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 57.1% (12 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/zh_Hant/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate * Translated using Weblate (Norwegian Bokmål) Currently translated at 47.6% (10 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/nb_NO/ [ci skip] Co-authored-by: Anonymous Co-authored-by: Hosted Weblate --------- Co-authored-by: Milo Ivir --- lang/am.json | 6 +++++- lang/ar.json | 16 ++++++++-------- lang/be.json | 16 ++++++++-------- lang/bs.json | 6 +++++- lang/cy.json | 6 +++++- lang/da.json | 2 +- lang/eo.json | 6 +++++- lang/es-ar.json | 34 +++++++++++++++++----------------- lang/et.json | 16 ++++++++-------- lang/fa.json | 16 ++++++++-------- lang/gl.json | 6 +++++- lang/hr.json | 22 +++++++++++++++++++++- lang/hu.json | 16 ++++++++-------- lang/id.json | 2 +- lang/is.json | 6 +++++- lang/ko.json | 2 +- lang/ku.json | 6 +++++- lang/lt.json | 7 ++++--- lang/lv.json | 8 ++++---- lang/nb.json | 2 +- lang/nn.json | 4 ++-- lang/pl.json | 2 +- lang/ro.json | 2 +- lang/ru.json | 24 ++++++++++++------------ lang/sk.json | 18 +++++++++--------- lang/sl.json | 12 ++++++------ lang/sr.json | 2 +- lang/te.json | 3 ++- lang/th.json | 16 ++++++++-------- lang/ur.json | 6 +++++- lang/vi.json | 16 ++++++++-------- lang/zh-tw.json | 2 +- 32 files changed, 181 insertions(+), 127 deletions(-) diff --git a/lang/am.json b/lang/am.json index 0967ef4..e697b54 100644 --- a/lang/am.json +++ b/lang/am.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "አዎን" + } +} diff --git a/lang/ar.json b/lang/ar.json index 753b50e..3172d94 100644 --- a/lang/ar.json +++ b/lang/ar.json @@ -1,13 +1,13 @@ { "VisitorGenerator": { - "VisitorGenerator": "مولد الزيارات", - "Warning": "أنت على وشك توليد زيارات زائفة والتي سيتم تسجيلها في قاعدة البيانات.", - "NotReversible": "لن يكون ممكناً %1$s مطلقاً %2$s أو بسهولة حذف هذه الزيارات من سجلات Matomo.", "AreYouSure": "هل ترغب حقاً في توليد الزيارات الزائفة؟", - "ChoiceYes": "نعم، أنا متأكد!", - "Submit": "إرسال", - "SelectWebsite": "اختر موقعاً", + "ChoiceYes": "نعم", + "DaysToCompute": "أيام لاحتسابها", "NbRequestsPerSec": "طلبات في الثانية", - "DaysToCompute": "أيام لاحتسابها" + "NotReversible": "لن يكون ممكناً %1$s مطلقاً %2$s أو بسهولة حذف هذه الزيارات من سجلات Matomo.", + "SelectWebsite": "اختر موقعاً", + "Submit": "إرسال", + "VisitorGenerator": "مولد الزيارات", + "Warning": "أنت على وشك توليد زيارات زائفة والتي سيتم تسجيلها في قاعدة البيانات." } -} \ No newline at end of file +} diff --git a/lang/be.json b/lang/be.json index 5bc6af0..a46c685 100644 --- a/lang/be.json +++ b/lang/be.json @@ -1,13 +1,13 @@ { "VisitorGenerator": { - "VisitorGenerator": "Генератар наведванняў", - "Warning": "Вы збіраецеся генераваць падробленыя наведванні, якія будуць запісаны ў базу дадзеных Matomo.", - "NotReversible": "Будзе %1$s не%2$s лёгка выдаліць гэтыя візіты з запісаў Matomo.", "AreYouSure": "Вы ўпэўненыя, што жадаеце генераваць падробленыя наведванні?", - "ChoiceYes": "Так, я ўпэўнены!", - "Submit": "Пацвердзіць", - "SelectWebsite": "Абярыце вэб-сайт", + "ChoiceYes": "Так", + "DaysToCompute": "Дні для разліку", "NbRequestsPerSec": "Колькасць запытаў у секунду", - "DaysToCompute": "Дні для разліку" + "NotReversible": "Будзе %1$s не%2$s лёгка выдаліць гэтыя візіты з запісаў Matomo.", + "SelectWebsite": "Абярыце вэб-сайт", + "Submit": "Пацвердзіць", + "VisitorGenerator": "Генератар наведванняў", + "Warning": "Вы збіраецеся генераваць падробленыя наведванні, якія будуць запісаны ў базу дадзеных Matomo." } -} \ No newline at end of file +} diff --git a/lang/bs.json b/lang/bs.json index 0967ef4..85fbd3d 100644 --- a/lang/bs.json +++ b/lang/bs.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "Da" + } +} diff --git a/lang/cy.json b/lang/cy.json index 0967ef4..7b06265 100644 --- a/lang/cy.json +++ b/lang/cy.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "Ia" + } +} diff --git a/lang/da.json b/lang/da.json index 18e18a3..2c400fa 100644 --- a/lang/da.json +++ b/lang/da.json @@ -2,7 +2,7 @@ "VisitorGenerator": { "AreYouSure": "Er du sikker på, at du vil generere kunstige besøg?", "AutomaticReprocess": "Rapporterne vil genbehandlet næste gang du besøger Matomo rapporter, det kan tage et par minutter.", - "ChoiceYes": "Ja, jeg er sikker!", + "ChoiceYes": "Ja", "CliToolUsage": "Ved at bruge %1$sMatomo kommandolinjeværktøj%2$s kan du ikke kun generere endnu flere besøg, men også brugere, hjemmesider og mål.", "ConfirmVisitorGeneration": "Bekræft venligst bruger genereringen ved at markere i boxen", "CustomMatomoUrl": "Tilpasset Matomo URL", diff --git a/lang/eo.json b/lang/eo.json index 0967ef4..fd2100c 100644 --- a/lang/eo.json +++ b/lang/eo.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "Jes" + } +} diff --git a/lang/es-ar.json b/lang/es-ar.json index c5a3e8e..77f6e76 100644 --- a/lang/es-ar.json +++ b/lang/es-ar.json @@ -1,25 +1,25 @@ { "VisitorGenerator": { - "PluginDescription": "Creá visitas y acciones falsas en Matomo. Esto puede ser usado por usuarios o desarrolladores de Matomo como una manera fácil de generar datos falsos para popular informes de Matomo.", - "VisitorGenerator": "Generador de visitas", - "Warning": "Estás a punto de generar visitas falsas, las cuales serán registradas en tu base de datos de Matomo.", - "NotReversible": "%1$sNo%2$s será posible eliminar fácilmente estas visitas de los registros de Matomo.", "AreYouSure": "¿Estás seguro que querés generar visitas falsas?", - "ChoiceYes": "¡Sí, eso es lo que quiero!", - "Submit": "Enviar", - "SelectWebsite": "Seleccionar sitio web", - "NbRequestsPerSec": "Solicitudes por segundo", + "AutomaticReprocess": "Los informes serán reprocesados la próxima vez que visités los informes de Matomo. Puede demorar unos minutos.", + "ChoiceYes": "Sí", + "CliToolUsage": "Al usar la %1$sherramienta de interface de línea de comandos%2$s no sólo podés generar incluso más vistas, sino también usuarios, sitios web y metas.", + "ConfirmVisitorGeneration": "Por favor, confirmá la generación de visitas seleccionando la casilla", + "CustomMatomoUrl": "Dirección web personalizada de Matomo", "DaysToCompute": "Días para computar", "GenerateFakeActions": "Esto generará al menos %d acciones falsas en este sitio web, cada día.", - "OverwriteLogFiles": "Podés sobreescribir los archivos de registro que son usados para generar visitas falsas (cambiá o agregá archivos en %s). Hay archivos de registro de solicitudes a \"matomo.php\" en formato \"Apache combined log\". Los desarrolladores de plugins pueden ofrecer sus propios archivos de registro colocando archivos \"*.log\" dentro del directorio \"data\" de sus plugins.", - "PleaseBePatient": "NOTA: puede demorar unos minutos en generar visitas y acciones. Por favor, se paciente…", - "LogImporterNote": "También hay una herramienta más rápida que importará grandes datos de prueba en Matomo. Mirá el archivo %1$sREADME%2$s.", - "AutomaticReprocess": "Los informes serán reprocesados la próxima vez que visités los informes de Matomo. Puede demorar unos minutos.", "GeneratedVisitsFor": "Visitas generadas para %1$s durante los últimos %2$s días", - "ReRunArchiveScript": "Por favor, volvé a ejecutar el comando crontab \".\/console core:archive\" para refrescar los informes. Mirá %1$scómo establecer el autoarchivado de tus informes%2$s.", + "LogImporterNote": "También hay una herramienta más rápida que importará grandes datos de prueba en Matomo. Mirá el archivo %1$sREADME%2$s.", + "NbRequestsPerSec": "Solicitudes por segundo", + "NotReversible": "%1$sNo%2$s será posible eliminar fácilmente estas visitas de los registros de Matomo.", "NumberOfGeneratedActions": "Número de acciones generadas", - "CliToolUsage": "Al usar la %1$sherramienta de interface de línea de comandos%2$s no sólo podés generar incluso más vistas, sino también usuarios, sitios web y metas.", - "CustomMatomoUrl": "Dirección web personalizada de Matomo", - "ConfirmVisitorGeneration": "Por favor, confirmá la generación de visitas seleccionando la casilla" + "OverwriteLogFiles": "Podés sobreescribir los archivos de registro que son usados para generar visitas falsas (cambiá o agregá archivos en %s). Hay archivos de registro de solicitudes a \"matomo.php\" en formato \"Apache combined log\". Los desarrolladores de plugins pueden ofrecer sus propios archivos de registro colocando archivos \"*.log\" dentro del directorio \"data\" de sus plugins.", + "PleaseBePatient": "NOTA: puede demorar unos minutos en generar visitas y acciones. Por favor, se paciente…", + "PluginDescription": "Creá visitas y acciones falsas en Matomo. Esto puede ser usado por usuarios o desarrolladores de Matomo como una manera fácil de generar datos falsos para popular informes de Matomo.", + "ReRunArchiveScript": "Por favor, volvé a ejecutar el comando crontab \"./console core:archive\" para refrescar los informes. Mirá %1$scómo establecer el autoarchivado de tus informes%2$s.", + "SelectWebsite": "Seleccionar sitio web", + "Submit": "Enviar", + "VisitorGenerator": "Generador de visitas", + "Warning": "Estás a punto de generar visitas falsas, las cuales serán registradas en tu base de datos de Matomo." } -} \ No newline at end of file +} diff --git a/lang/et.json b/lang/et.json index ef55b06..85485d7 100644 --- a/lang/et.json +++ b/lang/et.json @@ -1,12 +1,12 @@ { "VisitorGenerator": { - "VisitorGenerator": "Külastuste generaator", - "Warning": "Sa oled genereerimas võltse külastusi, mis salvestatakse sinu Matomou andmebaasis.", - "ChoiceYes": "Jah, olen kindel!", - "Submit": "Jätka", - "SelectWebsite": "Vali veebileht", - "NbRequestsPerSec": "Päringut sekundis", + "ChoiceYes": "Jah", "DaysToCompute": "Loodavate päevade arv", - "NumberOfGeneratedActions": "Genereeritud tegevuste arv" + "NbRequestsPerSec": "Päringut sekundis", + "NumberOfGeneratedActions": "Genereeritud tegevuste arv", + "SelectWebsite": "Vali veebileht", + "Submit": "Jätka", + "VisitorGenerator": "Külastuste generaator", + "Warning": "Sa oled genereerimas võltse külastusi, mis salvestatakse sinu Matomou andmebaasis." } -} \ No newline at end of file +} diff --git a/lang/fa.json b/lang/fa.json index 215570a..b3c02e8 100644 --- a/lang/fa.json +++ b/lang/fa.json @@ -1,13 +1,13 @@ { "VisitorGenerator": { - "VisitorGenerator": "افزایشگر بازدیدکننده", - "Warning": "شما در مورد تولید بازدیدکننده داشته است جعلی است که در پایگاه داده Matomo شما ثبت خواهد شد.", "AreYouSure": "آیا مطمئن اید میخواهید بازدید تقلبی بسازید؟", - "ChoiceYes": "بله ، من مطمئنم!", - "Submit": "ارسال", - "SelectWebsite": "انتخاب وب سایت", - "NbRequestsPerSec": "درخواست بر ثانیه", + "ChoiceYes": "بلی", "DaysToCompute": "محاسبه تعداد روزها", - "NumberOfGeneratedActions": "تعداد اعمال تولید شده" + "NbRequestsPerSec": "درخواست بر ثانیه", + "NumberOfGeneratedActions": "تعداد اعمال تولید شده", + "SelectWebsite": "انتخاب وب سایت", + "Submit": "ارسال", + "VisitorGenerator": "افزایشگر بازدیدکننده", + "Warning": "شما در مورد تولید بازدیدکننده داشته است جعلی است که در پایگاه داده Matomo شما ثبت خواهد شد." } -} \ No newline at end of file +} diff --git a/lang/gl.json b/lang/gl.json index 0967ef4..d7fd503 100644 --- a/lang/gl.json +++ b/lang/gl.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "Si" + } +} diff --git a/lang/hr.json b/lang/hr.json index ab1abb9..9e1f498 100644 --- a/lang/hr.json +++ b/lang/hr.json @@ -1,5 +1,25 @@ { "VisitorGenerator": { - "SelectWebsite": "Odaberi web-stranicu" + "AreYouSure": "Generirati lažne posjete?", + "AutomaticReprocess": "Pri sljedećem posjetu Matomo izvještaja će se izvještaji ponovo obraditi. To može potrajati par minuta.", + "ChoiceYes": "Da", + "CliToolUsage": "%1$sMatomo CLI alat%2$s ne samo da može generirati još više posjeta, već i korisnike, web-stranice i ciljeve.", + "ConfirmVisitorGeneration": "Označi okvir za potvrđivanje generiranja posjetitelja", + "CustomMatomoUrl": "Prilagođeni Matomo URL", + "DaysToCompute": "Broj dana za izračunavanje", + "GenerateFakeActions": "Ovo će generirati barem %d lažne radnje na ovoj stranici svaki dan.", + "GeneratedVisitsFor": "Generirani posjeti za %1$s i za zadnjih %2$s dana", + "LogImporterNote": "%1$sREADME%2$s datoteka sadrži informacije o bržem alatu koji uvozi velike testne podatke u Matomo.", + "NbRequestsPerSec": "Broj zahtjeva u sekundi", + "NotReversible": "%1$sNeće%2$s biti moguće jednostavno izbrisati ove posjete iz Matomo dnevnika.", + "NumberOfGeneratedActions": "Broj generiranih radnji", + "OverwriteLogFiles": "Prepiši „matomo.php” datoteke dnevnika za generiranje lažnih posjeta u „Apache formatu spojenog dnevnika” (promijeni ili dodaj datoteke u %s). Razvojni programeri dodataka dodaju vlastite datoteke dnevnika kao „*.log” datoteke u mapu „data” svog dodatka.", + "PleaseBePatient": "Generiranje posjeta i radnji može potrajati par minuta.", + "PluginDescription": "Stvori lažne posjete i radnje u Matomou. Generiraj lažne podatke za popunjavanje Matomo izvještaja.", + "ReRunArchiveScript": "Ponovo pokreni crontab naredbu './console core:archive' za osvježavanje izvještaja, kao što je navedeno u %1$s„Kako postaviti automatsko arhiviranje izvješća”%2$s", + "SelectWebsite": "Odaberi web-stranicu", + "Submit": "Pošalji", + "VisitorGenerator": "Generator posjetitelja", + "Warning": "Upravo ćeš generirati lažne posjete za svoju Matomo bazu podataka." } } diff --git a/lang/hu.json b/lang/hu.json index ff4109e..c03e11f 100644 --- a/lang/hu.json +++ b/lang/hu.json @@ -1,13 +1,13 @@ { "VisitorGenerator": { - "VisitorGenerator": "Látogatógenerátor", - "Warning": "Fals látogatások generálására készülsz, melyeket rögzíteni fogunk a Matomo adatbázisban.", - "NotReversible": "A műlátogatásokat %1$snem%2$s lehet egyszerűen kitörölni a Matomo naplófájlokból", "AreYouSure": "Biztosan szeretnél fals adatokat generálni?", - "ChoiceYes": "Igen, biztos vagyok benne!", - "Submit": "Elküld", - "SelectWebsite": "Weboldal kiválasztása", + "ChoiceYes": "Igen", + "DaysToCompute": "Napok száma", "NbRequestsPerSec": "Lekérések másodpercenként", - "DaysToCompute": "Napok száma" + "NotReversible": "A műlátogatásokat %1$snem%2$s lehet egyszerűen kitörölni a Matomo naplófájlokból", + "SelectWebsite": "Weboldal kiválasztása", + "Submit": "Elküld", + "VisitorGenerator": "Látogatógenerátor", + "Warning": "Fals látogatások generálására készülsz, melyeket rögzíteni fogunk a Matomo adatbázisban." } -} \ No newline at end of file +} diff --git a/lang/id.json b/lang/id.json index ea2ecc0..85d53ce 100644 --- a/lang/id.json +++ b/lang/id.json @@ -2,7 +2,7 @@ "VisitorGenerator": { "AreYouSure": "Buat kunjungan palsu?", "AutomaticReprocess": "Laporan akan diproses ulang saat Anda mengunjungi laporan Matomo lagi, mungkin memerlukan waktu beberapa menit.", - "ChoiceYes": "Ya, tambahkan data yang dibuat-buat ke basis data.", + "ChoiceYes": "Ya", "CliToolUsage": "Dengan menggunakan %1$salat Matomo CLI%2$s Anda tidak hanya dapat menghasilkan lebih banyak kunjungan tetapi juga pengguna, situs web, dan sasaran.", "ConfirmVisitorGeneration": "Harap konfirmasikan generasi pengunjung dengan mencentang kotak yang disediakan", "CustomMatomoUrl": "URL Matomo Khusus", diff --git a/lang/is.json b/lang/is.json index 0967ef4..3bdad65 100644 --- a/lang/is.json +++ b/lang/is.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "Já" + } +} diff --git a/lang/ko.json b/lang/ko.json index 1666e31..7dda311 100644 --- a/lang/ko.json +++ b/lang/ko.json @@ -1,7 +1,7 @@ { "VisitorGenerator": { "AreYouSure": "정말로 가상 방문을 생성 하시겠습니까?", - "ChoiceYes": "네, 물론입니다!", + "ChoiceYes": "예", "ConfirmVisitorGeneration": "박스 체크를 하여 방문자 생성을 승인해주세요.", "CustomMatomoUrl": "맞춤 Matomo URL", "DaysToCompute": "일별 계산", diff --git a/lang/ku.json b/lang/ku.json index 0967ef4..bcd2cd0 100644 --- a/lang/ku.json +++ b/lang/ku.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "بەڵێ" + } +} diff --git a/lang/lt.json b/lang/lt.json index f2762ae..a33a861 100644 --- a/lang/lt.json +++ b/lang/lt.json @@ -1,7 +1,8 @@ { "VisitorGenerator": { - "VisitorGenerator": "Apsilankymų generatorius", + "ChoiceYes": "Taip", + "NbRequestsPerSec": "Užklausų per sekundę", "Submit": "Pateikti", - "NbRequestsPerSec": "Užklausų per sekundę" + "VisitorGenerator": "Apsilankymų generatorius" } -} \ No newline at end of file +} diff --git a/lang/lv.json b/lang/lv.json index 5617206..485486c 100644 --- a/lang/lv.json +++ b/lang/lv.json @@ -1,7 +1,7 @@ { "VisitorGenerator": { - "ChoiceYes": "Jā, es esmu drošs!", - "Submit": "Apstiprināt", - "SelectWebsite": "Izvēlēties vietni" + "ChoiceYes": "Jā", + "SelectWebsite": "Izvēlēties vietni", + "Submit": "Apstiprināt" } -} \ No newline at end of file +} diff --git a/lang/nb.json b/lang/nb.json index b03a96e..f7831af 100644 --- a/lang/nb.json +++ b/lang/nb.json @@ -2,7 +2,7 @@ "VisitorGenerator": { "AreYouSure": "Er du sikker på at du vil generere falske besøk?", "AutomaticReprocess": "Rapportene vil bli behandlet igjen neste gang du besøker Matomo-rapporter. Det kan ta noen minutter.", - "ChoiceYes": "Ja, jeg er sikker!", + "ChoiceYes": "Ja", "CliToolUsage": "Ved å bruke %1$sMatomo-kommandolinjeverktøyet%2$s kan du ikke kun generere flere besøk, men også brukere, nettsider og mål.", "ConfirmVisitorGeneration": "Bekreft besøksgenerering ved å krysse av i boksen", "CustomMatomoUrl": "Egendefinert Matomo-URL", diff --git a/lang/nn.json b/lang/nn.json index 343e9cd..e12652a 100644 --- a/lang/nn.json +++ b/lang/nn.json @@ -1,7 +1,7 @@ { "VisitorGenerator": { "AreYouSure": "Er du sikker på at du vil generera falske vitjingar?", - "ChoiceYes": "Ja, eg er sikker!", + "ChoiceYes": "Ja", "SelectWebsite": "Vel nettstad" } -} \ No newline at end of file +} diff --git a/lang/pl.json b/lang/pl.json index caa90c5..e60829c 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -2,7 +2,7 @@ "VisitorGenerator": { "AreYouSure": "Czy jesteś pewny/a, że chcesz wygenerować symulowane odwiedziny?", "AutomaticReprocess": "Raporty zostaną ponownie przeprocesowane podczas Twojej następnej wizyty w raportach Matomo, co może zająć parę minut.", - "ChoiceYes": "Tak, mam taką pewność!", + "ChoiceYes": "Tak", "CliToolUsage": "Korzystając z %1$s narzędzia linii poleceń Matomo%2$s możesz nie tylko generować więcej wizyt, ale również użytkowników, serwisy i cele.", "ConfirmVisitorGeneration": "Proszę potwierdź generowanie użytkowników zaznaczając kwadrat", "CustomMatomoUrl": "Skonfigurowany adres Matomo", diff --git a/lang/ro.json b/lang/ro.json index 935b215..d882101 100644 --- a/lang/ro.json +++ b/lang/ro.json @@ -2,7 +2,7 @@ "VisitorGenerator": { "AreYouSure": "Eşti sigur(ă) că doreşti să generezi vizite false?", "AutomaticReprocess": "Rapoartele vor fi reprocesat data viitoare când vizitați Matomo rapoarte, ar putea dura câteva minute.", - "ChoiceYes": "Da, sunt sigur(ă)!", + "ChoiceYes": "Da", "CliToolUsage": "Prin utilizarea %1$sMatomo CLI instrumente %2$s puteti genera nu numai mai multe vizite, dar, de asemenea, utilizatori, site-uri și obiective.", "DaysToCompute": "Zile pentru a calcula", "GenerateFakeActions": "Acest lucru va genera cel puțin %d acțiuni false pe acest site pentru fiecare zi.", diff --git a/lang/ru.json b/lang/ru.json index 6fb12ff..48a892f 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -1,18 +1,18 @@ { "VisitorGenerator": { - "PluginDescription": "Создать ненастоящие визиты и действия в Matomo. Это может использоваться пользователями Matomo или разработчиками как простой способ генерировать ненастоящие данные, чтобы заполнить отчеты Matomo.", - "VisitorGenerator": "Генератор посещений", - "Warning": "Вы пытаетесь сгенерировать ложные посещения, которые будут сохранены в базе данных Веб-аналитики.", - "NotReversible": "Просто взять и удалить все эти посещения из журналов Веб-аналитики %1$sНЕВОЗМОЖНО%2$s!", "AreYouSure": "Вы уверены, что хотите сгенерировать ложные посещения?", - "ChoiceYes": "Да, я уверен!", - "Submit": "Отправить", - "SelectWebsite": "Выберите сайт", - "NbRequestsPerSec": "Запросов в секунду", + "AutomaticReprocess": "Отчёты будут снова обработаны при следующем посещении отчётов в Matomo, на это может уйти несколько минут.", + "ChoiceYes": "Да", + "CliToolUsage": "При использовании %1$sинструмента интерфейса командной строки Matomo%2$s вы можете не только генерировать больше посещений, но так же и пользователей, веб-сайтов и целей.", "DaysToCompute": "Считать дней", "LogImporterNote": "Есть более быстрый инструмент, способный импортировать большие тестовые данные в Matomo, смотри %1$sREADME%2$s.", - "AutomaticReprocess": "Отчёты будут снова обработаны при следующем посещении отчётов в Matomo, на это может уйти несколько минут.", - "ReRunArchiveScript": "Пожалуйста, повторно запустить crontab-задачу '.\/console core:archive' для обновления отчетов. %1$sСмотрите «Как настроить авто-архивирование ваших отчетов»%2$s", - "CliToolUsage": "При использовании %1$sинструмента интерфейса командной строки Matomo%2$s вы можете не только генерировать больше посещений, но так же и пользователей, веб-сайтов и целей." + "NbRequestsPerSec": "Запросов в секунду", + "NotReversible": "Просто взять и удалить все эти посещения из журналов Веб-аналитики %1$sНЕВОЗМОЖНО%2$s!", + "PluginDescription": "Создать ненастоящие визиты и действия в Matomo. Это может использоваться пользователями Matomo или разработчиками как простой способ генерировать ненастоящие данные, чтобы заполнить отчеты Matomo.", + "ReRunArchiveScript": "Пожалуйста, повторно запустить crontab-задачу './console core:archive' для обновления отчетов. %1$sСмотрите «Как настроить авто-архивирование ваших отчетов»%2$s", + "SelectWebsite": "Выберите сайт", + "Submit": "Отправить", + "VisitorGenerator": "Генератор посещений", + "Warning": "Вы пытаетесь сгенерировать ложные посещения, которые будут сохранены в базе данных Веб-аналитики." } -} \ No newline at end of file +} diff --git a/lang/sk.json b/lang/sk.json index d4aa0a1..9546d52 100644 --- a/lang/sk.json +++ b/lang/sk.json @@ -1,14 +1,14 @@ { "VisitorGenerator": { - "VisitorGenerator": "Generátor návštev", - "Warning": "Chystáte sa vytvárať falošné návštev, ktoré budú zaznamenané v databáze.", - "NotReversible": "To bude %1$s %2$s možné ľahko odstrániť pre tieto návštevy v záznamoch.", "AreYouSure": "Ste si istí, že chcete vytvoriť falošné návštevy?", - "ChoiceYes": "Áno, som si istý!", - "Submit": "Odoslať", - "SelectWebsite": "Vybrať web", - "NbRequestsPerSec": "Žiadosti za sekundu", + "ChoiceYes": "Áno", "DaysToCompute": "Dni pre výpočet", - "GeneratedVisitsFor": "Generované návštevy pre %1$s a pre posledných %2$s dní" + "GeneratedVisitsFor": "Generované návštevy pre %1$s a pre posledných %2$s dní", + "NbRequestsPerSec": "Žiadosti za sekundu", + "NotReversible": "To bude %1$s %2$s možné ľahko odstrániť pre tieto návštevy v záznamoch.", + "SelectWebsite": "Vybrať web", + "Submit": "Odoslať", + "VisitorGenerator": "Generátor návštev", + "Warning": "Chystáte sa vytvárať falošné návštev, ktoré budú zaznamenané v databáze." } -} \ No newline at end of file +} diff --git a/lang/sl.json b/lang/sl.json index 9e0bac1..9a8af05 100644 --- a/lang/sl.json +++ b/lang/sl.json @@ -1,11 +1,11 @@ { "VisitorGenerator": { - "VisitorGenerator": "Generator Obiskovalcev", - "Warning": "Ravnokar boste generirali navidezne obiske, ki bodo shranjeni v podatkovno bazo vašega sistema Matomo.", "AreYouSure": "Ste prepričani, da želite generirate navidezne obiske?", - "ChoiceYes": "Da, prepričan sem!", - "Submit": "Uveljavi", + "ChoiceYes": "Da", + "NbRequestsPerSec": "Zahtev na sekundo", "SelectWebsite": "Izberi spletno stran", - "NbRequestsPerSec": "Zahtev na sekundo" + "Submit": "Uveljavi", + "VisitorGenerator": "Generator Obiskovalcev", + "Warning": "Ravnokar boste generirali navidezne obiske, ki bodo shranjeni v podatkovno bazo vašega sistema Matomo." } -} \ No newline at end of file +} diff --git a/lang/sr.json b/lang/sr.json index 5f4c95d..bcd85ec 100644 --- a/lang/sr.json +++ b/lang/sr.json @@ -2,7 +2,7 @@ "VisitorGenerator": { "AreYouSure": "Da li ste sigurni da želite da generišete lažne posete?", "AutomaticReprocess": "Izveštaji će biti regenerisani kada ih sledeći put budete otvorili i to može potrajati nekoliko minuta.", - "ChoiceYes": "Da, siguran sam!", + "ChoiceYes": "Da", "CliToolUsage": "Korišćenjem %1$sMatomo klijentskih alata%2$s možete pored poseta generisati i korisnike, sajtove i ciljeve.", "ConfirmVisitorGeneration": "Molimo vas da potvrdite generisanje poseta klikom na kućicu", "CustomMatomoUrl": "Korisnički definisana Matomo adresa", diff --git a/lang/te.json b/lang/te.json index 9f7b66f..125e936 100644 --- a/lang/te.json +++ b/lang/te.json @@ -1,5 +1,6 @@ { "VisitorGenerator": { + "ChoiceYes": "అవును", "Submit": "దాఖలుచెయ్యి" } -} \ No newline at end of file +} diff --git a/lang/th.json b/lang/th.json index f403aaa..8eb2eb8 100644 --- a/lang/th.json +++ b/lang/th.json @@ -1,13 +1,13 @@ { "VisitorGenerator": { - "VisitorGenerator": "ตัวสร้างผู้เข้าชม", - "Warning": "คุณกำลังจะสร้างตัวหลอกการเข้าชม ซึ่งจะถูกบันทึกในฐานข้อมูลของคุณใน Matomo", - "NotReversible": "มันจะ %1$s ไม่สามารถเป็นไปได้ %2$s เพื่อเข้าชมเหล่านี้จาก Matomo ไฟล์ล็อกจะถูกลบได้อย่างง่ายดาย", "AreYouSure": "คุณแน่ใจหรือว่า ต้องการสร้างตัวหลอกการเข้าชม?", - "ChoiceYes": "ใช่ฉันแน่ใจ!", - "Submit": "ตกลง", - "SelectWebsite": "เลือกเว็บไซต์", + "ChoiceYes": "ใช่", + "DaysToCompute": "วันในการคำนวณ", "NbRequestsPerSec": "หน้าต่อวินาที", - "DaysToCompute": "วันในการคำนวณ" + "NotReversible": "มันจะ %1$s ไม่สามารถเป็นไปได้ %2$s เพื่อเข้าชมเหล่านี้จาก Matomo ไฟล์ล็อกจะถูกลบได้อย่างง่ายดาย", + "SelectWebsite": "เลือกเว็บไซต์", + "Submit": "ตกลง", + "VisitorGenerator": "ตัวสร้างผู้เข้าชม", + "Warning": "คุณกำลังจะสร้างตัวหลอกการเข้าชม ซึ่งจะถูกบันทึกในฐานข้อมูลของคุณใน Matomo" } -} \ No newline at end of file +} diff --git a/lang/ur.json b/lang/ur.json index 0967ef4..91f9cf8 100644 --- a/lang/ur.json +++ b/lang/ur.json @@ -1 +1,5 @@ -{} +{ + "VisitorGenerator": { + "ChoiceYes": "جی ہاں" + } +} diff --git a/lang/vi.json b/lang/vi.json index 47d14ca..0dd9a80 100644 --- a/lang/vi.json +++ b/lang/vi.json @@ -1,13 +1,13 @@ { "VisitorGenerator": { - "VisitorGenerator": "Người tạo khách truy cập", - "Warning": "Bạn muốn tạo ra truy cập giả mạo sẽ được ghi lại trong cơ sở dữ liệu Matomo của bạn.", - "NotReversible": "Nó sẽ %1$s %2$s không có thể dễ dàng xóa các truy cập từ các bản ghi Matomo.", "AreYouSure": "Bạn có chắc chắn bạn muốn tạo các lượt truy cập giả?", - "ChoiceYes": "Đúng vậy, tôi chắc chắn!", - "Submit": "Trình (submit)", - "SelectWebsite": "Chọn website", + "ChoiceYes": "Có", + "DaysToCompute": "Các ngày cần tính", "NbRequestsPerSec": "Các yêu cầu mỗi giây", - "DaysToCompute": "Các ngày cần tính" + "NotReversible": "Nó sẽ %1$s %2$s không có thể dễ dàng xóa các truy cập từ các bản ghi Matomo.", + "SelectWebsite": "Chọn website", + "Submit": "Trình (submit)", + "VisitorGenerator": "Người tạo khách truy cập", + "Warning": "Bạn muốn tạo ra truy cập giả mạo sẽ được ghi lại trong cơ sở dữ liệu Matomo của bạn." } -} \ No newline at end of file +} diff --git a/lang/zh-tw.json b/lang/zh-tw.json index 0bb9662..ba9d3f9 100644 --- a/lang/zh-tw.json +++ b/lang/zh-tw.json @@ -2,7 +2,7 @@ "VisitorGenerator": { "AreYouSure": "你確定要產生偽造訪客嗎?", "AutomaticReprocess": "報表將會在你下次查看 Matomo 報表時重新處理,可能會花上幾分鐘。", - "ChoiceYes": "是,我確定!", + "ChoiceYes": "是", "CliToolUsage": "透過 %1$sMatomo CLI 工具%2$s你不僅能產生更多訪問,也能產生使用者、網站及目標。", "ConfirmVisitorGeneration": "請勾選核取框來確認訪客產生", "CustomMatomoUrl": "自訂 Matomo 網址", From e1b55efbad7f228a21966fb7bbcada5fa8bf9640 Mon Sep 17 00:00:00 2001 From: Jacob Ransom Date: Mon, 3 Nov 2025 12:28:57 +1300 Subject: [PATCH 39/46] PG-4669 test with matomo5_[max|min]_php [ignore_release] --- .github/workflows/matomo-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/matomo-tests.yml b/.github/workflows/matomo-tests.yml index ed4bfad..cd79d1c 100644 --- a/.github/workflows/matomo-tests.yml +++ b/.github/workflows/matomo-tests.yml @@ -1,7 +1,7 @@ # Action for running tests # This file has been automatically created. # To recreate it you can run this command -# ./console generate:test-action --plugin="VisitorGenerator" --php-versions="7.2,8.4" --schedule-cron="30 2 * * 6" +# ./console generate:test-action --plugin="VisitorGenerator" --php-versions="matomo5_min_php,matomo5_max_php" --schedule-cron="30 2 * * 6" name: Plugin VisitorGenerator Tests @@ -37,7 +37,7 @@ jobs: strategy: fail-fast: false matrix: - php: [ '7.2', '8.4' ] + php: [ 'matomo5_min_php', 'matomo5_max_php' ] target: ['minimum_required_matomo', 'maximum_supported_matomo'] steps: - uses: actions/checkout@v3 @@ -54,4 +54,4 @@ jobs: test-type: 'PluginTests' matomo-test-branch: ${{ matrix.target }} artifacts-pass: ${{ secrets.ARTIFACTS_PASS }} - upload-artifacts: ${{ matrix.php == '7.2' && matrix.target == 'maximum_supported_matomo' }} + upload-artifacts: ${{ matrix.php == 'matomo5_min_php' && matrix.target == 'maximum_supported_matomo' }} From 1be19275b652647a03f719cb3ccff5d5a1189eff Mon Sep 17 00:00:00 2001 From: Stefan Giehl Date: Mon, 3 Nov 2025 10:50:33 +0100 Subject: [PATCH 40/46] Randomly mark visits as NovaAct agent also (#181) --- Generator/VisitsFake.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Generator/VisitsFake.php b/Generator/VisitsFake.php index 069f51d..f53963d 100644 --- a/Generator/VisitsFake.php +++ b/Generator/VisitsFake.php @@ -49,11 +49,13 @@ public function generate($time = false, $idSite = 1, $limit = 1000) $tracker->setTokenAuth($tokenAuth); $tracker->setUserAgent($this->faker->userAgent); - // Mark visit randomly as ChatGPT Agent - if ($this->faker->boolean(10)) { + // Mark visit randomly as ChatGPT Agent or NovaAct Agent + if ($this->faker->boolean(8)) { $tracker->setCustomTrackingParameter('ai_s', 'request specific, value not relevant'); $tracker->setCustomTrackingParameter('ai_sa', '"https://chatgpt.com"'); $tracker->setCustomTrackingParameter('ai_si', 'request specific, value not relevant'); + } elseif ($this->faker->boolean(2)) { + $tracker->setUserAgent('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.7339.16 Safari/537.36 Agent-NovaAct/0.9'); } $tracker->setBrowserLanguage($this->faker->locale); From 5404e46969973c43346cbe9bda2295670192a459 Mon Sep 17 00:00:00 2001 From: Stefan Giehl Date: Thu, 6 Nov 2025 19:45:14 +0100 Subject: [PATCH 41/46] Adds new command to send fake AI Bot Requests (#182) --- Commands/GenerateBotRequests.php | 132 +++++++++++++++++++++++++++++++ Faker/Request.php | 25 ++++-- Generator/BotRequestsFake.php | 104 ++++++++++++++++++++++++ 3 files changed, 255 insertions(+), 6 deletions(-) create mode 100644 Commands/GenerateBotRequests.php create mode 100644 Generator/BotRequestsFake.php diff --git a/Commands/GenerateBotRequests.php b/Commands/GenerateBotRequests.php new file mode 100644 index 0000000..8a5614e --- /dev/null +++ b/Commands/GenerateBotRequests.php @@ -0,0 +1,132 @@ +setName('visitorgenerator:generate-bot-requests'); + $this->setDescription('Generates many bot requests for a given amount of days in the past. This command is intended for developers.'); + $this->addRequiredValueOption('idsite', null, 'Defines the site the requests should be generated for'); + $this->addRequiredValueOption('days', null, 'Defines for how many days in the past requests should be generated', 1); + $this->addRequiredValueOption('start-date', null, 'Date to start generating on.'); + $this->addRequiredValueOption('limit-fake-requests', null, 'Limits the number of fake requests', null); + $this->addRequiredValueOption('custom-matomo-url', null, "Defines an alternate Matomo URL, e.g. if Matomo is installed behind a Load-Balancer."); + } + + /** + * @return int + */ + protected function doExecute(): int + { + $input = $this->getInput(); + $output = $this->getOutput(); + $timer = new Timer(); + $days = $this->checkDays(); + $customMatomoUrl = $this->checkCustomMatomoUrl(); + $limit = $this->getLimitFakeRequests(); + $idSite = $this->getIdSite(); + + $startDate = $input->getOption('start-date'); + if (empty($startDate) || $startDate === 'now') { + $startTime = time(); + } else { + $startTime = strtotime($startDate); + } + + $time = $startTime - ($days - 1) * 86400; + + $nbActionsTotal = 0; + while ($time <= $startTime) { + $output->writeln([ + sprintf("Generating requests for %s...", Date::factory($time)->toString()), + ]); + + Access::doAsSuperUser(function () use ($time, $idSite, &$nbActionsTotal, $customMatomoUrl, $limit) { + $fakeRequests = new BotRequestsFake($customMatomoUrl); + $nbActionsTotal += $fakeRequests->generate($time, $idSite, $limit); + }); + + $time += 86400; + } + + $this->writeSuccessMessage([ + 'idsite = ' . $idSite, + $nbActionsTotal . ' Requests generated', + round($nbActionsTotal / $timer->getTime(), 0) . ' requests per second', + ]); + + return self::SUCCESS; + } + + private function getLimitFakeRequests(): int + { + $input = $this->getInput(); + + if ($input->getOption('limit-fake-requests')) { + return $input->getOption('limit-fake-requests'); + } + + return rand(400, 1000); + } + + protected function checkDays(): int + { + $days = (int)$this->getInput()->getOption('days'); + + if ($days < 1) { + throw new \InvalidArgumentException('Days to compute must be greater or equal to 1.'); + } + + return $days; + } + + private function checkCustomMatomoUrl(): ?string + { + if (!$customMatomoUrl = $this->getInput()->getOption('custom-matomo-url')) { + return null; + } + + if (!UrlHelper::isLookLikeUrl($customMatomoUrl)) { + throw new \Exception("The Custom Matomo Tracker Url you entered doesn't seem to be valid."); + } + + return $customMatomoUrl; + } + + protected function getIdSite(): int + { + $idSite = $this->getInput()->getOption('idsite'); + + if ($idSite === null) { + $idSite = $this->ask('ID of the site in which to generate the visits: '); + } + + $idSite = (int)$idSite; + + return Access::doAsSuperUser(function () use ($idSite) { + if (!Site::getSite($idSite)) { + throw new \InvalidArgumentException('idsite is not a valid, no such site found'); + } + + return $idSite; + }); + } +} diff --git a/Faker/Request.php b/Faker/Request.php index 659f3b9..5e21b51 100644 --- a/Faker/Request.php +++ b/Faker/Request.php @@ -767,7 +767,7 @@ class Request extends \Faker\Provider\Base '/blog/tasks/', '/blog/2013/09/piwik-mobile-1-9-8-with-full-support-for-ios-7/', '/FAQ/', - '/blog/tasks/graphs-list-of-improvements-jqplotjs/' + '/blog/tasks/graphs-list-of-improvements-jqplotjs/', ); protected static $campaignNames = [ @@ -849,7 +849,7 @@ class Request extends \Faker\Provider\Base '2048x1152', '600x912', '320x240', - '320x568' + '320x568', ); public function pageURL() @@ -878,7 +878,7 @@ public function productName() 'Test Product', 'Product Name', 'Awesome Product', - 'Helpful Product' + 'Helpful Product', )); } @@ -981,7 +981,7 @@ public function searchEngineUrlWithKeyword($keyword) 'http://www.bing.com/search?q=', 'http://uk.search.yahoo.com/search?ei=UTF-8&fr=moz35&q=', 'http://search.yahoo.com/search;?p=', - 'http://uk.ask.com/web?l=dis&prt=NIS&chn=retail&geo=GB&ver=19&odn=&dm=all&q=' + 'http://uk.ask.com/web?l=dis&prt=NIS&chn=retail&geo=GB&ver=19&odn=&dm=all&q=', )); return $url . $keyword; @@ -998,7 +998,7 @@ public function searchEngineUrlWithOutKeyword() 'http://search.yahoo.co.jp/r/FOR=wJjKBrpV3iiyQ9OVtYIAEFhwB6F4X7nB3uwubUjurHLqwT8oFNO7dNiZBXYbmgNENZz8yKntTR' . '5X_chrfaAcSOgPUyuK.Y5mOUs5tzKNLuq42vgCKLHdBH3gavAtCoKeCKOItwbkCN10nMDO9gO8MW9zdH9TOyAul7u1sqXEE0wTNp' . 'Y6DW.EFfagOL54JzI3OBVfIin7/_ylt=A2RAyhx.wOZaQWsATEuDTwx.;_ylu=X3oDMTBtNHJhZXRnBHBvcwMxBHNlYwNzcgRzbGsDdGl0bGU-/SIG=11fhbagaq/EXP=1525172798/**https%3A//matomo.jp/news/7540', - 'https://yandex.ru/' + 'https://yandex.ru/', )); return $url; @@ -1102,7 +1102,20 @@ public function referrer() 'http://www.example.com/5-great-google-analytics-alternatives/?utm_content=ourfake&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer', 'http://www.example.org/blog/15-google-analytics-alternatives?utm_source=twitter&utm_medium=social&utm_campaign=blog', 'http://t.co/itFSLvPlqW', - 'http://t.co/g0Alwc83T6' + 'http://t.co/g0Alwc83T6', )); } + + public function aiAssistantBotUserAgent() + { + return static::randomElement([ + 'Mozilla/5.0 (compatible; ChatGPT-User/1.0; +https://openai.com)', + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-User/1.0; +https://docs.mistral.ai/robots)', + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Gemini-Deep-Research; +https://gemini.google/overview/deep-research/) Chrome/135.0.0.0 Safari/537.36', + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claude-User/1.0; +Claude-User@anthropic.com)', + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)', + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36; Devin/1.0; +devin.ai', + 'Google-NotebookLM', + ]); + } } diff --git a/Generator/BotRequestsFake.php b/Generator/BotRequestsFake.php new file mode 100644 index 0000000..f71c1c9 --- /dev/null +++ b/Generator/BotRequestsFake.php @@ -0,0 +1,104 @@ +makeMatomoTracker($idSite); + $tracker->enableBulkTracking(); + $tokenAuth = Piwik::requestTemporarySystemAuthToken('VistorGenerator', 24); + $site = $this->getCurrentSite($idSite); + + $i = 0; + while ($i < $limit) { + $tracker->setNewVisitorId(); + + $pageUrl = $this->faker->pageURL; + + // don't use link urls for bot requests + while (0 === strpos($pageUrl, 'http')) { + $pageUrl = $this->faker->pageURL; + } + + $i++; + $tracker->setTokenAuth($tokenAuth); + $tracker->setUserAgent($this->faker->aiAssistantBotUserAgent); + + $tracker->setIp($this->faker->boolean(77) ? $this->faker->ipv4 : $this->faker->ipv6); + $tracker->setLocalTime($this->faker->time()); + $tracker->setIdSite($idSite); + + $tracker->setPerformanceTimings( + null, + $this->faker->numberBetween(400, 600), + null, + null, + null, + null + ); + + $tracker->setForceVisitDateTime($date . ' ' . $this->faker->time('H:i:s')); + + $tracker->setCustomTrackingParameter('bw_bytes', $this->faker->numberBetween(1, 2000000000)); + $tracker->setCustomTrackingParameter('http_status', $this->faker->randomElement([ + // most requests should be status 200, so adding it here more often + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 301, 302, 307, 308, + 401, 404, 404, 404, 404, + 500, + ])); + + $tracker->setCustomTrackingParameter('source', $this->faker->randomElement([ + '', 'cloudflare', 'cloudfront', 'wordpress' + ])); + + // force bot tracking mode + $tracker->setCustomTrackingParameter('recMode', '1'); + + + if (false !== strpos($pageUrl, 'zip')) { + $tracker->setUrl($site['main_url'] . $pageUrl); + $tracker->doTrackAction($site['main_url'] . $pageUrl, 'download'); + } else { + $tracker->setUrl($site['main_url'] . $pageUrl); + + $tracker->doTrackPageView(''); + } + + if ($i % 100 == 0) { + $tracker->doBulkTrack(); + } + } + + if ($i % 100 != 0) { + $tracker->doBulkTrack(); + } + + CoreAdminHomeApi::getInstance()->invalidateArchivedReports($idSite, $date); + + return $i; + } + + private function getCurrentSite($idSite) + { + return SitesManagerApi::getInstance()->getSiteFromId($idSite); + } +} From 358a673157f4cdd3f61415ae1f113f21df0e9428 Mon Sep 17 00:00:00 2001 From: Altamash Shaikh Date: Mon, 10 Nov 2025 10:03:51 +0530 Subject: [PATCH 42/46] Bumped version to 5.1.4 --- CHANGELOG.md | 3 +++ plugin.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36d14e5..c5a25a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,3 +65,6 @@ * Started generating AI referrer URLs - 5.1.3 - 2025-09-01 * Fix for generation of ecommerce order ID 0 +- 5.1.4 - 2025-11-10 + * Randomly mark visits as NovaAct agent also + * Added new command to send fake AI Bot Requests diff --git a/plugin.json b/plugin.json index 2aa08f7..c3f6ce0 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "VisitorGenerator", - "version": "5.1.3", + "version": "5.1.4", "description": "Developer tool that lets you generate fake visits. Useful if you are working with plugins or themes or if you use the Matomo API.", "keywords": ["development", "tools"], "license": "GPL v3+", From 7c30ff3fb99ba761f58627d1150a3e681110a723 Mon Sep 17 00:00:00 2001 From: Michal Kleiner Date: Wed, 12 Nov 2025 13:03:44 +1300 Subject: [PATCH 43/46] Add optional word prefix to order ID since they don't have to be just numeric --- Generator/VisitsFake.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Generator/VisitsFake.php b/Generator/VisitsFake.php index f53963d..5c90b83 100644 --- a/Generator/VisitsFake.php +++ b/Generator/VisitsFake.php @@ -186,11 +186,11 @@ public function generate($time = false, $idSite = 1, $limit = 1000) if ($this->faker->boolean(50)) { $tracker->doTrackEcommerceCartUpdate(50); } else { - $orderId = $this->faker->randomNumber(5); - // randomNumber() can produce 0, which is an invalid order number. - if (0 === $orderId) { - $orderId = 1; - } + do { + $randomNumber = (string) $this->faker->randomNumber(5); + $orderId = $this->faker->boolean(50) ? ($this->faker->word() . '-' . $randomNumber) : $randomNumber; + } while ('0' === $orderId); + $subtotal = $price * $quantity; $tax = $subtotal * 0.19; $shipping = $subtotal * 0.05; From af36dcdbe9ad363bc47e56ba05b32f7b1a02827f Mon Sep 17 00:00:00 2001 From: Michal Kleiner Date: Wed, 12 Nov 2025 14:01:15 +1300 Subject: [PATCH 44/46] Bump version and update changelog --- CHANGELOG.md | 2 ++ plugin.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5a25a7..0199772 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,3 +68,5 @@ - 5.1.4 - 2025-11-10 * Randomly mark visits as NovaAct agent also * Added new command to send fake AI Bot Requests +- 5.1.5 - 2025-11-24 + * Generate string order IDs occasionally diff --git a/plugin.json b/plugin.json index c3f6ce0..f650463 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "name": "VisitorGenerator", - "version": "5.1.4", + "version": "5.1.5", "description": "Developer tool that lets you generate fake visits. Useful if you are working with plugins or themes or if you use the Matomo API.", "keywords": ["development", "tools"], "license": "GPL v3+", From 51880ee73ed779c4fa389298e37407f5c99c196a Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 2 Dec 2025 15:13:19 +0100 Subject: [PATCH 45/46] Translated using Weblate (Indonesian) Currently translated at 66.6% (14 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/id/ [ci skip] --- lang/id.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/id.json b/lang/id.json index 85d53ce..79e8c70 100644 --- a/lang/id.json +++ b/lang/id.json @@ -11,7 +11,7 @@ "GeneratedVisitsFor": "Membuat kunjungan untuk %1$s dan untuk %2$s hari terakhir", "LogImporterNote": "Ada juga alat yang lebih cepat yang akan mengimpor data pengujian besar di Matomo, seperti yang dijelaskan di dalam %1$sREADME%2$s.", "NbRequestsPerSec": "Permintaan tiap detik", - "NotReversible": "Ini %1$stidak%2$s mungkin menghapus dengan mudahnya kunjungan tersebut dari catatan Matomo.", + "NotReversible": "Ini %1$s tidak%2$s mungkin mudah menghapus kunjungan tersebut dari catatan Matomo.", "NumberOfGeneratedActions": "Jumlah tindakan yang dihasilkan", "OverwriteLogFiles": "Anda dapat menimpa berkas log yang digunakan untuk menghasilkan kunjungan palsu (mengubah atau menambahkan berkas di %s). Permintaan akan dicatat di \"matomo.php\" dalam format \"Log gabungan Apache\". Pengembang pengaya dapat menyediakan berkas log mereka sendiri dengan menempatkan berkas '*.log' di dalam direktori \"data\" pengaya mereka.", "PleaseBePatient": "Catatan: Mungkin perlu waktu beberapa menit untuk membuat kunjungan dan tindakan, mohon bersabar…", From 2ecbb2d0b0dade2209b219e0b88bd57268c5fa42 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 2 Dec 2025 15:07:28 +0100 Subject: [PATCH 46/46] Translated using Weblate (Hebrew) Currently translated at 28.5% (6 of 21 strings) Translation: Matomo/Plugin VisitorGenerator Translate-URL: https://hosted.weblate.org/projects/matomo/plugin-visitorgenerator/he/ [ci skip] --- lang/he.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/he.json b/lang/he.json index 9c2f561..401190a 100644 --- a/lang/he.json +++ b/lang/he.json @@ -1,7 +1,7 @@ { "VisitorGenerator": { "AreYouSure": "בטוח שאתה רוצה לחולל ביקורים מזויפים?", - "ChoiceYes": "כן, אני בטוח!", + "ChoiceYes": "כן", "DaysToCompute": "ימים לחישוב", "NbRequestsPerSec": "בקשות לשניה", "NumberOfGeneratedActions": "מספורת פעולות שחוללו",