oscarweb / file-reporter

这是一个用于创建已建立目录中现有文件报告的简单库。它具有一些过滤器来识别例如:重复文件或同名文件。

v0.2.1 2021-08-13 19:58 UTC

This package is auto-updated.

Last update: 2024-09-30 02:51:56 UTC


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();

示例 这里

您可以在这里看到更多示例。