PHPackages                             jacq/pathsilo - 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. [File &amp; Storage](/categories/file-storage)
4. /
5. jacq/pathsilo

ActiveLibrary[File &amp; Storage](/categories/file-storage)

jacq/pathsilo
=============

Generates sub-directory paths for files to mitigate the too many files in one directory problem

17PHP

Since Oct 6Pushed 9y ago1 watchersCompare

[ Source](https://github.com/jacqball/pathsilo)[ Packagist](https://packagist.org/packages/jacq/pathsilo)[ RSS](/packages/jacq-pathsilo/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Pathsilo
========

[](#pathsilo)

Generates filesystem paths. Includes name based paths and date based paths.

The intended use case is to facilitate storage and retrieval of "large" numbers of files by storing them in multiple folders.

Install
-------

[](#install)

Via Composer

```
$ composer require jacqball/pathsilo
```

Usage
-----

[](#usage)

```
// Generate path based on key string (key can be anything such as a file name)
$ps = new Jacq\PathSilo\PathSilo();
$path = $ps->getPath('SomeTextString');

// Generate path from date string - dates are not validated, if you pass in 8 digits it will operate
$dps =  new Jacq\PathSilo\DatePathSilo();
$path = $dps->getPath('20160831');
```

Change log
----------

[](#change-log)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Testing
-------

[](#testing)

```
$ composer test
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Jacques Ball](https://github.com/jacqball)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

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://avatars.githubusercontent.com/u/11052298?v=4)[jacqball](/maintainers/jacqball)[@jacqball](https://github.com/jacqball)

---

Top Contributors

[![jacqball](https://avatars.githubusercontent.com/u/11052298?v=4)](https://github.com/jacqball "jacqball (7 commits)")

### Embed Badge

![Health badge](/badges/jacq-pathsilo/health.svg)

```
[![Health](https://phpackages.com/badges/jacq-pathsilo/health.svg)](https://phpackages.com/packages/jacq-pathsilo)
```

PHPackages © 2026

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