rusakov92/simple-file-search

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

此包让您能够通过文件内容进行搜索。

0.0.3 2019-04-01 14:51 UTC

This package is auto-updated.

Last update: 2020-08-30 01:11:21 UTC


README

此应用通过搜索内容简单地找到文件。

安装

通过composer安装。

composer require rusakov92/simple-file-search

用法

您必须首先创建类的实例,并指定要扫描文件的文件夹的基本目录路径。

$simpleFileSearch = new SimpleFileSearch('/path/to/base/directory');

您可以使用该类来查找包含特定字符串的文件。为此,您可以使用带#分隔符的正则表达式,并在最后调用SimpleFileSearch::find()方法。返回的结果将是一个可以迭代的\Iterator

/** @var \Iterator $result */
$result = $simpleFileSearch
    ->contain('#sentence I am looking for#')
    ->contain('#^[a-z]+$#')
    ->contain(['#[A-Z]+#', '#some text I know#'])
    ->find();

/** @var \SplFileInfo $item */
foreach ($result as $item) {
    var_dump($item->getRealPath());
}

使用SimpleFileSearch::extension()限制搜索到某些扩展。

$result = $simpleFileSearch->contain('#[a-z]+#')->extension('txt')->find();

限制搜索的递归深度。

$result = $simpleFileSearch->contain('#[a-z]+#')->depth(3, 10)->find();

指定要执行搜索或跳过的基本目录的部分目录。

$result = $simpleFileSearch
    ->contain('#[a-z]+#')
    ->in('path/to/specific/dir')
    ->skip('path/to/specific/dir/skip')
    ->find();

演示

要查看演示,请首先在您的机器上安装docker,完成后请按照以下指南操作

将此存储库克隆到首选位置,现在我们需要通过更改目录到克隆的存储库并运行docker build命令来构建我们的Docker镜像。

cd /path/to/simple-file-search
docker build -t simple-file-search .

现在我们需要使用docker-compose启动我们的容器。请注意,在docker-compose.yaml文件中,容器端口被设置为127.0.0.1:8080。如果该端口已被占用,请将其更改为其他空闲端口。

docker-compose up

通过SSH进入容器,并在symfony_demo文件夹中运行composer install命令。

docker exec -it simple-file-search-web bash
cd symfony_demo
composer install
# When asked enter the default values for the parameters.yml file

现在您可以尝试演示。测试文件位于public/demo_files,您可以使用正则表达式或简单字符串来查找文件。

控制台演示

运行控制台应用程序。

# Run console
bin/console search "your sentence"
# Run the console with a regular expresion
bin/console search "#[a-z]#"
# See the help for more options and usages
bin/console search -h

UI演示

在此查看演示127.0.0.1:8080。UI表单接受一个或多个字符串,并且可以使用逗号分隔。

测试

您可以通过简单地回到根目录并运行composer脚本来运行PHPUnit测试。

cd ..
composer run phpunit

要运行Codeception测试

composer run codecept