Helpers PHP globaux
Introduction​
Les helpers sont des fonctions globales qui simplifient les tâches courantes dans Bow Framework. Ces fonctions raccourcies vous permettent d'accéder rapidement aux fonctionnalités du framework sans avoir à instancier des classes ou injecter des dépendances.
Liste des helpers​
Application​
| Helper | Description |
|---|---|
| app | Accède au conteneur d'injection de dépendances |
| config | Récupère ou définit une configuration |
| app_env | Récupère une variable d'environnement |
| app_assets | Génère l'URL d'un asset |
| app_abort | Interrompt l'exécution avec une erreur HTTP |
| app_abort_if | Interrompt l'exécution si une condition est vraie |
| app_mode | Retourne le mode de l'application (dev, prod) |
| app_in_debug | Vérifie si le mode debug est activé |
HTTP et Réponses​
| Helper | Description |
|---|---|
| request | Accède à la requête HTTP courante |
| response | Crée une réponse HTTP |
| response_json | Retourne une réponse JSON |
| response_download | Force le téléchargement d'un fichier |
| set_response_status_code | Définit le code de statut HTTP |
| set_response_header | Ajoute un en-tête à la réponse |
| get_response_header | Récupère un en-tête de la réponse |
| redirect | Crée une redirection HTTP |
| redirect_back | Redirige vers la page précédente |
| url | Construit une URL |
| route | Génère l'URL d'une route nommée |
| old | Récupère l'ancienne valeur d'un champ |
| view | Compile et retourne une vue |
Base de données​
| Helper | Description |
|---|---|
| db | Accède à l'instance de la base de données |
| table | Retourne un QueryBuilder pour une table |
| app_db_table | Alias de table() |
| get_last_insert_id | Récupère le dernier ID inséré |
| app_db_select | Exécute une requête SELECT |
| app_db_select_one | Récupère un seul enregistrement |
| app_db_insert | Insère des données |
| app_db_delete | Supprime des enregistrements |
| app_db_update | Met Ă jour des enregistrements |
| app_db_statement | Exécute une requête SQL brute |
| app_db_transaction | Démarre une transaction |
| app_db_transaction_started | Vérifie si une transaction est active |
| app_db_rollback | Annule la transaction |
| app_db_commit | Valide la transaction |
| pdo | Récupère l'instance PDO |
| set_pdo | Définit une nouvelle instance PDO |
| app_db_seed | Exécute un seeder |
Sécurité​
| Helper | Description |
|---|---|
| encrypt | Chiffre une chaîne |
| decrypt | Déchiffre une chaîne |
| app_hash | Crée ou vérifie un hash |
| sanitize | Nettoie une chaîne (supprime balises HTML) |
| secure | Échappe les caractères spéciaux |
| create_csrf_token | Crée un nouveau token CSRF |
| csrf_token | Récupère le token CSRF courant |
| csrf_field | Génère un champ hidden pour le CSRF |
| method_field | Génère un champ hidden pour la méthode HTTP |
| gen_csrf_token | Génère un token CSRF dans la session |
| verify_csrf | Vérifie un token CSRF |
| csrf_time_is_expired | Vérifie si le token CSRF a expiré |
Authentification​
| Helper | Description |
|---|---|
| app_auth | Accède au système d'authentification |
| auth | Alias de app_auth() (déprécié) |
Session et Cookies​
| Helper | Description |
|---|---|
| session | Manipule la session |
| cookie | Manipule les cookies |
| flash | Définit un message flash |
| app_flash | Alias de flash() |
Chaînes de caractères​
| Helper | Description |
|---|---|
| e | Échappe les balises HTML |
| str_uuid | Génère un UUID |
| str_slug | Convertit en slug URL-friendly |
| str_is_mail | Vérifie si c'est un email valide |
| str_is_domain | Vérifie si c'est un domaine valide |
| str_is_slug | Vérifie si c'est un slug valide |
| str_is_alpha | Vérifie si contient uniquement des lettres |
| str_is_lower | Vérifie si en minuscules |
| str_is_upper | Vérifie si en majuscules |
| str_is_alpha_num | Vérifie si alphanumerique |
| str_shuffle_words | Mélange les mots |
| str_wordily | Découpe en tableau de mots |
| str_plural | Convertit au pluriel |
| str_camel | Convertit en camelCase |
| str_snake | Convertit en snake_case |
| str_contains | Vérifie si contient une sous-chaîne |
| str_capitalize | Met en capitale |
| str_random | Génère une chaîne aléatoire |
| str_force_in_utf8 | Force la sortie en UTF-8 |
| str_fix_utf8 | Corrige l'encodage UTF-8 |
Email​
| Helper | Description |
|---|---|
| Envoie un email avec une vue | |
| app_email | Alias de email() |
| raw_email | Envoie un email brut |
Évènements et Files d'attente​
| Helper | Description |
|---|---|
| event | Émet un évènement |
| app_event | Alias de event() |
| queue | Ajoute un job Ă la file d'attente |
Stockage et Cache​
| Helper | Description |
|---|---|
| app_storage | Accède à un disque de stockage local |
| storage_service | Accède à un service de stockage (S3, FTP) |
| cache | Manipule le cache |
Traduction​
| Helper | Description |
|---|---|
| app_trans | Traduit une clé |
| t | Alias de app_trans() |
| __ | Alias de app_trans() |
Validation​
| Helper | Description |
|---|---|
| validator | Valide des données |
Logging​
| Helper | Description |
|---|---|
| logger | Accède au logger |
| app_logger | Alias de logger() |
Utilitaires​
| Helper | Description |
|---|---|
| collect | Crée une collection |
| app_now | Retourne la date/heure actuelle (Carbon) |
| client_locale | Récupère la langue du client |
| is_blank | Vérifie si une valeur est vide |
| debug | Affiche des informations de débogage |
| sep | Retourne le séparateur de répertoire |
Application​
app​
Accède au conteneur d'injection de dépendances de Bow Framework.
// Récupérer un service
$mailer = app("mail");
// Récupérer une classe avec auto-résolution
$service = app(UserService::class);
// Sans argument, retourne le conteneur
$container = app();
config​
Récupère ou définit une valeur de configuration.
// Récupérer une configuration
$driver = config("database.driver");
// Avec une valeur par défaut
$timeout = config("app.timeout", 30);
// Récupérer toute une section
$mailConfig = config("mail");
app_env​
Récupère une variable d'environnement définie dans le fichier .env.
$appUrl = app_env("APP_URL");
// Avec une valeur par défaut
$debug = app_env("APP_DEBUG", false);
app_assets​
Génère l'URL complète d'un asset (CSS, JS, image).
$cssUrl = app_assets("css/style.css");
// /assets/css/style.css
$jsUrl = app_assets("js/app.js");
// /assets/js/app.js
app_abort​
Interrompt l'exécution de l'application avec une erreur HTTP.
// Erreur 404
app_abort(404);
// Erreur 403 avec message personnalisé
app_abort(403, "Accès refusé");
app_abort_if​
Interrompt l'exécution si une condition est vraie.
$user = User::find($id);
// Retourne 404 si l'utilisateur n'existe pas
app_abort_if($user === null, 404, "Utilisateur non trouvé");
// Retourne 403 si non autorisé
app_abort_if(!$user->canEdit($post), 403);
app_mode​
Retourne le mode de l'application (production, development, testing).
$mode = app_mode();
if ($mode === "development") {
// Code de développement
}
app_in_debug​
Vérifie si l'application est en mode debug.
if (app_in_debug()) {
// Afficher des informations de débogage
var_dump($data);
}
HTTP et Réponses​
request​
Accède à l'instance de la requête HTTP courante.
// Récupérer un paramètre
$name = request()->get("name");
// Récupérer tous les paramètres
$all = request()->all();
// Vérifier la méthode HTTP
if (request()->isPost()) {
// ...
}
// Récupérer un fichier uploadé
$file = request()->file("avatar");
response​
Crée une réponse HTTP.
// Réponse simple
return response("Hello World");
// Avec code de statut
return response("Not Found", 404);
// Accès à l'instance Response
return response()->status(201)->send("Created");
response_json​
Retourne une réponse au format JSON.
return response_json(["name" => "John", "age" => 25]);
// Avec code de statut
return response_json(["error" => "Not found"], 404);
response_download​
Force le téléchargement d'un fichier.
$filepath = storage_path("files/document.pdf");
// Télécharger avec le nom original
return response_download($filepath);
// Télécharger avec un nom personnalisé
return response_download($filepath, "mon-document.pdf");
set_response_status_code​
Définit le code de statut HTTP de la réponse.
set_response_status_code(201); // Created
set_response_status_code(404); // Not Found
set_response_header​
Ajoute un en-tête à la réponse HTTP.
set_response_header("X-Custom-Header", "value");
set_response_header("Cache-Control", "no-cache");
get_response_header​
Récupère un en-tête de la réponse HTTP.
$contentType = get_response_header("Content-Type");
redirect​
Crée une redirection HTTP.
// Redirection simple
return redirect("/dashboard");
// Avec des méthodes chaînées
return redirect()->to("/home");
return redirect()->route("user.profile", ["id" => 1]);
// Avec des données flash
return redirect("/login")->with("error", "Session expirée");
redirect_back​
Redirige vers la page précédente.
// Redirection standard
return redirect_back();
// Avec un code de statut personnalisé
return redirect_back(301);
// Avec des données
return redirect()->back()->with("message", "Enregistré");
url​
Construit une URL complète.
// URL simple
$url = url("/users");
// http://votre-site.com/users
// Avec des paramètres de requête
$url = url("/users", ["page" => 2, "sort" => "name"]);
// http://votre-site.com/users?page=2&sort=name
route​
Génère l'URL d'une route nommée.
// Route: Route::get('/users/:id', [UserController::class, 'show'])->name('user.show');
$url = route("user.show", ["id" => 1]);
// /users/1
// URL absolue
$url = route("user.show", ["id" => 1], true);
// http://votre-site.com/users/1
// Avec paramètres optionnels
$url = route("search", ["q" => "bow", "page" => 2]);
old​
Récupère l'ancienne valeur d'un champ après une redirection (utile pour les formulaires).
// Dans une vue après validation échouée
<input type="text" name="email" value="{{ old('email') }}">
// Avec une valeur par défaut
$email = old("email", "default@example.com");
view​
Compile et retourne une vue.
// Vue simple
return view("home");
// Avec des données
return view("users.profile", ["user" => $user]);
// Avec un code de statut
return view("errors.404", [], 404);
Base de données​
db​
Accède à l'instance de connexion à la base de données.
$db = db();
// Exécuter une requête
$users = db()->select("SELECT * FROM users WHERE active = ?", [1]);
table​
Retourne un QueryBuilder pour une table spécifique.
// Sélectionner tous les enregistrements
$users = table("users")->get();
// Avec conditions
$user = table("users")
->where("email", "john@example.com")
->first();
// Insertion
table("users")->insert([
"name" => "John",
"email" => "john@example.com"
]);
app_db_table​
Alias de table().
$users = app_db_table("users")->get();
get_last_insert_id​
Récupère le dernier ID auto-incrémenté après une insertion.
table("users")->insert(["name" => "John"]);
$id = get_last_insert_id();
app_db_select​
Exécute une requête SELECT avec des paramètres.
$users = app_db_select(
"SELECT * FROM users WHERE role = ?",
["admin"]
);
app_db_select_one​
Récupère un seul enregistrement.
$user = app_db_select_one(
"SELECT * FROM users WHERE id = ?",
[1]
);
app_db_insert​
Insère des données dans une table.
$result = app_db_insert(
"INSERT INTO users (name, email) VALUES (?, ?)",
["John", "john@example.com"]
);
app_db_update​
Met Ă jour des enregistrements.
$affected = app_db_update(
"UPDATE users SET name = ? WHERE id = ?",
["Jane", 1]
);
app_db_delete​
Supprime des enregistrements.
$deleted = app_db_delete(
"DELETE FROM users WHERE id = ?",
[1]
);
app_db_statement​
Exécute une requête SQL brute (CREATE, ALTER, DROP, etc.).
app_db_statement("TRUNCATE TABLE users");
app_db_statement("ALTER TABLE users ADD COLUMN avatar VARCHAR(255)");
Transactions​
// Démarrer une transaction
app_db_transaction();
try {
table("accounts")->where("id", 1)->decrement("balance", 100);
table("accounts")->where("id", 2)->increment("balance", 100);
// Valider
app_db_commit();
} catch (Exception $e) {
// Annuler
app_db_rollback();
throw $e;
}
// Vérifier si une transaction est active
if (app_db_transaction_started()) {
// ...
}
pdo / set_pdo​
Accède ou définit l'instance PDO.
// Récupérer l'instance PDO
$pdo = pdo();
// Définir une nouvelle connexion
$newPdo = new PDO($dsn, $user, $password);
set_pdo($newPdo);
app_db_seed​
Exécute un seeder de manière programmatique.
// Par nom de fichier (seeders/users.php)
app_db_seed("users");
// Avec des données supplémentaires
app_db_seed("users", ["created_by" => "admin"]);
// Avec une classe Model
app_db_seed(User::class, ["name" => "John Doe"]);
Sécurité​
encrypt / decrypt​
Chiffre et déchiffre des données.
// Chiffrer
$encrypted = encrypt("données sensibles");
// Déchiffrer
$decrypted = decrypt($encrypted);
// "données sensibles"
app_hash​
Crée un hash ou vérifie un hash existant.
// Créer un hash
$hash = app_hash("password123");
// Vérifier un hash
$isValid = app_hash("password123", $hash);
// true ou false
sanitize​
Nettoie une chaîne en supprimant les balises HTML et les caractères dangereux.
$clean = sanitize("<script>alert('xss')</script>Hello");
// "Hello"
$clean = sanitize("O'Reilly");
// "OReilly"
secure​
Échappe les caractères spéciaux HTML.
$safe = secure("<script>alert('xss')</script>");
// "<script>alert('xss')</script>"
Protection CSRF​
// Générer un nouveau token CSRF
create_csrf_token();
// Récupérer le token courant
$token = csrf_token();
// Générer un champ HTML hidden
echo csrf_field();
// <input type="hidden" name="_token" value="...">
// Vérifier un token
if (verify_csrf($tokenFromRequest)) {
// Token valide
}
// Vérifier si le token a expiré
if (csrf_time_is_expired()) {
// Token expiré
}
method_field​
Génère un champ hidden pour simuler les méthodes PUT, PATCH, DELETE.
echo method_field("DELETE");
// <input type="hidden" name="_method" value="DELETE">
echo method_field("PUT");
// <input type="hidden" name="_method" value="PUT">
Authentification​
app_auth​
Accède au système d'authentification.
// Vérifier si authentifié
if (app_auth()->check()) {
$user = app_auth()->user();
}
// Avec un guard spécifique
$admin = app_auth("admin")->user();
// Récupérer l'ID de l'utilisateur
$userId = app_auth()->id();
// Déconnecter
app_auth()->logout();
Note:
auth()est un alias déprécié deapp_auth().
Session et Cookies​
session​
Manipule les données de session.
// Récupérer une valeur
$name = session("user_name");
// Avec une valeur par défaut
$role = session("role", "guest");
// Récupérer l'instance de session
$session = session();
$session->set("key", "value");
cookie​
Manipule les cookies.
// Récupérer un cookie
$value = cookie("remember_token");
// Définir un cookie (expiration en secondes)
cookie("theme", "dark", 3600 * 24 * 30); // 30 jours
// Récupérer tous les cookies
$all = cookie();
flash​
Définit un message flash (visible une seule fois).
// Définir un message flash
flash("success", "Utilisateur créé avec succès");
// Dans la vue suivante
$message = session("success");
Chaînes de caractères​
e​
Échappe les caractères HTML pour éviter les injections XSS.
$safe = e("<script>alert('xss')</script>");
// <script>alert('xss')</script>
str_uuid​
Génère un UUID v4.
$uuid = str_uuid();
// "550e8400-e29b-41d4-a716-446655440000"
str_slug​
Convertit une chaîne en slug URL-friendly.
$slug = str_slug("Hello World!");
// "hello-world"
// Avec un séparateur personnalisé
$slug = str_slug("Hello World!", "_");
// "hello_world"
Vérifications de chaînes​
str_is_mail("user@example.com"); // true
str_is_domain("example.com"); // true
str_is_slug("hello-world"); // true
str_is_alpha("Hello"); // true
str_is_lower("hello"); // true
str_is_upper("HELLO"); // true
str_is_alpha_num("Hello123"); // true
Transformations de chaînes​
str_camel("hello_world"); // "helloWorld"
str_snake("helloWorld"); // "hello_world"
str_plural("user"); // "users"
str_capitalize("hello"); // "Hello"
str_shuffle_words("a b c"); // "c a b" (aléatoire)
Autres fonctions de chaînes​
// Vérifier si contient
str_contains("Hello World", "World"); // true
// Découper en mots
str_wordily("Hello World"); // ["Hello", "World"]
// Chaîne aléatoire
str_random(16); // "a1b2c3d4e5f6g7h8"
// UTF-8
str_force_in_utf8();
$fixed = str_fix_utf8($brokenString);
Email​
email​
Envoie un email avec une vue template.
email("emails.welcome", ["user" => $user], function ($mail) {
$mail->to("user@example.com")
->subject("Bienvenue sur notre site");
});
// Récupérer l'instance Mail
$mailer = email();
$mailer->to("admin@example.com")
->subject("Notification")
->send("emails.notification", $data);
raw_email​
Envoie un email brut sans template.
raw_email(
"user@example.com",
"Sujet de l'email",
"Corps du message en texte brut",
["From: no-reply@example.com"]
);
Évènements et Files d'attente​
event​
Émet un évènement.
// Émettre un évènement
event(UserRegistered::class, $user);
// Avec des données
event("user.created", ["user" => $user, "timestamp" => time()]);
queue​
Ajoute un job Ă la file d'attente.
queue(new SendWelcomeEmail($user));
queue(new ProcessPayment($order));
Stockage et Cache​
app_storage​
Accède à un disque de stockage local.
$storage = app_storage("local");
// Écrire un fichier
$storage->put("documents/file.txt", $content);
// Lire un fichier
$content = $storage->get("documents/file.txt");
// Vérifier l'existence
if ($storage->exists("documents/file.txt")) {
// ...
}
storage_service​
Accède à un service de stockage distant (S3, FTP).
// Service S3
$s3 = storage_service("s3");
$s3->put("backups/db.sql", $backup);
// Service FTP
$ftp = storage_service("ftp");
$ftp->download("remote/file.zip", "local/file.zip");
cache​
Manipule le cache de l'application.
// Récupérer une valeur
$value = cache("key");
// Définir une valeur (TTL en secondes)
cache("key", "value", 3600); // 1 heure
// Récupérer l'instance Cache
$cache = cache();
$cache->forget("key"); // Supprimer
$cache->flush(); // Vider tout le cache
Traduction​
app_trans / t / __​
Traduit une clé de traduction.
// Traduction simple
echo app_trans("messages.welcome");
// "Bienvenue"
// Alias
echo t("messages.welcome");
echo __("messages.welcome");
// Avec des variables
echo t("messages.hello", ["name" => "John"]);
// "Bonjour John"
// Avec choix pluriel
echo t("messages.items", [], true);
Validation​
validator​
Valide des données selon des règles définies.
$validation = validator(
["email" => "test@example.com", "age" => 25],
["email" => "required|email", "age" => "required|int|min:18"]
);
if ($validation->fails()) {
$errors = $validation->getErrors();
return response_json(["errors" => $errors], 422);
}
// Données validées
$data = $validation->getData();
Logging​
logger / app_logger​
Accède au système de logging.
logger()->info("User logged in", ["user_id" => 1]);
logger()->warning("Slow query detected", ["time" => 2.5]);
logger()->error("Database error", ["exception" => $e->getMessage()]);
// Niveaux disponibles : debug, info, notice, warning, error, critical, alert, emergency
Utilitaires​
collect​
Crée une collection à partir d'un tableau.
$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->filter(fn($n) => $n > 2)->map(fn($n) => $n * 2);
// [6, 8, 10]
app_now​
Retourne la date/heure actuelle comme instance Carbon.
$now = app_now();
echo $now->format("Y-m-d H:i:s");
// "2025-01-15 14:30:00"
echo $now->addDays(7)->format("Y-m-d");
// "2025-01-22"
client_locale​
Récupère la langue préférée du client depuis l'en-tête Accept-Language.
$locale = client_locale();
// "fr", "en", "es", etc.
is_blank​
Vérifie si une valeur est "vide".
is_blank(null); // true
is_blank(""); // true
is_blank(" "); // true
is_blank([]); // true
is_blank(0); // false
is_blank(false); // false
is_blank("hello"); // false
debug​
Affiche des informations de débogage formatées.
debug($variable);
debug($user, $request, $config);
sep​
Retourne le séparateur de répertoire du système.
$sep = sep();
// "/" sur Linux/macOS, "\" sur Windows
Code source​
https://github.com/bowphp/framework/blob/5.x/src/Support/helpers.php
Il manque quelque chose ?
Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.