2010-05-31 99 views
3

我發現控制檯像這樣運行:如何使用PHP控制檯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  

但我不能運行任何的命令。我想是這樣的:

PHP控制檯的Symfony -h

,但我得到

[InvalidArgumentException]   
Command "Symfony" is not defined. 

有什麼建議?

回答

1

找到自己的答案。

[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

該語法看起來不正確。你應該從根目錄執行命令,而不是在應用程序文件夾內。 – xaav 2011-05-16 00:30:25

+0

這是大約一年前... symfony是真的測試版 – 2011-05-18 07:03:34

2

從應用程序根:./app/console --shell

6

控制檯使用這樣的:$ php app/console [command name]

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

0

我把a bash script放在一起,通過允許您的項目中的任何地方輕鬆訪問CLI工具來實現這一點。下載它,使其可執行並放入PATH(例如/ usr/local/bin /)。

然後,您不需要在您的項目的根目錄中找到CLI工具。只需開除sf <command>。它適用於Symfony 1.3/1.4和Symfony2。

-1

我試着投下你自己的答案,但我沒有足夠的代表它!

-

塞爾吉和確定準確的回答你,但因爲你是我的情況下,任何人讀這是擴大混淆。

你需要使用「php console 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應用程序/控制檯以您使用的用戶身份運行(在本例中爲root)。 還要確保Apache用戶/組可以讀取您的文件。

-

並請,不要使用root帳戶和chmod 777 -R當事情不工作。如果您要將Web服務器暴露給萬維網,請測試簡單的所有權許可,這是一種簡單且必要的概念。

+0

大家1年半前在哪裏?這篇文章是關於非常非常beta的Symfony2。 – 2011-08-29 19:50:43

+0

由於它是sf2的測試版,您可以隨時刪除此問題,因爲沒有人會遇到此問題。 – bksunday 2011-09-08 04:30:08