Impossible de générer un bundle

Exception : Symfony\Component\Debug\Exception\FatalThrowableError

Le problème exposé dans ce sujet a été résolu.

Bonjour,

j’essaie de générer un nouveau bundle avec Symfony, mais j’ai toujours l’exception suivante :

1
2
[Symfony\Component\Debug\Exception\FatalThrowableError]                          
Parse error: syntax error, unexpected 'bundle' (T_STRING), expecting ',' or ')'

J’ai déjà modifié la section autoload/psr-4 de mon fichier composer.json comme ceci :

1
2
3
"psr-4": {
    "": "src/"
}

Et fait un composer dump-autoload, mais toujours la même chose… Voici toute l’exécution de la commande php bin/console generate:bundle :

 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
$ php bin/console generate:bundle


  Welcome to the Symfony bundle generator!  


Are you planning on sharing this bundle across multiple applications? [no]: 

Your application code must be written in bundles. This command helps
you generate them easily.

Give your bundle a descriptive name, like BlogBundle.
Bundle name: PP/UserBundle

In your code, a bundle is often referenced by its name. It can be the
concatenation of all namespace parts but it's really up to you to come
up with a unique name (a good practice is to start with the vendor name).
Based on the namespace, we suggest PPUserBundle.

Bundle name [PPUserBundle]: 

Bundles are usually generated into the src/ directory. Unless you're
doing something custom, hit enter to keep this default!

Target Directory [src/]: 

What format do you want to use for your generated configuration?

Configuration format (annotation, yml, xml, php) [annotation]: yml


  Bundle generation  




  [Symfony\Component\Debug\Exception\FatalThrowableError]                          
  Parse error: syntax error, unexpected 'bundle' (T_STRING), expecting ',' or ')'  


generate:bundle [--namespace NAMESPACE] [--dir DIR] [--bundle-name BUNDLE-NAME] [--format FORMAT] [--shared] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

Je n’arrive pas à comprendre le problème, d’autant plus que c’est le deuxième bundle que je génère. Je n’ai pas eu de problème pour la génération de mon premier bundle. Merci pour votre aide.

+0 -0

OK, voici ce que me rajoute cette commande :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Exception trace:
 () at /home/raphael/public_html/pepiciel/vendor/sensio/generator-bundle/Generator/BundleGenerator.php:62
 Symfony\Component\Debug\DebugClassLoader->loadClass() at n/a:n/a
 spl_autoload_call() at /home/raphael/public_html/pepiciel/vendor/sensio/generator-bundle/Command/GenerateBundleCommand.php:417
 Sensio\Bundle\GeneratorBundle\Command\GenerateBundleCommand->createGenerator() at /home/raphael/public_html/pepiciel/vendor/sensio/generator-bundle/Command/GeneratorCommand.php:42
 Sensio\Bundle\GeneratorBundle\Command\GeneratorCommand->getGenerator() at /home/raphael/public_html/pepiciel/vendor/sensio/generator-bundle/Command/GenerateBundleCommand.php:85
 Sensio\Bundle\GeneratorBundle\Command\GenerateBundleCommand->execute() at /home/raphael/public_html/pepiciel/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:264
 Symfony\Component\Console\Command\Command->run() at /home/raphael/public_html/pepiciel/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:906
 Symfony\Component\Console\Application->doRunCommand() at /home/raphael/public_html/pepiciel/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:224
 Symfony\Component\Console\Application->doRun() at /home/raphael/public_html/pepiciel/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:81
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/raphael/public_html/pepiciel/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:125
 Symfony\Component\Console\Application->run() at /home/raphael/public_html/pepiciel/bin/console:27

Ah d’accord.

Tu as la bonne version de PHP pour Symfony, que ce soit en ligne de commandes ou en web ? Ce genre d’erreur de syntaxe, ça peut arriver quand la version en ligne de commandes n’est pas compatible…

+0 -0

Normalement oui, j’ai la version 7 de PHP installée et j’utilise Symfony 3.3.9. Je sais que Symfony 3.3 nécessite au minimum PHP 5.5.9. La commande php bin/symfony_requirements ne me retourne pas d’erreur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
$ php bin/symfony_requirements 

Symfony Requirements Checker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> PHP is using the following php.ini file:
  /etc/php/php.ini

> Checking Symfony requirements:
  ..........................................


 [OK]                                         
 Your system is ready to run Symfony projects 


Note  The command console could use a different php.ini file
~~~~  than the one used with your web server. To be on the
      safe side, please check the requirements from your web
      server using the web/config.php script.

Je viens de regarder le fichier vendor/sensio/generator-bundle/Generator/BundleGenerator.php, il y avait en effet des problèmes de syntaxe dedans. Après les avoir corrigés, d’autres erreurs sont apparues.

J’ai alors décidé de faire simple et j’ai supprimé vendor/sensio/generator-bundle, puis fait un composer update et exécuté php bin/console generate:bundle.

Et ça marche ! Bon, par contre j’ai pas compris comment des erreurs ont pu s’inscruster dans vendor/sensio/generator-bundle/Generator/BundleGenerator.php, d’autant plus que je n’ai jamais touché à ce fichier manuellement…

Problème résolu du coup ! ^^

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte