13-06-2019, 06:56 PM
(avis personnel en approche: put*** l'enseignement de l'informatique à l'école est une grosse grosse chiasse sans rigueur ni méthode, qui se contente de pousser les futurs ingénieurs [parce que oui, ce sont des ingénieurs avant tout] à juste pisser du code ou à aller récupéré les tonnes de code pissées par d'autres inutilement. Fin du vent)
C'est cela, si la page a besoin que l'utilisateur soit connecté, son code utilise:
C'est cela, si la page a besoin que l'utilisateur soit connecté, son code utilise:
Code PHP :
<?php
$config->getSessionManager()->mustBeLoggedIn()
Cette méthode retourne un int si la session existe et qu'elle est valide (j'ai un n° de version dans ma session qui doit matcher celui en dur dans le code du jeu: en changeant ce code en dur, je peux alors invalider les sessions de tous les joueurs si besoin, ce qui est pratique sur un mutu où on ne peut pas supprimer les sessions), et elle throw une exception spécifique "NotLoggedInException" sinon. Cette exception est alors catchée hors du code de la page (dans un code plus générique), et ce code retourne alors une model de données:
Code PHP :
<?php
try {
return $this->treat($config); // Ca, c'est l'appel au code spécifique de la page
} catch (NotLoggedInException $e) {
$loginBean = new NotLoggedInBean(); // Le modèle de données
$loginBean->row = new NotLoggedInRow();
$loginBean->row->loginUrl = PlayerIdentifyEndpoint::uri(true); // L'url où se logger, toujours pratique
return AEclerdBasicResponder::pdoBeanResponders(
array(
new NotLoggedInFramedInfos($loginBean), // les templates utilisables pour formatter le modèle de données
new NotLoggedInFramedOverpage($loginBean),
new NotLoggedInFramedPopin($loginBean),
new NotLoggedInHtml($loginBean)),
HttpResponseStatusCode::CLIENTERROR_UNAUTHORIZED, // Le status code qui est l'objet de la question
$loginBean);
...