diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-11 02:39:35 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-11 02:39:35 +0900 |
| commit | 6ae7e0d4b3eaf20e2d2cd3d000cf61ab0c9b6e83 (patch) | |
| tree | e39261f4aa7314fe8c75142670c76591cdaccb92 /crates/shirabe-external-packages/src/symfony/console/output | |
| parent | 5d3232a80be4b989e89cc7ae4e3642cc5acae030 (diff) | |
| download | php-shirabe-6ae7e0d4b3eaf20e2d2cd3d000cf61ab0c9b6e83.tar.gz php-shirabe-6ae7e0d4b3eaf20e2d2cd3d000cf61ab0c9b6e83.tar.zst php-shirabe-6ae7e0d4b3eaf20e2d2cd3d000cf61ab0c9b6e83.zip | |
feat(console): resolve phase-b TODOs in doRun and IO wiring
Wire up ConsoleIO with HelperSet/QuestionHelper, register the
ErrorHandler with the IO instance, and fall back to a default output
in run(). Replace resolved phase-b TODOs across the console, command,
io, factory, installer, dependency_resolver, and util modules; reclassify
the remaining blockers (typed Symfony command registry, stdin resource
caching) as phase-c.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/output')
3 files changed, 19 insertions, 10 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs b/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs index 5aa6ff0..b3010b9 100644 --- a/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs +++ b/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs @@ -1,4 +1,4 @@ -use crate::symfony::console::formatter::OutputFormatter; +use crate::symfony::console::formatter::OutputFormatterInterface; use crate::symfony::console::output::ConsoleOutputInterface; use crate::symfony::console::output::OutputInterface; @@ -9,7 +9,7 @@ impl ConsoleOutput { pub fn new( _verbosity: i64, _decorated: Option<bool>, - _formatter: Option<OutputFormatter>, + _formatter: Option<std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>>, ) -> Self { todo!() } @@ -64,10 +64,13 @@ impl OutputInterface for ConsoleOutput { fn is_decorated(&self) -> bool { todo!() } - fn set_formatter(&self, _formatter: OutputFormatter) { + fn set_formatter( + &self, + _formatter: std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>, + ) { todo!() } - fn get_formatter(&self) -> &OutputFormatter { + fn get_formatter(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>> { todo!() } } diff --git a/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs b/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs index 18eadfb..661cd7f 100644 --- a/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs +++ b/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs @@ -1,4 +1,4 @@ -use crate::symfony::console::formatter::OutputFormatter; +use crate::symfony::console::formatter::OutputFormatterInterface; use crate::symfony::console::output::ConsoleOutputInterface; pub trait OutputInterface: std::fmt::Debug { @@ -14,8 +14,11 @@ pub trait OutputInterface: std::fmt::Debug { fn is_debug(&self) -> bool; fn set_decorated(&self, decorated: bool); fn is_decorated(&self) -> bool; - fn set_formatter(&self, formatter: OutputFormatter); - fn get_formatter(&self) -> &OutputFormatter; + fn set_formatter( + &self, + formatter: std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>, + ); + fn get_formatter(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>; /// PHP: `$output instanceof ConsoleOutputInterface`. Default false; ConsoleOutput overrides. fn is_console_output_interface(&self) -> bool { diff --git a/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs b/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs index 6aa79b8..da7dbf4 100644 --- a/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs +++ b/crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs @@ -1,4 +1,4 @@ -use crate::symfony::console::formatter::OutputFormatter; +use crate::symfony::console::formatter::OutputFormatterInterface; use crate::symfony::console::output::OutputInterface; use shirabe_php_shim::PhpMixed; @@ -42,10 +42,13 @@ impl OutputInterface for StreamOutput { fn is_decorated(&self) -> bool { todo!() } - fn set_formatter(&self, _formatter: OutputFormatter) { + fn set_formatter( + &self, + _formatter: std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>, + ) { todo!() } - fn get_formatter(&self) -> &OutputFormatter { + fn get_formatter(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>> { todo!() } fn get_stream(&self) -> shirabe_php_shim::PhpResource { |
