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

Bibliothèques et frameworks PHP Discussion :

[symfony2] FatalErrorException: Error: Maximum function nesting level of '100' reached, aborting!


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Par défaut [symfony2] FatalErrorException: Error: Maximum function nesting level of '100' reached, aborting!
    Bonjour,en essayant d'utiliser les collections je me retrouve avec cette erreur : "FatalErrorException: Error: Maximum function nesting level of '100' reached, aborting! in C:\wamp\www\Symfony\src\Grc\GtpBundle\Form\EntreeTPType.php line 48"
    j'ai cherché sur internet ,j'ai trouvé qu'il faut mettre une valeur supérieure à 100 à la ligne xdebug.max_nesting_level = 100 mais je la trouve pas dans mon php.ini.

    voila ce que j'ai fait:

    Contrôleur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    namespace Grc\GtpBundle\Controller;
     
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Response;
     
    use Grc\GtpBundle\Entity\EntreeTP;
    use Grc\GtpBundle\Form\EntreeTPType;
     
     
    $entree = new EntreeTP;
    $form = $this->createForm(new EntreeTPType, $entree);
     
    return $this->render('GrcGtpBundle:Gtp:feuilleTP.html.twig', array('nomMois'=>$nom_mois,'annee'=>$annee,							'dateDebSemaineFr'=>$dateDebSemaineFr,'num_week'=>$num_week,'jourTexte'=>$jourTexte,'dateSemaine'=>$dateSemaine,
    								'urlP'=>$urlP,'urlN'=>$urlN,'form'=>$form->createView())
    								);
    EntreeTPType
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    namespace Grc\GtpBundle\Form;
    
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
    
     $builder
            
    			->add( 'tempsPasse','collection',array(
    			'type' => new EntreeTPType(),
                 'allow_add'    => true,
                'allow_delete' => true,
    			'options' =>array(
    			'label'  => ' ')))
    
            ;
        }
        
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'Grc\GtpBundle\Entity\EntreeTP'
            ));
        }
    
        /**
         * @return string
         */
        public function getName()
        {
            return 'grc_gtpbundle_entreetp'; //FatalErrorException: Error: Maximum function nesting level of '100' reached, aborting! in C:\wamp\www\Symfony\src\Grc\GtpBundle\Form\EntreeTPType.php line 48
        }
    }
    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Salut,

    La ligne que tu cherches se trouve dans le fichier xdebug.ini.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Par défaut
    Merci Pour ta réponse,mais je vois pas vraiment où trouver le fichier xdebug.ini je crois que sur le lien que tu m'as donné ,lui est sur linux.
    je cherche toujours le fichier moi je suis sous windows et je travaille avec wamp

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Oui en effet, j'allais éditer mon message ^^

    Quand tu fais un phpinfo(), est-ce que xdebug est installé/activé ?
    Est-ce que l'erreur ne viendrait pas plutôt d'une boucle infinie dans un de tes templates Twig ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Par défaut
    voila ce que donne phpinfo()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    xdebug
     
    xdebug support	enabled
    Version	2.2.3
    IDE Key	no value
     
    Supported protocols	Revision
    DBGp - Common DeBuGger Protocol	$Revision: 1.145 $
     
    Directive	Local Value	Master Value
    xdebug.auto_trace	Off	Off
    xdebug.cli_color	0	0
    xdebug.collect_assignments	Off	Off
    xdebug.collect_includes	On	On
    xdebug.collect_params	0	0
    xdebug.collect_return	Off	Off
    xdebug.collect_vars	Off	Off
    xdebug.coverage_enable	On	On
    xdebug.default_enable	On	On
    xdebug.dump.COOKIE	no value	no value
    xdebug.dump.ENV	no value	no value
    xdebug.dump.FILES	no value	no value
    xdebug.dump.GET	no value	no value
    xdebug.dump.POST	no value	no value
    xdebug.dump.REQUEST	no value	no value
    xdebug.dump.SERVER	no value	no value
    xdebug.dump.SESSION	no value	no value
    xdebug.dump_globals	On	On
    xdebug.dump_once	On	On
    xdebug.dump_undefined	Off	Off
    xdebug.extended_info	On	On
    xdebug.file_link_format	no value	no value
    xdebug.idekey	no value	no value
    xdebug.max_nesting_level	100	100
    xdebug.overload_var_dump	On	On
    xdebug.profiler_aggregate	Off	Off
    xdebug.profiler_append	Off	Off
    xdebug.profiler_enable	Off	Off
    xdebug.profiler_enable_trigger	Off	Off
    xdebug.profiler_output_dir	c:/wamp/tmp	c:/wamp/tmp
    xdebug.profiler_output_name	cachegrind.out.%t.%p	cachegrind.out.%t.%p
    xdebug.remote_autostart	Off	Off
    xdebug.remote_connect_back	Off	Off
    xdebug.remote_cookie_expire_time	3600	3600
    xdebug.remote_enable	Off	Off
    xdebug.remote_handler	dbgp	dbgp
    xdebug.remote_host	localhost	localhost
    xdebug.remote_log	no value	no value
    xdebug.remote_mode	req	req
    xdebug.remote_port	9000	9000
    xdebug.scream	Off	Off
    xdebug.show_exception_trace	Off	Off
    xdebug.show_local_vars	Off	Off
    xdebug.show_mem_delta	Off	Off
    xdebug.trace_enable_trigger	Off	Off
    xdebug.trace_format	0	0
    xdebug.trace_options	0	0
    xdebug.trace_output_dir	\	\
    xdebug.trace_output_name	trace.%c	trace.%c
    xdebug.var_display_max_children	128	128
    xdebug.var_display_max_data	512	512
    xdebug.var_display_max_depth	3	3
    ma vue pour le moment est toute simple pour tester ,je l'inclue dans une autre vue qui n'a rien a voir avec le formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="well">
      <form method="post" {{ form_enctype(forms) }}>
        {{ form_widget(forms) }}
        <input type="submit" class="btn btn-primary" />
      </form>
    </div>

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Et dans ton php.ini tu n'as aucune ligne qui concernant xdebug ?
    Est-ce que tu es sûr d'être dans le bon php.ini ? (celui d'Apache normalement accessible depuis l'icône de Wamp)
    Est-ce que tu as redémarré Wamp ensuite ?

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Par défaut
    j'étais sur php.ini du répertoire php voila ce que j'ai pour xdebug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ; XDEBUG Extension
     
    zend_extension = c:\wamp\bin\php\php5.4.16\ext\php_xdebug-2.2.5-5.4-vc9.dll
     
    [xdebug]
    xdebug.remote_enable = off
    xdebug.profiler_enable = off
    xdebug.profiler_enable_trigger = off
    xdebug.profiler_output_name = cachegrind.out.%t.%p
    xdebug.profiler_output_dir = "c:/wamp/tmp"
    //j'ai essayé d'ajouter la ligne mais ça marche  pas non plus
    xdebug.max_nesting_level = 200
    sinon les deux sont pareil à ce que je vois celui d'appache:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ; XDEBUG Extension
     
    zend_extension = "c:/wamp/bin/php/php5.4.16/zend_ext/php_xdebug-2.2.3-5.4-vc9.dll"
     
    [xdebug]
    xdebug.remote_enable = off
    xdebug.profiler_enable = off
    xdebug.profiler_enable_trigger = off
    xdebug.profiler_output_name = cachegrind.out.%t.%p
    xdebug.profiler_output_dir = "c:/wamp/tmp"

  8. #8
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Est-ce que tu as essayé de rajouté cette ligne dans le php.ini d'Apache et de redémarrer le tout ?
    Est-ce que le check.php de Symfony2 t'indique de modifier cette valeur ?

    Si tout ça ne change rien, ça doit venir de ton code.
    Utilise la doc (http://symfony.com/fr/doc/2.4/cookbo...llections.html) pour vérifier ce que tu as fait et relis ton code, je viens de voir des choses surprenantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entree = new EntreeTP;
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entree = new EntreeTP();
    Bon courage

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Par défaut
    Re salut,

    dsl pour le retard je viens de rentrer chez moi, sinon Merci pour tes réponses .
    pour les parenthèses avec ou sans ça change rien pour l'erreur j'ai essayé avant .
    pareil pour le php.ini Apache

  10. #10
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Et si tu désactives xdebug en rajoutant un ; devant la ligne zend_extension = c:\wamp\bin\php\php5.4.16\ext\php_xdebug-2.2.5-5.4-vc9.dll dans tes deux php.ini et que tu redémarres Apache ?


    Sinon dans la doc officielle ils conseille de modifier cette valeur en rajoutant le bout de code suivant dans le app/autoload.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     use Doctrine\Common\Annotations\AnnotationRegistry;
     
    $loader = require __DIR__.'/../vendor/autoload.php';
     // [...]
     
    // Change nested level max for xdebug
    if (false !== ini_get('xdebug.max_nesting_level')) {
        ini_set('xdebug.max_nesting_level', 500);
    }
     
    return $loader;

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Par défaut
    Bonjour,
    Apparemment le problème vient de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *****$builder->add('tempsPasse', 'collection', array('type' => new EntreeTPType()
    où j'appelle EntreeTPType dans EntreeTPType.php

    sinon pour bien comprendre voila ce que je veux faire ,j'ai besoin d'avoir une ligne de 5 instances ou bien 5 input pour les champs de l'entité EntreeTP et je dois pouvoir ajouter une ligne ou plus avec un bouton.

    j'ai lu la doc pour les collections et l'exemple qu'ils ont donné ne colle pas avec ce que je veux faire ,car ils créent une classe supplémentaire 'Tag' dans l'exemple ici http://symfony.com/fr/doc/2.4/cookbo...llections.html

    est ce que c'est possible de faire avec ma classe EntreeTP seule?

    Je suis encore débutant en symfony2,donc si vous avez une autre solution que les collections merci de la proposer

  12. #12
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Je ne connais pas assez bien Symfony2 pour être certain de ce que j'avance, mais je pense que tu vas être contraint de créer une autre classe de manière à avoir une relation one-to-many et pour utiliser les collections de formulaires.

    Du coup, le mieux je pense, c'est que tu crées une classe correspondant à tes 5 (ou n) lignes et tu modifies ta classe EntreeTP de manière à indiquer qu'elle contient un champ qui est une collection d'objets de ta nouvelle classe. Le cookbook de Symfony est assez clair à ce niveau-là, tu devrais y arriver sans trop de difficultés

    Après ça dépend aussi de ce que tu veux stocker dans tes lignes, si c'est du texte simple tu peux très bien faire une collection "simple" sans nouvelle classe, mais dans le cas contraire je pense que tu seras obligé d'en créer une nouvelle. Bon courage

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 13
    Par défaut
    Merci Thomas pour tes réponses,je suis entrain d'essayer une autre approche j'espère réussir cette fois

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/05/2015, 15h48
  2. Réponses: 2
    Dernier message: 11/05/2012, 16h52
  3. [eZ Publish] Maximum function nesting level of '100'
    Par zouberi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 14
    Dernier message: 26/01/2012, 15h25
  4. Réponses: 4
    Dernier message: 21/07/2006, 15h33
  5. class php5 - Fatal error: main() [function.main]
    Par tom261285 dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2005, 14h41

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