🆓
freefw
  • FreeFW
  • FreeFW Documentation
    • apiparams
    • Middleware d'authentification
    • controller
    • CRUD
    • model
    • Cheminement
    • Structure
Propulsé par GitBook
Sur cette page
  • Les controlleurs, les mĂ©thodes du CRUD & co.
  • Fonctionnement gĂ©nĂ©ral
  • RĂ©ponses
  • MĂ©thodes standards

Cet article vous a-t-il été utile ?

  1. FreeFW Documentation

controller

PrécédentMiddleware d'authentificationSuivantCRUD

Dernière mise à jour il y a 3 ans

Cet article vous a-t-il été utile ?

Les controlleurs, les méthodes du CRUD & co.

Par défaut les controlleurs servent de lien entre les requêtes/réponses et le métier. Afin de simplifier les choses le FW met à disposition les méthodes basiques avec également une gestion basique. Le but n'est pas de faire des ces méthodes la couteau suisse qui fait tout, donc voici ce que permettent ces méthodes et leurs limitations.

Les méthodes décrites ci-dessous sont réservées à un fonctionnement RestFul. Pour d'autres controlleurs il faudra en créer de zéro avec leurs logiques, ...

Fonctionnement général

Ces méthodes ont besoin d'une instance ApiParams pour fonctionner, cette instance doit être disponible dans la requête sous forme de paramètre. Le middleware Api est censé savoir traduire les requêtes et réponses. Plus de détail

    /**
     * @var \FreeFW\Http\ApiParams $apiParams
     */
    $apiParams = $p_request->getAttribute('api_params', false);

En retour il faut retourner une réponse avec le résultat, voici les options disponibles :

Réponses

Les données à retourner sont en général une instance qui hérite au minimum d'une des interfaces suivantes :

  • \FreeFW\Core\Model

  • \FreeFW\Core\StorageModel

  • \FreeFW\Core\StorageCacheModel

C'est de nouveau au middleware Api de savoir traduire les codes à retourner et non au controlleur de gérer cette logique.

createSuccessAddResponse

Retourne une réponse OK pour une création (2*). Cette méthode est prévue pour recevoir en paramètre des données, en général l'élément créé.

createSuccessUpdateResponse

Retourne une réponse OK pour une modification (2*). Cette méthode est prévue pour recevoir en paramètre des données, en général l'élément modifié

createSuccessRemoveResponse

Retourne une réponse OK pour une suppression (2*). Cette méthode n'attend pas de paramètre.

createSuccessEmptyResponse

Retourne une réponse OK (2*) sans contenu. A n'utiliser que si les précédentes réponses ne conviennent pas.

createSuccessOkResponse

Retourne une réponse OK (2*). Cette méthode est prévue pour recevoir en paramètre des données. A n'utiliser que si les précédentes réponses ne conviennent pas.

createErrorResponse

Retourne une réponse >= 4*. Le premier paramètre est le code principal de l'erreur, le second les données.

Les méthodes suivantes permettent de gérer les erreurs sur l'instance :

  • getErrors : retourne les erreurs

  • addErrors : ajoute un tableau d'erreurs

  • addError : ajoute une erreurs

  • hasErrors : retourne vrai si il y a des erreurs

Méthodes standards

Ces méthodes sont à utiliser pour des appels simples

getAll : la recherche

  • tout se passe bien : OK + datas demandĂ©es

  • rien n'a Ă©tĂ© trouvĂ© : OK + datas = []

getOne : retourne un élément spécifique selon son ID

  • tout se passe bien : OK + data demandĂ©e

  • rien n'a Ă©tĂ© trouvĂ©e : Erreur 666007 = 'not found'

  • si id <0 : Erreur 666006 = 'Id id mandatory'

  • si id n'est pas renseignĂ© ou 0 : OK + model initialisĂ©

createOne : création et retourne l'élement créé

  • tout se passe bien : ADD + datas insĂ©rĂ©es

  • erreur pendant l'insert : Erreur 666011 = errors ou 'not insert' si y a pas d'errors

  • il n'y a pas de donnĂ©es envoyĂ©es : Erreur 666008 = 'no data'

updateOne : modification et retourne l'élément modifié

  • tout se passe bien : OK + datas modifiĂ©es

  • erreur pendant l'update : Erreur 666009 = errors ou 'not update' si y a pas d'errors

  • l'id qu'on veut modifier n'existe pas : Erreur 666012 = 'Id is unavailable'

  • il n'y a pas de donnĂ©es envoyĂ©es : Erreur 666008 = 'no data'

  • l'id qu'on veut modifier n'est pas >0 ou pas renseignĂ© : Erreur 666006 = 'Id is mandatory'

removeOne : suppression

  • tout se passe bien : OK

  • erreur pendant le delete : Erreur 666010 = errors ou 'not delete' si y a pas d'errors

  • l'id qu'on veut supprimer n'existe pas : Erreur 666012 = 'Id is unavailable'

  • l'id qu'on veut supprimer n'est pas >0 ou pas renseignĂ© : Erreur 666006 = 'Id is mandatory'

ici