2010-05-31 38 views
3

je trouve la console et l'exécuter comme ceci:Comment utiliser la console php dans Symfony2

[email protected]:/var/www/sandbox/hello# php console 
Symfony version 2.0.0-DEV - hello 

Usage: 
    Symfony [options] command [arguments] 

Options: 
    --help  -h Display this help message. 
    --quiet  -q Do not output any message. 
    --verbose -v Increase verbosity of messages. 
    --version -V Display this program version. 
    --color  -c Force ANSI color output. 
    --no-interaction -n Do not ask any interactive question. 
    --shell  -s Launch the shell. 

Available commands: 
    help    Displays help for a command (?) 
    list    Lists commands 
assets 
    :install   
bundle 
    :pharize   
container 
    :graphviz   
doctrine 
    :generate-proxies 
init 
    :application  
    :bundle    
router 
    :debug    Displays current routes for an application 
    :dump-apache  

Mais je ne peux pas courir l'une de ces commandes. Je suis en train comme ceci:

console php symfony -h

Mais je reçois

[InvalidArgumentException]   
Command "Symfony" is not defined. 

Toutes les suggestions?

Répondre

1

Trouvez moi une réponse.

[email protected]:/var/www/sandbox/hello# chmod 777 /var/www/sandbox/src/Bundle 
[email protected]:/var/www/sandbox/hello# php console init:bundle "Bundle\\ValugiBundle" 
+1

Cette syntaxe ne semble pas correcte. Vous êtes censé exécuter des commandes à partir du répertoire racine, et non à l'intérieur du dossier de l'application. – xaav

+0

c'était il y a environ un an ... symfony était vraiment bêta –

2

de racine de l'application: ./app/console --shell

6

Console est utilisé comme ceci: $ php app/console [command name]

1

Utilisez ce qui suit pour créer un nouveau paquet de Symfony2:

php app/console init:bundle Acme\\DemoBundle src 

Cela va créer un nouveau paquet dans src avec cette structure de répertoires:

src/Acme/DemoBundle/ 
        AcmeDemoBundle.php 
        Controller/ 
           DefaultController.php 
        Resources/ 
           config/ 
            routing.yml 
           views/ 
            Default/ 
              index.html.twig 

et l'espace de noms sera Acme\DemoBundle.

0

J'ai rassemblé a bash script pour vous aider en permettant à l'outil CLI d'être facilement accessible de partout dans votre projet. Téléchargez-le, rendez-le exécutable et placez-le dans votre PATH (/ usr/local/bin/par exemple).

Ensuite, vous n'avez pas besoin d'être à la racine de votre projet pour atteindre l'outil CLI. Juste le feu sf <command>. Cela fonctionne à la fois pour Symfony 1.3/1.4 et Symfony2.

-1

J'ai essayé de voter en bas de votre propre réponse mais je n'ai pas assez de représentant pour cela!

-

et Sergi ok vous a répondu avec précision, mais je vais développer au cas où quelqu'un est la lecture de ce que vous êtes confus.

Vous avez pensé que vous deviez utiliser "console php Symfony" parce que vous ne faites pas de noms de dossier facile sur vous-même.

J'aime travailler à partir de mon dossier personnel. Je n'y commence toujours à chaque fois que je me connecte donc je me crée un dossier dans ma maison comme:
~/web/sandbox.sf2

alors vous pouvez utiliser des liens symboliques vers/var/www comme:
sudo ln -s ~/web/sandbox.sf2/home/myusername/web/sandbox.sf2

donc quand vous travaillez sur vos fichiers, vous saurez que vous êtes déjà dans un projet symfony2. (et je pensais que c'était bizarre de l'utiliser comme ça au début, mais je m'y suis habitué, et j'ai utilisé le même genre de réponse de Tobias, un script bin pour encapsuler app/console en tant qu'init2: bundle and sf list

Vous avez évidemment aussi des problèmes de permission d'utilisateur (http://google.com/search?q=linux+permissions, le deuxième résultat semble bon).

Assurez-vous qu'en tant qu'utilisateur/groupe pouvez modifier vos fichiers et dossiers. L'application/console php s'exécute en tant qu'utilisateur que vous avez utilisé (root dans ce cas). Assurez-vous également que l'utilisateur/groupe apache peut lire vos fichiers.

-

Et s'il vous plaît, ne pas utiliser le compte root pour chmod 777 -R quand quelque chose ne fonctionne pas. Tester la permission de propriété simple, son concept facile et nécessaire si vous exposer un serveur Web à l'Internet.

+0

Où était tout le monde il y a 1 an et demi? Ce post est sur une très très bêta Symfony2. –

+0

Comme il s'agit d'une version bêta de sf2, vous pouvez toujours supprimer cette question car personne ne rencontrera ce problème. – bksunday