在我的 Symfony 应用程序中,我需要对文件进行几项操作:目录中的文件列表,使用 gpg 解密它们,使用外部软件解析输出并再次加密。
我的第一个问题是:这是解决这个问题的正确方法吗?在另一种情况下,我会编写 bash/python 脚本来执行此操作,但是由于从 Symfony API 读取信息(用户 ID、密码短语等),我认为将调用嵌入到应用程序中非常方便。
我的第二个问题更具体:有什么方法可以有效地处理命令行输出和错误?例如,当我调用“ls”时,如何轻松地将输出转换为文件名数组?
private function decryptAction()
{
$user_data_source = '/Users/myuser/datafiles/';
// Scan directory and get a list of all files
$process = new Process('ls ' . $user_data_source);
try {
$process->mustRun();
$files = explode(' ', $process->getOutput());
return $files;
} catch (ProcessFailedException $e) {
return $e->getMessage();
}
}