Stand: SMTP-Test, Admin-Mail-Tab, Notifiable-Fix, Lazy-Quill
- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er) - Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link - Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest - Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen) - Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
87
vendor/fakerphp/faker/src/Faker/UniqueGenerator.php
vendored
Executable file
87
vendor/fakerphp/faker/src/Faker/UniqueGenerator.php
vendored
Executable file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
namespace Faker;
|
||||
|
||||
use Faker\Extension\Extension;
|
||||
|
||||
/**
|
||||
* Proxy for other generators that returns only unique values.
|
||||
*
|
||||
* Instantiated through @see Generator::unique().
|
||||
*
|
||||
* @mixin Generator
|
||||
*/
|
||||
class UniqueGenerator
|
||||
{
|
||||
protected $generator;
|
||||
protected $maxRetries;
|
||||
|
||||
/**
|
||||
* Maps from method names to a map with serialized result keys.
|
||||
*
|
||||
* @example [
|
||||
* 'phone' => ['0123' => null],
|
||||
* 'city' => ['London' => null, 'Tokyo' => null],
|
||||
* ]
|
||||
*
|
||||
* @var array<string, array<string, null>>
|
||||
*/
|
||||
protected $uniques = [];
|
||||
|
||||
/**
|
||||
* @param Extension|Generator $generator
|
||||
* @param int $maxRetries
|
||||
* @param array<string, array<string, null>> $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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user