. * * @param string $config Attributs HTML du sous forme de chaîne. * @param array $options Tableau associatif des options du (clé = valeur de l'option, valeur = label affiché). * @param mixed $value Valeur sélectionnée par défaut (facultatif). * * @return string Le HTML généré pour l'élément . */ private static function constructSelect(string $_config, array $_options, $_value = null): string { $selectHtml = ''; foreach ($_options as $optionValue => $label) { $selected = ($_value !== null && $_value == $optionValue) ? ' selected' : ''; $selectHtml .= sprintf('%s', htmlspecialchars($optionValue), $selected, htmlspecialchars($label)); } $selectHtml .= ''; return $selectHtml; } /** * Renvoie le HTML d'un élément sous forme de chaîne. * * @param string $config Attributs HTML du sous forme de chaîne. * @param array $options Tableau associatif des options du (clé = valeur de l'option, valeur = label affiché). * @param mixed $value Valeur sélectionnée par défaut (facultatif). * * @return string Le HTML généré pour l'élément . */ public static function getSelect(string $_config, array $_options, $_value = null): string { return self::constructSelect($_config, $_options, $_value); } /** * Affiche directement le HTML d'un élément . * * @param string $config Attributs HTML du sous forme de chaîne. * @param array $options Tableau associatif des options du (clé = valeur de l'option, valeur = label affiché). * @param mixed $value Valeur sélectionnée par défaut (facultatif). * * @return void */ public static function printSelect(string $_config, array $_options, $_value = null): void { echo self::constructSelect($_config, $_options, $_value); } /** * Construit le HTML d'un élément de type texte. * * @param string $config Attributs HTML de l'élément sous forme de chaîne. * @param mixed $value Valeur par défaut de l'élément (facultatif). * * @return string Le HTML généré pour l'élément . */ private static function constructInput(string $_config, $_value = null): string { $value = $_value !== null ? htmlspecialchars((string) $_value) : ''; $inputHtml = sprintf('', htmlspecialchars($value), $_config); return $inputHtml; } /** * Renvoie le HTML d'un élément de type texte sous forme de chaîne. * * @param string $config Attributs HTML de l'élément sous forme de chaîne. * @param mixed $value Valeur par défaut de l'élément (facultatif). * * @return string Le HTML généré pour l'élément . */ public static function getInput(string $_config, $_value = null): string { return self::constructInput($_config, $_value); } /** * Affiche directement le HTML d'un élément de type texte. * * @param string $config Attributs HTML de l'élément sous forme de chaîne. * @param mixed $value Valeur par défaut de l'élément (facultatif). * * @return void */ public static function printInput(string $_config, $_value = null): void { echo self::constructInput($_config, $_value); } }