aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/console
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
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')
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/application.rs108
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/command/command.rs18
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/command/mod.rs3
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/exception/command_not_found_exception.rs13
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/exception/exception_interface.rs1
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/exception/mod.rs4
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/formatter/output_formatter.rs11
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/formatter_helper.rs12
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/helper.rs3
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/mod.rs8
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/progress_bar.rs38
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs9
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/table.rs26
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/helper/table_separator.rs14
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/array_input.rs9
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/input_definition.rs30
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs11
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/mod.rs2
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/string_input.rs4
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/mod.rs8
-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
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs19
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/question/mod.rs2
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/question/question.rs16
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/single_command_application.rs33
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/style/symfony_style.rs4
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/terminal.rs22
31 files changed, 516 insertions, 33 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/application.rs b/crates/shirabe-external-packages/src/symfony/console/application.rs
new file mode 100644
index 0000000..f937473
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/application.rs
@@ -0,0 +1,108 @@
+use crate::symfony::console::input::InputInterface;
+use crate::symfony::console::output::OutputInterface;
+use shirabe_php_shim::PhpMixed;
+
+#[derive(Debug)]
+pub struct Application;
+
+impl Application {
+ pub fn new(_name: &str, _version: &str) -> Self {
+ todo!()
+ }
+
+ pub fn run(
+ &mut self,
+ _input: Option<std::rc::Rc<std::cell::RefCell<dyn InputInterface>>>,
+ _output: Option<std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>>,
+ ) -> anyhow::Result<i64> {
+ todo!()
+ }
+
+ pub fn set_name(&mut self, _name: &str) {
+ todo!()
+ }
+
+ pub fn get_name(&self) -> String {
+ todo!()
+ }
+
+ pub fn set_version(&mut self, _version: &str) {
+ todo!()
+ }
+
+ pub fn get_version(&self) -> String {
+ todo!()
+ }
+
+ pub fn add(&mut self, _command: PhpMixed) -> Option<PhpMixed> {
+ todo!()
+ }
+
+ pub fn get(&self, _name: &str) -> anyhow::Result<PhpMixed> {
+ todo!()
+ }
+
+ pub fn set_auto_exit(&mut self, _auto_exit: bool) {
+ todo!()
+ }
+
+ pub fn set_catch_exceptions(&mut self, _catch_exceptions: bool) {
+ todo!()
+ }
+
+ pub fn get_helper_set(&self) -> PhpMixed {
+ todo!()
+ }
+
+ pub fn set_helper_set(&mut self, _helper_set: PhpMixed) {
+ todo!()
+ }
+
+ pub fn get_definition(&self) -> PhpMixed {
+ todo!()
+ }
+
+ pub fn get_long_version(&self) -> String {
+ todo!()
+ }
+
+ pub fn find(&self, _name: &str) -> anyhow::Result<PhpMixed> {
+ todo!()
+ }
+
+ pub fn all(&self, _namespace: Option<&str>) -> Vec<PhpMixed> {
+ todo!()
+ }
+
+ pub fn get_namespaces(&self) -> Vec<String> {
+ todo!()
+ }
+
+ pub fn set_default_command(
+ &mut self,
+ _command_name: &str,
+ _is_single_command: bool,
+ ) -> &mut Self {
+ todo!()
+ }
+
+ pub fn is_single_command(&self) -> bool {
+ todo!()
+ }
+
+ pub fn render_throwable(
+ &self,
+ _exception: &anyhow::Error,
+ _output: std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>,
+ ) {
+ todo!()
+ }
+
+ pub fn set_catch_errors(&mut self, _catch_errors: bool) {
+ todo!()
+ }
+
+ pub fn has(&self, _name: &str) -> bool {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/command/command.rs b/crates/shirabe-external-packages/src/symfony/console/command/command.rs
new file mode 100644
index 0000000..32965cf
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/command/command.rs
@@ -0,0 +1,18 @@
+/// Stub for \Symfony\Component\Console\Command\Command.
+pub trait Command {
+ fn get_name(&self) -> Option<String> {
+ todo!()
+ }
+
+ fn set_name(&mut self, _name: &str) {
+ todo!()
+ }
+
+ fn get_description(&self) -> String {
+ todo!()
+ }
+
+ fn set_description(&mut self, _description: &str) {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/command/mod.rs b/crates/shirabe-external-packages/src/symfony/console/command/mod.rs
new file mode 100644
index 0000000..375170c
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/command/mod.rs
@@ -0,0 +1,3 @@
+pub mod command;
+
+pub use command::*;
diff --git a/crates/shirabe-external-packages/src/symfony/console/exception/command_not_found_exception.rs b/crates/shirabe-external-packages/src/symfony/console/exception/command_not_found_exception.rs
new file mode 100644
index 0000000..f1ed60b
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/exception/command_not_found_exception.rs
@@ -0,0 +1,13 @@
+#[derive(Debug)]
+pub struct CommandNotFoundException {
+ pub message: String,
+ pub code: i64,
+}
+
+impl std::fmt::Display for CommandNotFoundException {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ write!(f, "{}", self.message)
+ }
+}
+
+impl std::error::Error for CommandNotFoundException {}
diff --git a/crates/shirabe-external-packages/src/symfony/console/exception/exception_interface.rs b/crates/shirabe-external-packages/src/symfony/console/exception/exception_interface.rs
new file mode 100644
index 0000000..3c42009
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/exception/exception_interface.rs
@@ -0,0 +1 @@
+pub trait ExceptionInterface: std::error::Error {}
diff --git a/crates/shirabe-external-packages/src/symfony/console/exception/mod.rs b/crates/shirabe-external-packages/src/symfony/console/exception/mod.rs
index e76b8d9..25750a1 100644
--- a/crates/shirabe-external-packages/src/symfony/console/exception/mod.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/exception/mod.rs
@@ -1,3 +1,7 @@
+pub mod command_not_found_exception;
+pub mod exception_interface;
pub mod invalid_argument_exception;
+pub use command_not_found_exception::*;
+pub use exception_interface::*;
pub use invalid_argument_exception::*;
diff --git a/crates/shirabe-external-packages/src/symfony/console/formatter/output_formatter.rs b/crates/shirabe-external-packages/src/symfony/console/formatter/output_formatter.rs
index 77ebde5..4b499b8 100644
--- a/crates/shirabe-external-packages/src/symfony/console/formatter/output_formatter.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/formatter/output_formatter.rs
@@ -1,12 +1,13 @@
-use indexmap::IndexMap;
-
#[derive(Debug)]
pub struct OutputFormatter;
impl OutputFormatter {
pub fn new(
_decorated: bool,
- _styles: IndexMap<String, crate::symfony::console::formatter::OutputFormatterStyle>,
+ _styles: indexmap::IndexMap<
+ String,
+ crate::symfony::console::formatter::OutputFormatterStyle,
+ >,
) -> Self {
todo!()
}
@@ -27,6 +28,10 @@ impl OutputFormatter {
todo!()
}
+ pub fn escape_trailing_backslash(_text: &str) -> String {
+ todo!()
+ }
+
pub fn set_style(
&mut self,
_name: &str,
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/formatter_helper.rs b/crates/shirabe-external-packages/src/symfony/console/helper/formatter_helper.rs
new file mode 100644
index 0000000..656828e
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/formatter_helper.rs
@@ -0,0 +1,12 @@
+#[derive(Debug)]
+pub struct FormatterHelper;
+
+impl FormatterHelper {
+ pub fn format_section(&self, _section: &str, _message: &str, _style: &str) -> String {
+ todo!()
+ }
+
+ pub fn format_block(&self, _messages: &[&str], _style: &str, _large: bool) -> String {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/helper.rs b/crates/shirabe-external-packages/src/symfony/console/helper/helper.rs
new file mode 100644
index 0000000..881aabd
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/helper.rs
@@ -0,0 +1,3 @@
+pub trait Helper {
+ fn get_name(&self) -> String;
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/mod.rs b/crates/shirabe-external-packages/src/symfony/console/helper/mod.rs
index 5908bd6..b31517a 100644
--- a/crates/shirabe-external-packages/src/symfony/console/helper/mod.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/mod.rs
@@ -1,7 +1,15 @@
+pub mod formatter_helper;
+pub mod helper;
pub mod helper_set;
+pub mod progress_bar;
pub mod question_helper;
pub mod table;
+pub mod table_separator;
+pub use formatter_helper::*;
+pub use helper::*;
pub use helper_set::*;
+pub use progress_bar::*;
pub use question_helper::*;
pub use table::*;
+pub use table_separator::*;
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/progress_bar.rs b/crates/shirabe-external-packages/src/symfony/console/helper/progress_bar.rs
new file mode 100644
index 0000000..e2a728f
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/progress_bar.rs
@@ -0,0 +1,38 @@
+use crate::symfony::console::output::OutputInterface;
+
+#[derive(Debug)]
+pub struct ProgressBar;
+
+impl ProgressBar {
+ pub fn new(_output: std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>, _max: i64) -> Self {
+ todo!()
+ }
+
+ pub fn start(&mut self, _max: Option<i64>) {
+ todo!()
+ }
+
+ pub fn advance(&mut self, _step: i64) {
+ todo!()
+ }
+
+ pub fn finish(&mut self) {
+ todo!()
+ }
+
+ pub fn set_format(&mut self, _format: &str) {
+ todo!()
+ }
+
+ pub fn get_progress(&self) -> i64 {
+ todo!()
+ }
+
+ pub fn get_max_steps(&self) -> i64 {
+ todo!()
+ }
+
+ pub fn set_progress(&mut self, _step: i64) {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs b/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
index c7d55be..70a9572 100644
--- a/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/question_helper.rs
@@ -1,3 +1,6 @@
+use crate::symfony::console::input::InputInterface;
+use crate::symfony::console::output::OutputInterface;
+use crate::symfony::console::question::Question;
use shirabe_php_shim::PhpMixed;
#[derive(Debug)]
@@ -6,9 +9,9 @@ pub struct QuestionHelper;
impl QuestionHelper {
pub fn ask(
&self,
- _input: &mut dyn std::any::Any,
- _output: &mut dyn std::any::Any,
- _question: &dyn std::any::Any,
+ _input: std::rc::Rc<std::cell::RefCell<dyn InputInterface>>,
+ _output: std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>,
+ _question: &Question,
) -> Option<PhpMixed> {
todo!()
}
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/table.rs b/crates/shirabe-external-packages/src/symfony/console/helper/table.rs
index 30c008c..4ff5a5e 100644
--- a/crates/shirabe-external-packages/src/symfony/console/helper/table.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/table.rs
@@ -1,4 +1,4 @@
-use crate::symfony::component::console::output::OutputInterface;
+use crate::symfony::console::output::OutputInterface;
use shirabe_php_shim::PhpMixed;
#[derive(Debug)]
@@ -9,10 +9,6 @@ impl Table {
todo!()
}
- pub fn set_style(&mut self, _style: &str) -> &mut Self {
- todo!()
- }
-
pub fn set_headers(&mut self, _headers: Vec<PhpMixed>) -> &mut Self {
todo!()
}
@@ -28,4 +24,24 @@ impl Table {
pub fn render(&mut self) {
todo!()
}
+
+ pub fn set_style(&mut self, _style: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn set_column_width(&mut self, _column_index: usize, _width: i64) -> &mut Self {
+ todo!()
+ }
+
+ pub fn set_column_widths(&mut self, _widths: Vec<i64>) -> &mut Self {
+ todo!()
+ }
+
+ pub fn set_column_max_width(&mut self, _column_index: usize, _width: i64) -> &mut Self {
+ todo!()
+ }
+
+ pub fn set_horizontal(&mut self, _horizontal: bool) -> &mut Self {
+ todo!()
+ }
}
diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/table_separator.rs b/crates/shirabe-external-packages/src/symfony/console/helper/table_separator.rs
new file mode 100644
index 0000000..22ac013
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/helper/table_separator.rs
@@ -0,0 +1,14 @@
+#[derive(Debug)]
+pub struct TableSeparator;
+
+impl Default for TableSeparator {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+impl TableSeparator {
+ pub fn new() -> Self {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs b/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs
index 0304649..0c68cf2 100644
--- a/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/input/array_input.rs
@@ -1,3 +1,4 @@
+use crate::symfony::console::input::InputDefinition;
use crate::symfony::console::input::InputInterface;
use indexmap::IndexMap;
use shirabe_php_shim::PhpMixed;
@@ -6,7 +7,10 @@ use shirabe_php_shim::PhpMixed;
pub struct ArrayInput;
impl ArrayInput {
- pub fn new(_parameters: IndexMap<String, PhpMixed>) -> Self {
+ pub fn new(
+ _parameters: IndexMap<String, PhpMixed>,
+ _definition: Option<InputDefinition>,
+ ) -> Self {
todo!()
}
}
@@ -26,6 +30,9 @@ impl InputInterface for ArrayInput {
) -> PhpMixed {
todo!()
}
+ fn bind(&mut self, _definition: &InputDefinition) -> anyhow::Result<()> {
+ todo!()
+ }
fn validate(&self) -> anyhow::Result<()> {
todo!()
}
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/input_definition.rs b/crates/shirabe-external-packages/src/symfony/console/input/input_definition.rs
new file mode 100644
index 0000000..74839fc
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/input/input_definition.rs
@@ -0,0 +1,30 @@
+use shirabe_php_shim::PhpMixed;
+
+#[derive(Debug)]
+pub struct InputDefinition;
+
+impl InputDefinition {
+ pub fn new(_definition: Vec<PhpMixed>) -> Self {
+ todo!()
+ }
+
+ pub fn add_argument(&mut self, _argument: PhpMixed) {
+ todo!()
+ }
+
+ pub fn add_option(&mut self, _option: PhpMixed) {
+ todo!()
+ }
+
+ pub fn has_option(&self, _name: &str) -> bool {
+ todo!()
+ }
+
+ pub fn get_option(&self, _name: &str) -> anyhow::Result<PhpMixed> {
+ todo!()
+ }
+
+ pub fn has_argument(&self, _name: &str) -> bool {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs
index 5ec5896..14458e4 100644
--- a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs
@@ -1,7 +1,6 @@
-use indexmap::IndexMap;
use shirabe_php_shim::PhpMixed;
-pub trait InputInterface {
+pub trait InputInterface: std::fmt::Debug {
fn get_first_argument(&self) -> Option<String>;
fn has_parameter_option(&self, values: &[&str], only_params: bool) -> bool;
fn get_parameter_option(
@@ -10,12 +9,16 @@ pub trait InputInterface {
default: PhpMixed,
only_params: bool,
) -> PhpMixed;
+ fn bind(
+ &mut self,
+ definition: &crate::symfony::console::input::InputDefinition,
+ ) -> anyhow::Result<()>;
fn validate(&self) -> anyhow::Result<()>;
- fn get_arguments(&self) -> IndexMap<String, PhpMixed>;
+ fn get_arguments(&self) -> indexmap::IndexMap<String, PhpMixed>;
fn get_argument(&self, name: &str) -> PhpMixed;
fn set_argument(&mut self, name: &str, value: PhpMixed) -> anyhow::Result<()>;
fn has_argument(&self, name: &str) -> bool;
- fn get_options(&self) -> IndexMap<String, PhpMixed>;
+ fn get_options(&self) -> indexmap::IndexMap<String, PhpMixed>;
fn get_option(&self, name: &str) -> PhpMixed;
fn set_option(&mut self, name: &str, value: PhpMixed) -> anyhow::Result<()>;
fn has_option(&self, name: &str) -> bool;
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/mod.rs b/crates/shirabe-external-packages/src/symfony/console/input/mod.rs
index 77a6f66..8c6a28f 100644
--- a/crates/shirabe-external-packages/src/symfony/console/input/mod.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/input/mod.rs
@@ -1,5 +1,6 @@
pub mod array_input;
pub mod input_argument;
+pub mod input_definition;
pub mod input_interface;
pub mod input_option;
pub mod streamable_input_interface;
@@ -7,6 +8,7 @@ pub mod string_input;
pub use array_input::*;
pub use input_argument::*;
+pub use input_definition::*;
pub use input_interface::*;
pub use input_option::*;
pub use streamable_input_interface::*;
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs b/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs
index 3d19823..34b2bfc 100644
--- a/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs
@@ -1,3 +1,4 @@
+use crate::symfony::console::input::InputDefinition;
use crate::symfony::console::input::InputInterface;
use indexmap::IndexMap;
use shirabe_php_shim::PhpMixed;
@@ -26,6 +27,9 @@ impl InputInterface for StringInput {
) -> PhpMixed {
todo!()
}
+ fn bind(&mut self, _definition: &InputDefinition) -> anyhow::Result<()> {
+ todo!()
+ }
fn validate(&self) -> anyhow::Result<()> {
todo!()
}
diff --git a/crates/shirabe-external-packages/src/symfony/console/mod.rs b/crates/shirabe-external-packages/src/symfony/console/mod.rs
index 6812ab6..b5b557d 100644
--- a/crates/shirabe-external-packages/src/symfony/console/mod.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/mod.rs
@@ -1,3 +1,5 @@
+pub mod application;
+pub mod command;
pub mod completion;
pub mod exception;
pub mod formatter;
@@ -5,8 +7,12 @@ pub mod helper;
pub mod input;
pub mod output;
pub mod question;
+pub mod single_command_application;
pub mod style;
+pub mod terminal;
+pub use application::*;
+pub use command::*;
pub use completion::*;
pub use exception::*;
pub use formatter::*;
@@ -14,4 +20,6 @@ pub use helper::*;
pub use input::*;
pub use output::*;
pub use question::*;
+pub use single_command_application::*;
pub use style::*;
+pub use terminal::*;
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!()
}
}
diff --git a/crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs b/crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs
new file mode 100644
index 0000000..5eb5818
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/question/choice_question.rs
@@ -0,0 +1,19 @@
+use crate::symfony::console::question::Question;
+use shirabe_php_shim::PhpMixed;
+
+#[derive(Debug)]
+pub struct ChoiceQuestion(pub Question);
+
+impl ChoiceQuestion {
+ pub fn new(_question: &str, _choices: Vec<PhpMixed>, _default: Option<PhpMixed>) -> Self {
+ todo!()
+ }
+
+ pub fn set_multiselect(&mut self, _multiselect: bool) {
+ todo!()
+ }
+
+ pub fn set_error_message(&mut self, _error_message: &str) {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/question/mod.rs b/crates/shirabe-external-packages/src/symfony/console/question/mod.rs
index 60c3107..67e7e7b 100644
--- a/crates/shirabe-external-packages/src/symfony/console/question/mod.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/question/mod.rs
@@ -1,3 +1,5 @@
+pub mod choice_question;
pub mod question;
+pub use choice_question::*;
pub use question::*;
diff --git a/crates/shirabe-external-packages/src/symfony/console/question/question.rs b/crates/shirabe-external-packages/src/symfony/console/question/question.rs
index 02402ce..552f780 100644
--- a/crates/shirabe-external-packages/src/symfony/console/question/question.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/question/question.rs
@@ -15,11 +15,11 @@ impl Question {
todo!()
}
- pub fn set_normalizer(&mut self, _normalizer: Box<dyn Fn(&PhpMixed) -> PhpMixed>) {
+ pub fn set_max_attempts(&mut self, _attempts: Option<i64>) {
todo!()
}
- pub fn set_max_attempts(&mut self, _attempts: Option<i64>) {
+ pub fn set_normalizer(&mut self, _normalizer: Box<dyn Fn(&PhpMixed) -> PhpMixed>) {
todo!()
}
@@ -27,6 +27,10 @@ impl Question {
todo!()
}
+ pub fn set_hidden_fallback(&mut self, _fallback: bool) {
+ todo!()
+ }
+
pub fn get_question(&self) -> String {
todo!()
}
@@ -38,4 +42,12 @@ impl Question {
pub fn is_hidden(&self) -> bool {
todo!()
}
+
+ pub fn get_validator(&self) -> Option<&dyn Fn(Option<PhpMixed>) -> anyhow::Result<PhpMixed>> {
+ todo!()
+ }
+
+ pub fn get_max_attempts(&self) -> Option<i64> {
+ todo!()
+ }
}
diff --git a/crates/shirabe-external-packages/src/symfony/console/single_command_application.rs b/crates/shirabe-external-packages/src/symfony/console/single_command_application.rs
new file mode 100644
index 0000000..9273477
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/single_command_application.rs
@@ -0,0 +1,33 @@
+#[derive(Debug)]
+pub struct SingleCommandApplication;
+
+impl Default for SingleCommandApplication {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+impl SingleCommandApplication {
+ pub fn new() -> Self {
+ todo!()
+ }
+
+ pub fn set_name(&mut self, _name: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn set_version(&mut self, _version: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn set_code(
+ &mut self,
+ _code: Box<dyn Fn(&dyn std::any::Any, &dyn std::any::Any) -> i64>,
+ ) -> &mut Self {
+ todo!()
+ }
+
+ pub fn run(&mut self) -> anyhow::Result<i64> {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/console/style/symfony_style.rs b/crates/shirabe-external-packages/src/symfony/console/style/symfony_style.rs
index b5dfded..c26ca30 100644
--- a/crates/shirabe-external-packages/src/symfony/console/style/symfony_style.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/style/symfony_style.rs
@@ -1,5 +1,5 @@
-use crate::symfony::component::console::input::InputInterface;
-use crate::symfony::component::console::output::OutputInterface;
+use crate::symfony::console::input::InputInterface;
+use crate::symfony::console::output::OutputInterface;
use shirabe_php_shim::PhpMixed;
#[derive(Debug)]
diff --git a/crates/shirabe-external-packages/src/symfony/console/terminal.rs b/crates/shirabe-external-packages/src/symfony/console/terminal.rs
new file mode 100644
index 0000000..251d71e
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/console/terminal.rs
@@ -0,0 +1,22 @@
+#[derive(Debug)]
+pub struct Terminal;
+
+impl Default for Terminal {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+impl Terminal {
+ pub fn new() -> Self {
+ todo!()
+ }
+
+ pub fn get_width(&self) -> i64 {
+ todo!()
+ }
+
+ pub fn get_height(&self) -> i64 {
+ todo!()
+ }
+}