Section: Les objets jRequest et points d'entrée
« Les points d'entrées et jApp | ^ Principes de fonctionnement | Le coordinateur » |
− Table des matières
Un objet jRequest pour chaque type de requête ¶
Un objet jRequest prend en charge le traitement des données en entrée afin de les rendre disponibles facilement au framework et plus spécifiquement aux actions. Il permet entre autres de déterminer les noms du module et l'action à exécuter.
Il y a plusieurs types d'objets jRequest qui permettent de traiter les données en entrée différemment, en fonction du type de protocole utilisé. En effet, on ne récupère pas les données en entrée pour une page HTML (situées dans l'URL pour une requête GET ou URL-encodées dans son corps pour une requête POST) de la même manière que celles d'un appel SOAP (les données étant situées dans le corps de la requête HTTP sous forme XML).
À chaque type d'objet jRequest correspond un ou plusieurs formats de sortie autorisés, donc un ou plusieurs objets jResponse permis.
Les objets jRequest disponibles sont :
- classic : pour les requêtes HTTP normales dont la réponse peut être n'importe quel contenu (HTML, texte, image...),
- soap : pour les requêtes de services SOAP. La réponse sera au format SOAP.
- xmlrpc : pour les requêtes XML-RPC. La réponse sera nécessairement en XML-RPC,
- jsonrpc : pour les requêtes JSON-RPC. La réponse sera nécessairement en JSON-RPC.
D'autres sont possibles biens sûr.
Vous aurez un point d'entrée pour chaque type de requête que vous voulez prendre en charge dans votre application.
API ¶
Durant l'exécution de l'action, l'objet request correspondant à la requête est accessible
via la propriété request
du coordinateur. Ce dernier est accessible via l'objet
jApp
.
// pour récupérer un paramètre en dehors d'un contrôleur
$myfooValue = jApp::coord()->request->getParam('foo');
Mais dans un contrôleur, vous avez à votre disposition une méthode "raccourci" :
$myfooValue = $this->param('foo');
Les autres propriétés de jRequest
qui peuvent être utiles :
type | Pour connaître le type de la requête |
urlScriptPath | Le chemin dans l'URL jusqu'au script |
urlScriptName | Le nom du script (le nom du fichier point d'entrée) |
urlPathInfo | La partie pathinfo de l'URL |
params | Les paramètres de la requête |
Quelques méthodes utiles :
getIp()
: pour récupérer la vraie IP de l'utilisateur (tient compte des proxy, firewall etc.)getProtocol()
: savoir si c'est du http ou httpsgetPort()
: pour connaitre le port (80, 443..)getDomainName()
: pour récupérer le nom de domaine de l'applicationgetServerURI()
: pour récupérer URL de l'application<protocol><domain>[:<port>]
isAjax()
: pour savoir si la requête est une requête ajax ou pas.header()
etheaders()
: pour récupérer des en-têtes.