added php download of membershipments
This commit is contained in:
@@ -9,7 +9,8 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"tinymce/tinymce": "*",
|
"tinymce/tinymce": "*",
|
||||||
"phpmailer/phpmailer": "dev-master",
|
"phpmailer/phpmailer": "dev-master",
|
||||||
"webklex/php-imap": "^4.1"
|
"webklex/php-imap": "^4.1",
|
||||||
|
"phpoffice/phpspreadsheet": "dev-master"
|
||||||
},
|
},
|
||||||
"minimum-stability": "dev"
|
"minimum-stability": "dev"
|
||||||
}
|
}
|
||||||
|
|||||||
1030
composer.lock
generated
1030
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -13,6 +13,7 @@
|
|||||||
"logout": "",
|
"logout": "",
|
||||||
"savemail": "Ideenboard",
|
"savemail": "Ideenboard",
|
||||||
"planboard": "",
|
"planboard": "",
|
||||||
"projectsmanagement": "Förderprojekte"
|
"projectsmanagement": "Förderprojekte",
|
||||||
|
"memberlistdownload": "Download der Mitgliederlist"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
64
include/memberlistdownload.php
Normal file
64
include/memberlistdownload.php
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
include 'renderer.php';
|
||||||
|
require 'vendor/autoload.php'; // Stelle sicher, dass der Autoloader für PhpSpreadsheet geladen wird
|
||||||
|
|
||||||
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
||||||
|
|
||||||
|
class Projectsmanagement extends Renderer {
|
||||||
|
public function render(): void {
|
||||||
|
$members = $this->loadMembers();
|
||||||
|
$spreadsheet = new Spreadsheet();
|
||||||
|
$sheet = $spreadsheet->getActiveSheet();
|
||||||
|
$columnHeaders = [];
|
||||||
|
$sheet->fromArray([$columnHeaders], null, 'A1');
|
||||||
|
$sheet->fromArray($dataArray, null, 'A2');
|
||||||
|
$writer = new Xlsx($spreadsheet);
|
||||||
|
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
||||||
|
header('Content-Disposition: attachment;filename="excel_file.xlsx"');
|
||||||
|
header('Cache-Control: max-age=0');
|
||||||
|
$writer->save('php://output');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function loadMembers(): array {
|
||||||
|
$query = <<<queryend
|
||||||
|
SELECT c.first_name, c.last_name , c.street , c.zip , c.town, c.birthdate, c.phone, c.email, c.child_name,
|
||||||
|
c.child_street, c.subscription, c.bank_name, c.iban, c.bic, c.account_member_name, c.membership_status, c.salt, c.membership_start,
|
||||||
|
cs.`status_text`, (SELECT ph.`payment_date` FROM `paying_history` ph WHERE ph.`clubmember_id` = c.`id` ORDER BY `payment_date` DESC LIMIT 1) as last_payment,
|
||||||
|
cp.description
|
||||||
|
FROM `clubmember` c
|
||||||
|
JOIN `clubmember_status` cs
|
||||||
|
ON cs.`id` = c.`membership_status`
|
||||||
|
LEFT JOIN `clubmember_position` cp
|
||||||
|
ON cp.id = c.position_id
|
||||||
|
WHERE cs.`status_text` NOT IN ("Mitgliedschaft abgelehnt", "Mitgliedschaft gekündigt")
|
||||||
|
queryend;
|
||||||
|
$result = mysqli_query($this->dbConnection, $query);
|
||||||
|
$result = [];
|
||||||
|
while ($row = mysqli_fetch_assoc($result)) {
|
||||||
|
$result[] = [
|
||||||
|
'first_name' => $this->decode($row['first_name'], $row['salt']),
|
||||||
|
'last_name' => $this->decode($row['last_name'], $row['salt']),
|
||||||
|
'street' => $this->decode($row['street'], $row['salt']),
|
||||||
|
'zip' => $this->decode($row['zip'], $row['salt']),
|
||||||
|
'town' => $this->decode($row['town'], $row['salt']),
|
||||||
|
'birthdate' => $this->decode($row['birthdate'], $row['salt']),
|
||||||
|
'phone' => $this->decode($row['phone'], $row['salt']),
|
||||||
|
'email' => $this->decode($row['email'], $row['salt']),
|
||||||
|
'child_name' => $this->decode($row['child_name'], $row['salt']),
|
||||||
|
'child_street' => $this->decode($row['child_street'], $row['salt']),
|
||||||
|
'subscription' => $this->decode($row['subscription'], $row['salt']),
|
||||||
|
'iban' => $this->decode($row['iban'], $row['salt']),
|
||||||
|
'bank_name' => $this->decode($row['bank_name'], $row['salt']),
|
||||||
|
'bic' => $this->decode($row['bic'], $row['salt']),
|
||||||
|
'account_member_name' => $this->decode($row['account_member_name'], $row['salt']),
|
||||||
|
'membership_status' => $row['membership_status'],
|
||||||
|
'membership_start' => $row['membership_start'],
|
||||||
|
'status_text' => $row['status_text'],
|
||||||
|
'last_payment' => $row['last_payment'],
|
||||||
|
'description' => $row['description'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,10 +3,10 @@ Harheimer Weg 16<br/>
|
|||||||
60437 Frankfurt am Main (Bonames)<br/>
|
60437 Frankfurt am Main (Bonames)<br/>
|
||||||
Email: foerderverein-AJS@gmx.de</br>
|
Email: foerderverein-AJS@gmx.de</br>
|
||||||
Tel: xxx-xxxxxxx
|
Tel: xxx-xxxxxxx
|
||||||
<h2>Vorstand</h2>
|
<h2>Geschäftsführender Vorstand</h2>
|
||||||
<ul class="nospec">
|
<ul class="nospec">
|
||||||
<li>Vorsitzender: Lucas Fastabend</li>
|
<li>Vorsitzender: Lucas Fastabend</li>
|
||||||
<li>Kassenwartin: Alexandra Grabmann</li>
|
<li>Kassenwartin: Peter Werner</li>
|
||||||
<li>Schriftführer: Torsten Schulz</li>
|
<li>Schriftführer: Torsten Schulz</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>Amtliche Informationen</h2>
|
<h2>Amtliche Informationen</h2>
|
||||||
|
|||||||
@@ -13,3 +13,4 @@
|
|||||||
</thead>
|
</thead>
|
||||||
{{memberlist}}
|
{{memberlist}}
|
||||||
</table>
|
</table>
|
||||||
|
<a href="memberlistdownload">Mitgliederliste als Excel herunterladen</a>
|
||||||
|
|||||||
119
vendor/bin/carbon
vendored
Executable file
119
vendor/bin/carbon
vendored
Executable file
@@ -0,0 +1,119 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy PHP file generated by Composer
|
||||||
|
*
|
||||||
|
* This file includes the referenced bin path (../nesbot/carbon/bin/carbon)
|
||||||
|
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||||
|
*
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Composer;
|
||||||
|
|
||||||
|
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||||
|
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID < 80000) {
|
||||||
|
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class BinProxyWrapper
|
||||||
|
{
|
||||||
|
private $handle;
|
||||||
|
private $position;
|
||||||
|
private $realpath;
|
||||||
|
|
||||||
|
public function stream_open($path, $mode, $options, &$opened_path)
|
||||||
|
{
|
||||||
|
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||||
|
$opened_path = substr($path, 17);
|
||||||
|
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||||
|
$opened_path = $this->realpath;
|
||||||
|
$this->handle = fopen($this->realpath, $mode);
|
||||||
|
$this->position = 0;
|
||||||
|
|
||||||
|
return (bool) $this->handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_read($count)
|
||||||
|
{
|
||||||
|
$data = fread($this->handle, $count);
|
||||||
|
|
||||||
|
if ($this->position === 0) {
|
||||||
|
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->position += strlen($data);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_cast($castAs)
|
||||||
|
{
|
||||||
|
return $this->handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_close()
|
||||||
|
{
|
||||||
|
fclose($this->handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_lock($operation)
|
||||||
|
{
|
||||||
|
return $operation ? flock($this->handle, $operation) : true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_seek($offset, $whence)
|
||||||
|
{
|
||||||
|
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||||
|
$this->position = ftell($this->handle);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_tell()
|
||||||
|
{
|
||||||
|
return $this->position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_eof()
|
||||||
|
{
|
||||||
|
return feof($this->handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_stat()
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_set_option($option, $arg1, $arg2)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function url_stat($path, $flags)
|
||||||
|
{
|
||||||
|
$path = substr($path, 17);
|
||||||
|
if (file_exists($path)) {
|
||||||
|
return stat($path);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||||
|
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||||
|
) {
|
||||||
|
return include("phpvfscomposer://" . __DIR__ . '/..'.'/nesbot/carbon/bin/carbon');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return include __DIR__ . '/..'.'/nesbot/carbon/bin/carbon';
|
||||||
3
vendor/composer/autoload_classmap.php
vendored
3
vendor/composer/autoload_classmap.php
vendored
@@ -8,8 +8,9 @@ $baseDir = dirname($vendorDir);
|
|||||||
return array(
|
return array(
|
||||||
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
||||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||||
|
'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
|
||||||
'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
|
'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
|
||||||
'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
|
'Stringable' => $vendorDir . '/myclabs/php-enum/stubs/Stringable.php',
|
||||||
'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
|
'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
|
||||||
'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
|
'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
|
||||||
);
|
);
|
||||||
|
|||||||
20
vendor/composer/autoload_files.php
vendored
Normal file
20
vendor/composer/autoload_files.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_files.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(__DIR__);
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||||
|
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
|
||||||
|
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
|
||||||
|
'60799491728b879e74601d83e38b2cad' => $vendorDir . '/illuminate/collections/helpers.php',
|
||||||
|
'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php',
|
||||||
|
'def43f6c87e4f8dfd0c9e1b1bab14fe8' => $vendorDir . '/symfony/polyfill-iconv/bootstrap.php',
|
||||||
|
'8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
|
||||||
|
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||||
|
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
||||||
|
'72579e7bd17821bb1321b87411366eae' => $vendorDir . '/illuminate/support/helpers.php',
|
||||||
|
'b46ad4fe52f4d1899a2951c7e6ea56b0' => $vendorDir . '/voku/portable-utf8/bootstrap.php',
|
||||||
|
);
|
||||||
16
vendor/composer/autoload_psr4.php
vendored
16
vendor/composer/autoload_psr4.php
vendored
@@ -6,20 +6,32 @@ $vendorDir = dirname(__DIR__);
|
|||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'voku\\' => array($vendorDir . '/voku/portable-ascii/src/voku'),
|
'voku\\helper\\' => array($vendorDir . '/voku/anti-xss/src/voku/helper'),
|
||||||
|
'voku\\' => array($vendorDir . '/voku/portable-ascii/src/voku', $vendorDir . '/voku/portable-utf8/src/voku'),
|
||||||
|
'ZipStream\\' => array($vendorDir . '/maennchen/zipstream-php/src'),
|
||||||
'Webklex\\PHPIMAP\\' => array($vendorDir . '/webklex/php-imap/src'),
|
'Webklex\\PHPIMAP\\' => array($vendorDir . '/webklex/php-imap/src'),
|
||||||
'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
|
'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
|
||||||
|
'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
|
||||||
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
|
||||||
|
'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
|
||||||
|
'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'),
|
||||||
|
'Symfony\\Polyfill\\Iconv\\' => array($vendorDir . '/symfony/polyfill-iconv'),
|
||||||
'Symfony\\Contracts\\Translation\\' => array($vendorDir . '/symfony/translation-contracts'),
|
'Symfony\\Contracts\\Translation\\' => array($vendorDir . '/symfony/translation-contracts'),
|
||||||
'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
|
'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
|
||||||
'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
|
'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
|
||||||
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
||||||
|
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
|
||||||
|
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
|
||||||
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
||||||
'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'),
|
'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'),
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\' => array($vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet'),
|
||||||
'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'),
|
'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'),
|
||||||
'Illuminate\\Support\\' => array($vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/support'),
|
'MyCLabs\\Enum\\' => array($vendorDir . '/myclabs/php-enum/src'),
|
||||||
|
'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'),
|
||||||
|
'Illuminate\\Support\\' => array($vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/support'),
|
||||||
'Illuminate\\Pagination\\' => array($vendorDir . '/illuminate/pagination'),
|
'Illuminate\\Pagination\\' => array($vendorDir . '/illuminate/pagination'),
|
||||||
'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'),
|
'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'),
|
||||||
'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'),
|
'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'),
|
||||||
|
'Complex\\' => array($vendorDir . '/markbaker/complex/classes/src'),
|
||||||
'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
|
'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
|
||||||
);
|
);
|
||||||
|
|||||||
80
vendor/composer/autoload_static.php
vendored
80
vendor/composer/autoload_static.php
vendored
@@ -12,14 +12,24 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
|
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
|
||||||
'60799491728b879e74601d83e38b2cad' => __DIR__ . '/..' . '/illuminate/collections/helpers.php',
|
'60799491728b879e74601d83e38b2cad' => __DIR__ . '/..' . '/illuminate/collections/helpers.php',
|
||||||
'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php',
|
'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php',
|
||||||
|
'def43f6c87e4f8dfd0c9e1b1bab14fe8' => __DIR__ . '/..' . '/symfony/polyfill-iconv/bootstrap.php',
|
||||||
|
'8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
|
||||||
|
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||||
|
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
||||||
'72579e7bd17821bb1321b87411366eae' => __DIR__ . '/..' . '/illuminate/support/helpers.php',
|
'72579e7bd17821bb1321b87411366eae' => __DIR__ . '/..' . '/illuminate/support/helpers.php',
|
||||||
|
'b46ad4fe52f4d1899a2951c7e6ea56b0' => __DIR__ . '/..' . '/voku/portable-utf8/bootstrap.php',
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $prefixLengthsPsr4 = array (
|
public static $prefixLengthsPsr4 = array (
|
||||||
'v' =>
|
'v' =>
|
||||||
array (
|
array (
|
||||||
|
'voku\\helper\\' => 12,
|
||||||
'voku\\' => 5,
|
'voku\\' => 5,
|
||||||
),
|
),
|
||||||
|
'Z' =>
|
||||||
|
array (
|
||||||
|
'ZipStream\\' => 10,
|
||||||
|
),
|
||||||
'W' =>
|
'W' =>
|
||||||
array (
|
array (
|
||||||
'Webklex\\PHPIMAP\\' => 16,
|
'Webklex\\PHPIMAP\\' => 16,
|
||||||
@@ -27,7 +37,11 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
'S' =>
|
'S' =>
|
||||||
array (
|
array (
|
||||||
'Symfony\\Polyfill\\Php80\\' => 23,
|
'Symfony\\Polyfill\\Php80\\' => 23,
|
||||||
|
'Symfony\\Polyfill\\Php72\\' => 23,
|
||||||
'Symfony\\Polyfill\\Mbstring\\' => 26,
|
'Symfony\\Polyfill\\Mbstring\\' => 26,
|
||||||
|
'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
|
||||||
|
'Symfony\\Polyfill\\Intl\\Grapheme\\' => 31,
|
||||||
|
'Symfony\\Polyfill\\Iconv\\' => 23,
|
||||||
'Symfony\\Contracts\\Translation\\' => 30,
|
'Symfony\\Contracts\\Translation\\' => 30,
|
||||||
'Symfony\\Component\\Translation\\' => 30,
|
'Symfony\\Component\\Translation\\' => 30,
|
||||||
'Symfony\\Component\\HttpFoundation\\' => 33,
|
'Symfony\\Component\\HttpFoundation\\' => 33,
|
||||||
@@ -35,10 +49,18 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
'P' =>
|
'P' =>
|
||||||
array (
|
array (
|
||||||
'Psr\\SimpleCache\\' => 16,
|
'Psr\\SimpleCache\\' => 16,
|
||||||
|
'Psr\\Http\\Message\\' => 17,
|
||||||
|
'Psr\\Http\\Client\\' => 16,
|
||||||
'Psr\\Container\\' => 14,
|
'Psr\\Container\\' => 14,
|
||||||
'Psr\\Clock\\' => 10,
|
'Psr\\Clock\\' => 10,
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\' => 25,
|
||||||
'PHPMailer\\PHPMailer\\' => 20,
|
'PHPMailer\\PHPMailer\\' => 20,
|
||||||
),
|
),
|
||||||
|
'M' =>
|
||||||
|
array (
|
||||||
|
'MyCLabs\\Enum\\' => 13,
|
||||||
|
'Matrix\\' => 7,
|
||||||
|
),
|
||||||
'I' =>
|
'I' =>
|
||||||
array (
|
array (
|
||||||
'Illuminate\\Support\\' => 19,
|
'Illuminate\\Support\\' => 19,
|
||||||
@@ -51,14 +73,24 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
),
|
),
|
||||||
'C' =>
|
'C' =>
|
||||||
array (
|
array (
|
||||||
|
'Complex\\' => 8,
|
||||||
'Carbon\\' => 7,
|
'Carbon\\' => 7,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $prefixDirsPsr4 = array (
|
public static $prefixDirsPsr4 = array (
|
||||||
|
'voku\\helper\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/voku/anti-xss/src/voku/helper',
|
||||||
|
),
|
||||||
'voku\\' =>
|
'voku\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/voku/portable-ascii/src/voku',
|
0 => __DIR__ . '/..' . '/voku/portable-ascii/src/voku',
|
||||||
|
1 => __DIR__ . '/..' . '/voku/portable-utf8/src/voku',
|
||||||
|
),
|
||||||
|
'ZipStream\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/maennchen/zipstream-php/src',
|
||||||
),
|
),
|
||||||
'Webklex\\PHPIMAP\\' =>
|
'Webklex\\PHPIMAP\\' =>
|
||||||
array (
|
array (
|
||||||
@@ -68,10 +100,26 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
|
0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
|
||||||
),
|
),
|
||||||
|
'Symfony\\Polyfill\\Php72\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
|
||||||
|
),
|
||||||
'Symfony\\Polyfill\\Mbstring\\' =>
|
'Symfony\\Polyfill\\Mbstring\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
|
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
|
||||||
),
|
),
|
||||||
|
'Symfony\\Polyfill\\Intl\\Normalizer\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer',
|
||||||
|
),
|
||||||
|
'Symfony\\Polyfill\\Intl\\Grapheme\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme',
|
||||||
|
),
|
||||||
|
'Symfony\\Polyfill\\Iconv\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/symfony/polyfill-iconv',
|
||||||
|
),
|
||||||
'Symfony\\Contracts\\Translation\\' =>
|
'Symfony\\Contracts\\Translation\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/symfony/translation-contracts',
|
0 => __DIR__ . '/..' . '/symfony/translation-contracts',
|
||||||
@@ -88,6 +136,15 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
|
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
|
||||||
),
|
),
|
||||||
|
'Psr\\Http\\Message\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/psr/http-factory/src',
|
||||||
|
1 => __DIR__ . '/..' . '/psr/http-message/src',
|
||||||
|
),
|
||||||
|
'Psr\\Http\\Client\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/psr/http-client/src',
|
||||||
|
),
|
||||||
'Psr\\Container\\' =>
|
'Psr\\Container\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/psr/container/src',
|
0 => __DIR__ . '/..' . '/psr/container/src',
|
||||||
@@ -96,14 +153,26 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/psr/clock/src',
|
0 => __DIR__ . '/..' . '/psr/clock/src',
|
||||||
),
|
),
|
||||||
|
'PhpOffice\\PhpSpreadsheet\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet',
|
||||||
|
),
|
||||||
'PHPMailer\\PHPMailer\\' =>
|
'PHPMailer\\PHPMailer\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src',
|
0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src',
|
||||||
),
|
),
|
||||||
|
'MyCLabs\\Enum\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/myclabs/php-enum/src',
|
||||||
|
),
|
||||||
|
'Matrix\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/markbaker/matrix/classes/src',
|
||||||
|
),
|
||||||
'Illuminate\\Support\\' =>
|
'Illuminate\\Support\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/illuminate/macroable',
|
0 => __DIR__ . '/..' . '/illuminate/collections',
|
||||||
1 => __DIR__ . '/..' . '/illuminate/collections',
|
1 => __DIR__ . '/..' . '/illuminate/macroable',
|
||||||
2 => __DIR__ . '/..' . '/illuminate/support',
|
2 => __DIR__ . '/..' . '/illuminate/support',
|
||||||
),
|
),
|
||||||
'Illuminate\\Pagination\\' =>
|
'Illuminate\\Pagination\\' =>
|
||||||
@@ -118,6 +187,10 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector',
|
0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector',
|
||||||
),
|
),
|
||||||
|
'Complex\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/markbaker/complex/classes/src',
|
||||||
|
),
|
||||||
'Carbon\\' =>
|
'Carbon\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
|
0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
|
||||||
@@ -127,8 +200,9 @@ class ComposerStaticInitb3a3dfb766a515d49b7f8665bad574b3
|
|||||||
public static $classMap = array (
|
public static $classMap = array (
|
||||||
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
||||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||||
|
'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
|
||||||
'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
|
'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
|
||||||
'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
|
'Stringable' => __DIR__ . '/..' . '/myclabs/php-enum/stubs/Stringable.php',
|
||||||
'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
|
'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
|
||||||
'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
|
'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
|
||||||
);
|
);
|
||||||
|
|||||||
1070
vendor/composer/installed.json
vendored
1070
vendor/composer/installed.json
vendored
File diff suppressed because it is too large
Load Diff
136
vendor/composer/installed.php
vendored
136
vendor/composer/installed.php
vendored
@@ -3,7 +3,7 @@
|
|||||||
'name' => '__root__',
|
'name' => '__root__',
|
||||||
'pretty_version' => 'dev-main',
|
'pretty_version' => 'dev-main',
|
||||||
'version' => 'dev-main',
|
'version' => 'dev-main',
|
||||||
'reference' => '54d30dd3c3ff737ecc0ef62de19a7c9ed29fea2d',
|
'reference' => 'ea29b477f6aeffb4f7f9f09aacbe245f418aa029',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
'__root__' => array(
|
'__root__' => array(
|
||||||
'pretty_version' => 'dev-main',
|
'pretty_version' => 'dev-main',
|
||||||
'version' => 'dev-main',
|
'version' => 'dev-main',
|
||||||
'reference' => '54d30dd3c3ff737ecc0ef62de19a7c9ed29fea2d',
|
'reference' => 'ea29b477f6aeffb4f7f9f09aacbe245f418aa029',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
@@ -73,6 +73,42 @@
|
|||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'maennchen/zipstream-php' => array(
|
||||||
|
'pretty_version' => 'v2.x-dev',
|
||||||
|
'version' => '2.9999999.9999999.9999999-dev',
|
||||||
|
'reference' => '620c2aab9d4f109aef4949049cc909c24479f8e0',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../maennchen/zipstream-php',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'markbaker/complex' => array(
|
||||||
|
'pretty_version' => '3.0.x-dev',
|
||||||
|
'version' => '3.0.9999999.9999999-dev',
|
||||||
|
'reference' => '95c56caa1cf5c766ad6d65b6344b807c1e8405b9',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../markbaker/complex',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'markbaker/matrix' => array(
|
||||||
|
'pretty_version' => '3.0.x-dev',
|
||||||
|
'version' => '3.0.9999999.9999999-dev',
|
||||||
|
'reference' => '728434227fe21be27ff6d86621a1b13107a2562c',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../markbaker/matrix',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'myclabs/php-enum' => array(
|
||||||
|
'pretty_version' => '1.8.4',
|
||||||
|
'version' => '1.8.4.0',
|
||||||
|
'reference' => 'a867478eae49c9f59ece437ae7f9506bfaa27483',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../myclabs/php-enum',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'nesbot/carbon' => array(
|
'nesbot/carbon' => array(
|
||||||
'pretty_version' => 'dev-master',
|
'pretty_version' => 'dev-master',
|
||||||
'version' => 'dev-master',
|
'version' => 'dev-master',
|
||||||
@@ -95,6 +131,17 @@
|
|||||||
),
|
),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'phpoffice/phpspreadsheet' => array(
|
||||||
|
'pretty_version' => 'dev-master',
|
||||||
|
'version' => 'dev-master',
|
||||||
|
'reference' => 'a17a56b6e01dad0c04e2bfc7ddf5038240a6facf',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../phpoffice/phpspreadsheet',
|
||||||
|
'aliases' => array(
|
||||||
|
0 => '9999999-dev',
|
||||||
|
),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'psr/clock' => array(
|
'psr/clock' => array(
|
||||||
'pretty_version' => '1.0.0',
|
'pretty_version' => '1.0.0',
|
||||||
'version' => '1.0.0.0',
|
'version' => '1.0.0.0',
|
||||||
@@ -119,6 +166,37 @@
|
|||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'psr/http-client' => array(
|
||||||
|
'pretty_version' => 'dev-master',
|
||||||
|
'version' => 'dev-master',
|
||||||
|
'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../psr/http-client',
|
||||||
|
'aliases' => array(
|
||||||
|
0 => '1.0.x-dev',
|
||||||
|
),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'psr/http-factory' => array(
|
||||||
|
'pretty_version' => 'dev-master',
|
||||||
|
'version' => 'dev-master',
|
||||||
|
'reference' => '7037f4b0950474e9d1350e8df89b15f1842085f6',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../psr/http-factory',
|
||||||
|
'aliases' => array(
|
||||||
|
0 => '1.0.x-dev',
|
||||||
|
),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'psr/http-message' => array(
|
||||||
|
'pretty_version' => '1.1',
|
||||||
|
'version' => '1.1.0.0',
|
||||||
|
'reference' => 'cb6ce4845ce34a8ad9e68117c10ee90a29919eba',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../psr/http-message',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'psr/simple-cache' => array(
|
'psr/simple-cache' => array(
|
||||||
'pretty_version' => '1.0.1',
|
'pretty_version' => '1.0.1',
|
||||||
'version' => '1.0.1.0',
|
'version' => '1.0.1.0',
|
||||||
@@ -146,6 +224,33 @@
|
|||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'symfony/polyfill-iconv' => array(
|
||||||
|
'pretty_version' => '1.x-dev',
|
||||||
|
'version' => '1.9999999.9999999.9999999-dev',
|
||||||
|
'reference' => '6de50471469b8c9afc38164452ab2b6170ee71c1',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../symfony/polyfill-iconv',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'symfony/polyfill-intl-grapheme' => array(
|
||||||
|
'pretty_version' => '1.x-dev',
|
||||||
|
'version' => '1.9999999.9999999.9999999-dev',
|
||||||
|
'reference' => '875e90aeea2777b6f135677f618529449334a612',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'symfony/polyfill-intl-normalizer' => array(
|
||||||
|
'pretty_version' => '1.x-dev',
|
||||||
|
'version' => '1.9999999.9999999.9999999-dev',
|
||||||
|
'reference' => '8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'symfony/polyfill-mbstring' => array(
|
'symfony/polyfill-mbstring' => array(
|
||||||
'pretty_version' => '1.x-dev',
|
'pretty_version' => '1.x-dev',
|
||||||
'version' => '1.9999999.9999999.9999999-dev',
|
'version' => '1.9999999.9999999.9999999-dev',
|
||||||
@@ -155,6 +260,15 @@
|
|||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'symfony/polyfill-php72' => array(
|
||||||
|
'pretty_version' => '1.x-dev',
|
||||||
|
'version' => '1.9999999.9999999.9999999-dev',
|
||||||
|
'reference' => '70f4aebd92afca2f865444d30a4d2151c13c3179',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../symfony/polyfill-php72',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'symfony/polyfill-php80' => array(
|
'symfony/polyfill-php80' => array(
|
||||||
'pretty_version' => '1.x-dev',
|
'pretty_version' => '1.x-dev',
|
||||||
'version' => '1.9999999.9999999.9999999-dev',
|
'version' => '1.9999999.9999999.9999999-dev',
|
||||||
@@ -199,6 +313,15 @@
|
|||||||
),
|
),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'voku/anti-xss' => array(
|
||||||
|
'pretty_version' => '4.1.35',
|
||||||
|
'version' => '4.1.35.0',
|
||||||
|
'reference' => '4d7ec2816cd6eeebb7d5abbde8b0349f66709496',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../voku/anti-xss',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'voku/portable-ascii' => array(
|
'voku/portable-ascii' => array(
|
||||||
'pretty_version' => '1.6.1',
|
'pretty_version' => '1.6.1',
|
||||||
'version' => '1.6.1.0',
|
'version' => '1.6.1.0',
|
||||||
@@ -208,6 +331,15 @@
|
|||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
|
'voku/portable-utf8' => array(
|
||||||
|
'pretty_version' => '6.0.1',
|
||||||
|
'version' => '6.0.1.0',
|
||||||
|
'reference' => 'e4365df3f7b63f9e57e1015f6c3ceec19c169f7a',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../voku/portable-utf8',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
'webklex/php-imap' => array(
|
'webklex/php-imap' => array(
|
||||||
'pretty_version' => '4.1.2',
|
'pretty_version' => '4.1.2',
|
||||||
'version' => '4.1.2.0',
|
'version' => '4.1.2.0',
|
||||||
|
|||||||
4
vendor/composer/platform_check.php
vendored
4
vendor/composer/platform_check.php
vendored
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
$issues = array();
|
$issues = array();
|
||||||
|
|
||||||
if (!(PHP_VERSION_ID >= 70400)) {
|
if (!(PHP_VERSION_ID >= 80000)) {
|
||||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
|
$issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.0". You are running ' . PHP_VERSION . '.';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($issues) {
|
if ($issues) {
|
||||||
|
|||||||
19
vendor/doctrine/inflector/LICENSE
vendored
Normal file
19
vendor/doctrine/inflector/LICENSE
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Copyright (c) 2006-2015 Doctrine Project
|
||||||
|
|
||||||
|
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.
|
||||||
7
vendor/doctrine/inflector/README.md
vendored
Normal file
7
vendor/doctrine/inflector/README.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Doctrine Inflector
|
||||||
|
|
||||||
|
Doctrine Inflector is a small library that can perform string manipulations
|
||||||
|
with regard to uppercase/lowercase and singular/plural forms of words.
|
||||||
|
|
||||||
|
[](https://github.com/doctrine/inflector/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A4.0.x)
|
||||||
|
[](https://codecov.io/gh/doctrine/inflector/branch/2.0.x)
|
||||||
41
vendor/doctrine/inflector/composer.json
vendored
Normal file
41
vendor/doctrine/inflector/composer.json
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"name": "doctrine/inflector",
|
||||||
|
"type": "library",
|
||||||
|
"description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
|
||||||
|
"keywords": ["php", "strings", "words", "manipulation", "inflector", "inflection", "uppercase", "lowercase", "singular", "plural"],
|
||||||
|
"homepage": "https://www.doctrine-project.org/projects/inflector.html",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": [
|
||||||
|
{"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
|
||||||
|
{"name": "Roman Borschel", "email": "roman@code-factory.org"},
|
||||||
|
{"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
|
||||||
|
{"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
|
||||||
|
{"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"php": "^7.2 || ^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/coding-standard": "^11.0",
|
||||||
|
"phpstan/phpstan": "^1.8",
|
||||||
|
"phpstan/phpstan-phpunit": "^1.1",
|
||||||
|
"phpstan/phpstan-strict-rules": "^1.3",
|
||||||
|
"phpunit/phpunit": "^8.5 || ^9.5",
|
||||||
|
"vimeo/psalm": "^4.25 || ^5.4"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Tests\\Inflector\\": "tests/Doctrine/Tests/Inflector"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"allow-plugins": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
227
vendor/doctrine/inflector/docs/en/index.rst
vendored
Normal file
227
vendor/doctrine/inflector/docs/en/index.rst
vendored
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
Introduction
|
||||||
|
============
|
||||||
|
|
||||||
|
The Doctrine Inflector has methods for inflecting text. The features include pluralization,
|
||||||
|
singularization, converting between camelCase and under_score and capitalizing
|
||||||
|
words.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
You can install the Inflector with composer:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ composer require doctrine/inflector
|
||||||
|
|
||||||
|
Usage
|
||||||
|
=====
|
||||||
|
|
||||||
|
Using the inflector is easy, you can create a new ``Doctrine\Inflector\Inflector`` instance by using
|
||||||
|
the ``Doctrine\Inflector\InflectorFactory`` class:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
use Doctrine\Inflector\InflectorFactory;
|
||||||
|
|
||||||
|
$inflector = InflectorFactory::create()->build();
|
||||||
|
|
||||||
|
By default it will create an English inflector. If you want to use another language, just pass the language
|
||||||
|
you want to create an inflector for to the ``createForLanguage()`` method:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
use Doctrine\Inflector\InflectorFactory;
|
||||||
|
use Doctrine\Inflector\Language;
|
||||||
|
|
||||||
|
$inflector = InflectorFactory::createForLanguage(Language::SPANISH)->build();
|
||||||
|
|
||||||
|
The supported languages are as follows:
|
||||||
|
|
||||||
|
- ``Language::ENGLISH``
|
||||||
|
- ``Language::ESPERANTO``
|
||||||
|
- ``Language::FRENCH``
|
||||||
|
- ``Language::NORWEGIAN_BOKMAL``
|
||||||
|
- ``Language::PORTUGUESE``
|
||||||
|
- ``Language::SPANISH``
|
||||||
|
- ``Language::TURKISH``
|
||||||
|
|
||||||
|
If you want to manually construct the inflector instead of using a factory, you can do so like this:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
use Doctrine\Inflector\CachedWordInflector;
|
||||||
|
use Doctrine\Inflector\RulesetInflector;
|
||||||
|
use Doctrine\Inflector\Rules\English;
|
||||||
|
|
||||||
|
$inflector = new Inflector(
|
||||||
|
new CachedWordInflector(new RulesetInflector(
|
||||||
|
English\Rules::getSingularRuleset()
|
||||||
|
)),
|
||||||
|
new CachedWordInflector(new RulesetInflector(
|
||||||
|
English\Rules::getPluralRuleset()
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
Adding Languages
|
||||||
|
----------------
|
||||||
|
|
||||||
|
If you are interested in adding support for your language, take a look at the other languages defined in the
|
||||||
|
``Doctrine\Inflector\Rules`` namespace and the tests located in ``Doctrine\Tests\Inflector\Rules``. You can copy
|
||||||
|
one of the languages and update the rules for your language.
|
||||||
|
|
||||||
|
Once you have done this, send a pull request to the ``doctrine/inflector`` repository with the additions.
|
||||||
|
|
||||||
|
Custom Setup
|
||||||
|
============
|
||||||
|
|
||||||
|
If you want to setup custom singular and plural rules, you can configure these in the factory:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
use Doctrine\Inflector\InflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
$inflector = InflectorFactory::create()
|
||||||
|
->withSingularRules(
|
||||||
|
new Ruleset(
|
||||||
|
new Transformations(
|
||||||
|
new Transformation(new Pattern('/^(bil)er$/i'), '\1'),
|
||||||
|
new Transformation(new Pattern('/^(inflec|contribu)tors$/i'), '\1ta')
|
||||||
|
),
|
||||||
|
new Patterns(new Pattern('singulars')),
|
||||||
|
new Substitutions(new Substitution(new Word('spins'), new Word('spinor')))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
->withPluralRules(
|
||||||
|
new Ruleset(
|
||||||
|
new Transformations(
|
||||||
|
new Transformation(new Pattern('^(bil)er$'), '\1'),
|
||||||
|
new Transformation(new Pattern('^(inflec|contribu)tors$'), '\1ta')
|
||||||
|
),
|
||||||
|
new Patterns(new Pattern('noflect'), new Pattern('abtuse')),
|
||||||
|
new Substitutions(
|
||||||
|
new Substitution(new Word('amaze'), new Word('amazable')),
|
||||||
|
new Substitution(new Word('phone'), new Word('phonezes'))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
->build();
|
||||||
|
|
||||||
|
No operation inflector
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
The ``Doctrine\Inflector\NoopWordInflector`` may be used to configure an inflector that doesn't perform any operation for
|
||||||
|
pluralization and/or singularization. If will simply return the input as output.
|
||||||
|
|
||||||
|
This is an implementation of the `Null Object design pattern <https://sourcemaking.com/design_patterns/null_object>`_.
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Inflector;
|
||||||
|
use Doctrine\Inflector\NoopWordInflector;
|
||||||
|
|
||||||
|
$inflector = new Inflector(new NoopWordInflector(), new NoopWordInflector());
|
||||||
|
|
||||||
|
Tableize
|
||||||
|
========
|
||||||
|
|
||||||
|
Converts ``ModelName`` to ``model_name``:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
echo $inflector->tableize('ModelName'); // model_name
|
||||||
|
|
||||||
|
Classify
|
||||||
|
========
|
||||||
|
|
||||||
|
Converts ``model_name`` to ``ModelName``:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
echo $inflector->classify('model_name'); // ModelName
|
||||||
|
|
||||||
|
Camelize
|
||||||
|
========
|
||||||
|
|
||||||
|
This method uses `Classify`_ and then converts the first character to lowercase:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
echo $inflector->camelize('model_name'); // modelName
|
||||||
|
|
||||||
|
Capitalize
|
||||||
|
==========
|
||||||
|
|
||||||
|
Takes a string and capitalizes all of the words, like PHP's built-in
|
||||||
|
``ucwords`` function. This extends that behavior, however, by allowing the
|
||||||
|
word delimiters to be configured, rather than only separating on
|
||||||
|
whitespace.
|
||||||
|
|
||||||
|
Here is an example:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
$string = 'top-o-the-morning to all_of_you!';
|
||||||
|
|
||||||
|
echo $inflector->capitalize($string); // Top-O-The-Morning To All_of_you!
|
||||||
|
|
||||||
|
echo $inflector->capitalize($string, '-_ '); // Top-O-The-Morning To All_Of_You!
|
||||||
|
|
||||||
|
Pluralize
|
||||||
|
=========
|
||||||
|
|
||||||
|
Returns a word in plural form.
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
echo $inflector->pluralize('browser'); // browsers
|
||||||
|
|
||||||
|
Singularize
|
||||||
|
===========
|
||||||
|
|
||||||
|
Returns a word in singular form.
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
echo $inflector->singularize('browsers'); // browser
|
||||||
|
|
||||||
|
Urlize
|
||||||
|
======
|
||||||
|
|
||||||
|
Generate a URL friendly string from a string of text:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
echo $inflector->urlize('My first blog post'); // my-first-blog-post
|
||||||
|
|
||||||
|
Unaccent
|
||||||
|
========
|
||||||
|
|
||||||
|
You can unaccent a string of text using the ``unaccent()`` method:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
echo $inflector->unaccent('año'); // ano
|
||||||
|
|
||||||
|
Legacy API
|
||||||
|
==========
|
||||||
|
|
||||||
|
The API present in Inflector 1.x is still available, but will be deprecated in a future release and dropped for 3.0.
|
||||||
|
Support for languages other than English is available in the 2.0 API only.
|
||||||
|
|
||||||
|
Acknowledgements
|
||||||
|
================
|
||||||
|
|
||||||
|
The language rules in this library have been adapted from several different sources, including but not limited to:
|
||||||
|
|
||||||
|
- `Ruby On Rails Inflector <http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html>`_
|
||||||
|
- `ICanBoogie Inflector <https://github.com/ICanBoogie/Inflector>`_
|
||||||
|
- `CakePHP Inflector <https://book.cakephp.org/3.0/en/core-libraries/inflector.html>`_
|
||||||
24
vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php
vendored
Normal file
24
vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
class CachedWordInflector implements WordInflector
|
||||||
|
{
|
||||||
|
/** @var WordInflector */
|
||||||
|
private $wordInflector;
|
||||||
|
|
||||||
|
/** @var string[] */
|
||||||
|
private $cache = [];
|
||||||
|
|
||||||
|
public function __construct(WordInflector $wordInflector)
|
||||||
|
{
|
||||||
|
$this->wordInflector = $wordInflector;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function inflect(string $word): string
|
||||||
|
{
|
||||||
|
return $this->cache[$word] ?? $this->cache[$word] = $this->wordInflector->inflect($word);
|
||||||
|
}
|
||||||
|
}
|
||||||
66
vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php
vendored
Normal file
66
vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
use function array_unshift;
|
||||||
|
|
||||||
|
abstract class GenericLanguageInflectorFactory implements LanguageInflectorFactory
|
||||||
|
{
|
||||||
|
/** @var Ruleset[] */
|
||||||
|
private $singularRulesets = [];
|
||||||
|
|
||||||
|
/** @var Ruleset[] */
|
||||||
|
private $pluralRulesets = [];
|
||||||
|
|
||||||
|
final public function __construct()
|
||||||
|
{
|
||||||
|
$this->singularRulesets[] = $this->getSingularRuleset();
|
||||||
|
$this->pluralRulesets[] = $this->getPluralRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
final public function build(): Inflector
|
||||||
|
{
|
||||||
|
return new Inflector(
|
||||||
|
new CachedWordInflector(new RulesetInflector(
|
||||||
|
...$this->singularRulesets
|
||||||
|
)),
|
||||||
|
new CachedWordInflector(new RulesetInflector(
|
||||||
|
...$this->pluralRulesets
|
||||||
|
))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
final public function withSingularRules(?Ruleset $singularRules, bool $reset = false): LanguageInflectorFactory
|
||||||
|
{
|
||||||
|
if ($reset) {
|
||||||
|
$this->singularRulesets = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($singularRules instanceof Ruleset) {
|
||||||
|
array_unshift($this->singularRulesets, $singularRules);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
final public function withPluralRules(?Ruleset $pluralRules, bool $reset = false): LanguageInflectorFactory
|
||||||
|
{
|
||||||
|
if ($reset) {
|
||||||
|
$this->pluralRulesets = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($pluralRules instanceof Ruleset) {
|
||||||
|
array_unshift($this->pluralRulesets, $pluralRules);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract protected function getSingularRuleset(): Ruleset;
|
||||||
|
|
||||||
|
abstract protected function getPluralRuleset(): Ruleset;
|
||||||
|
}
|
||||||
507
vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php
vendored
Normal file
507
vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php
vendored
Normal file
@@ -0,0 +1,507 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
use RuntimeException;
|
||||||
|
|
||||||
|
use function chr;
|
||||||
|
use function function_exists;
|
||||||
|
use function lcfirst;
|
||||||
|
use function mb_strtolower;
|
||||||
|
use function ord;
|
||||||
|
use function preg_match;
|
||||||
|
use function preg_replace;
|
||||||
|
use function sprintf;
|
||||||
|
use function str_replace;
|
||||||
|
use function strlen;
|
||||||
|
use function strtolower;
|
||||||
|
use function strtr;
|
||||||
|
use function trim;
|
||||||
|
use function ucwords;
|
||||||
|
|
||||||
|
class Inflector
|
||||||
|
{
|
||||||
|
private const ACCENTED_CHARACTERS = [
|
||||||
|
'À' => 'A',
|
||||||
|
'Á' => 'A',
|
||||||
|
'Â' => 'A',
|
||||||
|
'Ã' => 'A',
|
||||||
|
'Ä' => 'Ae',
|
||||||
|
'Æ' => 'Ae',
|
||||||
|
'Å' => 'Aa',
|
||||||
|
'æ' => 'a',
|
||||||
|
'Ç' => 'C',
|
||||||
|
'È' => 'E',
|
||||||
|
'É' => 'E',
|
||||||
|
'Ê' => 'E',
|
||||||
|
'Ë' => 'E',
|
||||||
|
'Ì' => 'I',
|
||||||
|
'Í' => 'I',
|
||||||
|
'Î' => 'I',
|
||||||
|
'Ï' => 'I',
|
||||||
|
'Ñ' => 'N',
|
||||||
|
'Ò' => 'O',
|
||||||
|
'Ó' => 'O',
|
||||||
|
'Ô' => 'O',
|
||||||
|
'Õ' => 'O',
|
||||||
|
'Ö' => 'Oe',
|
||||||
|
'Ù' => 'U',
|
||||||
|
'Ú' => 'U',
|
||||||
|
'Û' => 'U',
|
||||||
|
'Ü' => 'Ue',
|
||||||
|
'Ý' => 'Y',
|
||||||
|
'ß' => 'ss',
|
||||||
|
'à' => 'a',
|
||||||
|
'á' => 'a',
|
||||||
|
'â' => 'a',
|
||||||
|
'ã' => 'a',
|
||||||
|
'ä' => 'ae',
|
||||||
|
'å' => 'aa',
|
||||||
|
'ç' => 'c',
|
||||||
|
'è' => 'e',
|
||||||
|
'é' => 'e',
|
||||||
|
'ê' => 'e',
|
||||||
|
'ë' => 'e',
|
||||||
|
'ì' => 'i',
|
||||||
|
'í' => 'i',
|
||||||
|
'î' => 'i',
|
||||||
|
'ï' => 'i',
|
||||||
|
'ñ' => 'n',
|
||||||
|
'ò' => 'o',
|
||||||
|
'ó' => 'o',
|
||||||
|
'ô' => 'o',
|
||||||
|
'õ' => 'o',
|
||||||
|
'ö' => 'oe',
|
||||||
|
'ù' => 'u',
|
||||||
|
'ú' => 'u',
|
||||||
|
'û' => 'u',
|
||||||
|
'ü' => 'ue',
|
||||||
|
'ý' => 'y',
|
||||||
|
'ÿ' => 'y',
|
||||||
|
'Ā' => 'A',
|
||||||
|
'ā' => 'a',
|
||||||
|
'Ă' => 'A',
|
||||||
|
'ă' => 'a',
|
||||||
|
'Ą' => 'A',
|
||||||
|
'ą' => 'a',
|
||||||
|
'Ć' => 'C',
|
||||||
|
'ć' => 'c',
|
||||||
|
'Ĉ' => 'C',
|
||||||
|
'ĉ' => 'c',
|
||||||
|
'Ċ' => 'C',
|
||||||
|
'ċ' => 'c',
|
||||||
|
'Č' => 'C',
|
||||||
|
'č' => 'c',
|
||||||
|
'Ď' => 'D',
|
||||||
|
'ď' => 'd',
|
||||||
|
'Đ' => 'D',
|
||||||
|
'đ' => 'd',
|
||||||
|
'Ē' => 'E',
|
||||||
|
'ē' => 'e',
|
||||||
|
'Ĕ' => 'E',
|
||||||
|
'ĕ' => 'e',
|
||||||
|
'Ė' => 'E',
|
||||||
|
'ė' => 'e',
|
||||||
|
'Ę' => 'E',
|
||||||
|
'ę' => 'e',
|
||||||
|
'Ě' => 'E',
|
||||||
|
'ě' => 'e',
|
||||||
|
'Ĝ' => 'G',
|
||||||
|
'ĝ' => 'g',
|
||||||
|
'Ğ' => 'G',
|
||||||
|
'ğ' => 'g',
|
||||||
|
'Ġ' => 'G',
|
||||||
|
'ġ' => 'g',
|
||||||
|
'Ģ' => 'G',
|
||||||
|
'ģ' => 'g',
|
||||||
|
'Ĥ' => 'H',
|
||||||
|
'ĥ' => 'h',
|
||||||
|
'Ħ' => 'H',
|
||||||
|
'ħ' => 'h',
|
||||||
|
'Ĩ' => 'I',
|
||||||
|
'ĩ' => 'i',
|
||||||
|
'Ī' => 'I',
|
||||||
|
'ī' => 'i',
|
||||||
|
'Ĭ' => 'I',
|
||||||
|
'ĭ' => 'i',
|
||||||
|
'Į' => 'I',
|
||||||
|
'į' => 'i',
|
||||||
|
'İ' => 'I',
|
||||||
|
'ı' => 'i',
|
||||||
|
'IJ' => 'IJ',
|
||||||
|
'ij' => 'ij',
|
||||||
|
'Ĵ' => 'J',
|
||||||
|
'ĵ' => 'j',
|
||||||
|
'Ķ' => 'K',
|
||||||
|
'ķ' => 'k',
|
||||||
|
'ĸ' => 'k',
|
||||||
|
'Ĺ' => 'L',
|
||||||
|
'ĺ' => 'l',
|
||||||
|
'Ļ' => 'L',
|
||||||
|
'ļ' => 'l',
|
||||||
|
'Ľ' => 'L',
|
||||||
|
'ľ' => 'l',
|
||||||
|
'Ŀ' => 'L',
|
||||||
|
'ŀ' => 'l',
|
||||||
|
'Ł' => 'L',
|
||||||
|
'ł' => 'l',
|
||||||
|
'Ń' => 'N',
|
||||||
|
'ń' => 'n',
|
||||||
|
'Ņ' => 'N',
|
||||||
|
'ņ' => 'n',
|
||||||
|
'Ň' => 'N',
|
||||||
|
'ň' => 'n',
|
||||||
|
'ʼn' => 'N',
|
||||||
|
'Ŋ' => 'n',
|
||||||
|
'ŋ' => 'N',
|
||||||
|
'Ō' => 'O',
|
||||||
|
'ō' => 'o',
|
||||||
|
'Ŏ' => 'O',
|
||||||
|
'ŏ' => 'o',
|
||||||
|
'Ő' => 'O',
|
||||||
|
'ő' => 'o',
|
||||||
|
'Œ' => 'OE',
|
||||||
|
'œ' => 'oe',
|
||||||
|
'Ø' => 'O',
|
||||||
|
'ø' => 'o',
|
||||||
|
'Ŕ' => 'R',
|
||||||
|
'ŕ' => 'r',
|
||||||
|
'Ŗ' => 'R',
|
||||||
|
'ŗ' => 'r',
|
||||||
|
'Ř' => 'R',
|
||||||
|
'ř' => 'r',
|
||||||
|
'Ś' => 'S',
|
||||||
|
'ś' => 's',
|
||||||
|
'Ŝ' => 'S',
|
||||||
|
'ŝ' => 's',
|
||||||
|
'Ş' => 'S',
|
||||||
|
'ş' => 's',
|
||||||
|
'Š' => 'S',
|
||||||
|
'š' => 's',
|
||||||
|
'Ţ' => 'T',
|
||||||
|
'ţ' => 't',
|
||||||
|
'Ť' => 'T',
|
||||||
|
'ť' => 't',
|
||||||
|
'Ŧ' => 'T',
|
||||||
|
'ŧ' => 't',
|
||||||
|
'Ũ' => 'U',
|
||||||
|
'ũ' => 'u',
|
||||||
|
'Ū' => 'U',
|
||||||
|
'ū' => 'u',
|
||||||
|
'Ŭ' => 'U',
|
||||||
|
'ŭ' => 'u',
|
||||||
|
'Ů' => 'U',
|
||||||
|
'ů' => 'u',
|
||||||
|
'Ű' => 'U',
|
||||||
|
'ű' => 'u',
|
||||||
|
'Ų' => 'U',
|
||||||
|
'ų' => 'u',
|
||||||
|
'Ŵ' => 'W',
|
||||||
|
'ŵ' => 'w',
|
||||||
|
'Ŷ' => 'Y',
|
||||||
|
'ŷ' => 'y',
|
||||||
|
'Ÿ' => 'Y',
|
||||||
|
'Ź' => 'Z',
|
||||||
|
'ź' => 'z',
|
||||||
|
'Ż' => 'Z',
|
||||||
|
'ż' => 'z',
|
||||||
|
'Ž' => 'Z',
|
||||||
|
'ž' => 'z',
|
||||||
|
'ſ' => 's',
|
||||||
|
'€' => 'E',
|
||||||
|
'£' => '',
|
||||||
|
];
|
||||||
|
|
||||||
|
/** @var WordInflector */
|
||||||
|
private $singularizer;
|
||||||
|
|
||||||
|
/** @var WordInflector */
|
||||||
|
private $pluralizer;
|
||||||
|
|
||||||
|
public function __construct(WordInflector $singularizer, WordInflector $pluralizer)
|
||||||
|
{
|
||||||
|
$this->singularizer = $singularizer;
|
||||||
|
$this->pluralizer = $pluralizer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'.
|
||||||
|
*/
|
||||||
|
public function tableize(string $word): string
|
||||||
|
{
|
||||||
|
$tableized = preg_replace('~(?<=\\w)([A-Z])~u', '_$1', $word);
|
||||||
|
|
||||||
|
if ($tableized === null) {
|
||||||
|
throw new RuntimeException(sprintf(
|
||||||
|
'preg_replace returned null for value "%s"',
|
||||||
|
$word
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
return mb_strtolower($tableized);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'.
|
||||||
|
*/
|
||||||
|
public function classify(string $word): string
|
||||||
|
{
|
||||||
|
return str_replace([' ', '_', '-'], '', ucwords($word, ' _-'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Camelizes a word. This uses the classify() method and turns the first character to lowercase.
|
||||||
|
*/
|
||||||
|
public function camelize(string $word): string
|
||||||
|
{
|
||||||
|
return lcfirst($this->classify($word));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uppercases words with configurable delimiters between words.
|
||||||
|
*
|
||||||
|
* Takes a string and capitalizes all of the words, like PHP's built-in
|
||||||
|
* ucwords function. This extends that behavior, however, by allowing the
|
||||||
|
* word delimiters to be configured, rather than only separating on
|
||||||
|
* whitespace.
|
||||||
|
*
|
||||||
|
* Here is an example:
|
||||||
|
* <code>
|
||||||
|
* <?php
|
||||||
|
* $string = 'top-o-the-morning to all_of_you!';
|
||||||
|
* echo $inflector->capitalize($string);
|
||||||
|
* // Top-O-The-Morning To All_of_you!
|
||||||
|
*
|
||||||
|
* echo $inflector->capitalize($string, '-_ ');
|
||||||
|
* // Top-O-The-Morning To All_Of_You!
|
||||||
|
* ?>
|
||||||
|
* </code>
|
||||||
|
*
|
||||||
|
* @param string $string The string to operate on.
|
||||||
|
* @param string $delimiters A list of word separators.
|
||||||
|
*
|
||||||
|
* @return string The string with all delimiter-separated words capitalized.
|
||||||
|
*/
|
||||||
|
public function capitalize(string $string, string $delimiters = " \n\t\r\0\x0B-"): string
|
||||||
|
{
|
||||||
|
return ucwords($string, $delimiters);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the given string seems like it has utf8 characters in it.
|
||||||
|
*
|
||||||
|
* @param string $string The string to check for utf8 characters in.
|
||||||
|
*/
|
||||||
|
public function seemsUtf8(string $string): bool
|
||||||
|
{
|
||||||
|
for ($i = 0; $i < strlen($string); $i++) {
|
||||||
|
if (ord($string[$i]) < 0x80) {
|
||||||
|
continue; // 0bbbbbbb
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ord($string[$i]) & 0xE0) === 0xC0) {
|
||||||
|
$n = 1; // 110bbbbb
|
||||||
|
} elseif ((ord($string[$i]) & 0xF0) === 0xE0) {
|
||||||
|
$n = 2; // 1110bbbb
|
||||||
|
} elseif ((ord($string[$i]) & 0xF8) === 0xF0) {
|
||||||
|
$n = 3; // 11110bbb
|
||||||
|
} elseif ((ord($string[$i]) & 0xFC) === 0xF8) {
|
||||||
|
$n = 4; // 111110bb
|
||||||
|
} elseif ((ord($string[$i]) & 0xFE) === 0xFC) {
|
||||||
|
$n = 5; // 1111110b
|
||||||
|
} else {
|
||||||
|
return false; // Does not match any model
|
||||||
|
}
|
||||||
|
|
||||||
|
for ($j = 0; $j < $n; $j++) { // n bytes matching 10bbbbbb follow ?
|
||||||
|
if (++$i === strlen($string) || ((ord($string[$i]) & 0xC0) !== 0x80)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove any illegal characters, accents, etc.
|
||||||
|
*
|
||||||
|
* @param string $string String to unaccent
|
||||||
|
*
|
||||||
|
* @return string Unaccented string
|
||||||
|
*/
|
||||||
|
public function unaccent(string $string): string
|
||||||
|
{
|
||||||
|
if (preg_match('/[\x80-\xff]/', $string) === false) {
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->seemsUtf8($string)) {
|
||||||
|
$string = strtr($string, self::ACCENTED_CHARACTERS);
|
||||||
|
} else {
|
||||||
|
$characters = [];
|
||||||
|
|
||||||
|
// Assume ISO-8859-1 if not UTF-8
|
||||||
|
$characters['in'] =
|
||||||
|
chr(128)
|
||||||
|
. chr(131)
|
||||||
|
. chr(138)
|
||||||
|
. chr(142)
|
||||||
|
. chr(154)
|
||||||
|
. chr(158)
|
||||||
|
. chr(159)
|
||||||
|
. chr(162)
|
||||||
|
. chr(165)
|
||||||
|
. chr(181)
|
||||||
|
. chr(192)
|
||||||
|
. chr(193)
|
||||||
|
. chr(194)
|
||||||
|
. chr(195)
|
||||||
|
. chr(196)
|
||||||
|
. chr(197)
|
||||||
|
. chr(199)
|
||||||
|
. chr(200)
|
||||||
|
. chr(201)
|
||||||
|
. chr(202)
|
||||||
|
. chr(203)
|
||||||
|
. chr(204)
|
||||||
|
. chr(205)
|
||||||
|
. chr(206)
|
||||||
|
. chr(207)
|
||||||
|
. chr(209)
|
||||||
|
. chr(210)
|
||||||
|
. chr(211)
|
||||||
|
. chr(212)
|
||||||
|
. chr(213)
|
||||||
|
. chr(214)
|
||||||
|
. chr(216)
|
||||||
|
. chr(217)
|
||||||
|
. chr(218)
|
||||||
|
. chr(219)
|
||||||
|
. chr(220)
|
||||||
|
. chr(221)
|
||||||
|
. chr(224)
|
||||||
|
. chr(225)
|
||||||
|
. chr(226)
|
||||||
|
. chr(227)
|
||||||
|
. chr(228)
|
||||||
|
. chr(229)
|
||||||
|
. chr(231)
|
||||||
|
. chr(232)
|
||||||
|
. chr(233)
|
||||||
|
. chr(234)
|
||||||
|
. chr(235)
|
||||||
|
. chr(236)
|
||||||
|
. chr(237)
|
||||||
|
. chr(238)
|
||||||
|
. chr(239)
|
||||||
|
. chr(241)
|
||||||
|
. chr(242)
|
||||||
|
. chr(243)
|
||||||
|
. chr(244)
|
||||||
|
. chr(245)
|
||||||
|
. chr(246)
|
||||||
|
. chr(248)
|
||||||
|
. chr(249)
|
||||||
|
. chr(250)
|
||||||
|
. chr(251)
|
||||||
|
. chr(252)
|
||||||
|
. chr(253)
|
||||||
|
. chr(255);
|
||||||
|
|
||||||
|
$characters['out'] = 'EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy';
|
||||||
|
|
||||||
|
$string = strtr($string, $characters['in'], $characters['out']);
|
||||||
|
|
||||||
|
$doubleChars = [];
|
||||||
|
|
||||||
|
$doubleChars['in'] = [
|
||||||
|
chr(140),
|
||||||
|
chr(156),
|
||||||
|
chr(198),
|
||||||
|
chr(208),
|
||||||
|
chr(222),
|
||||||
|
chr(223),
|
||||||
|
chr(230),
|
||||||
|
chr(240),
|
||||||
|
chr(254),
|
||||||
|
];
|
||||||
|
|
||||||
|
$doubleChars['out'] = ['OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'];
|
||||||
|
|
||||||
|
$string = str_replace($doubleChars['in'], $doubleChars['out'], $string);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert any passed string to a url friendly string.
|
||||||
|
* Converts 'My first blog post' to 'my-first-blog-post'
|
||||||
|
*
|
||||||
|
* @param string $string String to urlize.
|
||||||
|
*
|
||||||
|
* @return string Urlized string.
|
||||||
|
*/
|
||||||
|
public function urlize(string $string): string
|
||||||
|
{
|
||||||
|
// Remove all non url friendly characters with the unaccent function
|
||||||
|
$unaccented = $this->unaccent($string);
|
||||||
|
|
||||||
|
if (function_exists('mb_strtolower')) {
|
||||||
|
$lowered = mb_strtolower($unaccented);
|
||||||
|
} else {
|
||||||
|
$lowered = strtolower($unaccented);
|
||||||
|
}
|
||||||
|
|
||||||
|
$replacements = [
|
||||||
|
'/\W/' => ' ',
|
||||||
|
'/([A-Z]+)([A-Z][a-z])/' => '\1_\2',
|
||||||
|
'/([a-z\d])([A-Z])/' => '\1_\2',
|
||||||
|
'/[^A-Z^a-z^0-9^\/]+/' => '-',
|
||||||
|
];
|
||||||
|
|
||||||
|
$urlized = $lowered;
|
||||||
|
|
||||||
|
foreach ($replacements as $pattern => $replacement) {
|
||||||
|
$replaced = preg_replace($pattern, $replacement, $urlized);
|
||||||
|
|
||||||
|
if ($replaced === null) {
|
||||||
|
throw new RuntimeException(sprintf(
|
||||||
|
'preg_replace returned null for value "%s"',
|
||||||
|
$urlized
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
$urlized = $replaced;
|
||||||
|
}
|
||||||
|
|
||||||
|
return trim($urlized, '-');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a word in singular form.
|
||||||
|
*
|
||||||
|
* @param string $word The word in plural form.
|
||||||
|
*
|
||||||
|
* @return string The word in singular form.
|
||||||
|
*/
|
||||||
|
public function singularize(string $word): string
|
||||||
|
{
|
||||||
|
return $this->singularizer->inflect($word);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a word in plural form.
|
||||||
|
*
|
||||||
|
* @param string $word The word in singular form.
|
||||||
|
*
|
||||||
|
* @return string The word in plural form.
|
||||||
|
*/
|
||||||
|
public function pluralize(string $word): string
|
||||||
|
{
|
||||||
|
return $this->pluralizer->inflect($word);
|
||||||
|
}
|
||||||
|
}
|
||||||
56
vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php
vendored
Normal file
56
vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\English;
|
||||||
|
use Doctrine\Inflector\Rules\Esperanto;
|
||||||
|
use Doctrine\Inflector\Rules\French;
|
||||||
|
use Doctrine\Inflector\Rules\NorwegianBokmal;
|
||||||
|
use Doctrine\Inflector\Rules\Portuguese;
|
||||||
|
use Doctrine\Inflector\Rules\Spanish;
|
||||||
|
use Doctrine\Inflector\Rules\Turkish;
|
||||||
|
use InvalidArgumentException;
|
||||||
|
|
||||||
|
use function sprintf;
|
||||||
|
|
||||||
|
final class InflectorFactory
|
||||||
|
{
|
||||||
|
public static function create(): LanguageInflectorFactory
|
||||||
|
{
|
||||||
|
return self::createForLanguage(Language::ENGLISH);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function createForLanguage(string $language): LanguageInflectorFactory
|
||||||
|
{
|
||||||
|
switch ($language) {
|
||||||
|
case Language::ENGLISH:
|
||||||
|
return new English\InflectorFactory();
|
||||||
|
|
||||||
|
case Language::ESPERANTO:
|
||||||
|
return new Esperanto\InflectorFactory();
|
||||||
|
|
||||||
|
case Language::FRENCH:
|
||||||
|
return new French\InflectorFactory();
|
||||||
|
|
||||||
|
case Language::NORWEGIAN_BOKMAL:
|
||||||
|
return new NorwegianBokmal\InflectorFactory();
|
||||||
|
|
||||||
|
case Language::PORTUGUESE:
|
||||||
|
return new Portuguese\InflectorFactory();
|
||||||
|
|
||||||
|
case Language::SPANISH:
|
||||||
|
return new Spanish\InflectorFactory();
|
||||||
|
|
||||||
|
case Language::TURKISH:
|
||||||
|
return new Turkish\InflectorFactory();
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new InvalidArgumentException(sprintf(
|
||||||
|
'Language "%s" is not supported.',
|
||||||
|
$language
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
20
vendor/doctrine/inflector/lib/Doctrine/Inflector/Language.php
vendored
Normal file
20
vendor/doctrine/inflector/lib/Doctrine/Inflector/Language.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
final class Language
|
||||||
|
{
|
||||||
|
public const ENGLISH = 'english';
|
||||||
|
public const ESPERANTO = 'esperanto';
|
||||||
|
public const FRENCH = 'french';
|
||||||
|
public const NORWEGIAN_BOKMAL = 'norwegian-bokmal';
|
||||||
|
public const PORTUGUESE = 'portuguese';
|
||||||
|
public const SPANISH = 'spanish';
|
||||||
|
public const TURKISH = 'turkish';
|
||||||
|
|
||||||
|
private function __construct()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
33
vendor/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php
vendored
Normal file
33
vendor/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
interface LanguageInflectorFactory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Applies custom rules for singularisation
|
||||||
|
*
|
||||||
|
* @param bool $reset If true, will unset default inflections for all new rules
|
||||||
|
*
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function withSingularRules(?Ruleset $singularRules, bool $reset = false): self;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies custom rules for pluralisation
|
||||||
|
*
|
||||||
|
* @param bool $reset If true, will unset default inflections for all new rules
|
||||||
|
*
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function withPluralRules(?Ruleset $pluralRules, bool $reset = false): self;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the inflector instance with all applicable rules
|
||||||
|
*/
|
||||||
|
public function build(): Inflector;
|
||||||
|
}
|
||||||
13
vendor/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php
vendored
Normal file
13
vendor/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
class NoopWordInflector implements WordInflector
|
||||||
|
{
|
||||||
|
public function inflect(string $word): string
|
||||||
|
{
|
||||||
|
return $word;
|
||||||
|
}
|
||||||
|
}
|
||||||
181
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php
vendored
Normal file
181
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php
vendored
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\English;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
class Inflectible
|
||||||
|
{
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('(s)tatuses$'), '\1\2tatus');
|
||||||
|
yield new Transformation(new Pattern('(s)tatus$'), '\1\2tatus');
|
||||||
|
yield new Transformation(new Pattern('(c)ampus$'), '\1\2ampus');
|
||||||
|
yield new Transformation(new Pattern('^(.*)(menu)s$'), '\1\2');
|
||||||
|
yield new Transformation(new Pattern('(quiz)zes$'), '\\1');
|
||||||
|
yield new Transformation(new Pattern('(matr)ices$'), '\1ix');
|
||||||
|
yield new Transformation(new Pattern('(vert|ind)ices$'), '\1ex');
|
||||||
|
yield new Transformation(new Pattern('^(ox)en'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(alias)(es)*$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(buffal|her|potat|tomat|volcan)oes$'), '\1o');
|
||||||
|
yield new Transformation(new Pattern('(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$'), '\1us');
|
||||||
|
yield new Transformation(new Pattern('([ftw]ax)es'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(analys|ax|cris|test|thes)es$'), '\1is');
|
||||||
|
yield new Transformation(new Pattern('(shoe|slave)s$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(o)es$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('ouses$'), 'ouse');
|
||||||
|
yield new Transformation(new Pattern('([^a])uses$'), '\1us');
|
||||||
|
yield new Transformation(new Pattern('([m|l])ice$'), '\1ouse');
|
||||||
|
yield new Transformation(new Pattern('(x|ch|ss|sh)es$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(m)ovies$'), '\1\2ovie');
|
||||||
|
yield new Transformation(new Pattern('(s)eries$'), '\1\2eries');
|
||||||
|
yield new Transformation(new Pattern('([^aeiouy]|qu)ies$'), '\1y');
|
||||||
|
yield new Transformation(new Pattern('([lr])ves$'), '\1f');
|
||||||
|
yield new Transformation(new Pattern('(tive)s$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(hive)s$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(drive)s$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(dive)s$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('(olive)s$'), '\1');
|
||||||
|
yield new Transformation(new Pattern('([^fo])ves$'), '\1fe');
|
||||||
|
yield new Transformation(new Pattern('(^analy)ses$'), '\1sis');
|
||||||
|
yield new Transformation(new Pattern('(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$'), '\1\2sis');
|
||||||
|
yield new Transformation(new Pattern('(tax)a$'), '\1on');
|
||||||
|
yield new Transformation(new Pattern('(c)riteria$'), '\1riterion');
|
||||||
|
yield new Transformation(new Pattern('([ti])a$'), '\1um');
|
||||||
|
yield new Transformation(new Pattern('(p)eople$'), '\1\2erson');
|
||||||
|
yield new Transformation(new Pattern('(m)en$'), '\1an');
|
||||||
|
yield new Transformation(new Pattern('(c)hildren$'), '\1\2hild');
|
||||||
|
yield new Transformation(new Pattern('(f)eet$'), '\1oot');
|
||||||
|
yield new Transformation(new Pattern('(n)ews$'), '\1\2ews');
|
||||||
|
yield new Transformation(new Pattern('eaus$'), 'eau');
|
||||||
|
yield new Transformation(new Pattern('^tights$'), 'tights');
|
||||||
|
yield new Transformation(new Pattern('^shorts$'), 'shorts');
|
||||||
|
yield new Transformation(new Pattern('s$'), '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('(s)tatus$'), '\1\2tatuses');
|
||||||
|
yield new Transformation(new Pattern('(quiz)$'), '\1zes');
|
||||||
|
yield new Transformation(new Pattern('^(ox)$'), '\1\2en');
|
||||||
|
yield new Transformation(new Pattern('([m|l])ouse$'), '\1ice');
|
||||||
|
yield new Transformation(new Pattern('(matr|vert|ind)(ix|ex)$'), '\1ices');
|
||||||
|
yield new Transformation(new Pattern('(x|ch|ss|sh)$'), '\1es');
|
||||||
|
yield new Transformation(new Pattern('([^aeiouy]|qu)y$'), '\1ies');
|
||||||
|
yield new Transformation(new Pattern('(hive|gulf)$'), '\1s');
|
||||||
|
yield new Transformation(new Pattern('(?:([^f])fe|([lr])f)$'), '\1\2ves');
|
||||||
|
yield new Transformation(new Pattern('sis$'), 'ses');
|
||||||
|
yield new Transformation(new Pattern('([ti])um$'), '\1a');
|
||||||
|
yield new Transformation(new Pattern('(tax)on$'), '\1a');
|
||||||
|
yield new Transformation(new Pattern('(c)riterion$'), '\1riteria');
|
||||||
|
yield new Transformation(new Pattern('(p)erson$'), '\1eople');
|
||||||
|
yield new Transformation(new Pattern('(m)an$'), '\1en');
|
||||||
|
yield new Transformation(new Pattern('(c)hild$'), '\1hildren');
|
||||||
|
yield new Transformation(new Pattern('(f)oot$'), '\1eet');
|
||||||
|
yield new Transformation(new Pattern('(buffal|her|potat|tomat|volcan)o$'), '\1\2oes');
|
||||||
|
yield new Transformation(new Pattern('(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$'), '\1i');
|
||||||
|
yield new Transformation(new Pattern('us$'), 'uses');
|
||||||
|
yield new Transformation(new Pattern('(alias)$'), '\1es');
|
||||||
|
yield new Transformation(new Pattern('(analys|ax|cris|test|thes)is$'), '\1es');
|
||||||
|
yield new Transformation(new Pattern('s$'), 's');
|
||||||
|
yield new Transformation(new Pattern('^$'), '');
|
||||||
|
yield new Transformation(new Pattern('$'), 's');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Substitution[] */
|
||||||
|
public static function getIrregular(): iterable
|
||||||
|
{
|
||||||
|
yield new Substitution(new Word('atlas'), new Word('atlases'));
|
||||||
|
yield new Substitution(new Word('axe'), new Word('axes'));
|
||||||
|
yield new Substitution(new Word('beef'), new Word('beefs'));
|
||||||
|
yield new Substitution(new Word('blouse'), new Word('blouses'));
|
||||||
|
yield new Substitution(new Word('brother'), new Word('brothers'));
|
||||||
|
yield new Substitution(new Word('cafe'), new Word('cafes'));
|
||||||
|
yield new Substitution(new Word('cave'), new Word('caves'));
|
||||||
|
yield new Substitution(new Word('chateau'), new Word('chateaux'));
|
||||||
|
yield new Substitution(new Word('niveau'), new Word('niveaux'));
|
||||||
|
yield new Substitution(new Word('child'), new Word('children'));
|
||||||
|
yield new Substitution(new Word('canvas'), new Word('canvases'));
|
||||||
|
yield new Substitution(new Word('cookie'), new Word('cookies'));
|
||||||
|
yield new Substitution(new Word('corpus'), new Word('corpuses'));
|
||||||
|
yield new Substitution(new Word('cow'), new Word('cows'));
|
||||||
|
yield new Substitution(new Word('criterion'), new Word('criteria'));
|
||||||
|
yield new Substitution(new Word('curriculum'), new Word('curricula'));
|
||||||
|
yield new Substitution(new Word('demo'), new Word('demos'));
|
||||||
|
yield new Substitution(new Word('domino'), new Word('dominoes'));
|
||||||
|
yield new Substitution(new Word('echo'), new Word('echoes'));
|
||||||
|
yield new Substitution(new Word('foot'), new Word('feet'));
|
||||||
|
yield new Substitution(new Word('fungus'), new Word('fungi'));
|
||||||
|
yield new Substitution(new Word('ganglion'), new Word('ganglions'));
|
||||||
|
yield new Substitution(new Word('gas'), new Word('gases'));
|
||||||
|
yield new Substitution(new Word('genie'), new Word('genies'));
|
||||||
|
yield new Substitution(new Word('genus'), new Word('genera'));
|
||||||
|
yield new Substitution(new Word('goose'), new Word('geese'));
|
||||||
|
yield new Substitution(new Word('graffito'), new Word('graffiti'));
|
||||||
|
yield new Substitution(new Word('hippopotamus'), new Word('hippopotami'));
|
||||||
|
yield new Substitution(new Word('hoof'), new Word('hoofs'));
|
||||||
|
yield new Substitution(new Word('human'), new Word('humans'));
|
||||||
|
yield new Substitution(new Word('iris'), new Word('irises'));
|
||||||
|
yield new Substitution(new Word('larva'), new Word('larvae'));
|
||||||
|
yield new Substitution(new Word('leaf'), new Word('leaves'));
|
||||||
|
yield new Substitution(new Word('lens'), new Word('lenses'));
|
||||||
|
yield new Substitution(new Word('loaf'), new Word('loaves'));
|
||||||
|
yield new Substitution(new Word('man'), new Word('men'));
|
||||||
|
yield new Substitution(new Word('medium'), new Word('media'));
|
||||||
|
yield new Substitution(new Word('memorandum'), new Word('memoranda'));
|
||||||
|
yield new Substitution(new Word('money'), new Word('monies'));
|
||||||
|
yield new Substitution(new Word('mongoose'), new Word('mongooses'));
|
||||||
|
yield new Substitution(new Word('motto'), new Word('mottoes'));
|
||||||
|
yield new Substitution(new Word('move'), new Word('moves'));
|
||||||
|
yield new Substitution(new Word('mythos'), new Word('mythoi'));
|
||||||
|
yield new Substitution(new Word('niche'), new Word('niches'));
|
||||||
|
yield new Substitution(new Word('nucleus'), new Word('nuclei'));
|
||||||
|
yield new Substitution(new Word('numen'), new Word('numina'));
|
||||||
|
yield new Substitution(new Word('occiput'), new Word('occiputs'));
|
||||||
|
yield new Substitution(new Word('octopus'), new Word('octopuses'));
|
||||||
|
yield new Substitution(new Word('opus'), new Word('opuses'));
|
||||||
|
yield new Substitution(new Word('ox'), new Word('oxen'));
|
||||||
|
yield new Substitution(new Word('passerby'), new Word('passersby'));
|
||||||
|
yield new Substitution(new Word('penis'), new Word('penises'));
|
||||||
|
yield new Substitution(new Word('person'), new Word('people'));
|
||||||
|
yield new Substitution(new Word('plateau'), new Word('plateaux'));
|
||||||
|
yield new Substitution(new Word('runner-up'), new Word('runners-up'));
|
||||||
|
yield new Substitution(new Word('safe'), new Word('safes'));
|
||||||
|
yield new Substitution(new Word('sex'), new Word('sexes'));
|
||||||
|
yield new Substitution(new Word('sieve'), new Word('sieves'));
|
||||||
|
yield new Substitution(new Word('soliloquy'), new Word('soliloquies'));
|
||||||
|
yield new Substitution(new Word('son-in-law'), new Word('sons-in-law'));
|
||||||
|
yield new Substitution(new Word('syllabus'), new Word('syllabi'));
|
||||||
|
yield new Substitution(new Word('testis'), new Word('testes'));
|
||||||
|
yield new Substitution(new Word('thief'), new Word('thieves'));
|
||||||
|
yield new Substitution(new Word('tooth'), new Word('teeth'));
|
||||||
|
yield new Substitution(new Word('tornado'), new Word('tornadoes'));
|
||||||
|
yield new Substitution(new Word('trilby'), new Word('trilbys'));
|
||||||
|
yield new Substitution(new Word('turf'), new Word('turfs'));
|
||||||
|
yield new Substitution(new Word('valve'), new Word('valves'));
|
||||||
|
yield new Substitution(new Word('volcano'), new Word('volcanoes'));
|
||||||
|
yield new Substitution(new Word('abuse'), new Word('abuses'));
|
||||||
|
yield new Substitution(new Word('avalanche'), new Word('avalanches'));
|
||||||
|
yield new Substitution(new Word('cache'), new Word('caches'));
|
||||||
|
yield new Substitution(new Word('criterion'), new Word('criteria'));
|
||||||
|
yield new Substitution(new Word('curve'), new Word('curves'));
|
||||||
|
yield new Substitution(new Word('emphasis'), new Word('emphases'));
|
||||||
|
yield new Substitution(new Word('foe'), new Word('foes'));
|
||||||
|
yield new Substitution(new Word('grave'), new Word('graves'));
|
||||||
|
yield new Substitution(new Word('hoax'), new Word('hoaxes'));
|
||||||
|
yield new Substitution(new Word('medium'), new Word('media'));
|
||||||
|
yield new Substitution(new Word('neurosis'), new Word('neuroses'));
|
||||||
|
yield new Substitution(new Word('save'), new Word('saves'));
|
||||||
|
yield new Substitution(new Word('wave'), new Word('waves'));
|
||||||
|
yield new Substitution(new Word('oasis'), new Word('oases'));
|
||||||
|
yield new Substitution(new Word('valve'), new Word('valves'));
|
||||||
|
yield new Substitution(new Word('zombie'), new Word('zombies'));
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\English;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\GenericLanguageInflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
final class InflectorFactory extends GenericLanguageInflectorFactory
|
||||||
|
{
|
||||||
|
protected function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getSingularRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getPluralRuleset();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\English;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
|
||||||
|
final class Rules
|
||||||
|
{
|
||||||
|
public static function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getSingular()),
|
||||||
|
new Patterns(...Uninflected::getSingular()),
|
||||||
|
(new Substitutions(...Inflectible::getIrregular()))->getFlippedSubstitutions()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getPlural()),
|
||||||
|
new Patterns(...Uninflected::getPlural()),
|
||||||
|
new Substitutions(...Inflectible::getIrregular())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
189
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php
vendored
Normal file
189
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php
vendored
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\English;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
|
||||||
|
final class Uninflected
|
||||||
|
{
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
|
||||||
|
yield new Pattern('.*ss');
|
||||||
|
yield new Pattern('clothes');
|
||||||
|
yield new Pattern('data');
|
||||||
|
yield new Pattern('fascia');
|
||||||
|
yield new Pattern('fuchsia');
|
||||||
|
yield new Pattern('galleria');
|
||||||
|
yield new Pattern('mafia');
|
||||||
|
yield new Pattern('militia');
|
||||||
|
yield new Pattern('pants');
|
||||||
|
yield new Pattern('petunia');
|
||||||
|
yield new Pattern('sepia');
|
||||||
|
yield new Pattern('trivia');
|
||||||
|
yield new Pattern('utopia');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
|
||||||
|
yield new Pattern('people');
|
||||||
|
yield new Pattern('trivia');
|
||||||
|
yield new Pattern('\w+ware$');
|
||||||
|
yield new Pattern('media');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
private static function getDefault(): iterable
|
||||||
|
{
|
||||||
|
yield new Pattern('\w+media');
|
||||||
|
yield new Pattern('advice');
|
||||||
|
yield new Pattern('aircraft');
|
||||||
|
yield new Pattern('amoyese');
|
||||||
|
yield new Pattern('art');
|
||||||
|
yield new Pattern('audio');
|
||||||
|
yield new Pattern('baggage');
|
||||||
|
yield new Pattern('bison');
|
||||||
|
yield new Pattern('borghese');
|
||||||
|
yield new Pattern('bream');
|
||||||
|
yield new Pattern('breeches');
|
||||||
|
yield new Pattern('britches');
|
||||||
|
yield new Pattern('buffalo');
|
||||||
|
yield new Pattern('butter');
|
||||||
|
yield new Pattern('cantus');
|
||||||
|
yield new Pattern('carp');
|
||||||
|
yield new Pattern('cattle');
|
||||||
|
yield new Pattern('chassis');
|
||||||
|
yield new Pattern('clippers');
|
||||||
|
yield new Pattern('clothing');
|
||||||
|
yield new Pattern('coal');
|
||||||
|
yield new Pattern('cod');
|
||||||
|
yield new Pattern('coitus');
|
||||||
|
yield new Pattern('compensation');
|
||||||
|
yield new Pattern('congoese');
|
||||||
|
yield new Pattern('contretemps');
|
||||||
|
yield new Pattern('coreopsis');
|
||||||
|
yield new Pattern('corps');
|
||||||
|
yield new Pattern('cotton');
|
||||||
|
yield new Pattern('data');
|
||||||
|
yield new Pattern('debris');
|
||||||
|
yield new Pattern('deer');
|
||||||
|
yield new Pattern('diabetes');
|
||||||
|
yield new Pattern('djinn');
|
||||||
|
yield new Pattern('education');
|
||||||
|
yield new Pattern('eland');
|
||||||
|
yield new Pattern('elk');
|
||||||
|
yield new Pattern('emoji');
|
||||||
|
yield new Pattern('equipment');
|
||||||
|
yield new Pattern('evidence');
|
||||||
|
yield new Pattern('faroese');
|
||||||
|
yield new Pattern('feedback');
|
||||||
|
yield new Pattern('fish');
|
||||||
|
yield new Pattern('flounder');
|
||||||
|
yield new Pattern('flour');
|
||||||
|
yield new Pattern('foochowese');
|
||||||
|
yield new Pattern('food');
|
||||||
|
yield new Pattern('furniture');
|
||||||
|
yield new Pattern('gallows');
|
||||||
|
yield new Pattern('genevese');
|
||||||
|
yield new Pattern('genoese');
|
||||||
|
yield new Pattern('gilbertese');
|
||||||
|
yield new Pattern('gold');
|
||||||
|
yield new Pattern('headquarters');
|
||||||
|
yield new Pattern('herpes');
|
||||||
|
yield new Pattern('hijinks');
|
||||||
|
yield new Pattern('homework');
|
||||||
|
yield new Pattern('hottentotese');
|
||||||
|
yield new Pattern('impatience');
|
||||||
|
yield new Pattern('information');
|
||||||
|
yield new Pattern('innings');
|
||||||
|
yield new Pattern('jackanapes');
|
||||||
|
yield new Pattern('jeans');
|
||||||
|
yield new Pattern('jedi');
|
||||||
|
yield new Pattern('kin');
|
||||||
|
yield new Pattern('kiplingese');
|
||||||
|
yield new Pattern('knowledge');
|
||||||
|
yield new Pattern('kongoese');
|
||||||
|
yield new Pattern('leather');
|
||||||
|
yield new Pattern('love');
|
||||||
|
yield new Pattern('lucchese');
|
||||||
|
yield new Pattern('luggage');
|
||||||
|
yield new Pattern('mackerel');
|
||||||
|
yield new Pattern('Maltese');
|
||||||
|
yield new Pattern('management');
|
||||||
|
yield new Pattern('metadata');
|
||||||
|
yield new Pattern('mews');
|
||||||
|
yield new Pattern('money');
|
||||||
|
yield new Pattern('moose');
|
||||||
|
yield new Pattern('mumps');
|
||||||
|
yield new Pattern('music');
|
||||||
|
yield new Pattern('nankingese');
|
||||||
|
yield new Pattern('news');
|
||||||
|
yield new Pattern('nexus');
|
||||||
|
yield new Pattern('niasese');
|
||||||
|
yield new Pattern('nutrition');
|
||||||
|
yield new Pattern('offspring');
|
||||||
|
yield new Pattern('oil');
|
||||||
|
yield new Pattern('patience');
|
||||||
|
yield new Pattern('pekingese');
|
||||||
|
yield new Pattern('piedmontese');
|
||||||
|
yield new Pattern('pincers');
|
||||||
|
yield new Pattern('pistoiese');
|
||||||
|
yield new Pattern('plankton');
|
||||||
|
yield new Pattern('pliers');
|
||||||
|
yield new Pattern('pokemon');
|
||||||
|
yield new Pattern('police');
|
||||||
|
yield new Pattern('polish');
|
||||||
|
yield new Pattern('portuguese');
|
||||||
|
yield new Pattern('proceedings');
|
||||||
|
yield new Pattern('progress');
|
||||||
|
yield new Pattern('rabies');
|
||||||
|
yield new Pattern('rain');
|
||||||
|
yield new Pattern('research');
|
||||||
|
yield new Pattern('rhinoceros');
|
||||||
|
yield new Pattern('rice');
|
||||||
|
yield new Pattern('salmon');
|
||||||
|
yield new Pattern('sand');
|
||||||
|
yield new Pattern('sarawakese');
|
||||||
|
yield new Pattern('scissors');
|
||||||
|
yield new Pattern('sea[- ]bass');
|
||||||
|
yield new Pattern('series');
|
||||||
|
yield new Pattern('shavese');
|
||||||
|
yield new Pattern('shears');
|
||||||
|
yield new Pattern('sheep');
|
||||||
|
yield new Pattern('siemens');
|
||||||
|
yield new Pattern('silk');
|
||||||
|
yield new Pattern('sms');
|
||||||
|
yield new Pattern('soap');
|
||||||
|
yield new Pattern('social media');
|
||||||
|
yield new Pattern('spam');
|
||||||
|
yield new Pattern('species');
|
||||||
|
yield new Pattern('staff');
|
||||||
|
yield new Pattern('sugar');
|
||||||
|
yield new Pattern('swine');
|
||||||
|
yield new Pattern('talent');
|
||||||
|
yield new Pattern('toothpaste');
|
||||||
|
yield new Pattern('traffic');
|
||||||
|
yield new Pattern('travel');
|
||||||
|
yield new Pattern('trousers');
|
||||||
|
yield new Pattern('trout');
|
||||||
|
yield new Pattern('tuna');
|
||||||
|
yield new Pattern('us');
|
||||||
|
yield new Pattern('vermontese');
|
||||||
|
yield new Pattern('vinegar');
|
||||||
|
yield new Pattern('weather');
|
||||||
|
yield new Pattern('wenchowese');
|
||||||
|
yield new Pattern('wheat');
|
||||||
|
yield new Pattern('whiting');
|
||||||
|
yield new Pattern('wildebeest');
|
||||||
|
yield new Pattern('wood');
|
||||||
|
yield new Pattern('wool');
|
||||||
|
yield new Pattern('yengeese');
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/Inflectible.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/Inflectible.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Esperanto;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
class Inflectible
|
||||||
|
{
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('oj$'), 'o');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('o$'), 'oj');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Substitution[] */
|
||||||
|
public static function getIrregular(): iterable
|
||||||
|
{
|
||||||
|
yield new Substitution(new Word(''), new Word(''));
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/InflectorFactory.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Esperanto;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\GenericLanguageInflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
final class InflectorFactory extends GenericLanguageInflectorFactory
|
||||||
|
{
|
||||||
|
protected function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getSingularRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getPluralRuleset();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/Rules.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/Rules.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Esperanto;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
|
||||||
|
final class Rules
|
||||||
|
{
|
||||||
|
public static function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getSingular()),
|
||||||
|
new Patterns(...Uninflected::getSingular()),
|
||||||
|
(new Substitutions(...Inflectible::getIrregular()))->getFlippedSubstitutions()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getPlural()),
|
||||||
|
new Patterns(...Uninflected::getPlural()),
|
||||||
|
new Substitutions(...Inflectible::getIrregular())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
28
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/Uninflected.php
vendored
Normal file
28
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Esperanto/Uninflected.php
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Esperanto;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
|
||||||
|
final class Uninflected
|
||||||
|
{
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
private static function getDefault(): iterable
|
||||||
|
{
|
||||||
|
yield new Pattern('');
|
||||||
|
}
|
||||||
|
}
|
||||||
44
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php
vendored
Normal file
44
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\French;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
class Inflectible
|
||||||
|
{
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)aux$/'), '\1ail');
|
||||||
|
yield new Transformation(new Pattern('/ails$/'), 'ail');
|
||||||
|
yield new Transformation(new Pattern('/(journ|chev)aux$/'), '\1al');
|
||||||
|
yield new Transformation(new Pattern('/(bijou|caillou|chou|genou|hibou|joujou|pou|au|eu|eau)x$/'), '\1');
|
||||||
|
yield new Transformation(new Pattern('/s$/'), '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/(s|x|z)$/'), '\1');
|
||||||
|
yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)ail$/'), '\1aux');
|
||||||
|
yield new Transformation(new Pattern('/ail$/'), 'ails');
|
||||||
|
yield new Transformation(new Pattern('/(chacal|carnaval|festival|récital)$/'), '\1s');
|
||||||
|
yield new Transformation(new Pattern('/al$/'), 'aux');
|
||||||
|
yield new Transformation(new Pattern('/(bleu|émeu|landau|pneu|sarrau)$/'), '\1s');
|
||||||
|
yield new Transformation(new Pattern('/(bijou|caillou|chou|genou|hibou|joujou|lieu|pou|au|eu|eau)$/'), '\1x');
|
||||||
|
yield new Transformation(new Pattern('/$/'), 's');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Substitution[] */
|
||||||
|
public static function getIrregular(): iterable
|
||||||
|
{
|
||||||
|
yield new Substitution(new Word('monsieur'), new Word('messieurs'));
|
||||||
|
yield new Substitution(new Word('madame'), new Word('mesdames'));
|
||||||
|
yield new Substitution(new Word('mademoiselle'), new Word('mesdemoiselles'));
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\French;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\GenericLanguageInflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
final class InflectorFactory extends GenericLanguageInflectorFactory
|
||||||
|
{
|
||||||
|
protected function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getSingularRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getPluralRuleset();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\French;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
|
||||||
|
final class Rules
|
||||||
|
{
|
||||||
|
public static function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getSingular()),
|
||||||
|
new Patterns(...Uninflected::getSingular()),
|
||||||
|
(new Substitutions(...Inflectible::getIrregular()))->getFlippedSubstitutions()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getPlural()),
|
||||||
|
new Patterns(...Uninflected::getPlural()),
|
||||||
|
new Substitutions(...Inflectible::getIrregular())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
28
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php
vendored
Normal file
28
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\French;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
|
||||||
|
final class Uninflected
|
||||||
|
{
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
private static function getDefault(): iterable
|
||||||
|
{
|
||||||
|
yield new Pattern('');
|
||||||
|
}
|
||||||
|
}
|
||||||
34
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php
vendored
Normal file
34
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\NorwegianBokmal;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
class Inflectible
|
||||||
|
{
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/re$/i'), 'r');
|
||||||
|
yield new Transformation(new Pattern('/er$/i'), '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/e$/i'), 'er');
|
||||||
|
yield new Transformation(new Pattern('/r$/i'), 're');
|
||||||
|
yield new Transformation(new Pattern('/$/'), 'er');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Substitution[] */
|
||||||
|
public static function getIrregular(): iterable
|
||||||
|
{
|
||||||
|
yield new Substitution(new Word('konto'), new Word('konti'));
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\NorwegianBokmal;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\GenericLanguageInflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
final class InflectorFactory extends GenericLanguageInflectorFactory
|
||||||
|
{
|
||||||
|
protected function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getSingularRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getPluralRuleset();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\NorwegianBokmal;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
|
||||||
|
final class Rules
|
||||||
|
{
|
||||||
|
public static function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getSingular()),
|
||||||
|
new Patterns(...Uninflected::getSingular()),
|
||||||
|
(new Substitutions(...Inflectible::getIrregular()))->getFlippedSubstitutions()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getPlural()),
|
||||||
|
new Patterns(...Uninflected::getPlural()),
|
||||||
|
new Substitutions(...Inflectible::getIrregular())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php
vendored
Normal file
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\NorwegianBokmal;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
|
||||||
|
final class Uninflected
|
||||||
|
{
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
private static function getDefault(): iterable
|
||||||
|
{
|
||||||
|
yield new Pattern('barn');
|
||||||
|
yield new Pattern('fjell');
|
||||||
|
yield new Pattern('hus');
|
||||||
|
}
|
||||||
|
}
|
||||||
42
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php
vendored
Normal file
42
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
use function preg_match;
|
||||||
|
|
||||||
|
final class Pattern
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
private $pattern;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
private $regex;
|
||||||
|
|
||||||
|
public function __construct(string $pattern)
|
||||||
|
{
|
||||||
|
$this->pattern = $pattern;
|
||||||
|
|
||||||
|
if (isset($this->pattern[0]) && $this->pattern[0] === '/') {
|
||||||
|
$this->regex = $this->pattern;
|
||||||
|
} else {
|
||||||
|
$this->regex = '/' . $this->pattern . '/i';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPattern(): string
|
||||||
|
{
|
||||||
|
return $this->pattern;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRegex(): string
|
||||||
|
{
|
||||||
|
return $this->regex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function matches(string $word): bool
|
||||||
|
{
|
||||||
|
return preg_match($this->getRegex(), $word) === 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
34
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php
vendored
Normal file
34
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
use function array_map;
|
||||||
|
use function implode;
|
||||||
|
use function preg_match;
|
||||||
|
|
||||||
|
class Patterns
|
||||||
|
{
|
||||||
|
/** @var Pattern[] */
|
||||||
|
private $patterns;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
private $regex;
|
||||||
|
|
||||||
|
public function __construct(Pattern ...$patterns)
|
||||||
|
{
|
||||||
|
$this->patterns = $patterns;
|
||||||
|
|
||||||
|
$patterns = array_map(static function (Pattern $pattern): string {
|
||||||
|
return $pattern->getPattern();
|
||||||
|
}, $this->patterns);
|
||||||
|
|
||||||
|
$this->regex = '/^(?:' . implode('|', $patterns) . ')$/i';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function matches(string $word): bool
|
||||||
|
{
|
||||||
|
return preg_match($this->regex, $word, $regs) === 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
98
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php
vendored
Normal file
98
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php
vendored
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Portuguese;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
class Inflectible
|
||||||
|
{
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/^(g|)ases$/i'), '\1ás');
|
||||||
|
yield new Transformation(new Pattern('/(japon|escoc|ingl|dinamarqu|fregu|portugu)eses$/i'), '\1ês');
|
||||||
|
yield new Transformation(new Pattern('/(ae|ao|oe)s$/'), 'ao');
|
||||||
|
yield new Transformation(new Pattern('/(ãe|ão|õe)s$/'), 'ão');
|
||||||
|
yield new Transformation(new Pattern('/^(.*[^s]s)es$/i'), '\1');
|
||||||
|
yield new Transformation(new Pattern('/sses$/i'), 'sse');
|
||||||
|
yield new Transformation(new Pattern('/ns$/i'), 'm');
|
||||||
|
yield new Transformation(new Pattern('/(r|t|f|v)is$/i'), '\1il');
|
||||||
|
yield new Transformation(new Pattern('/uis$/i'), 'ul');
|
||||||
|
yield new Transformation(new Pattern('/ois$/i'), 'ol');
|
||||||
|
yield new Transformation(new Pattern('/eis$/i'), 'ei');
|
||||||
|
yield new Transformation(new Pattern('/éis$/i'), 'el');
|
||||||
|
yield new Transformation(new Pattern('/([^p])ais$/i'), '\1al');
|
||||||
|
yield new Transformation(new Pattern('/(r|z)es$/i'), '\1');
|
||||||
|
yield new Transformation(new Pattern('/^(á|gá)s$/i'), '\1s');
|
||||||
|
yield new Transformation(new Pattern('/([^ê])s$/i'), '\1');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/^(alem|c|p)ao$/i'), '\1aes');
|
||||||
|
yield new Transformation(new Pattern('/^(irm|m)ao$/i'), '\1aos');
|
||||||
|
yield new Transformation(new Pattern('/ao$/i'), 'oes');
|
||||||
|
yield new Transformation(new Pattern('/^(alem|c|p)ão$/i'), '\1ães');
|
||||||
|
yield new Transformation(new Pattern('/^(irm|m)ão$/i'), '\1ãos');
|
||||||
|
yield new Transformation(new Pattern('/ão$/i'), 'ões');
|
||||||
|
yield new Transformation(new Pattern('/^(|g)ás$/i'), '\1ases');
|
||||||
|
yield new Transformation(new Pattern('/^(japon|escoc|ingl|dinamarqu|fregu|portugu)ês$/i'), '\1eses');
|
||||||
|
yield new Transformation(new Pattern('/m$/i'), 'ns');
|
||||||
|
yield new Transformation(new Pattern('/([^aeou])il$/i'), '\1is');
|
||||||
|
yield new Transformation(new Pattern('/ul$/i'), 'uis');
|
||||||
|
yield new Transformation(new Pattern('/ol$/i'), 'ois');
|
||||||
|
yield new Transformation(new Pattern('/el$/i'), 'eis');
|
||||||
|
yield new Transformation(new Pattern('/al$/i'), 'ais');
|
||||||
|
yield new Transformation(new Pattern('/(z|r)$/i'), '\1es');
|
||||||
|
yield new Transformation(new Pattern('/(s)$/i'), '\1');
|
||||||
|
yield new Transformation(new Pattern('/$/'), 's');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Substitution[] */
|
||||||
|
public static function getIrregular(): iterable
|
||||||
|
{
|
||||||
|
yield new Substitution(new Word('abdomen'), new Word('abdomens'));
|
||||||
|
yield new Substitution(new Word('alemão'), new Word('alemães'));
|
||||||
|
yield new Substitution(new Word('artesã'), new Word('artesãos'));
|
||||||
|
yield new Substitution(new Word('álcool'), new Word('álcoois'));
|
||||||
|
yield new Substitution(new Word('árvore'), new Word('árvores'));
|
||||||
|
yield new Substitution(new Word('bencão'), new Word('bencãos'));
|
||||||
|
yield new Substitution(new Word('cão'), new Word('cães'));
|
||||||
|
yield new Substitution(new Word('campus'), new Word('campi'));
|
||||||
|
yield new Substitution(new Word('cadáver'), new Word('cadáveres'));
|
||||||
|
yield new Substitution(new Word('capelão'), new Word('capelães'));
|
||||||
|
yield new Substitution(new Word('capitão'), new Word('capitães'));
|
||||||
|
yield new Substitution(new Word('chão'), new Word('chãos'));
|
||||||
|
yield new Substitution(new Word('charlatão'), new Word('charlatães'));
|
||||||
|
yield new Substitution(new Word('cidadão'), new Word('cidadãos'));
|
||||||
|
yield new Substitution(new Word('consul'), new Word('consules'));
|
||||||
|
yield new Substitution(new Word('cristão'), new Word('cristãos'));
|
||||||
|
yield new Substitution(new Word('difícil'), new Word('difíceis'));
|
||||||
|
yield new Substitution(new Word('email'), new Word('emails'));
|
||||||
|
yield new Substitution(new Word('escrivão'), new Word('escrivães'));
|
||||||
|
yield new Substitution(new Word('fóssil'), new Word('fósseis'));
|
||||||
|
yield new Substitution(new Word('gás'), new Word('gases'));
|
||||||
|
yield new Substitution(new Word('germens'), new Word('germen'));
|
||||||
|
yield new Substitution(new Word('grão'), new Word('grãos'));
|
||||||
|
yield new Substitution(new Word('hífen'), new Word('hífens'));
|
||||||
|
yield new Substitution(new Word('irmão'), new Word('irmãos'));
|
||||||
|
yield new Substitution(new Word('liquens'), new Word('liquen'));
|
||||||
|
yield new Substitution(new Word('mal'), new Word('males'));
|
||||||
|
yield new Substitution(new Word('mão'), new Word('mãos'));
|
||||||
|
yield new Substitution(new Word('orfão'), new Word('orfãos'));
|
||||||
|
yield new Substitution(new Word('país'), new Word('países'));
|
||||||
|
yield new Substitution(new Word('pai'), new Word('pais'));
|
||||||
|
yield new Substitution(new Word('pão'), new Word('pães'));
|
||||||
|
yield new Substitution(new Word('projétil'), new Word('projéteis'));
|
||||||
|
yield new Substitution(new Word('réptil'), new Word('répteis'));
|
||||||
|
yield new Substitution(new Word('sacristão'), new Word('sacristães'));
|
||||||
|
yield new Substitution(new Word('sotão'), new Word('sotãos'));
|
||||||
|
yield new Substitution(new Word('tabelião'), new Word('tabeliães'));
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Portuguese;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\GenericLanguageInflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
final class InflectorFactory extends GenericLanguageInflectorFactory
|
||||||
|
{
|
||||||
|
protected function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getSingularRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getPluralRuleset();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Portuguese;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
|
||||||
|
final class Rules
|
||||||
|
{
|
||||||
|
public static function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getSingular()),
|
||||||
|
new Patterns(...Uninflected::getSingular()),
|
||||||
|
(new Substitutions(...Inflectible::getIrregular()))->getFlippedSubstitutions()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getPlural()),
|
||||||
|
new Patterns(...Uninflected::getPlural()),
|
||||||
|
new Substitutions(...Inflectible::getIrregular())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
32
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php
vendored
Normal file
32
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Portuguese;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
|
||||||
|
final class Uninflected
|
||||||
|
{
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
private static function getDefault(): iterable
|
||||||
|
{
|
||||||
|
yield new Pattern('tórax');
|
||||||
|
yield new Pattern('tênis');
|
||||||
|
yield new Pattern('ônibus');
|
||||||
|
yield new Pattern('lápis');
|
||||||
|
yield new Pattern('fênix');
|
||||||
|
}
|
||||||
|
}
|
||||||
39
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php
vendored
Normal file
39
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
class Ruleset
|
||||||
|
{
|
||||||
|
/** @var Transformations */
|
||||||
|
private $regular;
|
||||||
|
|
||||||
|
/** @var Patterns */
|
||||||
|
private $uninflected;
|
||||||
|
|
||||||
|
/** @var Substitutions */
|
||||||
|
private $irregular;
|
||||||
|
|
||||||
|
public function __construct(Transformations $regular, Patterns $uninflected, Substitutions $irregular)
|
||||||
|
{
|
||||||
|
$this->regular = $regular;
|
||||||
|
$this->uninflected = $uninflected;
|
||||||
|
$this->irregular = $irregular;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRegular(): Transformations
|
||||||
|
{
|
||||||
|
return $this->regular;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getUninflected(): Patterns
|
||||||
|
{
|
||||||
|
return $this->uninflected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getIrregular(): Substitutions
|
||||||
|
{
|
||||||
|
return $this->irregular;
|
||||||
|
}
|
||||||
|
}
|
||||||
47
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php
vendored
Normal file
47
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Spanish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
class Inflectible
|
||||||
|
{
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/ereses$/'), 'erés');
|
||||||
|
yield new Transformation(new Pattern('/iones$/'), 'ión');
|
||||||
|
yield new Transformation(new Pattern('/ces$/'), 'z');
|
||||||
|
yield new Transformation(new Pattern('/es$/'), '');
|
||||||
|
yield new Transformation(new Pattern('/s$/'), '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/ú([sn])$/i'), 'u\1es');
|
||||||
|
yield new Transformation(new Pattern('/ó([sn])$/i'), 'o\1es');
|
||||||
|
yield new Transformation(new Pattern('/í([sn])$/i'), 'i\1es');
|
||||||
|
yield new Transformation(new Pattern('/é([sn])$/i'), 'e\1es');
|
||||||
|
yield new Transformation(new Pattern('/á([sn])$/i'), 'a\1es');
|
||||||
|
yield new Transformation(new Pattern('/z$/i'), 'ces');
|
||||||
|
yield new Transformation(new Pattern('/([aeiou]s)$/i'), '\1');
|
||||||
|
yield new Transformation(new Pattern('/([^aeéiou])$/i'), '\1es');
|
||||||
|
yield new Transformation(new Pattern('/$/'), 's');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Substitution[] */
|
||||||
|
public static function getIrregular(): iterable
|
||||||
|
{
|
||||||
|
yield new Substitution(new Word('el'), new Word('los'));
|
||||||
|
yield new Substitution(new Word('papá'), new Word('papás'));
|
||||||
|
yield new Substitution(new Word('mamá'), new Word('mamás'));
|
||||||
|
yield new Substitution(new Word('sofá'), new Word('sofás'));
|
||||||
|
yield new Substitution(new Word('mes'), new Word('meses'));
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Spanish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\GenericLanguageInflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
final class InflectorFactory extends GenericLanguageInflectorFactory
|
||||||
|
{
|
||||||
|
protected function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getSingularRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getPluralRuleset();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Spanish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
|
||||||
|
final class Rules
|
||||||
|
{
|
||||||
|
public static function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getSingular()),
|
||||||
|
new Patterns(...Uninflected::getSingular()),
|
||||||
|
(new Substitutions(...Inflectible::getIrregular()))->getFlippedSubstitutions()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getPlural()),
|
||||||
|
new Patterns(...Uninflected::getPlural()),
|
||||||
|
new Substitutions(...Inflectible::getIrregular())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php
vendored
Normal file
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Spanish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
|
||||||
|
final class Uninflected
|
||||||
|
{
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
private static function getDefault(): iterable
|
||||||
|
{
|
||||||
|
yield new Pattern('lunes');
|
||||||
|
yield new Pattern('rompecabezas');
|
||||||
|
yield new Pattern('crisis');
|
||||||
|
}
|
||||||
|
}
|
||||||
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php
vendored
Normal file
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
final class Substitution
|
||||||
|
{
|
||||||
|
/** @var Word */
|
||||||
|
private $from;
|
||||||
|
|
||||||
|
/** @var Word */
|
||||||
|
private $to;
|
||||||
|
|
||||||
|
public function __construct(Word $from, Word $to)
|
||||||
|
{
|
||||||
|
$this->from = $from;
|
||||||
|
$this->to = $to;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFrom(): Word
|
||||||
|
{
|
||||||
|
return $this->from;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTo(): Word
|
||||||
|
{
|
||||||
|
return $this->to;
|
||||||
|
}
|
||||||
|
}
|
||||||
57
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php
vendored
Normal file
57
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\WordInflector;
|
||||||
|
|
||||||
|
use function strtolower;
|
||||||
|
use function strtoupper;
|
||||||
|
use function substr;
|
||||||
|
|
||||||
|
class Substitutions implements WordInflector
|
||||||
|
{
|
||||||
|
/** @var Substitution[] */
|
||||||
|
private $substitutions;
|
||||||
|
|
||||||
|
public function __construct(Substitution ...$substitutions)
|
||||||
|
{
|
||||||
|
foreach ($substitutions as $substitution) {
|
||||||
|
$this->substitutions[$substitution->getFrom()->getWord()] = $substitution;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFlippedSubstitutions(): Substitutions
|
||||||
|
{
|
||||||
|
$substitutions = [];
|
||||||
|
|
||||||
|
foreach ($this->substitutions as $substitution) {
|
||||||
|
$substitutions[] = new Substitution(
|
||||||
|
$substitution->getTo(),
|
||||||
|
$substitution->getFrom()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Substitutions(...$substitutions);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function inflect(string $word): string
|
||||||
|
{
|
||||||
|
$lowerWord = strtolower($word);
|
||||||
|
|
||||||
|
if (isset($this->substitutions[$lowerWord])) {
|
||||||
|
$firstLetterUppercase = $lowerWord[0] !== $word[0];
|
||||||
|
|
||||||
|
$toWord = $this->substitutions[$lowerWord]->getTo()->getWord();
|
||||||
|
|
||||||
|
if ($firstLetterUppercase) {
|
||||||
|
return strtoupper($toWord[0]) . substr($toWord, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $toWord;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $word;
|
||||||
|
}
|
||||||
|
}
|
||||||
39
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php
vendored
Normal file
39
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\WordInflector;
|
||||||
|
|
||||||
|
use function preg_replace;
|
||||||
|
|
||||||
|
final class Transformation implements WordInflector
|
||||||
|
{
|
||||||
|
/** @var Pattern */
|
||||||
|
private $pattern;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
private $replacement;
|
||||||
|
|
||||||
|
public function __construct(Pattern $pattern, string $replacement)
|
||||||
|
{
|
||||||
|
$this->pattern = $pattern;
|
||||||
|
$this->replacement = $replacement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPattern(): Pattern
|
||||||
|
{
|
||||||
|
return $this->pattern;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getReplacement(): string
|
||||||
|
{
|
||||||
|
return $this->replacement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function inflect(string $word): string
|
||||||
|
{
|
||||||
|
return (string) preg_replace($this->pattern->getRegex(), $this->replacement, $word);
|
||||||
|
}
|
||||||
|
}
|
||||||
29
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php
vendored
Normal file
29
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\WordInflector;
|
||||||
|
|
||||||
|
class Transformations implements WordInflector
|
||||||
|
{
|
||||||
|
/** @var Transformation[] */
|
||||||
|
private $transformations;
|
||||||
|
|
||||||
|
public function __construct(Transformation ...$transformations)
|
||||||
|
{
|
||||||
|
$this->transformations = $transformations;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function inflect(string $word): string
|
||||||
|
{
|
||||||
|
foreach ($this->transformations as $transformation) {
|
||||||
|
if ($transformation->getPattern()->matches($word)) {
|
||||||
|
return $transformation->inflect($word);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $word;
|
||||||
|
}
|
||||||
|
}
|
||||||
34
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php
vendored
Normal file
34
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Turkish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
use Doctrine\Inflector\Rules\Substitution;
|
||||||
|
use Doctrine\Inflector\Rules\Transformation;
|
||||||
|
use Doctrine\Inflector\Rules\Word;
|
||||||
|
|
||||||
|
class Inflectible
|
||||||
|
{
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/l[ae]r$/i'), '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Transformation[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield new Transformation(new Pattern('/([eöiü][^aoıueöiü]{0,6})$/u'), '\1ler');
|
||||||
|
yield new Transformation(new Pattern('/([aoıu][^aoıueöiü]{0,6})$/u'), '\1lar');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Substitution[] */
|
||||||
|
public static function getIrregular(): iterable
|
||||||
|
{
|
||||||
|
yield new Substitution(new Word('ben'), new Word('biz'));
|
||||||
|
yield new Substitution(new Word('sen'), new Word('siz'));
|
||||||
|
yield new Substitution(new Word('o'), new Word('onlar'));
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Turkish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\GenericLanguageInflectorFactory;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
final class InflectorFactory extends GenericLanguageInflectorFactory
|
||||||
|
{
|
||||||
|
protected function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getSingularRuleset();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return Rules::getPluralRuleset();
|
||||||
|
}
|
||||||
|
}
|
||||||
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php
vendored
Normal file
31
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Turkish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Patterns;
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
use Doctrine\Inflector\Rules\Substitutions;
|
||||||
|
use Doctrine\Inflector\Rules\Transformations;
|
||||||
|
|
||||||
|
final class Rules
|
||||||
|
{
|
||||||
|
public static function getSingularRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getSingular()),
|
||||||
|
new Patterns(...Uninflected::getSingular()),
|
||||||
|
(new Substitutions(...Inflectible::getIrregular()))->getFlippedSubstitutions()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPluralRuleset(): Ruleset
|
||||||
|
{
|
||||||
|
return new Ruleset(
|
||||||
|
new Transformations(...Inflectible::getPlural()),
|
||||||
|
new Patterns(...Uninflected::getPlural()),
|
||||||
|
new Substitutions(...Inflectible::getIrregular())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php
vendored
Normal file
30
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules\Turkish;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Pattern;
|
||||||
|
|
||||||
|
final class Uninflected
|
||||||
|
{
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getSingular(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
public static function getPlural(): iterable
|
||||||
|
{
|
||||||
|
yield from self::getDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Pattern[] */
|
||||||
|
private static function getDefault(): iterable
|
||||||
|
{
|
||||||
|
yield new Pattern('lunes');
|
||||||
|
yield new Pattern('rompecabezas');
|
||||||
|
yield new Pattern('crisis');
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php
vendored
Normal file
21
vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector\Rules;
|
||||||
|
|
||||||
|
class Word
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
private $word;
|
||||||
|
|
||||||
|
public function __construct(string $word)
|
||||||
|
{
|
||||||
|
$this->word = $word;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getWord(): string
|
||||||
|
{
|
||||||
|
return $this->word;
|
||||||
|
}
|
||||||
|
}
|
||||||
56
vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php
vendored
Normal file
56
vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
use Doctrine\Inflector\Rules\Ruleset;
|
||||||
|
|
||||||
|
use function array_merge;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inflects based on multiple rulesets.
|
||||||
|
*
|
||||||
|
* Rules:
|
||||||
|
* - If the word matches any uninflected word pattern, it is not inflected
|
||||||
|
* - The first ruleset that returns a different value for an irregular word wins
|
||||||
|
* - The first ruleset that returns a different value for a regular word wins
|
||||||
|
* - If none of the above match, the word is left as-is
|
||||||
|
*/
|
||||||
|
class RulesetInflector implements WordInflector
|
||||||
|
{
|
||||||
|
/** @var Ruleset[] */
|
||||||
|
private $rulesets;
|
||||||
|
|
||||||
|
public function __construct(Ruleset $ruleset, Ruleset ...$rulesets)
|
||||||
|
{
|
||||||
|
$this->rulesets = array_merge([$ruleset], $rulesets);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function inflect(string $word): string
|
||||||
|
{
|
||||||
|
if ($word === '') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($this->rulesets as $ruleset) {
|
||||||
|
if ($ruleset->getUninflected()->matches($word)) {
|
||||||
|
return $word;
|
||||||
|
}
|
||||||
|
|
||||||
|
$inflected = $ruleset->getIrregular()->inflect($word);
|
||||||
|
|
||||||
|
if ($inflected !== $word) {
|
||||||
|
return $inflected;
|
||||||
|
}
|
||||||
|
|
||||||
|
$inflected = $ruleset->getRegular()->inflect($word);
|
||||||
|
|
||||||
|
if ($inflected !== $word) {
|
||||||
|
return $inflected;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $word;
|
||||||
|
}
|
||||||
|
}
|
||||||
10
vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php
vendored
Normal file
10
vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Doctrine\Inflector;
|
||||||
|
|
||||||
|
interface WordInflector
|
||||||
|
{
|
||||||
|
public function inflect(string $word): string;
|
||||||
|
}
|
||||||
747
vendor/illuminate/collections/Arr.php
vendored
Normal file
747
vendor/illuminate/collections/Arr.php
vendored
Normal file
@@ -0,0 +1,747 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Support;
|
||||||
|
|
||||||
|
use ArrayAccess;
|
||||||
|
use Illuminate\Support\Traits\Macroable;
|
||||||
|
use InvalidArgumentException;
|
||||||
|
|
||||||
|
class Arr
|
||||||
|
{
|
||||||
|
use Macroable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine whether the given value is array accessible.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function accessible($value)
|
||||||
|
{
|
||||||
|
return is_array($value) || $value instanceof ArrayAccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add an element to an array using "dot" notation if it doesn't exist.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function add($array, $key, $value)
|
||||||
|
{
|
||||||
|
if (is_null(static::get($array, $key))) {
|
||||||
|
static::set($array, $key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Collapse an array of arrays into a single array.
|
||||||
|
*
|
||||||
|
* @param iterable $array
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function collapse($array)
|
||||||
|
{
|
||||||
|
$results = [];
|
||||||
|
|
||||||
|
foreach ($array as $values) {
|
||||||
|
if ($values instanceof Collection) {
|
||||||
|
$values = $values->all();
|
||||||
|
} elseif (! is_array($values)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$results[] = $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_merge([], ...$results);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cross join the given arrays, returning all possible permutations.
|
||||||
|
*
|
||||||
|
* @param iterable ...$arrays
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function crossJoin(...$arrays)
|
||||||
|
{
|
||||||
|
$results = [[]];
|
||||||
|
|
||||||
|
foreach ($arrays as $index => $array) {
|
||||||
|
$append = [];
|
||||||
|
|
||||||
|
foreach ($results as $product) {
|
||||||
|
foreach ($array as $item) {
|
||||||
|
$product[$index] = $item;
|
||||||
|
|
||||||
|
$append[] = $product;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$results = $append;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Divide an array into two arrays. One with keys and the other with values.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function divide($array)
|
||||||
|
{
|
||||||
|
return [array_keys($array), array_values($array)];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flatten a multi-dimensional associative array with dots.
|
||||||
|
*
|
||||||
|
* @param iterable $array
|
||||||
|
* @param string $prepend
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function dot($array, $prepend = '')
|
||||||
|
{
|
||||||
|
$results = [];
|
||||||
|
|
||||||
|
foreach ($array as $key => $value) {
|
||||||
|
if (is_array($value) && ! empty($value)) {
|
||||||
|
$results = array_merge($results, static::dot($value, $prepend.$key.'.'));
|
||||||
|
} else {
|
||||||
|
$results[$prepend.$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a flatten "dot" notation array into an expanded array.
|
||||||
|
*
|
||||||
|
* @param iterable $array
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function undot($array)
|
||||||
|
{
|
||||||
|
$results = [];
|
||||||
|
|
||||||
|
foreach ($array as $key => $value) {
|
||||||
|
static::set($results, $key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all of the given array except for a specified array of keys.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param array|string $keys
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function except($array, $keys)
|
||||||
|
{
|
||||||
|
static::forget($array, $keys);
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the given key exists in the provided array.
|
||||||
|
*
|
||||||
|
* @param \ArrayAccess|array $array
|
||||||
|
* @param string|int $key
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function exists($array, $key)
|
||||||
|
{
|
||||||
|
if ($array instanceof Enumerable) {
|
||||||
|
return $array->has($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($array instanceof ArrayAccess) {
|
||||||
|
return $array->offsetExists($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_key_exists($key, $array);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the first element in an array passing a given truth test.
|
||||||
|
*
|
||||||
|
* @param iterable $array
|
||||||
|
* @param callable|null $callback
|
||||||
|
* @param mixed $default
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function first($array, callable $callback = null, $default = null)
|
||||||
|
{
|
||||||
|
if (is_null($callback)) {
|
||||||
|
if (empty($array)) {
|
||||||
|
return value($default);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($array as $item) {
|
||||||
|
return $item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($array as $key => $value) {
|
||||||
|
if ($callback($value, $key)) {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return value($default);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the last element in an array passing a given truth test.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param callable|null $callback
|
||||||
|
* @param mixed $default
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function last($array, callable $callback = null, $default = null)
|
||||||
|
{
|
||||||
|
if (is_null($callback)) {
|
||||||
|
return empty($array) ? value($default) : end($array);
|
||||||
|
}
|
||||||
|
|
||||||
|
return static::first(array_reverse($array, true), $callback, $default);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flatten a multi-dimensional array into a single level.
|
||||||
|
*
|
||||||
|
* @param iterable $array
|
||||||
|
* @param int $depth
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function flatten($array, $depth = INF)
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
foreach ($array as $item) {
|
||||||
|
$item = $item instanceof Collection ? $item->all() : $item;
|
||||||
|
|
||||||
|
if (! is_array($item)) {
|
||||||
|
$result[] = $item;
|
||||||
|
} else {
|
||||||
|
$values = $depth === 1
|
||||||
|
? array_values($item)
|
||||||
|
: static::flatten($item, $depth - 1);
|
||||||
|
|
||||||
|
foreach ($values as $value) {
|
||||||
|
$result[] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove one or many array items from a given array using "dot" notation.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param array|string $keys
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function forget(&$array, $keys)
|
||||||
|
{
|
||||||
|
$original = &$array;
|
||||||
|
|
||||||
|
$keys = (array) $keys;
|
||||||
|
|
||||||
|
if (count($keys) === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
// if the exact key exists in the top-level, remove it
|
||||||
|
if (static::exists($array, $key)) {
|
||||||
|
unset($array[$key]);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$parts = explode('.', $key);
|
||||||
|
|
||||||
|
// clean up before each pass
|
||||||
|
$array = &$original;
|
||||||
|
|
||||||
|
while (count($parts) > 1) {
|
||||||
|
$part = array_shift($parts);
|
||||||
|
|
||||||
|
if (isset($array[$part]) && is_array($array[$part])) {
|
||||||
|
$array = &$array[$part];
|
||||||
|
} else {
|
||||||
|
continue 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unset($array[array_shift($parts)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an item from an array using "dot" notation.
|
||||||
|
*
|
||||||
|
* @param \ArrayAccess|array $array
|
||||||
|
* @param string|int|null $key
|
||||||
|
* @param mixed $default
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function get($array, $key, $default = null)
|
||||||
|
{
|
||||||
|
if (! static::accessible($array)) {
|
||||||
|
return value($default);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($key)) {
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (static::exists($array, $key)) {
|
||||||
|
return $array[$key];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($key, '.') === false) {
|
||||||
|
return $array[$key] ?? value($default);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (explode('.', $key) as $segment) {
|
||||||
|
if (static::accessible($array) && static::exists($array, $segment)) {
|
||||||
|
$array = $array[$segment];
|
||||||
|
} else {
|
||||||
|
return value($default);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if an item or items exist in an array using "dot" notation.
|
||||||
|
*
|
||||||
|
* @param \ArrayAccess|array $array
|
||||||
|
* @param string|array $keys
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function has($array, $keys)
|
||||||
|
{
|
||||||
|
$keys = (array) $keys;
|
||||||
|
|
||||||
|
if (! $array || $keys === []) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
$subKeyArray = $array;
|
||||||
|
|
||||||
|
if (static::exists($array, $key)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (explode('.', $key) as $segment) {
|
||||||
|
if (static::accessible($subKeyArray) && static::exists($subKeyArray, $segment)) {
|
||||||
|
$subKeyArray = $subKeyArray[$segment];
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if any of the keys exist in an array using "dot" notation.
|
||||||
|
*
|
||||||
|
* @param \ArrayAccess|array $array
|
||||||
|
* @param string|array $keys
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function hasAny($array, $keys)
|
||||||
|
{
|
||||||
|
if (is_null($keys)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$keys = (array) $keys;
|
||||||
|
|
||||||
|
if (! $array) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($keys === []) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
if (static::has($array, $key)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if an array is associative.
|
||||||
|
*
|
||||||
|
* An array is "associative" if it doesn't have sequential numerical keys beginning with zero.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function isAssoc(array $array)
|
||||||
|
{
|
||||||
|
$keys = array_keys($array);
|
||||||
|
|
||||||
|
return array_keys($keys) !== $keys;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if an array is a list.
|
||||||
|
*
|
||||||
|
* An array is a "list" if all array keys are sequential integers starting from 0 with no gaps in between.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function isList($array)
|
||||||
|
{
|
||||||
|
return ! self::isAssoc($array);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a subset of the items from the given array.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param array|string $keys
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function only($array, $keys)
|
||||||
|
{
|
||||||
|
return array_intersect_key($array, array_flip((array) $keys));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pluck an array of values from an array.
|
||||||
|
*
|
||||||
|
* @param iterable $array
|
||||||
|
* @param string|array|int|null $value
|
||||||
|
* @param string|array|null $key
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function pluck($array, $value, $key = null)
|
||||||
|
{
|
||||||
|
$results = [];
|
||||||
|
|
||||||
|
[$value, $key] = static::explodePluckParameters($value, $key);
|
||||||
|
|
||||||
|
foreach ($array as $item) {
|
||||||
|
$itemValue = data_get($item, $value);
|
||||||
|
|
||||||
|
// If the key is "null", we will just append the value to the array and keep
|
||||||
|
// looping. Otherwise we will key the array using the value of the key we
|
||||||
|
// received from the developer. Then we'll return the final array form.
|
||||||
|
if (is_null($key)) {
|
||||||
|
$results[] = $itemValue;
|
||||||
|
} else {
|
||||||
|
$itemKey = data_get($item, $key);
|
||||||
|
|
||||||
|
if (is_object($itemKey) && method_exists($itemKey, '__toString')) {
|
||||||
|
$itemKey = (string) $itemKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
$results[$itemKey] = $itemValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Explode the "value" and "key" arguments passed to "pluck".
|
||||||
|
*
|
||||||
|
* @param string|array $value
|
||||||
|
* @param string|array|null $key
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected static function explodePluckParameters($value, $key)
|
||||||
|
{
|
||||||
|
$value = is_string($value) ? explode('.', $value) : $value;
|
||||||
|
|
||||||
|
$key = is_null($key) || is_array($key) ? $key : explode('.', $key);
|
||||||
|
|
||||||
|
return [$value, $key];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Push an item onto the beginning of an array.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param mixed $value
|
||||||
|
* @param mixed $key
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function prepend($array, $value, $key = null)
|
||||||
|
{
|
||||||
|
if (func_num_args() == 2) {
|
||||||
|
array_unshift($array, $value);
|
||||||
|
} else {
|
||||||
|
$array = [$key => $value] + $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a value from the array, and remove it.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param string|int $key
|
||||||
|
* @param mixed $default
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function pull(&$array, $key, $default = null)
|
||||||
|
{
|
||||||
|
$value = static::get($array, $key, $default);
|
||||||
|
|
||||||
|
static::forget($array, $key);
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the array into a query string.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function query($array)
|
||||||
|
{
|
||||||
|
return http_build_query($array, '', '&', PHP_QUERY_RFC3986);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get one or a specified number of random values from an array.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param int|null $number
|
||||||
|
* @param bool|false $preserveKeys
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public static function random($array, $number = null, $preserveKeys = false)
|
||||||
|
{
|
||||||
|
$requested = is_null($number) ? 1 : $number;
|
||||||
|
|
||||||
|
$count = count($array);
|
||||||
|
|
||||||
|
if ($requested > $count) {
|
||||||
|
throw new InvalidArgumentException(
|
||||||
|
"You requested {$requested} items, but there are only {$count} items available."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($number)) {
|
||||||
|
return $array[array_rand($array)];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((int) $number === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$keys = array_rand($array, $number);
|
||||||
|
|
||||||
|
$results = [];
|
||||||
|
|
||||||
|
if ($preserveKeys) {
|
||||||
|
foreach ((array) $keys as $key) {
|
||||||
|
$results[$key] = $array[$key];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach ((array) $keys as $key) {
|
||||||
|
$results[] = $array[$key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set an array item to a given value using "dot" notation.
|
||||||
|
*
|
||||||
|
* If no key is given to the method, the entire array will be replaced.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param string|null $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function set(&$array, $key, $value)
|
||||||
|
{
|
||||||
|
if (is_null($key)) {
|
||||||
|
return $array = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$keys = explode('.', $key);
|
||||||
|
|
||||||
|
foreach ($keys as $i => $key) {
|
||||||
|
if (count($keys) === 1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
unset($keys[$i]);
|
||||||
|
|
||||||
|
// If the key doesn't exist at this depth, we will just create an empty array
|
||||||
|
// to hold the next value, allowing us to create the arrays to hold final
|
||||||
|
// values at the correct depth. Then we'll keep digging into the array.
|
||||||
|
if (! isset($array[$key]) || ! is_array($array[$key])) {
|
||||||
|
$array[$key] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$array = &$array[$key];
|
||||||
|
}
|
||||||
|
|
||||||
|
$array[array_shift($keys)] = $value;
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shuffle the given array and return the result.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param int|null $seed
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function shuffle($array, $seed = null)
|
||||||
|
{
|
||||||
|
if (is_null($seed)) {
|
||||||
|
shuffle($array);
|
||||||
|
} else {
|
||||||
|
mt_srand($seed);
|
||||||
|
shuffle($array);
|
||||||
|
mt_srand();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sort the array using the given callback or "dot" notation.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param callable|array|string|null $callback
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function sort($array, $callback = null)
|
||||||
|
{
|
||||||
|
return Collection::make($array)->sortBy($callback)->all();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recursively sort an array by keys and values.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param int $options
|
||||||
|
* @param bool $descending
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function sortRecursive($array, $options = SORT_REGULAR, $descending = false)
|
||||||
|
{
|
||||||
|
foreach ($array as &$value) {
|
||||||
|
if (is_array($value)) {
|
||||||
|
$value = static::sortRecursive($value, $options, $descending);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (static::isAssoc($array)) {
|
||||||
|
$descending
|
||||||
|
? krsort($array, $options)
|
||||||
|
: ksort($array, $options);
|
||||||
|
} else {
|
||||||
|
$descending
|
||||||
|
? rsort($array, $options)
|
||||||
|
: sort($array, $options);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conditionally compile classes from an array into a CSS class list.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function toCssClasses($array)
|
||||||
|
{
|
||||||
|
$classList = static::wrap($array);
|
||||||
|
|
||||||
|
$classes = [];
|
||||||
|
|
||||||
|
foreach ($classList as $class => $constraint) {
|
||||||
|
if (is_numeric($class)) {
|
||||||
|
$classes[] = $constraint;
|
||||||
|
} elseif ($constraint) {
|
||||||
|
$classes[] = $class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode(' ', $classes);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the array using the given callback.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @param callable $callback
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function where($array, callable $callback)
|
||||||
|
{
|
||||||
|
return array_filter($array, $callback, ARRAY_FILTER_USE_BOTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter items where the value is not null.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function whereNotNull($array)
|
||||||
|
{
|
||||||
|
return static::where($array, function ($value) {
|
||||||
|
return ! is_null($value);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the given value is not an array and not null, wrap it in one.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function wrap($value)
|
||||||
|
{
|
||||||
|
if (is_null($value)) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return is_array($value) ? $value : [$value];
|
||||||
|
}
|
||||||
|
}
|
||||||
1672
vendor/illuminate/collections/Collection.php
vendored
Normal file
1672
vendor/illuminate/collections/Collection.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1027
vendor/illuminate/collections/Enumerable.php
vendored
Normal file
1027
vendor/illuminate/collections/Enumerable.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
63
vendor/illuminate/collections/HigherOrderCollectionProxy.php
vendored
Normal file
63
vendor/illuminate/collections/HigherOrderCollectionProxy.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Support;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @mixin \Illuminate\Support\Enumerable
|
||||||
|
*/
|
||||||
|
class HigherOrderCollectionProxy
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The collection being operated on.
|
||||||
|
*
|
||||||
|
* @var \Illuminate\Support\Enumerable
|
||||||
|
*/
|
||||||
|
protected $collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The method being proxied.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $method;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new proxy instance.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Support\Enumerable $collection
|
||||||
|
* @param string $method
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct(Enumerable $collection, $method)
|
||||||
|
{
|
||||||
|
$this->method = $method;
|
||||||
|
$this->collection = $collection;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy accessing an attribute onto the collection items.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function __get($key)
|
||||||
|
{
|
||||||
|
return $this->collection->{$this->method}(function ($value) use ($key) {
|
||||||
|
return is_array($value) ? $value[$key] : $value->{$key};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy a method call onto the collection items.
|
||||||
|
*
|
||||||
|
* @param string $method
|
||||||
|
* @param array $parameters
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function __call($method, $parameters)
|
||||||
|
{
|
||||||
|
return $this->collection->{$this->method}(function ($value) use ($method, $parameters) {
|
||||||
|
return $value->{$method}(...$parameters);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
63
vendor/illuminate/collections/HigherOrderWhenProxy.php
vendored
Normal file
63
vendor/illuminate/collections/HigherOrderWhenProxy.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Support;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @mixin \Illuminate\Support\Enumerable
|
||||||
|
*/
|
||||||
|
class HigherOrderWhenProxy
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The collection being operated on.
|
||||||
|
*
|
||||||
|
* @var \Illuminate\Support\Enumerable
|
||||||
|
*/
|
||||||
|
protected $collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The condition for proxying.
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $condition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new proxy instance.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Support\Enumerable $collection
|
||||||
|
* @param bool $condition
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct(Enumerable $collection, $condition)
|
||||||
|
{
|
||||||
|
$this->condition = $condition;
|
||||||
|
$this->collection = $collection;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy accessing an attribute onto the collection.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function __get($key)
|
||||||
|
{
|
||||||
|
return $this->condition
|
||||||
|
? $this->collection->{$key}
|
||||||
|
: $this->collection;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy a method call onto the collection.
|
||||||
|
*
|
||||||
|
* @param string $method
|
||||||
|
* @param array $parameters
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function __call($method, $parameters)
|
||||||
|
{
|
||||||
|
return $this->condition
|
||||||
|
? $this->collection->{$method}(...$parameters)
|
||||||
|
: $this->collection;
|
||||||
|
}
|
||||||
|
}
|
||||||
9
vendor/illuminate/collections/ItemNotFoundException.php
vendored
Normal file
9
vendor/illuminate/collections/ItemNotFoundException.php
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Support;
|
||||||
|
|
||||||
|
use RuntimeException;
|
||||||
|
|
||||||
|
class ItemNotFoundException extends RuntimeException
|
||||||
|
{
|
||||||
|
}
|
||||||
21
vendor/illuminate/collections/LICENSE.md
vendored
Normal file
21
vendor/illuminate/collections/LICENSE.md
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) Taylor Otwell
|
||||||
|
|
||||||
|
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.
|
||||||
1585
vendor/illuminate/collections/LazyCollection.php
vendored
Normal file
1585
vendor/illuminate/collections/LazyCollection.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9
vendor/illuminate/collections/MultipleItemsFoundException.php
vendored
Normal file
9
vendor/illuminate/collections/MultipleItemsFoundException.php
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Support;
|
||||||
|
|
||||||
|
use RuntimeException;
|
||||||
|
|
||||||
|
class MultipleItemsFoundException extends RuntimeException
|
||||||
|
{
|
||||||
|
}
|
||||||
1116
vendor/illuminate/collections/Traits/EnumeratesValues.php
vendored
Normal file
1116
vendor/illuminate/collections/Traits/EnumeratesValues.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
41
vendor/illuminate/collections/composer.json
vendored
Normal file
41
vendor/illuminate/collections/composer.json
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"name": "illuminate/collections",
|
||||||
|
"description": "The Illuminate Collections package.",
|
||||||
|
"license": "MIT",
|
||||||
|
"homepage": "https://laravel.com",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
|
"source": "https://github.com/laravel/framework"
|
||||||
|
},
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Taylor Otwell",
|
||||||
|
"email": "taylor@laravel.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"php": "^7.3|^8.0",
|
||||||
|
"illuminate/contracts": "^8.0",
|
||||||
|
"illuminate/macroable": "^8.0"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Illuminate\\Support\\": ""
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"helpers.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "8.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/var-dumper": "Required to use the dump method (^5.4)."
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"sort-packages": true
|
||||||
|
},
|
||||||
|
"minimum-stability": "dev"
|
||||||
|
}
|
||||||
186
vendor/illuminate/collections/helpers.php
vendored
Normal file
186
vendor/illuminate/collections/helpers.php
vendored
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
|
if (! function_exists('collect')) {
|
||||||
|
/**
|
||||||
|
* Create a collection from the given value.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
* @return \Illuminate\Support\Collection
|
||||||
|
*/
|
||||||
|
function collect($value = null)
|
||||||
|
{
|
||||||
|
return new Collection($value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! function_exists('data_fill')) {
|
||||||
|
/**
|
||||||
|
* Fill in data where it's missing.
|
||||||
|
*
|
||||||
|
* @param mixed $target
|
||||||
|
* @param string|array $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function data_fill(&$target, $key, $value)
|
||||||
|
{
|
||||||
|
return data_set($target, $key, $value, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! function_exists('data_get')) {
|
||||||
|
/**
|
||||||
|
* Get an item from an array or object using "dot" notation.
|
||||||
|
*
|
||||||
|
* @param mixed $target
|
||||||
|
* @param string|array|int|null $key
|
||||||
|
* @param mixed $default
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function data_get($target, $key, $default = null)
|
||||||
|
{
|
||||||
|
if (is_null($key)) {
|
||||||
|
return $target;
|
||||||
|
}
|
||||||
|
|
||||||
|
$key = is_array($key) ? $key : explode('.', $key);
|
||||||
|
|
||||||
|
foreach ($key as $i => $segment) {
|
||||||
|
unset($key[$i]);
|
||||||
|
|
||||||
|
if (is_null($segment)) {
|
||||||
|
return $target;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($segment === '*') {
|
||||||
|
if ($target instanceof Collection) {
|
||||||
|
$target = $target->all();
|
||||||
|
} elseif (! is_array($target)) {
|
||||||
|
return value($default);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
foreach ($target as $item) {
|
||||||
|
$result[] = data_get($item, $key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return in_array('*', $key) ? Arr::collapse($result) : $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Arr::accessible($target) && Arr::exists($target, $segment)) {
|
||||||
|
$target = $target[$segment];
|
||||||
|
} elseif (is_object($target) && isset($target->{$segment})) {
|
||||||
|
$target = $target->{$segment};
|
||||||
|
} else {
|
||||||
|
return value($default);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! function_exists('data_set')) {
|
||||||
|
/**
|
||||||
|
* Set an item on an array or object using dot notation.
|
||||||
|
*
|
||||||
|
* @param mixed $target
|
||||||
|
* @param string|array $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @param bool $overwrite
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function data_set(&$target, $key, $value, $overwrite = true)
|
||||||
|
{
|
||||||
|
$segments = is_array($key) ? $key : explode('.', $key);
|
||||||
|
|
||||||
|
if (($segment = array_shift($segments)) === '*') {
|
||||||
|
if (! Arr::accessible($target)) {
|
||||||
|
$target = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($segments) {
|
||||||
|
foreach ($target as &$inner) {
|
||||||
|
data_set($inner, $segments, $value, $overwrite);
|
||||||
|
}
|
||||||
|
} elseif ($overwrite) {
|
||||||
|
foreach ($target as &$inner) {
|
||||||
|
$inner = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif (Arr::accessible($target)) {
|
||||||
|
if ($segments) {
|
||||||
|
if (! Arr::exists($target, $segment)) {
|
||||||
|
$target[$segment] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
data_set($target[$segment], $segments, $value, $overwrite);
|
||||||
|
} elseif ($overwrite || ! Arr::exists($target, $segment)) {
|
||||||
|
$target[$segment] = $value;
|
||||||
|
}
|
||||||
|
} elseif (is_object($target)) {
|
||||||
|
if ($segments) {
|
||||||
|
if (! isset($target->{$segment})) {
|
||||||
|
$target->{$segment} = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
data_set($target->{$segment}, $segments, $value, $overwrite);
|
||||||
|
} elseif ($overwrite || ! isset($target->{$segment})) {
|
||||||
|
$target->{$segment} = $value;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$target = [];
|
||||||
|
|
||||||
|
if ($segments) {
|
||||||
|
data_set($target[$segment], $segments, $value, $overwrite);
|
||||||
|
} elseif ($overwrite) {
|
||||||
|
$target[$segment] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! function_exists('head')) {
|
||||||
|
/**
|
||||||
|
* Get the first element of an array. Useful for method chaining.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function head($array)
|
||||||
|
{
|
||||||
|
return reset($array);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! function_exists('last')) {
|
||||||
|
/**
|
||||||
|
* Get the last element from an array.
|
||||||
|
*
|
||||||
|
* @param array $array
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function last($array)
|
||||||
|
{
|
||||||
|
return end($array);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! function_exists('value')) {
|
||||||
|
/**
|
||||||
|
* Return the default value of the given value.
|
||||||
|
*
|
||||||
|
* @param mixed $value
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function value($value, ...$args)
|
||||||
|
{
|
||||||
|
return $value instanceof Closure ? $value(...$args) : $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
15
vendor/illuminate/contracts/Auth/Access/Authorizable.php
vendored
Normal file
15
vendor/illuminate/contracts/Auth/Access/Authorizable.php
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth\Access;
|
||||||
|
|
||||||
|
interface Authorizable
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the entity has a given ability.
|
||||||
|
*
|
||||||
|
* @param iterable|string $abilities
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function can($abilities, $arguments = []);
|
||||||
|
}
|
||||||
150
vendor/illuminate/contracts/Auth/Access/Gate.php
vendored
Normal file
150
vendor/illuminate/contracts/Auth/Access/Gate.php
vendored
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth\Access;
|
||||||
|
|
||||||
|
interface Gate
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if a given ability has been defined.
|
||||||
|
*
|
||||||
|
* @param string $ability
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function has($ability);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define a new ability.
|
||||||
|
*
|
||||||
|
* @param string $ability
|
||||||
|
* @param callable|string $callback
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function define($ability, $callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define abilities for a resource.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @param string $class
|
||||||
|
* @param array|null $abilities
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function resource($name, $class, array $abilities = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define a policy class for a given class type.
|
||||||
|
*
|
||||||
|
* @param string $class
|
||||||
|
* @param string $policy
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function policy($class, $policy);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a callback to run before all Gate checks.
|
||||||
|
*
|
||||||
|
* @param callable $callback
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function before(callable $callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a callback to run after all Gate checks.
|
||||||
|
*
|
||||||
|
* @param callable $callback
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function after(callable $callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the given ability should be granted for the current user.
|
||||||
|
*
|
||||||
|
* @param string $ability
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function allows($ability, $arguments = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the given ability should be denied for the current user.
|
||||||
|
*
|
||||||
|
* @param string $ability
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function denies($ability, $arguments = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if all of the given abilities should be granted for the current user.
|
||||||
|
*
|
||||||
|
* @param iterable|string $abilities
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function check($abilities, $arguments = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if any one of the given abilities should be granted for the current user.
|
||||||
|
*
|
||||||
|
* @param iterable|string $abilities
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function any($abilities, $arguments = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the given ability should be granted for the current user.
|
||||||
|
*
|
||||||
|
* @param string $ability
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return \Illuminate\Auth\Access\Response
|
||||||
|
*
|
||||||
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
||||||
|
*/
|
||||||
|
public function authorize($ability, $arguments = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inspect the user for the given ability.
|
||||||
|
*
|
||||||
|
* @param string $ability
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return \Illuminate\Auth\Access\Response
|
||||||
|
*/
|
||||||
|
public function inspect($ability, $arguments = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the raw result from the authorization callback.
|
||||||
|
*
|
||||||
|
* @param string $ability
|
||||||
|
* @param array|mixed $arguments
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
||||||
|
*/
|
||||||
|
public function raw($ability, $arguments = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a policy instance for a given class.
|
||||||
|
*
|
||||||
|
* @param object|string $class
|
||||||
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function getPolicyFor($class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a guard instance for the given user.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user
|
||||||
|
* @return static
|
||||||
|
*/
|
||||||
|
public function forUser($user);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all of the defined abilities.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function abilities();
|
||||||
|
}
|
||||||
49
vendor/illuminate/contracts/Auth/Authenticatable.php
vendored
Normal file
49
vendor/illuminate/contracts/Auth/Authenticatable.php
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface Authenticatable
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the name of the unique identifier for the user.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getAuthIdentifierName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unique identifier for the user.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function getAuthIdentifier();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the password for the user.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getAuthPassword();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the token value for the "remember me" session.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getRememberToken();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the token value for the "remember me" session.
|
||||||
|
*
|
||||||
|
* @param string $value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setRememberToken($value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the column name for the "remember me" token.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getRememberTokenName();
|
||||||
|
}
|
||||||
21
vendor/illuminate/contracts/Auth/CanResetPassword.php
vendored
Normal file
21
vendor/illuminate/contracts/Auth/CanResetPassword.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface CanResetPassword
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the e-mail address where password reset links are sent.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getEmailForPasswordReset();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send the password reset notification.
|
||||||
|
*
|
||||||
|
* @param string $token
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function sendPasswordResetNotification($token);
|
||||||
|
}
|
||||||
22
vendor/illuminate/contracts/Auth/Factory.php
vendored
Normal file
22
vendor/illuminate/contracts/Auth/Factory.php
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface Factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get a guard instance by name.
|
||||||
|
*
|
||||||
|
* @param string|null $name
|
||||||
|
* @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard
|
||||||
|
*/
|
||||||
|
public function guard($name = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the default guard the factory should serve.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function shouldUse($name);
|
||||||
|
}
|
||||||
50
vendor/illuminate/contracts/Auth/Guard.php
vendored
Normal file
50
vendor/illuminate/contracts/Auth/Guard.php
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface Guard
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the current user is authenticated.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function check();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the current user is a guest.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function guest();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the currently authenticated user.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Contracts\Auth\Authenticatable|null
|
||||||
|
*/
|
||||||
|
public function user();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ID for the currently authenticated user.
|
||||||
|
*
|
||||||
|
* @return int|string|null
|
||||||
|
*/
|
||||||
|
public function id();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate a user's credentials.
|
||||||
|
*
|
||||||
|
* @param array $credentials
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function validate(array $credentials = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the current user.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Contracts\Auth\Authenticatable $user
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setUser(Authenticatable $user);
|
||||||
|
}
|
||||||
8
vendor/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php
vendored
Normal file
8
vendor/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth\Middleware;
|
||||||
|
|
||||||
|
interface AuthenticatesRequests
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
34
vendor/illuminate/contracts/Auth/MustVerifyEmail.php
vendored
Normal file
34
vendor/illuminate/contracts/Auth/MustVerifyEmail.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface MustVerifyEmail
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user has verified their email address.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasVerifiedEmail();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mark the given user's email as verified.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function markEmailAsVerified();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send the email verification notification.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function sendEmailVerificationNotification();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the email address that should be used for verification.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getEmailForVerification();
|
||||||
|
}
|
||||||
61
vendor/illuminate/contracts/Auth/PasswordBroker.php
vendored
Normal file
61
vendor/illuminate/contracts/Auth/PasswordBroker.php
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
|
||||||
|
interface PasswordBroker
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constant representing a successfully sent reminder.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const RESET_LINK_SENT = 'passwords.sent';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant representing a successfully reset password.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const PASSWORD_RESET = 'passwords.reset';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant representing the user not found response.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const INVALID_USER = 'passwords.user';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant representing an invalid token.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const INVALID_TOKEN = 'passwords.token';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant representing a throttled reset attempt.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const RESET_THROTTLED = 'passwords.throttled';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a password reset link to a user.
|
||||||
|
*
|
||||||
|
* @param array $credentials
|
||||||
|
* @param \Closure|null $callback
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function sendResetLink(array $credentials, Closure $callback = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset the password for the given token.
|
||||||
|
*
|
||||||
|
* @param array $credentials
|
||||||
|
* @param \Closure $callback
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function reset(array $credentials, Closure $callback);
|
||||||
|
}
|
||||||
14
vendor/illuminate/contracts/Auth/PasswordBrokerFactory.php
vendored
Normal file
14
vendor/illuminate/contracts/Auth/PasswordBrokerFactory.php
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface PasswordBrokerFactory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get a password broker instance by name.
|
||||||
|
*
|
||||||
|
* @param string|null $name
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function broker($name = null);
|
||||||
|
}
|
||||||
63
vendor/illuminate/contracts/Auth/StatefulGuard.php
vendored
Normal file
63
vendor/illuminate/contracts/Auth/StatefulGuard.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface StatefulGuard extends Guard
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Attempt to authenticate a user using the given credentials.
|
||||||
|
*
|
||||||
|
* @param array $credentials
|
||||||
|
* @param bool $remember
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function attempt(array $credentials = [], $remember = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log a user into the application without sessions or cookies.
|
||||||
|
*
|
||||||
|
* @param array $credentials
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function once(array $credentials = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log a user into the application.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Contracts\Auth\Authenticatable $user
|
||||||
|
* @param bool $remember
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function login(Authenticatable $user, $remember = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log the given user ID into the application.
|
||||||
|
*
|
||||||
|
* @param mixed $id
|
||||||
|
* @param bool $remember
|
||||||
|
* @return \Illuminate\Contracts\Auth\Authenticatable|bool
|
||||||
|
*/
|
||||||
|
public function loginUsingId($id, $remember = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log the given user ID into the application without sessions or cookies.
|
||||||
|
*
|
||||||
|
* @param mixed $id
|
||||||
|
* @return \Illuminate\Contracts\Auth\Authenticatable|bool
|
||||||
|
*/
|
||||||
|
public function onceUsingId($id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the user was authenticated via "remember me" cookie.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function viaRemember();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log the user out of the application.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function logout();
|
||||||
|
}
|
||||||
24
vendor/illuminate/contracts/Auth/SupportsBasicAuth.php
vendored
Normal file
24
vendor/illuminate/contracts/Auth/SupportsBasicAuth.php
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface SupportsBasicAuth
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Attempt to authenticate using HTTP Basic Auth.
|
||||||
|
*
|
||||||
|
* @param string $field
|
||||||
|
* @param array $extraConditions
|
||||||
|
* @return \Symfony\Component\HttpFoundation\Response|null
|
||||||
|
*/
|
||||||
|
public function basic($field = 'email', $extraConditions = []);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform a stateless HTTP Basic login attempt.
|
||||||
|
*
|
||||||
|
* @param string $field
|
||||||
|
* @param array $extraConditions
|
||||||
|
* @return \Symfony\Component\HttpFoundation\Response|null
|
||||||
|
*/
|
||||||
|
public function onceBasic($field = 'email', $extraConditions = []);
|
||||||
|
}
|
||||||
49
vendor/illuminate/contracts/Auth/UserProvider.php
vendored
Normal file
49
vendor/illuminate/contracts/Auth/UserProvider.php
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Auth;
|
||||||
|
|
||||||
|
interface UserProvider
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Retrieve a user by their unique identifier.
|
||||||
|
*
|
||||||
|
* @param mixed $identifier
|
||||||
|
* @return \Illuminate\Contracts\Auth\Authenticatable|null
|
||||||
|
*/
|
||||||
|
public function retrieveById($identifier);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve a user by their unique identifier and "remember me" token.
|
||||||
|
*
|
||||||
|
* @param mixed $identifier
|
||||||
|
* @param string $token
|
||||||
|
* @return \Illuminate\Contracts\Auth\Authenticatable|null
|
||||||
|
*/
|
||||||
|
public function retrieveByToken($identifier, $token);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the "remember me" token for the given user in storage.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Contracts\Auth\Authenticatable $user
|
||||||
|
* @param string $token
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function updateRememberToken(Authenticatable $user, $token);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve a user by the given credentials.
|
||||||
|
*
|
||||||
|
* @param array $credentials
|
||||||
|
* @return \Illuminate\Contracts\Auth\Authenticatable|null
|
||||||
|
*/
|
||||||
|
public function retrieveByCredentials(array $credentials);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate a user against the given credentials.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Contracts\Auth\Authenticatable $user
|
||||||
|
* @param array $credentials
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function validateCredentials(Authenticatable $user, array $credentials);
|
||||||
|
}
|
||||||
33
vendor/illuminate/contracts/Broadcasting/Broadcaster.php
vendored
Normal file
33
vendor/illuminate/contracts/Broadcasting/Broadcaster.php
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Broadcasting;
|
||||||
|
|
||||||
|
interface Broadcaster
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Authenticate the incoming request for a given channel.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function auth($request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the valid authentication response.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param mixed $result
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function validAuthenticationResponse($request, $result);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Broadcast the given event.
|
||||||
|
*
|
||||||
|
* @param array $channels
|
||||||
|
* @param string $event
|
||||||
|
* @param array $payload
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function broadcast(array $channels, $event, array $payload = []);
|
||||||
|
}
|
||||||
14
vendor/illuminate/contracts/Broadcasting/Factory.php
vendored
Normal file
14
vendor/illuminate/contracts/Broadcasting/Factory.php
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Broadcasting;
|
||||||
|
|
||||||
|
interface Factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get a broadcaster implementation by name.
|
||||||
|
*
|
||||||
|
* @param string|null $name
|
||||||
|
* @return \Illuminate\Contracts\Broadcasting\Broadcaster
|
||||||
|
*/
|
||||||
|
public function connection($name = null);
|
||||||
|
}
|
||||||
20
vendor/illuminate/contracts/Broadcasting/HasBroadcastChannel.php
vendored
Normal file
20
vendor/illuminate/contracts/Broadcasting/HasBroadcastChannel.php
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Broadcasting;
|
||||||
|
|
||||||
|
interface HasBroadcastChannel
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the broadcast channel route definition that is associated with the given entity.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function broadcastChannelRoute();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the broadcast channel name that is associated with the given entity.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function broadcastChannel();
|
||||||
|
}
|
||||||
13
vendor/illuminate/contracts/Broadcasting/ShouldBroadcast.php
vendored
Normal file
13
vendor/illuminate/contracts/Broadcasting/ShouldBroadcast.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Broadcasting;
|
||||||
|
|
||||||
|
interface ShouldBroadcast
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the channels the event should broadcast on.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Broadcasting\Channel|\Illuminate\Broadcasting\Channel[]|string[]|string
|
||||||
|
*/
|
||||||
|
public function broadcastOn();
|
||||||
|
}
|
||||||
8
vendor/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php
vendored
Normal file
8
vendor/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Broadcasting;
|
||||||
|
|
||||||
|
interface ShouldBroadcastNow extends ShouldBroadcast
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
66
vendor/illuminate/contracts/Bus/Dispatcher.php
vendored
Normal file
66
vendor/illuminate/contracts/Bus/Dispatcher.php
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Bus;
|
||||||
|
|
||||||
|
interface Dispatcher
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Dispatch a command to its appropriate handler.
|
||||||
|
*
|
||||||
|
* @param mixed $command
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function dispatch($command);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatch a command to its appropriate handler in the current process.
|
||||||
|
*
|
||||||
|
* Queueable jobs will be dispatched to the "sync" queue.
|
||||||
|
*
|
||||||
|
* @param mixed $command
|
||||||
|
* @param mixed $handler
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function dispatchSync($command, $handler = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatch a command to its appropriate handler in the current process.
|
||||||
|
*
|
||||||
|
* @param mixed $command
|
||||||
|
* @param mixed $handler
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function dispatchNow($command, $handler = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the given command has a handler.
|
||||||
|
*
|
||||||
|
* @param mixed $command
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasCommandHandler($command);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the handler for a command.
|
||||||
|
*
|
||||||
|
* @param mixed $command
|
||||||
|
* @return bool|mixed
|
||||||
|
*/
|
||||||
|
public function getCommandHandler($command);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the pipes commands should be piped through before dispatching.
|
||||||
|
*
|
||||||
|
* @param array $pipes
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function pipeThrough(array $pipes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map a command to a handler.
|
||||||
|
*
|
||||||
|
* @param array $map
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function map(array $map);
|
||||||
|
}
|
||||||
30
vendor/illuminate/contracts/Bus/QueueingDispatcher.php
vendored
Normal file
30
vendor/illuminate/contracts/Bus/QueueingDispatcher.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Bus;
|
||||||
|
|
||||||
|
interface QueueingDispatcher extends Dispatcher
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Attempt to find the batch with the given ID.
|
||||||
|
*
|
||||||
|
* @param string $batchId
|
||||||
|
* @return \Illuminate\Bus\Batch|null
|
||||||
|
*/
|
||||||
|
public function findBatch(string $batchId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new batch of queueable jobs.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Support\Collection|array $jobs
|
||||||
|
* @return \Illuminate\Bus\PendingBatch
|
||||||
|
*/
|
||||||
|
public function batch($jobs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatch a command to its appropriate handler behind a queue.
|
||||||
|
*
|
||||||
|
* @param mixed $command
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function dispatchToQueue($command);
|
||||||
|
}
|
||||||
14
vendor/illuminate/contracts/Cache/Factory.php
vendored
Normal file
14
vendor/illuminate/contracts/Cache/Factory.php
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Cache;
|
||||||
|
|
||||||
|
interface Factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get a cache store instance by name.
|
||||||
|
*
|
||||||
|
* @param string|null $name
|
||||||
|
* @return \Illuminate\Contracts\Cache\Repository
|
||||||
|
*/
|
||||||
|
public function store($name = null);
|
||||||
|
}
|
||||||
44
vendor/illuminate/contracts/Cache/Lock.php
vendored
Normal file
44
vendor/illuminate/contracts/Cache/Lock.php
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Cache;
|
||||||
|
|
||||||
|
interface Lock
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Attempt to acquire the lock.
|
||||||
|
*
|
||||||
|
* @param callable|null $callback
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function get($callback = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attempt to acquire the lock for the given number of seconds.
|
||||||
|
*
|
||||||
|
* @param int $seconds
|
||||||
|
* @param callable|null $callback
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function block($seconds, $callback = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Release the lock.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function release();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current owner of the lock.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function owner();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Releases this lock in disregard of ownership.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function forceRelease();
|
||||||
|
}
|
||||||
25
vendor/illuminate/contracts/Cache/LockProvider.php
vendored
Normal file
25
vendor/illuminate/contracts/Cache/LockProvider.php
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Cache;
|
||||||
|
|
||||||
|
interface LockProvider
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get a lock instance.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @param int $seconds
|
||||||
|
* @param string|null $owner
|
||||||
|
* @return \Illuminate\Contracts\Cache\Lock
|
||||||
|
*/
|
||||||
|
public function lock($name, $seconds = 0, $owner = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restore a lock instance using the owner identifier.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @param string $owner
|
||||||
|
* @return \Illuminate\Contracts\Cache\Lock
|
||||||
|
*/
|
||||||
|
public function restoreLock($name, $owner);
|
||||||
|
}
|
||||||
10
vendor/illuminate/contracts/Cache/LockTimeoutException.php
vendored
Normal file
10
vendor/illuminate/contracts/Cache/LockTimeoutException.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Cache;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
|
||||||
|
class LockTimeoutException extends Exception
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
108
vendor/illuminate/contracts/Cache/Repository.php
vendored
Normal file
108
vendor/illuminate/contracts/Cache/Repository.php
vendored
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Illuminate\Contracts\Cache;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Psr\SimpleCache\CacheInterface;
|
||||||
|
|
||||||
|
interface Repository extends CacheInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Retrieve an item from the cache and delete it.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $default
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function pull($key, $default = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store an item in the cache.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @param \DateTimeInterface|\DateInterval|int|null $ttl
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function put($key, $value, $ttl = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store an item in the cache if the key does not exist.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @param \DateTimeInterface|\DateInterval|int|null $ttl
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function add($key, $value, $ttl = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increment the value of an item in the cache.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @return int|bool
|
||||||
|
*/
|
||||||
|
public function increment($key, $value = 1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decrement the value of an item in the cache.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @return int|bool
|
||||||
|
*/
|
||||||
|
public function decrement($key, $value = 1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store an item in the cache indefinitely.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed $value
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function forever($key, $value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an item from the cache, or execute the given Closure and store the result.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param \DateTimeInterface|\DateInterval|int|null $ttl
|
||||||
|
* @param \Closure $callback
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function remember($key, $ttl, Closure $callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an item from the cache, or execute the given Closure and store the result forever.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param \Closure $callback
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function sear($key, Closure $callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an item from the cache, or execute the given Closure and store the result forever.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param \Closure $callback
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function rememberForever($key, Closure $callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove an item from the cache.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function forget($key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the cache store implementation.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Contracts\Cache\Store
|
||||||
|
*/
|
||||||
|
public function getStore();
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user