有没有什么办法让在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