Aller au contenu principal
Version: Canary đźš§

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​

HelperDescription
appAccède au conteneur d'injection de dépendances
configRécupère ou définit une configuration
app_envRécupère une variable d'environnement
app_assetsGénère l'URL d'un asset
app_abortInterrompt l'exécution avec une erreur HTTP
app_abort_ifInterrompt l'exécution si une condition est vraie
app_modeRetourne le mode de l'application (dev, prod)
app_in_debugVérifie si le mode debug est activé

HTTP et Réponses​

HelperDescription
requestAccède à la requête HTTP courante
responseCrée une réponse HTTP
response_jsonRetourne une réponse JSON
response_downloadForce le téléchargement d'un fichier
set_response_status_codeDéfinit le code de statut HTTP
set_response_headerAjoute un en-tête à la réponse
get_response_headerRécupère un en-tête de la réponse
redirectCrée une redirection HTTP
redirect_backRedirige vers la page précédente
urlConstruit une URL
routeGénère l'URL d'une route nommée
oldRécupère l'ancienne valeur d'un champ
viewCompile et retourne une vue

Base de données​

HelperDescription
dbAccède à l'instance de la base de données
tableRetourne un QueryBuilder pour une table
app_db_tableAlias de table()
get_last_insert_idRécupère le dernier ID inséré
app_db_selectExécute une requête SELECT
app_db_select_oneRécupère un seul enregistrement
app_db_insertInsère des données
app_db_deleteSupprime des enregistrements
app_db_updateMet Ă  jour des enregistrements
app_db_statementExécute une requête SQL brute
app_db_transactionDémarre une transaction
app_db_transaction_startedVérifie si une transaction est active
app_db_rollbackAnnule la transaction
app_db_commitValide la transaction
pdoRécupère l'instance PDO
set_pdoDéfinit une nouvelle instance PDO
app_db_seedExécute un seeder

Sécurité​

HelperDescription
encryptChiffre une chaîne
decryptDéchiffre une chaîne
app_hashCrée ou vérifie un hash
sanitizeNettoie une chaîne (supprime balises HTML)
secureÉchappe les caractères spéciaux
create_csrf_tokenCrée un nouveau token CSRF
csrf_tokenRécupère le token CSRF courant
csrf_fieldGénère un champ hidden pour le CSRF
method_fieldGénère un champ hidden pour la méthode HTTP
gen_csrf_tokenGénère un token CSRF dans la session
verify_csrfVérifie un token CSRF
csrf_time_is_expiredVérifie si le token CSRF a expiré

Authentification​

HelperDescription
app_authAccède au système d'authentification
authAlias de app_auth() (déprécié)

Session et Cookies​

HelperDescription
sessionManipule la session
cookieManipule les cookies
flashDéfinit un message flash
app_flashAlias de flash()

Chaînes de caractères​

HelperDescription
eÉchappe les balises HTML
str_uuidGénère un UUID
str_slugConvertit en slug URL-friendly
str_is_mailVérifie si c'est un email valide
str_is_domainVérifie si c'est un domaine valide
str_is_slugVérifie si c'est un slug valide
str_is_alphaVérifie si contient uniquement des lettres
str_is_lowerVérifie si en minuscules
str_is_upperVérifie si en majuscules
str_is_alpha_numVérifie si alphanumerique
str_shuffle_wordsMélange les mots
str_wordilyDécoupe en tableau de mots
str_pluralConvertit au pluriel
str_camelConvertit en camelCase
str_snakeConvertit en snake_case
str_containsVérifie si contient une sous-chaîne
str_capitalizeMet en capitale
str_randomGénère une chaîne aléatoire
str_force_in_utf8Force la sortie en UTF-8
str_fix_utf8Corrige l'encodage UTF-8

Email​

HelperDescription
emailEnvoie un email avec une vue
app_emailAlias de email()
raw_emailEnvoie un email brut

Évènements et Files d'attente​

HelperDescription
eventÉmet un évènement
app_eventAlias de event()
queueAjoute un job Ă  la file d'attente

Stockage et Cache​

HelperDescription
app_storageAccède à un disque de stockage local
storage_serviceAccède à un service de stockage (S3, FTP)
cacheManipule le cache

Traduction​

HelperDescription
app_transTraduit une clé
tAlias de app_trans()
__Alias de app_trans()

Validation​

HelperDescription
validatorValide des données

Logging​

HelperDescription
loggerAccède au logger
app_loggerAlias de logger()

Utilitaires​

HelperDescription
collectCrée une collection
app_nowRetourne la date/heure actuelle (Carbon)
client_localeRécupère la langue du client
is_blankVérifie si une valeur est vide
debugAffiche des informations de débogage
sepRetourne 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>");
// "&lt;script&gt;alert('xss')&lt;/script&gt;"

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é de app_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");

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>");
// &lt;script&gt;alert('xss')&lt;/script&gt;

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.