Как использовать php-консоль в Symfony2 - PullRequest
3 голосов
/ 01 июня 2010

Я нашел консоль и запустил ее так:

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       

Но я не могу запустить ни одну из этих команд. Я пытаюсь так:

php console Symfony -h

Но я получаю

[InvalidArgumentException]         
Command "Symfony" is not defined.  

Есть предложения?

Ответы [ 6 ]

6 голосов
/ 07 февраля 2011

Консоль используется так: $ php app/console [command name]

2 голосов
/ 28 октября 2010

Из корня приложения: ./app/console --shell

1 голос
/ 18 марта 2011

Используйте следующее для создания нового пакета symfony2:

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

Это создаст новый пакет в src с такой структурой каталогов:

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

и пространство имен будет Acme\DemoBundle.

1 голос
/ 02 июня 2010

найди себе ответ.

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"
0 голосов
/ 29 августа 2011

Я пытался зарезервировать ваш собственный ответ, но мне не хватило репутации для него!

-

Сержи и ок точно ответили тебе, но я добавлю, если кто-нибудь прочтет это, как и ты.

Вы решили, что вам нужно использовать "php console Symfony", потому что вы не облегчаете себе имена папок.

Мне нравится работать из моей домашней папки. Я всегда начинаю там, когда я вхожу, поэтому я создаю себе папку в моем доме, например:
~/web/sandbox.sf2

тогда вы можете использовать символические ссылки на / var / www, например:
sudo ln -s ~/web/sandbox.sf2/home/myusername/web/sandbox.sf2

поэтому, когда вы будете работать с файлами, вы будете знать, что уже участвуете в проекте symfony2. (и я тоже подумал, что сначала было странно использовать его таким образом, но я привык к этому и использовал тот же ответ Тобиаса, сценарий bin, чтобы обернуть приложение / консоль, например, в sf2 init: bundle и sf list)

У вас, очевидно, также есть проблемы с правами пользователя (http://google.com/search?q=linux+permissions, второй результат выглядит неплохо).

Убедитесь, что вы как пользователь / группа можете редактировать свои файлы и папки. php app / console запускается как пользователь, которого вы использовали (в данном случае root). Также убедитесь, что пользователь / группа apache может читать ваши файлы.

-

И, пожалуйста, не используйте root-аккаунт для chmod 777 -R, когда что-то не работает. Проверьте разрешение простого владения, его легкость и необходимую концепцию, если вы открываете веб-сервер для всемирной паутины.

0 голосов
/ 13 апреля 2011

Я собрал bash-скрипт , чтобы помочь с этим, позволяя инструменту CLI быть легко доступным из любой точки вашего проекта. Загрузите его, сделайте его исполняемым и поместите его в путь PATH (например, / usr / local / bin /).

Тогда вам не нужно быть в корне вашего проекта, чтобы получить доступ к инструменту CLI. Просто выстрелить sf <command>. Он работает как для Symfony 1.3 / 1.4, так и для Symfony2.

...