aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony/finder
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/finder
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/finder')
-rw-r--r--crates/shirabe-external-packages/src/symfony/finder/finder.rs163
-rw-r--r--crates/shirabe-external-packages/src/symfony/finder/glob.rs12
-rw-r--r--crates/shirabe-external-packages/src/symfony/finder/mod.rs7
-rw-r--r--crates/shirabe-external-packages/src/symfony/finder/spl_file_info.rs62
4 files changed, 244 insertions, 0 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/finder/finder.rs b/crates/shirabe-external-packages/src/symfony/finder/finder.rs
new file mode 100644
index 0000000..59a6ad1
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/finder/finder.rs
@@ -0,0 +1,163 @@
+use crate::symfony::finder::SplFileInfo;
+
+/// Helper trait so `Finder::exclude` accepts both single strings and slices
+/// (PHP's variadic / array argument compatibility).
+pub trait IntoFinderExclude {}
+impl IntoFinderExclude for &str {}
+impl IntoFinderExclude for String {}
+impl IntoFinderExclude for &String {}
+impl IntoFinderExclude for &[String] {}
+impl IntoFinderExclude for &Vec<String> {}
+impl IntoFinderExclude for Vec<String> {}
+
+#[derive(Debug)]
+pub struct Finder;
+
+impl Default for Finder {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+impl Finder {
+ pub fn new() -> Self {
+ todo!()
+ }
+
+ pub fn create() -> Self {
+ todo!()
+ }
+
+ pub fn files(&mut self) -> &mut Self {
+ todo!()
+ }
+
+ pub fn directories(&mut self) -> &mut Self {
+ todo!()
+ }
+
+ pub fn depth(&mut self, _level: i64) -> &mut Self {
+ todo!()
+ }
+
+ pub fn r#in(&mut self, _dirs: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn filter(&mut self, _closure: Box<dyn FnMut(&std::path::Path) -> bool>) -> &mut Self {
+ todo!()
+ }
+
+ pub fn follow_links(&mut self) -> &mut Self {
+ todo!()
+ }
+
+ pub fn exclude<E: IntoFinderExclude>(&mut self, _exclude: E) -> &mut Self {
+ todo!()
+ }
+
+ pub fn ignore_vcs(&mut self, _ignore_vcs: bool) -> &mut Self {
+ todo!()
+ }
+
+ pub fn ignore_dot_files(&mut self, _ignore_dot_files: bool) -> &mut Self {
+ todo!()
+ }
+
+ pub fn not_name(&mut self, _pattern: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn not_path(&mut self, _pattern: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn name(&mut self, _pattern: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn sort<F>(&mut self, _comparator: F) -> &mut Self
+ where
+ F: FnMut(&SplFileInfo, &SplFileInfo) -> i64,
+ {
+ todo!()
+ }
+
+ pub fn sort_by_name(&mut self) -> &mut Self {
+ todo!()
+ }
+
+ pub fn sort_by_accessed_time(&mut self) -> &mut Self {
+ todo!()
+ }
+
+ pub fn date(&mut self, _date: &str) -> &mut Self {
+ todo!()
+ }
+
+ pub fn get_iterator(&self) -> FinderIterator {
+ todo!()
+ }
+
+ pub fn iter(&self) -> impl Iterator<Item = SplFileInfo> {
+ todo!();
+ std::iter::empty()
+ }
+
+ /// PHP: Finder implements Countable.
+ pub fn len(&self) -> usize {
+ todo!()
+ }
+
+ pub fn is_empty(&self) -> bool {
+ self.len() == 0
+ }
+}
+
+impl IntoIterator for &Finder {
+ type Item = SplFileInfo;
+ type IntoIter = std::vec::IntoIter<SplFileInfo>;
+
+ fn into_iter(self) -> Self::IntoIter {
+ todo!()
+ }
+}
+
+#[derive(Debug)]
+pub struct FinderIterator;
+
+impl FinderIterator {
+ pub fn valid(&self) -> bool {
+ todo!()
+ }
+
+ pub fn current(&self) -> SplFileInfo {
+ todo!()
+ }
+}
+
+impl Iterator for FinderIterator {
+ type Item = SplFileInfo;
+
+ fn next(&mut self) -> Option<SplFileInfo> {
+ todo!()
+ }
+}
+
+impl IntoIterator for Finder {
+ type Item = SplFileInfo;
+ type IntoIter = std::vec::IntoIter<SplFileInfo>;
+
+ fn into_iter(self) -> Self::IntoIter {
+ todo!()
+ }
+}
+
+impl IntoIterator for &mut Finder {
+ type Item = SplFileInfo;
+ type IntoIter = std::vec::IntoIter<SplFileInfo>;
+
+ fn into_iter(self) -> Self::IntoIter {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/finder/glob.rs b/crates/shirabe-external-packages/src/symfony/finder/glob.rs
new file mode 100644
index 0000000..08ab6df
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/finder/glob.rs
@@ -0,0 +1,12 @@
+#[derive(Debug)]
+pub struct Glob;
+
+impl Glob {
+ pub fn to_regex(
+ _glob: &str,
+ _strict_leading_dot: bool,
+ _strict_wildcard_slash: bool,
+ ) -> String {
+ todo!()
+ }
+}
diff --git a/crates/shirabe-external-packages/src/symfony/finder/mod.rs b/crates/shirabe-external-packages/src/symfony/finder/mod.rs
new file mode 100644
index 0000000..4b2d4b8
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/finder/mod.rs
@@ -0,0 +1,7 @@
+pub mod finder;
+pub mod glob;
+pub mod spl_file_info;
+
+pub use finder::*;
+pub use glob::*;
+pub use spl_file_info::*;
diff --git a/crates/shirabe-external-packages/src/symfony/finder/spl_file_info.rs b/crates/shirabe-external-packages/src/symfony/finder/spl_file_info.rs
new file mode 100644
index 0000000..3c1be6d
--- /dev/null
+++ b/crates/shirabe-external-packages/src/symfony/finder/spl_file_info.rs
@@ -0,0 +1,62 @@
+#[derive(Debug)]
+pub struct SplFileInfo;
+
+impl std::fmt::Display for SplFileInfo {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ write!(f, "{}", self.get_pathname())
+ }
+}
+
+impl SplFileInfo {
+ pub fn new(_path: &str) -> Self {
+ todo!()
+ }
+
+ pub fn get_pathname(&self) -> String {
+ todo!()
+ }
+
+ pub fn get_path(&self) -> String {
+ todo!()
+ }
+
+ pub fn get_filename(&self) -> String {
+ todo!()
+ }
+
+ pub fn get_basename(&self, _suffix: Option<&str>) -> String {
+ todo!()
+ }
+
+ pub fn get_extension(&self) -> String {
+ todo!()
+ }
+
+ pub fn get_relative_path_name(&self) -> String {
+ todo!()
+ }
+
+ pub fn get_relative_path(&self) -> String {
+ todo!()
+ }
+
+ pub fn is_dir(&self) -> bool {
+ todo!()
+ }
+
+ pub fn is_file(&self) -> bool {
+ todo!()
+ }
+
+ pub fn is_link(&self) -> bool {
+ todo!()
+ }
+
+ pub fn get_real_path(&self) -> Option<String> {
+ todo!()
+ }
+
+ pub fn get_size(&self) -> i64 {
+ todo!()
+ }
+}