rusakov92 / simple-file-search
此包让您能够通过文件内容进行搜索。
Requires
- php: ^7.3
Requires (Dev)
- codeception/codeception: ^2.5.5
- phpunit/phpunit: ^7.5.8
- symfony/console: ^4.2
- symfony/var-dumper: ^4.2
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