Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-08-2010 13:01:47

ZendAdept
Nouveau membre
Date d'inscription: 08-08-2010
Messages: 4

Zend_Amf + Flex 4

Bonjour à tous,

j'essaie de mettre au point un projet Flex 4 couplé à un serveur Zend_Amf_Server pour la partie récupération des données (MySQL).

Je bute sur certains points de compréhension...

Mon arborescence Zend est de cette forme :

Code:

|_application
   |_My
      |_AMF
         |_Serveur.php
      |_models
         |_mes modèles de tables étendant  Zend_Db_Table_Abstract 
   |_configs
   |_Controllers
   |_models
   |_views
   |_bootstrap.php
|_docs
|_library
|_public
   |_.htaccess
   |_index.php

Mon bootstrap comprends entre autre ceci :

Code:

    protected function _initLoaders() {
        $loader = new Zend_Loader_Autoloader_Resource(array(
                    'namespace' => 'My_',
                    'basePath' => APPLICATION_PATH . '/My'
                ));

        $loader->addResourceType('models', 'models', 'Model');

        return $loader;
    }

   protected function _initDb() {
        $config = new Zend_Config($this->getOptions());

        try {
            $db = Zend_Db::factory($config->resources->db);
            $db->getConnection();
            Zend_Db_Table_Abstract::setDefaultAdapter($db);
        } catch (Exception $e) {
            exit('Connexion impossible au serveur');
        }

        return $db;
    }

   protected function _initAMF() {
        require(APPLICATION_PATH . '/My/AMF/Serveur.php');
        $server = new Zend_Amf_Server();
        $server->setClass('Serveur');
        $response = $server->handle();
        echo $response;
    }

2 remarques déjà :
   1) j'ai été obligé d'appeler ma classe configurant mes méthodes applicables à mon Serveur via un require car sous flash builder 4, lors de l'importation de mon service manuellement, il ne voulait pas m'accepter ma classe My_AMF_Serveur contenue dans mon fichier Serveur.php. Il fallait que mon fichier se nomme comme ma classe...
   2) vous noterez que ma classe Serveur n'est pas vraiment mon serveur mais plutôt les méthodes applicables à celui ci. Mon vrai serveur est défini dans le bootstrap ci dessus ($server).

J'ai donc plusieurs questions que voici smile

1) Est ce que je m'y prends bien dans ma méthodologie...? Mon but étant de laisser mon service inclus dans l'arborescence Zend afin de pouvoir bénéficier lors de l'appel de celui ci d'une connexion automatique à ma base puis d'une gestion ultérieure de la sécurité (Zend_Acl + Zend_Auth)

2) Cependant dans cette configuration, mes méthodes applicables à mon serveur (dans Serveur.php je le rappelle) crashent Flex lors du lancement lorsque j'appelle un modèle. Voici le code de Serveur.php pour le moment (méthode bidon...) :

Code:

class Serveur {

    /**
     *
     * @return string
     */
    public function getUsers(){
        $roles = new My_Model_Roles();
        return time();
    }
    
}

Code:

class My_Model_Roles extends Zend_Db_Table_Abstract{
    
    protected $_name = 'roles';
    protected $_primary = 'id';
}

Sans l'appel au modèle, Flex fonctionne et m'affiche time(), avec j'ai une erreur disant : "Canal déconnecté, Canal déconnecté avant l'obtention de l'accusé de réception". J'ai d'abord pensé qu'il ne trouvait pas mon modèle mais en lançant zend directement et en appelant mon modèle dans un controleur, il le trouve donc j'exclue cette possibilité. Comment faire pour accèder à un modèle dans un service ?


Comme je le disais plus haut, je me demande si ma façon de faire est bonne car dans tous les tutos que j'ai lu notamment sur adobe, leurs services disent se connecter avec Zend_Amf mais se connectent avec mysqli directement dans la classe de méthodes attachée au service et créent des requêtes "en dur" sans jamais passer par des modèles Zend...

Donc voilà, désolé pour les explications parfois fumeuses mais je cherche juste à importer un service sous Flash Builder qui me permettent de bénéficier des composants Zend (table, acl, auth) mais j'y arrive pas...


Quelqu'un peut il éclairer ma chandelle ?

Un grand merci

Hors ligne

 

#2 18-08-2010 14:09:03

ZendAdept
Nouveau membre
Date d'inscription: 08-08-2010
Messages: 4

Re: Zend_Amf + Flex 4

Nouvelle précision, lorsque je modifie ma classe comme ceci :

Code:

class Serveur {

    /**
     *
     * @return string
     */
    public function getUsers(){
       return APPLICATION_PATH;
    }
    
}

J'ai la même erreur, donc mon service n'accède pas à mes variables, à mon environnement Zend...Comment l'interfacer sur mon environnement sachant qu'il le faudra bien si je veux utiliser Zend_Auth et consorts...

Merci de nouveau

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages