代码之家  ›  专栏  ›  技术社区  ›  Elzo Valugi

如何在symfony2中使用php控制台

  •  3
  • Elzo Valugi  · 技术社区  · 14 年前

    我找到了控制台,然后像这样运行它:

    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控制台symfony-h

    但我得到

    [InvalidArgumentException]         
    Command "Symfony" is not defined.  
    

    有什么建议吗?

    6 回复  |  直到 10 年前
        1
  •  6
  •   A.L    10 年前

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

        2
  •  2
  •   A.L    10 年前

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

        3
  •  1
  •   Elzo Valugi    14 年前

    给自己找个答案。

    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"
    
        4
  •  1
  •   Banjer    14 年前

    使用以下方法创建新的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 .

        5
  •  0
  •   Tobias Sjösten    14 年前

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

    然后,您不需要在项目的根目录中就可以访问cli工具。只是开火 sf <command> . 它适用于symfony 1.3/1.4和symfony2。

        6
  •  -1
  •   bksunday    13 年前

    我试图投票否决你自己的答案,但我没有足够的代表!

    -

    塞吉和OK准确地回答了你的问题,但我会进一步说明,以防任何人读到这篇文章时和你一样困惑。

    你认为你需要使用“php控制台symfony”,因为你不容易让文件夹名自己。

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

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

    因此,当您处理您的文件时,您将知道您已经在一个symfony2项目中。 (一开始我也觉得很奇怪,但我已经习惯了,用tobias同样的答案,一个bin脚本来包装应用程序/控制台,比如sf2 init:bundle和sf list)

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

    确保您作为用户/组可以编辑文件和文件夹。php应用程序/控制台以您使用的用户的身份运行(本例中为根用户)。 还要确保Apache用户/组可以读取您的文件。

    -

    请不要在chmod 777-r中使用根帐户。测试简单的所有权权限,如果您要向万维网公开一个Web服务器,这是一个简单而必要的概念。