Symfony Console 작업을 더욱 멋지게 만들어주는 도구입니다.
이 패키지는 Packagist에서 사용할 수 있습니다.
composer require efrane/console-additions
Batch
이 클래스는 Symfony 콘솔 애플리케이션의 일괄 처리 명령을 제공합니다. 이는 캐시 업데이트, 데이터베이스 마이그레이션 등과 같이 설정된 순서로 다른 많은 명령을 호출하는 콘솔 명령으로 배포 또는 업데이트 스크립트와 같은 작업을 작성할 때 유용할 수 있습니다.
Command::execute
에서의 사용법:
EFrane ConsoleAdditions Command Batch:: create ( $ this -> getApplication (), $ output )
-> add ( ' my:command --with-option ' )
-> add ( ' my:other:command for-this-input ' )
-> run ();
쉘 명령
배치는 콘솔 애플리케이션과 시스템 셸 명령이 서로 얽혀 있는 집합일 수 있습니다. 이는 추가 종속성으로 symfony/process
패키지가 필요한 고급 기능입니다.
셸 명령은 내부적으로 Process
개체를 생성하므로 Batch
API는 셸 명령을 추가하기 위한 메서드에 노출됩니다.
addShell
지정된 구성으로 프로세스를 추가합니다(자세한 내용은 Batch::addShell 참조).addShellCb(string $cmd, callable $cb)
프로세스를 생성하고 추가 구성을 위해 이를 콜백에 전달합니다. 이는 원하는 명령에 일종의 프로세스 파이프가 필요할 때 특히 유용합니다.오류를 침묵시키다
예외를 발생시키지 않고 일괄 명령을 실행할 수 있습니다.
이 패키지는 추가 콘솔 출력 인터페이스를 제공합니다.
FileOutput
FileOutputs는 모든 데이터를 파일 스트림에 기록하고 구체적인 내용을 제공합니다.
NativeFileOutput
기본 PHP 파일 스트리밍 기능을 사용하므로 로컬 대상에 적합한 옵션이며 서버 PHP 스트리밍 프로토콜 구성에 따라 원격 대상에도 충분할 수도 있습니다.
반면에 FlysystemFileOutput
스트림 데이터를 league/flysystem
어댑터에 전달하여 해당 데이터를 Flysystem 지원 대상(예: S3, Dropbox, FTP 등)으로 보낼 수 있습니다.
MultiplexedOutput
MultiplexedOutput을 사용하면 여러 출력 인터페이스를 결합하여 하나로 작동할 수 있습니다. 일반적으로 출력을 사용자 콘솔과 다른 대상으로 보내기를 원하기 때문에 이것은 파일 출력의 논리적 동반자입니다. 내부의 간단한 설정은 다음과 같습니다.
class Command extends Symfony Component Console Command {
public function execute ( InputInterface $ input , OutputInterface $ output ) {
// send output to multiple destinations
$ output = new EFrane ConsoleAdditions Output MultiplexedOutput ([
$ output ,
new EFrane ConsoleAdditions Output NativeFileOutput ( ' command.log ' )
]);
// normal console command
}
}