Comment puis-je charger automatiquement des fonctions d'assistance (en dehors de toute classe)? Puis-je spécifier dans composer.json
un type de fichier d'amorçage à charger en premier?
Vous pouvez charger automatiquement des fichiers spécifiques en modifiant votre fichier composer.json
comme ceci:
"autoload": {
"files": ["src/helpers.php"]
}
(merci Kint )
Après quelques tests, je suis arrivé à la conclusion que l'ajout d'un espace de nom à un fichier contenant des fonctions et la configuration de composer pour charger automatiquement ce fichier ne semblent pas charger cette fonction dans tous les fichiers nécessitant le chemin de chargement automatique.
Pour synthétiser, ceci chargera automatiquement votre fonction partout:
composer.json
"autoload": {
"files": [
"src/greetings.php"
]
}
src/greetings.php
<?php
if( ! function_exists('greetings') ) {
function greetings(string $firstname): string {
return "Howdy $firstname!";
}
}
?>
...
Mais cela ne chargera pas votre fonction dans tous les cas de chargement automatique:
composer.json
"autoload": {
"files": [
"src/greetings.php"
]
}
src/greetings.php
<?php
namespace You;
if( ! function_exists('greetings') ) {
function greetings(string $firstname): string {
return "Howdy $firstname!";
}
}
?>
Et vous appelleriez votre fonction en utilisant use function ...;
comme suit:
exemple/exemple-1.php
<?php
require( __DIR__ . '/../vendor/autoload.php' );
use function You\greetings;
greetings('Mark'); // "Howdy Mark!"
?>