đ HTTP Request
- Introduction
- AccĂ©der Ă la requĂȘte
- Recupération des données
- Chemin de requĂȘte et mĂ©thode
- RĂ©cupĂ©rer le chemin de requĂȘte
- RĂ©cupĂ©rer la mĂ©thode de requĂȘte
- VĂ©rifier si la requĂȘte est en AJAX
- Récupérer une entrée
- Recupération d'une partie des données d'entrée
- Déterminer si une valeur d'entrée est présente
- DĂ©terminer l'adresse IP de client
- DĂ©terminer le Port de client
- DĂ©terminer le protocol de client
- RĂ©cupĂ©rer les entĂȘte-https
- Récupérer le IP du server
- Récupérer le domaine Origin
- RĂ©cupĂ©rer le temps de la requĂȘte
- Récupérer une instance de la session
- Récupérer l'authentification courante
Introductionâ
Une requĂȘte HTTP est le message que l'utilisateur envoie Ă l'application Bow via son navigateur ou d'autre outil tel que curl
, httpie
et autre.
Ce message est traité par Bow à travers la classe Bow\Http\Request
. Cette classe vous permet d'avoir les informations sur la requĂȘte envoyĂ© par l'utilisateur comme son adresse ip, le type du message, les information d'un formulaire etc...
AccĂ©der Ă la requĂȘteâ
Pour capturer un message ou requĂȘte HTTP, vous pouvez premiĂšrement utiliser le helper request()
qui vous donne une instance de Bow\Http\Request
, deuxiÚmement vous pouvez passer par l'injecteur de dépendance via une action de contrÎleur.
RecupĂ©ration des donnĂ©esâ
En utilisant quelques méthodes simples, vous pouvez accéder à toutes les entrées utilisateur de votre application.
Via des Closures de routeâ
- Avec le helper
request
:
$app->get('/', function ()
{
$request = request();
$name = $request->get('name');
// code ici
});
- Par l'injection de dépendance
use Bow\Http\Request;
$app->get('/', function (Request $request)
{
return $request->get('name');
});
Via un controlleurâ
Si votre méthode de contrÎleur attend également une entrée d'un paramÚtre de route, vous devez répertorier les paramÚtres de votre route aprÚs vos autres dépendances. Par exemple, si votre route est défini comme suit:
$app->get('/users/:id', 'UserController::show');
Vous pouvez toujours taper la requĂȘte Bow\Http\Request et accĂ©der Ă l'id de votre paramĂštre de route en dĂ©finissant votre mĂ©thode de contrĂŽleur comme suit:
namespace App\Controllers;
use App\Controllers\Controller;
use App\Models\User;
use Bow\Http\Request;
class UserController extends Controller
{
/**
* Afficher le profil pour l'utilisateur donné
*
* @param Request $reuest
* @return mixed
*/
public function show(Request $reuest, $id)
{
$user = User::where('id', $id)->first();
$user->name = $request->get('name');
$user->save();
return $this->render('user/profile', ['user' => $user]);
}
}
Chemin de requĂȘte et mĂ©thodeâ
RĂ©cupĂ©rer le chemin de requĂȘteâ
La méthode path
renvoie les informations de chemin de la requĂȘte. Ainsi, si la requĂȘte entrante est ciblĂ©e sur http://example.com/bar/zar
, la méthode path retournera bar/zar
:
$uri = $request->path();
La méthode is
vous permet de vĂ©rifier que le chemin de requĂȘte entrant correspond Ă un modĂšle donnĂ©. Vous pouvez utiliser le caractĂšre *
comme caractÚre générique lorsque vous utilisez cette méthode:
if ($request->is('users/*')) {
//
}
RĂ©cupĂ©rer la mĂ©thode de requĂȘteâ
La méthode method
retournera le verbe HTTP pour la requĂȘte. Vous pouvez utiliser les mĂ©thodes isPost
, isGet
, isPut
, isDelete
, isOptions
, isPutch
pour vĂ©rifier que le verbe HTTP correspond Ă une mĂ©thode HTTP de la requĂȘte donnĂ©e:
$method = $request->method();
if ($request->isPost()) {
$filename = $request->file('filename');
$filename->moveTo('/some/directory');
}
VĂ©rifier si la requĂȘte est en AJAXâ
Pour dĂ©terminer si une requĂȘte a Ă©tĂ© envoyĂ© via AJAX, la mĂ©thode isAjax
vous permet de vérifier ça.
if ($request->isAjax()) {
//
}
RĂ©cupĂ©rer une entrĂ©eâ
Souvent la requĂȘte envoyĂ© par le client HTTP contient des donnĂ©es souvent demander pour actioner un mecanisme par exemple celui d'une inscription.
Bow Framework dans son démarrage optimise le donnée envoyés au serveur en remplaçant les valeur vide par null
et supprimer les spaces blancs dans les valeurs de chaque champs avec la fonction php trim
.
$name = $request->get('name');
// Récupérer directement la valeur via le nom du champ
$name = $request->name;
Vous pouvez aussi dĂ©fini une valeur par dĂ©faut Ă
get
$name = $request->get('name', 'Papac');
$name = $request->get('name', function () {
return User::first()->name;
});
Ceci permet justement de récupérer le contenu du champ name
d'un formulaire ou d'un url en fonction du type de requĂȘte.
RecupĂ©ration d'une partie des donnĂ©es d'entrĂ©eâ
Si vous devez extraire un sous-ensemble des données d'entrée, vous pouvez utiliser les méthodes ignore
et only
. Ces deux méthodes acceptent un seul tableau ou une liste d'arguments dynamique:
$input = $request->only(['name', 'lastname']);
$input = $request->only('name', 'lastname');
$input = $request->ignore(['password']);
$input = $request->ignore('password');
DĂ©terminer si une valeur d'entrĂ©e est prĂ©senteâ
Vous devez utiliser la méthode has
pour dĂ©terminer si une valeur est prĂ©sente sur la requĂȘte. La mĂ©thode has
renvoie true
si la valeur est prĂ©sente dans la requĂȘte:
if ($request->has('name')) {
//
}
DĂ©terminer l'adresse IP de clientâ
Souvent vous allez vouloir l'adresse IP du client qui Ă envoyer la requĂȘte, la mĂ©thode ip
permet comme son nom l'indique de récupérer l'adresse ip de client:
$ip = $request->ip();
if ($ip == 'xxx.xxx.xxx.xxx') {
// code ici
}
DĂ©terminer le Port de clientâ
La méthode port
permet comme son nom l'indique de récupérer le port de client:
$port = $request->port();
// Code ici
DĂ©terminer le protocol de clientâ
La méthode protocol
permet comme son nom l'indique de récupérer le protocol de client:
$protocol = $request->protocol();
// Code ici
Il y a aussi la méthode isProtocol
qui permet de faire de vérification sur le protocol:
if ($request->isProtocol('http')) {
//
}
Et isSecure
vous permet de vĂ©rifier si la requĂȘte est sĂ©curisĂ©.
if ($request->isSecure()) {
//
}
RĂ©cupĂ©rer les entĂȘte-httpsâ
Vous avez la possibilitĂ© de rĂ©cupĂ©rer les entĂȘte-https du client avec la mĂ©thode getHeader
et hasHeader
pour vĂ©rifier l'existance d'une entĂȘte-http.
$header = $request->getHeader('content-type');
echo $header;
// text/html
if ($request->hasHeader('x-proxy-key')) {
// code ici
}
RĂ©cupĂ©rer le IP du serverâ
Vous avez la possibilité de récupérer l'adresse IP de serveur sur lequel votre application Bow est hébergé.
$hostname = $request->hostname();
echo $hostname;
// exemple.com
RĂ©cupĂ©rer le domaine Originâ
Le domaine dit origin
est l'adresse récupérer avec la méthode hostname
ensuite associĂ© avec le protocol de la requĂȘte.
$hostname = $request->origin();
echo $hostname;
// https://exemple.com
RĂ©cupĂ©rer le temps de la requĂȘteâ
Il est souvent intĂ©ressent de voir combien de temps Ă faire une requĂȘte. La mĂ©thode time
nous permet de le faire et elle retourne un timestamp.
$time = $request->time();
echo $time;
RĂ©cupĂ©rer une instance de la sessionâ
Il est souvent intéressent de manipuler la session directement. La méthode session
nous permet de le faire et elle retourne l'instance de la session.
$session = $request->session();
var_dump($session);
Pour plus d'information sur la session visitez cette page HTTP Session
RĂ©cupĂ©rer l'authentification couranteâ
Vous pouvez aussi avoir l'authenticiation en cours si vous avez utiliser le systĂšme d'authentification native de Bow Framework.
$user = $request->user();
// Definir le guard
$user = $request->user('api');
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.