ehough/finder

此包已被废弃且不再维护。没有建议的替代包。

与PHP 5.2+兼容的Symfony的Finder组件的分支

v2.8.0 2015-12-02 07:40 UTC

README

Build Status Project Status: Unsupported - The project has reached a stable, usable state but the author(s) have ceased all work on it. A new maintainer may be desired. Latest Stable Version License

由于PHP 5.2的使用率已经最终降至10%以下,此库不再受支持或维护。

Symfony的Finder组件兼容的分支,适用于PHP 5.2+。

动机

Symfony的Finder组件是一个出色的库,但它只兼容PHP 5.3+。尽管99%的PHP服务器运行PHP 5.2或更高版本,但仍有13%的所有服务器仍在运行PHP 5.2或更低版本(来源)。

Symfony的Finder组件的区别

主要区别是Symfony类的命名约定。而不是使用\Symfony\Component\Finder命名空间(及其子命名空间),将Symfony类名以ehough_finder前缀,并遵循PEAR命名约定

一些类命名转换的例子

\Symfony\Component\Finder\Finder                  ----->    ehough_finder_Finder
\Symfony\Component\Finder\Expression\Expression   ----->    ehough_finder_expression_Expression
\Symfony\Component\Finder\Shell\Command           ----->    ehough_finder_shell_Command

用法

Finder通过直观的流畅接口查找文件和目录。

$finder = new ehough_finder_Finder();

$iterator = $finder
  ->files()
  ->name('*.php')
  ->depth(0)
  ->size('>= 1K')
  ->in(__DIR__);

foreach ($iterator as $file) {
    print $file->getRealpath()."\n";
}

但您也可以使用它来查找存储在远程位置的文件,例如,在这个示例中,我们在查找Amazon S3上的文件。

$s3 = new Zend_Service_Amazon_S3($key, $secret);
$s3->registerStreamWrapper("s3");

$finder = new ehough_finder_Finder();
$finder->name('photos*')->size('< 100K')->date('since 1 hour ago');
foreach ($finder->in('s3://bucket-name') as $file) {
    print $file->getFilename()."\n";
}

发布和版本

发布与上游Symfony仓库同步。例如,ehough/finder v2.3.1已合并了来自Symfony/Finder v2.3.1的代码。