Lors du développement de projets PHP, nous rencontrons souvent des scénarios où nous devons définir des éléments de configuration par défaut pour plusieurs modules, champs et fonctions. La méthode traditionnelle peut être une affectation manuelle, qui est longue et défavorable pour la maintenance. Heureusement, PHP offre une fonction très pratique - array_fill () , qui peut nous aider.
array_fill (int $ start_index, int $ count, valeur mixte $): array
Cette fonction renvoie un tableau rempli de la valeur spécifiée.
$config = array_fill(0, 5, 'default');
print_r($config);
Sortir:
Array
(
[0] => default
[1] => default
[2] => default
[3] => default
[4] => default
)
Cela signifie que nous pouvons générer un tableau avec cinq valeurs "par défaut" dans une ligne de code, ce qui est très efficace.
Supposons que nous ayons un système avec plusieurs modules, chaque module doit avoir deux éléments de configuration: activés et point de terminaison , les valeurs par défaut étant respectivement fausses et vides respectivement. L'initialisation utilisant des méthodes traditionnelles peut être la suivante:
$config = [
'user' => ['enabled' => false, 'endpoint' => ''],
'blog' => ['enabled' => false, 'endpoint' => ''],
'shop' => ['enabled' => false, 'endpoint' => ''],
];
Cela semble correct, mais une fois que le nombre de modules augmente, cette approche devient moins élégante.
Nous pouvons générer rapidement la structure par défaut avec array_fill_keys () avec array_fill () :
$modules = ['user', 'blog', 'shop', 'forum', 'gallery'];
$default = [
'enabled' => false,
'endpoint' => '',
];
// utiliser array_fill_keys Initialiser la structure de configuration
$config = array_fill_keys($modules, $default);
print_r($config);
Sortir:
Array
(
[user] => Array
(
[enabled] =>
[endpoint] =>
)
[blog] => Array
(
[enabled] =>
[endpoint] =>
)
...
)
L'avantage de l'écriture est que la structure est claire et facile à gérer par lots. À mesure que le nom du module change, il vous suffit de modifier le tableau $ modules .
Si chacun de vos modules nécessite une adresse API par défaut et que le nom de domaine m66.net est utilisé comme base, vous pouvez le gérer comme suit:
$modules = ['user', 'blog', 'shop'];
$config = [];
foreach ($modules as $module) {
$config[$module] = [
'enabled' => false,
'endpoint' => "https://api.m66.net/{$module}"
];
}
print_r($config);
Sortir:
Array
(
[user] => Array
(
[enabled] =>
[endpoint] => https://api.m66.net/user
)
[blog] => Array
(
[enabled] =>
[endpoint] => https://api.m66.net/blog
)
...
)
array_fill () et array_fill_keys () sont des outils puissants pour générer rapidement des tableaux structurés en PHP, et sont particulièrement adaptés pour initialiser les éléments de configuration avec un format unifié. En combinant intelligemment les noms de modules et les valeurs par défaut, nous pouvons considérablement améliorer la maintenabilité et la clarté du code et réduire la duplication du travail.
La prochaine fois que vous rédigerez l'initialisation de la configuration, n'oubliez pas cette combinaison d'outils efficace!