IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Composant REST


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut Composant REST
    bonjour
    J'ai une table user qui contient un nom, un email et un hash de password.
    Je veux creer un webservice sur cette ressource

    J'ai configurer mon bootstrap comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div style="margin-left:40px">//Initialisation du controleur frontale de l'application
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->setControllerDirectory($listeModule);
    $listModuleRest = array('administration' => array('user','team'));
    $restRoute = new Zend_Rest_Route($frontController, array(), $listModuleRest);
    $frontController->getRouter()->addRoute('rest', $restRoute);
    $frontController->throwExceptions(true);
    $frontController->dispatch();</div>

    Mon controller emplemente l'interface Zend_Rest_Controller
    IL contient les fonctions suivantes: listAction, getAction, postAction, putAction, deleteAction.

    Avec l'uri .../user j'obtient la liste des users
    Avec l'uri .../user/:id ou .../user/:name j'obtient les details de l'utilisateur en question

    Mais avec l'uri .../user +post de donnee j'ai ce message d'erreur:
    "Fatal error: Call to a member function getHeader() on a non-object in C:\wamp\library\Zend\Rest\Route.php on line 165"

    Si j'enleve $restroute du bootstrap l'erreur disparait mais .../user, .../user/:id ou .../user/:name ne fonctionne plus.
    J'ai cherche sur google, j'ai essaye quelques trucs mais mon probleme persiste.
    De plus je ne comprends pas le message d'erreur avec ce getHeader.
    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut
    J'ai corrige ce bug.
    Dans le fichier route.php du package Zend_Rest, dans la function match a la ligne 162 il y a ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $requestMethod = strtolower($request->getMethod()); if ($requestMethod != 'get') { if ($request->getParam('_method')) { $values[$this->_actionKey] = strtolower($request->getParam('_method')); } elseif ( $this->_request->getHeader('X-HTTP-Method-Override') ) { $values[$this->_actionKey] = strtolower($this->_request->getHeader('X-HTTP-Method-Override')); } else { $values[$this->_actionKey] = $requestMethod; }
    Le programmeur effectue un test sur la presence d'un entete. Mais $this->_request peut avoir la valeur null. Du coup php affiche une erreur fatale. Pour le corriger il faut ajouter un test sur l'existence de $this->_request
    On obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $requestMethod = strtolower($request->getMethod()); if ($requestMethod != 'get') { if ($request->getParam('_method')) { $values[$this->_actionKey] = strtolower($request->getParam('_method')); } elseif ( $this->_request AND $this->_request->getHeader('X-HTTP-Method-Override') ) { $values[$this->_actionKey] = strtolower($this->_request->getHeader('X-HTTP-Method-Override')); } else { $values[$this->_actionKey] = $requestMethod; }
    PHP n'affiche plus de message d'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2009, 06h49
  2. Composant ajouté à la fiche reste à nil 8O
    Par lejert dans le forum Langage
    Réponses: 5
    Dernier message: 17/11/2008, 16h36
  3. composant TDateTimePicker qui reste figé
    Par wassila dans le forum C++Builder
    Réponses: 13
    Dernier message: 30/04/2006, 17h05
  4. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo