PHPackages                             robo47/directory-hasher - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. robo47/directory-hasher

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

robo47/directory-hasher
=======================

DirectoryHasher is a small library to create files with hashes and file-informations from a directory-structure to compare it with another result later.

361PHP

Since Apr 1Pushed 14y ago1 watchersCompare

[ Source](https://github.com/robo47/Robo47_DirectoryHasher)[ Packagist](https://packagist.org/packages/robo47/directory-hasher)[ RSS](/packages/robo47-directory-hasher/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

DirectoryHasher
===============

[](#directoryhasher)

[![Build Status](https://camo.githubusercontent.com/a977307c394fc62ad657994a0808b3f4364ad34ea92b75fc21e4204383a9c988/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f726f626f34372f526f626f34375f4469726563746f72794861736865722e706e67)](robo47/Robo47_DirectoryHasher)

DirectoryHasher is a small library to create files with hashes and file-informations from a directory-structure to compare it with another result later.

This allows to detect changes on your webspace which may come from intrusions

For compatiblity reasons it should be php 5.2 compliant.

Requirements
------------

[](#requirements)

PHP 5.2

- DOM
- SPL

Example
-------

[](#example)

In /examples/ you find some hackish example scripts which create result-files, compares them and one which can be used together with a cronjob to regulary check a directory and send mails if something changes.

Further unimplemented ideas
---------------------------

[](#further-unimplemented-ideas)

- More flexible Comparator
- Way to filter differences which can be ignored (eg. based on directory)

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/00227460e374a3425259e09388877a783e5e79a00fc6958b193f336d6ef4015d?d=identicon)[robo47](/maintainers/robo47)

---

Top Contributors

[![robo47](https://avatars.githubusercontent.com/u/110477?v=4)](https://github.com/robo47 "robo47 (25 commits)")

### Embed Badge

![Health badge](/badges/robo47-directory-hasher/health.svg)

```
[![Health](https://phpackages.com/badges/robo47-directory-hasher/health.svg)](https://phpackages.com/packages/robo47-directory-hasher)
```

###  Alternatives

[consoletvs/charts

The laravel charting package

1043.8M29](/packages/consoletvs-charts)[joetannenbaum/chewie

122561.2k22](/packages/joetannenbaum-chewie)[google/appengine-php-sdk

Google App Engine PHP SDK

29803.0k4](/packages/google-appengine-php-sdk)[semperfiwebdesign/all-in-one-seo-pack

All in One SEO Pack plugin for WordPress SEO

3652.1k](/packages/semperfiwebdesign-all-in-one-seo-pack)[infyomlabs/laravel-calendar-events

Recurring Calendar Events for Laravel

998.6k](/packages/infyomlabs-laravel-calendar-events)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
