Alat untuk membuat bekerja dengan Konsol Symfony menjadi lebih hebat.
Paket ini tersedia di Packagist:
composer require efrane/console-additionsBatchKelas ini menawarkan perintah batching dari Aplikasi Konsol Symfony. Ini dapat berguna ketika menulis hal-hal seperti penerapan atau pembaruan skrip sebagai perintah konsol yang memanggil banyak perintah lain dalam urutan tertentu, misalnya pembaruan cache, migrasi basis data, dll.
Penggunaan dalam Command::execute :
EFrane ConsoleAdditions Command Batch:: create ( $ this -> getApplication (), $ output )
-> add ( ' my:command --with-option ' )
-> add ( ' my:other:command for-this-input ' )
-> run ();Perintah Kerang
Batch dapat berupa kumpulan aplikasi konsol dan perintah shell sistem yang saling terkait. Ini adalah fitur lanjutan yang memerlukan paket symfony/process sebagai ketergantungan tambahan.
Karena perintah shell secara internal membuat objek Process , Batch API memaparkan metode untuk menambahkan perintah shell:
addShell menambahkan proses dengan konfigurasi yang diberikan (lihat Batch::addShell untuk detailnya)addShellCb(string $cmd, callable $cb) membuat proses dan meneruskannya ke callback untuk konfigurasi lebih lanjut. Ini sangat berguna ketika perintah yang diinginkan memerlukan semacam proses perpipaan.Membungkam Kesalahan
Dimungkinkan untuk menjalankan sekumpulan perintah tanpa memberikan pengecualian.
Paket ini menawarkan antarmuka keluaran konsol tambahan:
FileOutputFileOutputs menulis semua datanya ke aliran file dan hadir dalam bentuk nyata:
NativeFileOutput menggunakan fungsi streaming file PHP asli, sehingga menjadi pilihan yang baik untuk tujuan lokal dan bergantung pada konfigurasi protokol streaming PHP server Anda, bahkan mungkin cukup untuk tujuan jarak jauh.
FlysystemFileOutput di sisi lain meneruskan data streaming ke adaptor league/flysystem , sehingga dapat mengirim data tersebut ke tujuan mana pun yang didukung Flysystem, yaitu S3, Dropbox, FTP, dll.
MultiplexedOutputMultiplexedOutput dapat digunakan untuk menggabungkan beberapa antarmuka keluaran untuk bertindak sebagai satu. Ini adalah pendamping logis dari keluaran file karena biasanya seseorang mungkin ingin mengirim keluaran ke konsol pengguna dan beberapa tujuan lainnya. Pengaturan sederhana di dalamnya mungkin terlihat seperti ini:
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
}
}