Tôi có lệnh Symfony Console
lặp lại trên bộ sưu tập các mục có khả năng lớn và thực hiện nhiệm vụ với từng mục. Vì bộ sưu tập có thể lớn, lệnh có thể mất nhiều thời gian để chạy (giờ). Khi lệnh kết thúc, nó sẽ hiển thị một số thống kê.Hủy và tiếp tục lệnh Symfony Console
Tôi muốn làm cho nó có thể hủy bỏ lệnh một cách tốt đẹp. Ngay bây giờ nếu tôi hủy bỏ nó (tức là với ctrl + c trong CLI), không có tóm tắt thống kê và không có cách nào để xuất các tham số cần thiết để tiếp tục lệnh. Một vấn đề khác là lệnh có thể bị chấm dứt ở giữa việc xử lý một mục - nó sẽ tốt hơn nếu nó chỉ có thể chấm dứt giữa các mục xử lý.
Vì vậy, có cách nào để yêu cầu lệnh "hủy bỏ độc đáo càng sớm càng tốt" hoặc có lệnh ctrl + c được hiểu là như vậy không?
Tôi đã thử sử dụng sự kiện ConsoleEvents::TERMINATE
, mặc dù các trình xử lý cho điều này chỉ được kích hoạt khi hoàn thành lệnh, chứ không phải khi tôi ctrl + c điều. Và tôi đã không thể tìm thêm thông tin về việc thực hiện các lệnh có thể tiếp tục như vậy.
Tôi nghĩ bằng cách tạo đầu vào tương tác, bạn sẽ có thể khắc phục sự cố, nhưng tôi không biết chính xác bạn nên triển khai như thế nào để * trên nhấn phím cụ thể chấm dứt lệnh và cung cấp cho bạn số liệu thống kê * Liên kết này có thể giúp [http://davidbu.ch/slides/20130613_techtalk_symfony-console.html] từng bước tạo lệnh tương tác – Javad
Hoặc bạn có thể kiểm tra trình xử lý sự kiện trong lệnh và dựa vào đó chấm dứt lệnh của bạn [http: // symfony .com/doc/current/components/console/events.html] – Javad