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

MVC PHP Discussion :

Set_include_path() + zend


Sujet :

MVC PHP

  1. #1
    Membre éclairé Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Par défaut Set_include_path() + zend
    Bonjour,

    Je dois utiliser dans le cadre de l'exécution d'un script, certaines classes du zend framework. Je n'ai aucuns problèmes dans l'exécution de mon script ni au niveau des appels de classes zend.

    Cependant, je dois maintenant intégrer ce script en tant que module dans mon application.
    Lorsque, j'exécute de manière indépendante le script soit un répertoire "script" contenant "script.php" et le dossier zend, pas de problème le script retourne de bons résultats.
    Maintenant, lorsque j'exécute ce même script par un "include" dans l'index de mon application, index contenu à la racine de mon site donc je passe par le chemin "script/script.php", j'ai une erreur du type "include path zend ... ".

    J'ai fait quelques recherches, il faudrait utiliser la fonction set_include_path pour zend ou autres.

    Pouvez-vous m'éclairer sur le sujet ?

    Merci à vous

    Cordialement

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    Je dois admettre que ton message n'est pas très clair... des morceaux de code des inclusions et un mini "schéma" concis de la structure aiderait

    Mais je pense savoir où est le problème.

    Quand tu utilises ton script directement le dossier courant est celui du dit script (soit script/ si j'ai bien compris ?), or quand tu l'inclus depuis un fichier le chemin courant est celui du fichier appelé, soit un niveau plus "haut".

    set_include_path pourrait t'aider en effet à rajouter le dossier script/ dans les dossiers dans lesquelles chercher les fichiers à inclure.

    Essaye quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set_include_path('script/' . PATH_SEPARATOR . get_include_path());

  3. #3
    Membre éclairé Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Par défaut
    Salut,

    Je vais expliquer d'une autre manière, sachant que mailing.php utilise des classes zend.

    Deux cas se présentent :

    - Premier cas : éxécution directe de mailing.php dans le répertoire module avec le dossier zend. ==> Pas de problèmes majeurs.

    - Deuxième cas : je fais un include de mailing. php dans index.php situé à un niveau supérieur. Dans index.php, je met en place ceci : include("module/mailing.php"); ==> Cela me retourne un problème de PATH ...

    (Arborescence :
    ¤ index.php
    ¤ module/
    ¤ mailing.php
    ¤ zend/
    ... classes zend ...
    )

    J'espère que je me suis fais mieux comprendre. Je vais tester avec ta proposition sachant que j'aimerai bien comprendre.

    Merci

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Je suppose que le répertoire Zend est contenu dans module ?

    Pour que les classes du zend framework fonctionnent correctement, il faut que ce répertoire Zend soit directement situé dans un dossier listé dans l'include_path de PHP (liste des répertoires dans lequel les fichiers seront ercherchés en cas d'include ou de require).

    Dans ton cas, si j'ai bien compris, c'est le répertoire module. Or, par défaut, dans ton fichier php.ini, l'include path contient au moins '.' (le répertoire courant). Quand tu exécutes directement le script mailing.php, le répertoire courant est module... Et donc le framework trouve ses petits.

    Quand tu éxécutes le script index.php, le répertoire courant est le parent de module. Et 'module' ne se retrouve plus dans l'include_path... Zend ne retrouve pas ses petits.

    Si tu modifies l'include_path comme proposé par Nighty, tu pourras même inclure ton script mailing.php directement : include('mailing.php') au lieu de include('module/mailing.php'). Pour info, si tu as la main sur le fichier php.ini, tu peux aussi y modifier directement l'include_path (et dans ce cas ça sera valable pour l'ensemble des sites gérés par ce serveur).

  5. #5
    Membre éclairé Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Par défaut
    Salut,

    C'est exactement ce que je recherchais comme explication.

    J'ai donc procédé comme dit précedemment et maintenant mes scripts s'éxécutent convenablement, d'ou cette histoire de set_include_path.

    Merci beaucoup pour vos explications.

    Cordialement

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/11/2006, 08h10
  2. Certification Zend PHP
    Par zero d dans le forum Zend
    Réponses: 1
    Dernier message: 14/02/2006, 15h12
  3. Réponses: 8
    Dernier message: 20/01/2006, 13h46
  4. installation zend ( double instance )
    Par ska_root dans le forum Apache
    Réponses: 1
    Dernier message: 02/10/2005, 14h28
  5. [ZEND] _Zend_Hash_init est introuvable
    Par christophebmx dans le forum Zend
    Réponses: 1
    Dernier message: 23/09/2005, 16h06

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