oscarweb / file-reporter
这是一个用于创建已建立目录中现有文件报告的简单库。它具有一些过滤器来识别例如:重复文件或同名文件。
v0.2.1
2021-08-13 19:58 UTC
Requires
- php: ^7.2
README
这是一个用于创建已建立目录中现有文件报告的简单库。它具有一些过滤器来识别例如:重复文件或同名文件。
通过 Composer 安装
composer require oscarweb/file-reporter
— 基本用法
<?php /* enter correct path */ require __DIR__.'/../vendor/autoload.php'; use FileReporter\FileReporter; /** * Set Directory * @param string */ $app = new FileReporter(__DIR__.DIRECTORY_SEPARATOR.'docs'); /** * Return data * @return object - default */ $response = $app->getReport(); var_dump($response);
输出示例 这里
报告JSON结构: report.md
— 缓存
要启用缓存,在之前的示例中,您必须添加将保存json文件的目录路径
/** * Set Cache Directory * @param string */ $app->setCacheDir(__DIR__.DIRECTORY_SEPARATOR.'cache'); /** * Return data * @return object - default */ $response = $app->getReport();
示例 这里
— control.json
每次您创建新的报告且启用缓存时,部分信息将被保存到控制文件中。您可以使用以下方法读取信息。
$app = new FileReporter(); /** * @return object - default */ $control = $app->getControl();
输出示例 这里
控制JSON结构: control.md
— 递归
您可以创建自定义递归函数。
/** * Set Directory * @param string */ $app = new FileReporter(__DIR__.DIRECTORY_SEPARATOR.'docs'); /** * Set Cache Directory * @param string */ $app->setCacheDir(__DIR__.DIRECTORY_SEPARATOR.'cache'); /** * Adjust the output of the json file: JSON_PRETTY_PRINT */ $app->setJsonPrettyPrint(); /** * Your custom function */ function recursive($route, $app){ $app->setDir($route); $result = $app->getReport(); foreach($result->content as $item){ if($item->is->dir){ recursive($item->data->route, $app); } } } recursive($app->getDir(), $app);
示例 这里
— 过滤器
您可以根据缓存数据过滤和创建文件搜索。它可以基于hash
值检索重复文件。
$app = new FileReporter(__DIR__.DIRECTORY_SEPARATOR.'docs'); /** * If you set cache, it will filter on all reports. */ $app->setCacheDir(__DIR__.DIRECTORY_SEPARATOR.'cache'); /** * HASH Files - sha1 * @return object - default */ $duplicate_files = $app->filterCache()->repeatsByHash();
示例 这里
您可以在这里看到更多示例。