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

Symfony PHP Discussion :

Call to undefined function include_partial [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut Call to undefined function include_partial
    Bonsoir à touuus !

    J'explique mon petit problème.
    Ca fait un mois que je développe sous symfony dans l'entreprise ou je fais mon stage.
    Je voulais avancer chez moi et donc j'ai installer xampplite, et j'ai fais un gros COPIER COLLER de mon projet symfony.
    Je suis sous debian en stage et sous windows 7 chez moi.

    Quand j'ouvre ma page, voilà l'erreur :

    Fatal error: Call to undefined function include_partial() in C:\xampplite\htdocs\monprojet\...\indexSuccess.php on line 37

    Ms là... include_partial() je vois pas du tout pourquoi il le comprend pas!

    Qqun a une idée ?
    J'ai regardé sur internet et je vois rien, dc je me tourne vers vous =)

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Jamais utilisé avec XampLite

    Par contre je développe sous Windows avec Wamp et teste sur Débian sans problème.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut
    Salut !

    En fait mon problème est sûrement un peu plus grave...

    J'ai refait un projet complet, au cas où ça pouvait venir de ça. Et dès le début, j'ai

    Fatal error: Call to undefined function .... Il n'en reconnaît aucune. La première c'est http_metas...() il me semble, il ne reconnaît pas les use_helpers, enfin rien ...

    Personne n'a connu ça?

    Si qqun peu m'aider, mrci beaucoup

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Où il est peut-être moins grave...

    Il semblerait qu'il y ait un problème, pour symfony, a charger les helper de base.

    Mais il arrive jusqu'à l'exécution du template, donc tout le reste des librairies ce chargent correctement.

    Je n'ai jamais vu de cas semblable, donc creusons un peu plus.

    Tous les helpers sont chargé par une méthode de l'objet $configuration, la méthode loadhelper().

    Cette méthode permet de vérifier si le helper à déjà été chargé par un autre module ou se trouve en cache, si non, il le charge depuis les dossiers des helpers en utilisant la méthode getHelperDir, qui retourne un array des répertoires des helpers.

    Cette fonctions se base sur plusieurs variables internes pour retrouver les dossiers des helpers qui peuvent se trouver dans le lib de symfony, dans ceux des plugins ou dans celui de votre application... Du choix en perspective.

    Celui qui nous intéresse est le dossier de symfony : sf_app_module_dir

    Une fois ces éléments en main on a une idée de ce que nous devons chercher...

    Et là, on va tricher. Plutôt que d'aller dans différents fichiers de configuration voir ce qui y est définit, on va essayer de trouver ce que symfony lui a récupéré.

    Donc, je te propose, dans ton action de regarder le contenu du tableau retourné par la méthode getHelperDir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $context = sfContext::getInstance();
     
    $helperDir = $context->getConfiguration()->getHelperDir();
     
    printr($helperDir);
     
    die();
    Ce qui va nous afficher le tableau des répertoires où il va chercher les helper et nous donner une idée de ce qui ne marche pas.

    Du moins je l'espère...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut
    Je te remercie de l'aide que tu m'apportes.

    Je testerai à 6h dès que je rentre chez moi car dans l'entreprise où je suis, ça marche bien.

    Dès que j'ai testé ça, je reposterai le résultat pour vous tenir au courant et chercherai un solution.

    Merci encore

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut
    Bonsoir, me voilà de retour !

    Alors j'ai crée un nouveau module pour repartir de 0.

    Quand je met le code que tu m'as donné dans l'action, (le executeIndex), rien ne s'affiche. Page blanche.
    Quand je met le code dans le template :
    Fatal error: Class 'sfContext' not found in C:\xampplite\htdocs\monprojet3\apps\frontend\modules\test\templates\indexSuccess.php on line 2

    J'ai essayé de faire un simple echo dans le template et il marche.

    Voilà les nouvelles du moment... Si jamais t'as une idée.

    Merci beaucoup

  7. #7
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je pense qu'on est sur une piste.

    Si le code n'affiche rien, c'est peut-être parce qu'il n'a rien a afficher. Ce qui est une piste.

    Essaye de voir s'il passe par le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $context = sfContext::getInstance();
     
    echo 'je passe ici:';
    $helperDir = $context->getConfiguration()->getHelperDir();
    echo 'je passe par là:'; 
     
    printr($helperDir);
    echo "j'arrive ici:" 
     
    die();
    C'est un peu "con" comme code, mais si à l'affichage on a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    je passe ici:je passe par là:j'arrive ici:
    C'est qu'il est bien passé dans notre code, a exécuté la méthode getHelperDir() et n'avait rien à afficher en retour. Donc que la méthode getHelperDir ne retourne pas le tableau des dossiers où sont potentiellement stocké les fichiers des helpers. Ce qui n'est pas la solution mais qui va nous permettre de restreindre les recherches.

    Maintenant, si c'est notre problème, il ne va plus rester qu'à "démonter" notre méthode getHelperDir() et à comprendre pourquoi diable elle ne nous donnes pas, au moins, le dossier de base. Il y a beaucoup de possibilités, mais au moins, on aura déjà localisé la branche malade, restera à y localiser la feuille.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut
    Je viens de tester le nouveau code.

    Et toujours rien qui s'affiche. Page blanche.

    J'ai essayer de refaire tout un projet, et quand je lance juste le layout.php, j'ai
    Fatal error: Call to undefined function include_http_metas() in C:\xampplite\htdocs\monprojet\apps\frontend\templates\layout.php on line 4

    Et voilà le fichier layout.php que je n'ai pas touché :
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <?php include_http_metas() ?>
    <?php include_metas() ?>
    <?php include_title() ?>
    <link rel="shortcut icon" href="/favicon.ico" />
    <?php include_stylesheets() ?>
    <?php include_javascripts() ?>
    </head>
    <body>
    <?php echo $sf_content ?>
    </body>
    </html>

    Je ne sais pas si c'est plus simple de chercher l'erreur à partir du projet vide, où il n'y a même pas encore de modules, juste une application. Ou s'il vaut mieux continuer de chercher sur mon projet de base.

  9. #9
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Le fait de chercher sur un projet vide permet de s'affranchir de toutes les modifications intempestives qui pourraient avoir eu lieu dans un projet en activité.

    Le fait que tu aies le problème sur un projet vide est une excellente information.

    include_http_metas() est un helper, ce qui ne fait que confirmer que le problème vient des helper.

    Fait l'essai modifié que je t'ai posté juste avant.

    Vérifie dans ton dossier où tu as stocké symfony que tu aies bien un dossier lib/helper.


    Dés que l'on a compris pourquoi il ne voie aucun des dossier helper, tes applications fonctionneront.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut
    Me revoilà, en fait, lors de la création de d'un nouveau projet, le chmod 777 cache/ log/ ne marche pas, il me dit que chmod n'est pas reconnu en tant que commande interne ou externe...

    Pourtant j'ai bien %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;;dans ma variable système path.

    Mais bref, le problème ne vient sans doute pas de là.

    J'ai essayé le code que tu avais modifié dans l'action de mon module, il ne m'affichait toujours rien, aucun echo ne s'affichait.

    J'ai essayé dans le layout principal de mon projet vide, toujours l'erreur de l'helper include_http_metas().

    Merciiii pour ton aide

  11. #11
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Le code est à mettre dans l'action.

    Si rien ne s'affiche c'est que l'action n'est pas exécutée, ce que contredit l'exécution du template.

    Là je ne vois pas. Les informations que tu me donnes ne sont pas possible. Soit l'action est exécutée et interrompues par le die, soit elle n'est pas exécutée et dans ce cas il n'y a pas de layout qui s'affiche.

    Donc le protocol de test :
    • installation d'un projet vierge
    • création d'une application
    • création d'un module vierge
    • création d'une action avec le code
    • création d'un template
    • test de la bête par exécution du module et de l'action

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut
    Ca a marché après plusieurs tentatives.

    Enfin, j'ai suivi le tuto http://www.zoneo.fr/articles/install...5ddbea0e04314a
    mais sur un autre pc (sur XP)

    Tout s'est bien déroulé, j'ai du importé un autre fichier pour pouvoir utilisé les chmod, ls, etc...
    Mais j'ai pas eu de problème.

    Ensuite, j'ai copier coller tout mon répertoire xampp sur mon windows 7.
    Refaire mon virtualhost et quelques paramètrages.

    Et là, magie, ça a marché !

    Merci beaucoup à mimi68 pour le temps passé à m'aider

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

Discussions similaires

  1. [XSLT] Call to undefined function xslt_create
    Par rudy207 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/04/2009, 17h27
  2. [SGBD] Call to undefined function mysql_connect()
    Par monphp dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 29/01/2006, 21h33
  3. Call to undefined function mysql_connect()
    Par monphp dans le forum Installation
    Réponses: 1
    Dernier message: 29/12/2005, 13h31
  4. Réponses: 11
    Dernier message: 08/12/2005, 16h54
  5. Call to undefined function mysql_pconnect()
    Par shirya dans le forum Installation
    Réponses: 2
    Dernier message: 03/11/2005, 21h55

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