Stand: SMTP-Test, Admin-Mail-Tab, Notifiable-Fix, Lazy-Quill
- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er) - Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link - Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest - Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen) - Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
74
vendor/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php
vendored
Executable file
74
vendor/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php
vendored
Executable file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Psy Shell.
|
||||
*
|
||||
* (c) 2012-2026 Justin Hileman
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Psy\TabCompletion\Matcher;
|
||||
|
||||
abstract class AbstractDefaultParametersMatcher extends AbstractContextAwareMatcher
|
||||
{
|
||||
/**
|
||||
* @param \ReflectionParameter[] $reflectionParameters
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getDefaultParameterCompletion(array $reflectionParameters): array
|
||||
{
|
||||
$parametersProcessed = [];
|
||||
|
||||
foreach ($reflectionParameters as $parameter) {
|
||||
if (!$parameter->isDefaultValueAvailable()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$defaultValue = $this->valueToShortString($parameter->getDefaultValue());
|
||||
|
||||
$parametersProcessed[] = \sprintf('$%s = %s', $parameter->getName(), $defaultValue);
|
||||
}
|
||||
|
||||
if (empty($parametersProcessed)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [\implode(', ', $parametersProcessed).')'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes in the default value of a parameter and turns it into a
|
||||
* string representation that fits inline.
|
||||
* This is not 100% true to the original (newlines are inlined, for example).
|
||||
*
|
||||
* @param mixed $value
|
||||
*/
|
||||
private function valueToShortString($value): string
|
||||
{
|
||||
if (!\is_array($value)) {
|
||||
return \json_encode($value);
|
||||
}
|
||||
|
||||
$chunks = [];
|
||||
$chunksSequential = [];
|
||||
|
||||
$allSequential = true;
|
||||
|
||||
foreach ($value as $key => $item) {
|
||||
$allSequential = $allSequential && \is_numeric($key) && $key === \count($chunksSequential);
|
||||
|
||||
$keyString = $this->valueToShortString($key);
|
||||
$itemString = $this->valueToShortString($item);
|
||||
|
||||
$chunks[] = "{$keyString} => {$itemString}";
|
||||
$chunksSequential[] = $itemString;
|
||||
}
|
||||
|
||||
$chunksToImplode = $allSequential ? $chunksSequential : $chunks;
|
||||
|
||||
return '['.\implode(', ', $chunksToImplode).']';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user