aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/console/output
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-08 02:23:31 +0900
committernsfisis <nsfisis@gmail.com>2026-06-08 02:23:31 +0900
commit06368584a9277022d9cfc42d22c37f4cc6e580f8 (patch)
treea210e77273316ce94530391ea4e6dc4ee60b42ea /crates/shirabe-external-packages/src/symfony/console/output
parent318ea948f5932dfa7942081a269d62fd7161a9bf (diff)
downloadphp-shirabe-06368584a9277022d9cfc42d22c37f4cc6e580f8.tar.gz
php-shirabe-06368584a9277022d9cfc42d22c37f4cc6e580f8.tar.zst
php-shirabe-06368584a9277022d9cfc42d22c37f4cc6e580f8.zip
refactor(external-packages): drop component segment from symfony paths
Align the Symfony namespace mapping with the documented convention (symfony::component::X -> symfony::X) and remove now-unused console stub files. Update all import paths across the workspace. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/output')
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/output/console_output.rs73
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/output/console_output_interface.rs6
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/output/mod.rs4
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs23
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/output/stream_output.rs15
5 files changed, 108 insertions, 13 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
new file mode 100644
index 0000000..5aa6ff0
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs
@@ -0,0 +1,73 @@
+use crate::symfony::console::formatter::OutputFormatter;
+use crate::symfony::console::output::ConsoleOutputInterface;
+use crate::symfony::console::output::OutputInterface;
+
+#[derive(Debug)]
+pub struct ConsoleOutput;
+
+impl ConsoleOutput {
+ pub fn new(
+ _verbosity: i64,
+ _decorated: Option<bool>,
+ _formatter: Option<OutputFormatter>,
+ ) -> Self {
+ todo!()
+ }
+}
+
+impl ConsoleOutputInterface for ConsoleOutput {
+ fn get_error_output(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputInterface>> {
+ todo!()
+ }
+
+ fn set_error_output(&mut self, _error: std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>) {
+ todo!()
+ }
+}
+
+impl OutputInterface for ConsoleOutput {
+ fn is_console_output_interface(&self) -> bool {
+ true
+ }
+
+ fn as_console_output_interface(&self) -> Option<&dyn ConsoleOutputInterface> {
+ Some(self)
+ }
+
+ fn write(&self, _messages: &str, _newline: bool, _type: i64) {
+ todo!()
+ }
+ fn writeln(&self, _messages: &str, _type: i64) {
+ todo!()
+ }
+ fn set_verbosity(&self, _level: i64) {
+ todo!()
+ }
+ fn get_verbosity(&self) -> i64 {
+ todo!()
+ }
+ fn is_quiet(&self) -> bool {
+ todo!()
+ }
+ fn is_verbose(&self) -> bool {
+ todo!()
+ }
+ fn is_very_verbose(&self) -> bool {
+ todo!()
+ }
+ fn is_debug(&self) -> bool {
+ todo!()
+ }
+ fn set_decorated(&self, _decorated: bool) {
+ todo!()
+ }
+ fn is_decorated(&self) -> bool {
+ todo!()
+ }
+ fn set_formatter(&self, _formatter: OutputFormatter) {
+ todo!()
+ }
+ fn get_formatter(&self) -> &OutputFormatter {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/output/console_output_interface.rs b/crates/shirabe-external-packages/src/symfony/console/output/console_output_interface.rs
new file mode 100644
index 0000000..0b5b432
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/output/console_output_interface.rs
@@ -0,0 +1,6 @@
+use crate::symfony::console::output::OutputInterface;
+
+pub trait ConsoleOutputInterface: OutputInterface {
+ fn get_error_output(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>;
+ fn set_error_output(&mut self, error: std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>);
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/output/mod.rs b/crates/shirabe-external-packages/src/symfony/console/output/mod.rs
index 8f0c7f1..ac2b687 100644
--- a/crates/shirabe-external-packages/src/symfony/console/output/mod.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/output/mod.rs
@@ -1,5 +1,9 @@
+pub mod console_output;
+pub mod console_output_interface;
pub mod output_interface;
pub mod stream_output;
+pub use console_output::*;
+pub use console_output_interface::*;
pub use output_interface::*;
pub use stream_output::*;
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 4d5b7c7..18eadfb 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,24 +1,33 @@
use crate::symfony::console::formatter::OutputFormatter;
+use crate::symfony::console::output::ConsoleOutputInterface;
-pub trait OutputInterface {
- fn write(&mut self, messages: &str, newline: bool, r#type: i64);
- fn writeln(&mut self, messages: &str, r#type: i64);
- fn set_verbosity(&mut self, level: i64);
+pub trait OutputInterface: std::fmt::Debug {
+ // PHP class semantics: OutputInterface methods take &self with interior mutability,
+ // because output objects are shared by reference across the PHP code.
+ fn write(&self, messages: &str, newline: bool, r#type: i64);
+ fn writeln(&self, messages: &str, r#type: i64);
+ fn set_verbosity(&self, level: i64);
fn get_verbosity(&self) -> i64;
fn is_quiet(&self) -> bool;
fn is_verbose(&self) -> bool;
fn is_very_verbose(&self) -> bool;
fn is_debug(&self) -> bool;
- fn set_decorated(&mut self, decorated: bool);
+ fn set_decorated(&self, decorated: bool);
fn is_decorated(&self) -> bool;
- fn set_formatter(&mut self, formatter: OutputFormatter);
- fn get_formatter(&mut self) -> &mut OutputFormatter;
+ fn set_formatter(&self, formatter: OutputFormatter);
+ fn get_formatter(&self) -> &OutputFormatter;
/// PHP: `$output instanceof ConsoleOutputInterface`. Default false; ConsoleOutput overrides.
fn is_console_output_interface(&self) -> bool {
false
}
+ /// PHP: `$output instanceof ConsoleOutputInterface`. Returns the output as a
+ /// ConsoleOutputInterface trait object when it is one. Default None; ConsoleOutput overrides.
+ fn as_console_output_interface(&self) -> Option<&dyn ConsoleOutputInterface> {
+ None
+ }
+
/// PHP: only StreamOutput exposes `getStream()`. Default panics for outputs without one.
fn get_stream(&self) -> shirabe_php_shim::PhpResource {
todo!("get_stream not available on this OutputInterface implementation")
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 654e7f6..6aa79b8 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
@@ -12,13 +12,13 @@ impl StreamOutput {
}
impl OutputInterface for StreamOutput {
- fn write(&mut self, _messages: &str, _newline: bool, _type: i64) {
+ fn write(&self, _messages: &str, _newline: bool, _type: i64) {
todo!()
}
- fn writeln(&mut self, _messages: &str, _type: i64) {
+ fn writeln(&self, _messages: &str, _type: i64) {
todo!()
}
- fn set_verbosity(&mut self, _level: i64) {
+ fn set_verbosity(&self, _level: i64) {
todo!()
}
fn get_verbosity(&self) -> i64 {
@@ -36,16 +36,19 @@ impl OutputInterface for StreamOutput {
fn is_debug(&self) -> bool {
todo!()
}
- fn set_decorated(&mut self, _decorated: bool) {
+ fn set_decorated(&self, _decorated: bool) {
todo!()
}
fn is_decorated(&self) -> bool {
todo!()
}
- fn set_formatter(&mut self, _formatter: OutputFormatter) {
+ fn set_formatter(&self, _formatter: OutputFormatter) {
todo!()
}
- fn get_formatter(&mut self) -> &mut OutputFormatter {
+ fn get_formatter(&self) -> &OutputFormatter {
+ todo!()
+ }
+ fn get_stream(&self) -> shirabe_php_shim::PhpResource {
todo!()
}
}