PHPackages                             netherphp/empty - 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. netherphp/empty

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

netherphp/empty
===============

Things that were found useful and needed everywhere.

v5.0.35(1y ago)05BSD-2-ClausePHPPHP ^8.1CI failing

Since Dec 15Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/netherphp/common)[ Packagist](https://packagist.org/packages/netherphp/empty)[ RSS](/packages/netherphp-empty/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (7)Versions (37)Used By (0)

Nether\\Common
==============

[](#nethercommon)

[![Packagist](https://camo.githubusercontent.com/94d9325c1cba06f2558565771898bc6714ee1eaac14e3143ba04567f83a3c0dd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e65746865727068702f636f6d6d6f6e2e7376673f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/netherphp/common)[![Build Status](https://camo.githubusercontent.com/94d3a95c2eab1c0e84d185c577c15fd561b0dce0a928cdf2eac1c232ae8af942/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6e65746865727068702f636f6d6d6f6e2f706870756e69742e796d6c3f7374796c653d666f722d7468652d6261646765)](https://github.com/netherphp/common/actions)[![codecov](https://camo.githubusercontent.com/6514a707c99816e9fb99840f988281aae998b3f03655d03bc86cc19e08e74484/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f67682f6e65746865727068702f636f6d6d6f6e3f7374796c653d666f722d7468652d626164676526746f6b656e3d5651433438584e425332)](https://codecov.io/gh/netherphp/common)

A collection of things that made no sense as their own library and are typically needed by every project I ever build at some point.

---

Classes of Note
---------------

[](#classes-of-note)

`use Nether\Common;`

### `Common\Prototype`

[](#commonprototype)

Base class that provides a default constructor designed to handle filling in the object from a keyed dataset, for example an array that is the result row from a database query. Also provides by default access to all the attribute handling packages.

### `Common\Datastore`

[](#commondatastore)

A data storage object so that arrays of data can be manipulated from an OOP interface with a lot of common methods so where the current dataset can be manipulated or return a fresh datastore with the modified dataset.

### `Common\PasswordTester`

[](#commonpasswordtester)

A thing that can validate if a password is complex enough based on a few rules that can be customised. It can additionally then explain why it failed to pass.

### `Common\Units\Bytes`

[](#commonunitsbytes)

A thing that when given an integer of a filesize in bytes can print back the info in a human readable format in units of choice (example: MB or MiB).

### `Common\Units\Timeframe`

[](#commonunitstimeframe)

When given two dates can print back how much time is between them in a human readable format of choice. Can handle both time since and time until.

---

Traits of Note
--------------

[](#traits-of-note)

`use Nether\Common;`

### `Common\Package\ClassInfoPackage`

[](#commonpackageclassinfopackage)

Bolt onto a class to provide access for reading the attributes assigned to the class.

### `Common\Package\MethodInfoPackage`

[](#commonpackagemethodinfopackage)

Bolt onto a class to provide access for reading the attributes assigned to the methods within the class.

### `Common\Package\PropertyInfoPackage`

[](#commonpackagepropertyinfopackage)

Bolt onto a class to provide access for reading the attributes assigned to the properties within the class.

***DEVELOPER NOTES***
=====================

[](#developer-notes)

- **PHP Constant:** UNIT\_TEST\_GO\_BRRRT=TRUE
- `if(defined('UNIT_TEST_GO_BRRRT'))`

This constant is defined by the `phpunit.xml` file and some code uses it to alter its behaviour while the test suite is running. Primarily, code which is designed to `exit()` seems to make PHPUnit explode.

- **ENV Variable:** UNIT\_TEST\_HITS\_HARD=1
- `if(isset($_ENV['UNIT_TEST_HITS_HARD']))`

This variable is defined by the Github Actions `phpunit.yaml` file. When defined will allow some unit tests to try harder to achieve full coverage, which will include performing system altering tasks to make sure they work.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance62

Regular maintenance activity

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity66

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~54 days

Total

36

Last Release

699d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b64ee49e86efa67a7de4afdc42c2686460d1e46ac7eac7e6ccfa6407ec7d979a?d=identicon)[bobmagicii](/maintainers/bobmagicii)

---

Top Contributors

[![bobmagicii](https://avatars.githubusercontent.com/u/881944?v=4)](https://github.com/bobmagicii "bobmagicii (454 commits)")

---

Tags

phputilities

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/netherphp-empty/health.svg)

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

PHPackages © 2026

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