Affitto equipaggiamento audio e video per eventi: come trovare noleggiatori di attrezzature
Trovare un Noleggiatore di Attrezzature Audio e Video per Eventi.
Affittare Attrezzature Audio e Video per Eventi.
Scopri come trovare il noleggiatore ideale di attrezzature audio e video per i tuoi eventi. Questo articolo ti guiderà attraverso i criteri fondamentali da considerare, garantendo che ogni dettaglio sia curato per un evento di successo. Non lasciare nulla al caso, leggi di più!
Trova professionisti vicino a te
Trova professionisti
* @license https://opensource.org/licenses/MIT The MIT License (MIT)
*/
namespace Dracodeum\Kit\Prototypes\Inputs\Text\Constraints;
use Dracodeum\Kit\Components\Input\Prototypes\Modifiers\Constraint;
use Dracodeum\Kit\Components\Input\Prototypes\Modifier\Interfaces\{
Subtype as ISubtype,
Information as IInformation
};
use Dracodeum\Kit\Options\Text as TextOptions;
use Dracodeum\Kit\Utilities\Text as UText;
/**
* This constraint prototype restricts a given input value to be a valid text, with a given maximum length.
*
* @property int|null $maximum_length [coercive] [default = null]
*
The maximum length to restrict a given value with, in characters.
* If set to null, then no maximum length is restricted.
* @see https://en.wikipedia.org/wiki/Character_(computing)
*/
class MaximumLength extends Constraint implements ISubtype, IInformation
{
//Protected properties
/** @var int|null */
protected $maximum_length;
//Implemented public methods
/** {@inheritdoc} */
public function getName(): string
{
return 'maximum_length';
}
/** {@inheritdoc} */
public function checkValue($value): bool
{
return UText::length($value) <= ($this->maximum_length ?? UText::length($value));
}
//Implemented public methods (Dracodeum\Kit\Components\Input\Prototypes\Modifier\Interfaces\Subtype)
/** {@inheritdoc} */
public function getSubtype(): string
{
return 'text';
}
//Implemented public methods (Dracodeum\Kit\Components\Input\Prototypes\Modifier\Interfaces\Information)
/** {@inheritdoc} */
public function getLabel(TextOptions $text_options): string
{
return UText::localize("Maximum length", self::class, $text_options);
}
/** {@inheritdoc} */
public function getMessage(TextOptions $text_options): string
{
//initialize
$maximum_length = $this->maximum_length;
//maximum length
if ($maximum_length !== null) {
$maximum_length_message = UText::plocalize(
"Maximum of {{maximum_length}} character",
"Maximum of {{maximum_length}} characters",
$maximum_length,
['maximum_length' => $maximum_length],
self::class, $text_options
);
} else {
$maximum_length_message = UText::localize("No maximum length", self::class, $text_options);
}
//finalize
return UText::localize(
"Must be a valid text with {{maximum_length_message}}.",
self::class, $text_options, ['maximum_length_message' => $maximum_length_message]
);
}
}