有沒有什麼辦法讓在Symfony Console應用程序運行的路徑?例如(在PATH
假設PHP解釋器):如何獲取Symfony控制檯應用程序的運行路徑?
cd /tmp
php /home/user/myapplication/app/console.php mycommand
應該返回/tmp
爲console.php
從/tmp
啓動。
有沒有什麼辦法讓在Symfony Console應用程序運行的路徑?例如(在PATH
假設PHP解釋器):如何獲取Symfony控制檯應用程序的運行路徑?
cd /tmp
php /home/user/myapplication/app/console.php mycommand
應該返回/tmp
爲console.php
從/tmp
啓動。
getcwd()
會做你的需要。你可以從任何目錄執行app/console,PHP會知道它是哪一個。
我用下面的例子來驗證這一點。
<?php
namespace Acme\DemoBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class DemoCommand extends ContainerAwareCommand
{
protected function configure()
{
$this
->setName('demo:cwd')
->setDescription('Get Current Working Directory')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln(getcwd());
}
}
也許使用'GETCWD()'? – mkjasinski
@mkjasinski如果我用Symfony控制器(網絡環境)中的'exec'運行命令,會發生什麼情況? – gremo