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 :

Utiliser des fonctions non objets avec Zend


Sujet :

Zend Framework PHP

  1. #1
    jux
    jux est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Points : 40
    Points
    40
    Par défaut Utiliser des fonctions non objets avec Zend
    Bonjour, est-ce possible d'utiliser des fonctions non-objets à partir d'un fichier non Zend (sur un autre serveur) contenant que des fonctions à partir de mon projet Zend ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Rien ne t'empêche de faire un include dans ton controller par exemple.
    En revanche, si ton fichier est sur un autre serveur, il sera interprété par php et donc tu ne pourras pas accéder à tes fonctions.

  3. #3
    jux
    jux est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    J'ai mis mes fonctions dans une classe .
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class LaClasse
    {
         function MaFonction($param,$lnk) 
         {
              $query="SELECT * FROM TABLE WHERE ID=".$param;
           $res=mysql_query($query,$lnk);
    	if(mysql_num_rows($res))
    		return(mysql_fetch_assoc($res));
    	return(array());
         }
     
    }
    J'appelle cette fonction dans mon controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $d = new LaClasse();
    $tab=$d-> MaFonction($param,$lnk);
    Je souhaite réutiliser ces fonctions sans les transformer à la façon Zend avec $lnk->fetchAll, $lnk->query(), $lnk->LastInsertId()...
    Le problème est que les fonctions mysql ne fonctionne pas.
    Le message d'erreur est par ex avec mysql_query:
    mysql_query(): supplied argument is not a valid MySQL-Link resource in ...
    Pour toute ces fonctions il y a ce message.

    le paramètre $lnk est obtenu coté Zend dans le controller de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            $registry = Zend_Registry::getInstance();
    	$db = $registry->get('dbAdapter');
    Merci d'avance.

  4. #4
    Membre actif Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Points : 233
    Points
    233
    Par défaut
    Attention la classe Zend_Db_Adapter n'a rien à voir avec la ressource MySQL que prennent les fonctions telles que mysql_query. Si tu veux utiliser mysql_query tu devrais prendre $lnk->getConnection() qui renvoie la ressource adéquate je crois. (A condition que $lnk soit une instance de Zend_Db_Adapter)

    Mais euh pourquoi est-ce que tu veux tout recoder avec des mysql_query alors qu'il y a pleins de fonction Zend très pratique pour utiliser une base de données ?

  5. #5
    jux
    jux est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Points : 40
    Points
    40
    Par défaut
    Parce que ces fonctions ont déjà été codées par un autre développeur alors que Zend n'était pas utilisé.

  6. #6
    jux
    jux est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Points : 40
    Points
    40
    Par défaut
    Je ne vois pas comment faire, je crois que je vais plutôt transformer en Zend.

    Par contre je ne vois pas d'équivalent à mysql_error($lnk) en Zend.

    Merci.

  7. #7
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Lorsqu'il y a une erreur, Zend_Db lève une exception Zend_Db_Exception. À toi de l'intercepter à l'aide de try catch et de faire le traitement nécessaire alors. Grâce à la méthode getMessage de la classe Zend_Db_Exception, tu pourras récupérer le message d'erreur.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/07/2013, 09h39
  2. Réponses: 3
    Dernier message: 19/12/2009, 11h49
  3. Réponses: 5
    Dernier message: 30/11/2009, 11h14
  4. fonction non reconnue avec des imports
    Par kowalski-m dans le forum Général Python
    Réponses: 5
    Dernier message: 14/11/2009, 10h47
  5. Réponses: 22
    Dernier message: 03/01/2008, 22h42

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