Comment utiliser la console php dans Symfony2
-
05-10-2019 - |
Question
J'ai trouvé la console et l'exécuter comme ceci:
root@valugi-laptop:/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 exécuter 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?
La solution 3
moi-même trouver une réponse.
root@valugi-laptop:/var/www/sandbox/hello# chmod 777 /var/www/sandbox/src/Bundle
root@valugi-laptop:/var/www/sandbox/hello# php console init:bundle "Bundle\\ValugiBundle"
Autres conseils
Console est utilisé comme ceci: $ php app/console [command name]
A partir de l'application racine: ./app/console --shell
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 cette structure de répertoire:
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
.
Je mis ensemble un script bash pour aider avec ceci en permettant l'outil CLI pour être facilement accessible de partout dans votre projet. Téléchargez, le rendre exécutable et le mettre dans votre PATH (/ usr / bin local / / par exemple).
Ensuite, vous n'avez pas besoin d'être à la racine de votre projet pour atteindre l'outil CLI. Juste le feu loin sf <command>
. Il fonctionne à la fois Symfony 1.3 / 1.4 et Symfony2.
J'ai essayé de voter votre propre réponse, mais je n'ai pas assez représentant pour elle!
-
ok et Sergi vous avez répondu avec précision, mais je vais développer au cas où quelqu'un lisant ceci est confus que vous êtes.
Vous Tought vous avez besoin d'utiliser « console php symfony » parce que vous ne faites pas des noms de dossier facile sur vous-même.
J'aime travailler à partir de mon dossier. Je commence toujours là quand 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 tought aussi, il était bizarre de l'utiliser comme ça au début, mais je m'y suis habitué, et utilisé Tobias même genre de réponse, un script bin pour envelopper app / console comme initialisation SF2: bundle et la liste sf par exemple)
Vous avez évidemment aussi des problèmes d'autorisation de l'utilisateur ( http://google.com/search?q= linux + permissions , deuxième résultat semble bon).
Assurez-vous en tant qu'utilisateur / groupe peut éditer vos fichiers et dossiers. php app / exécute la console en tant qu'utilisateur vous avez utilisé (racine dans ce cas). Assurez-vous également que l'utilisateur apache / groupe peut lire vos fichiers.
-
Et s'il vous plaît, ne faites pas utiliser le compte root pour chmod 777 -R quand quelque chose ne fonctionne pas. Simple test d'autorisation de propriété, il est facile et un concept nécessaire si vous exposez un serveur Web pour le World Wide Web.