如何在Symfony2中使用php控制台

时间:2010-05-31 23:08:45

标签: command-line-interface symfony

我找到了控制台并像这样运行:

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 个答案:

答案 0 :(得分:6)

控制台的使用方式如下:$ php app/console [command name]

答案 1 :(得分:2)

从应用根:./app/console --shell

答案 2 :(得分:1)

找到答案。

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"

答案 3 :(得分:1)

使用以下命令创建新的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

答案 4 :(得分:0)

我将a bash script放在一起,通过允许从项目中的任何位置轻松访问CLI工具来帮助解决这个问题。下载它,使其可执行并将其放入PATH(例如/ usr / local / bin /)。

然后,您无需位于项目的根目录即可访问CLI工具。只需离开sf <command>。它适用于Symfony 1.3 / 1.4和Symfony2。

答案 5 :(得分:-1)

我试图拒绝你自己的答案,但我没有足够的代表!

-

Sergi和ok准确地回答了你,但我会扩展,以防任何读这篇文章的人感到困惑。

你需要使用“php console Symfony”,因为你自己不容易使用文件夹名称。

我喜欢在我的主文件夹中工作。每当我登录时,我总是从那里开始,所以我在家里创建了一个文件夹,如: ~/web/sandbox.sf2

然后您可以使用符号链接到/ var / www,如: sudo ln -s ~/web/sandbox.sf2/home/myusername/web/sandbox.sf2

因此,当您处理文件时,您将知道您已经在symfony2项目中。 (我也很开心,起初使用它很奇怪,但我已经习惯了,并且使用了Tobias同样的答案,一个bin脚本将app / console包装为sf2 init:例如bundle和sf list)

你显然也有用户权限问题(http://google.com/search?q=linux+permissions,第二个结果看起来不错)。

确保您作为用户/群组可以编辑您的文件和文件夹。 php app / console以您使用的用户身份运行(在本例中为root)。 还要确保apache用户/组可以读取您的文件。

-

请不要使用root帐户chmod 777 -R当某些东西不能正常工作时。如果要将Web服务器暴露给万维网,请测试简单的所有权权限,简单且必要的概念。