diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-08 02:23:31 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-08 02:23:31 +0900 |
| commit | 06368584a9277022d9cfc42d22c37f4cc6e580f8 (patch) | |
| tree | a210e77273316ce94530391ea4e6dc4ee60b42ea /crates/shirabe-external-packages/src/symfony/finder | |
| parent | 318ea948f5932dfa7942081a269d62fd7161a9bf (diff) | |
| download | php-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')
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!() + } +} |
