2013-05-01 36 views
4

我最近將我的symfony項目上傳到我的webhoster。當使用控制檯時,我會得到以下錯誤,每當我應該輸入一些輸入。Symfony控制檯 - 未定義常量STDIN

Notice: Use of undefined constant STDIN - assumed 'STDIN' in 
/htdocs/symfony/vendor/symfony/symfony/src/Symfony/Component/Console/Helper/DialogHelper.php line 80 

文件那給的錯誤是在這裏:

https://github.com/symfony/Console/blob/master/Helper/DialogHelper.php

線103

我asume是我的PHP配置是有點不對。但是我沒有完全控制服務器及其設置。

有什麼我可以做的,以解決問題?

+0

您可以訪問配置頂部Symfony的.php?它向您展示了您需要解決的與Symfony一起工作的建議和錯誤。 – SirDerpington 2013-05-01 10:49:36

+0

是的,只列出了可選的建議。其他一切也在工作(路由,數據庫連接)。控制檯命令,不需要任何額外的輸入也工作正常 – marius2k12 2013-05-01 10:56:29

+0

你怎麼調用控制檯腳本?通過瀏覽器?或者在命令行?在後一種情況下,'php'或'php-cgi'? – igorw 2013-05-01 14:21:40

回答

3

只需添加:

define('STDIN',fopen("php://stdin","r")); 

中的/vendor/symfony/symfony/src/Symfony/Component/Console/Helper/DialogHelper.php

<?php 

/* 
* This file is part of the Symfony package. 
* 
* (c) Fabien Potencier <[email protected]> 
* 
* For the full copyright and license information, please view the LICENSE 
* file that was distributed with this source code. 
*/ 

namespace Symfony\Component\Console\Helper; 

use Symfony\Component\Console\Output\OutputInterface; 
use Symfony\Component\Console\Formatter\OutputFormatterStyle; 

define('STDIN',fopen("php://stdin","r")); 
... 
+2

更改框架文件聽起來像一個壞主意。你不能在你自己的文件裏面定義STDIN嗎? – Luke 2013-10-11 01:38:40

+2

對於類似的問題,我已經在AppKarnel中定義了這些常量。因爲它將同時加載Web和控制檯。有效 :) – Anis 2014-08-15 14:06:18