PHPackages                             joeycumines/phelp - 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. joeycumines/phelp

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

joeycumines/phelp
=================

PHelP contains useful tools that PHP doesn't - Helpers for PHP 5.6+

07PHP

Since Dec 15Pushed 7y ago1 watchersCompare

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

READMEChangelogDependenciesVersions (1)Used By (0)

PHelP
=====

[](#phelp)

PHelP contains useful tools that PHP doesn't - Helpers for PHP 5.6+

Written by Joseph Cumines - but I would welcome contributions or even just code reviews.

[![pipeline status](https://camo.githubusercontent.com/e6f8df0451c77de9a4b83e7916568d0469f04e56f53fe3664b0302c895f6fa96/68747470733a2f2f6769746c61622e636f6d2f6a6f657963756d696e65732f7068656c702f6261646765732f6d61737465722f706970656c696e652e737667)](https://gitlab.com/joeycumines/phelp/commits/master)[![coverage report](https://camo.githubusercontent.com/b8770983fd328ca2a5f7b6a2bc9a2c13a06057dc870eddcd9c1e147ad34e23f6/68747470733a2f2f6769746c61622e636f6d2f6a6f657963756d696e65732f7068656c702f6261646765732f6d61737465722f636f7665726167652e737667)](https://gitlab.com/joeycumines/phelp/commits/master)

Rulebook
--------

[](#rulebook)

1. Helper libraries with no external dependencies that are not of a similar standard AND very likely to be maintained
2. Make logical groupings of functionality, and make an effort to follow best practices
3. Always tested, cover all documented or important cases, at minimum
4. Functional style preferred, immutable objects favoured
5. Minimal or no coupling as far as practical (between libraries, etc), without sacrificing the "DRY" principle
6. Don't change method signatures without a very good reason, or very low risk (backwards-compatible changes are ok)
7. Code must be written to be used in production, and must at least have a good chance to pass a professional code review
8. As a general rule, all aggregate classes that provide more than one functionality must always use final classes implementing both a singleton style `getInstance` method, have no other public static methods, and provide a public default constructor for Dependency Injection
9. Unless specifically designed to be stateful, everything must be stateless
10. Clearly document all functionality, it is desirable to be able to know what something does at a glance
11. Names like classes and namespaces should be named as if they were all in lowercase words, then conjoined, so `JsonObject` not `JSONObject`, for as an example.

Release Plan
------------

[](#release-plan)

This will be maintained, and at this stage I will be regularly adding functionality - though it starts from almost nothing. I will be re-writing some features that I wrote before, some I have wanted before, and probably just doing what I want. Eventually I plan to setup either subtrees, or some way to better package the dependencies, however until then, I will just be keeping everything in one place.

Package Overview
----------------

[](#package-overview)

This package uses Psr-4 namespaces. The `src` folder is `autoload` and mapped to `JoeyCumines/Phelp`. The `tests` folder is `autoload-dev` and mapped to `Tests/JoeyCumines/Phelp`.

The following headings are based on the namespaces nested within those two.

### Algorithms

[](#algorithms)

Solutions, grouped by functionality rather than project or category for a better code structure. While similar, the purpose of this namespace differs to `JoeyCumines/Phelp/Utilities`, with a focus on solutions including (but not limited to) implementations of computer-sciencey things like sorting algorithms, primitive type helpers, and general functions that extend core PHP functionality, similar to PHP's `array_*` methods.

### Utilities

[](#utilities)

Anything that leans towards solving a specific problem instead of providing a more general solution. A good example of this would be testing utilities, which fill a very specific niche.

### Helpers

[](#helpers)

"Helper" classes implement and document a thin layer between implementations in `JoeyCumines/Phelp/Algorithms`. Helpers are provided as a less-specific catch-all way to import your dependencies, and offer the benefit of being able to mock out their methods.

### Interfaces

[](#interfaces)

All interfaces, provided to be used as dependencies (in place of a concrete class), are here.

### Adaptors

[](#adaptors)

Concrete implementations of interfaces, that's it.

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

[](#contributing)

Do what you want, I love talking about the best way to solve problems. If you think that a certain way is better, or even just want to have a crack at adding something, go for your life, I am happy to review PR's even if it's just something relevant you wrote that you want feedback for. I am not at all possessive about this project, and I am happy to incorporate any new code under the same license, if it's something I can agree on.

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 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/48d8579005c43d4231f142cd657eda485ef219d5d95f3c7fbf2c8cdb7c7f9c93?d=identicon)[joeycumines](/maintainers/joeycumines)

---

Top Contributors

[![joeycumines](https://avatars.githubusercontent.com/u/7874540?v=4)](https://github.com/joeycumines "joeycumines (42 commits)")

### Embed Badge

![Health badge](/badges/joeycumines-phelp/health.svg)

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

###  Alternatives

[sandersander/composer-link

Adds ability to link local packages for development with composer

94441.4k](/packages/sandersander-composer-link)[carpcai/address-parser

A PHP library covers PHP 5.4 to 7.3, split an address street to street, states, city, zipcode.

1425.4k](/packages/carpcai-address-parser)[friendsoftypo3/compatibility6

TYPO3 Core Compatibility Layer for TYPO3 v7 with added functionality previously present in TYPO3 v6.2

168.1k](/packages/friendsoftypo3-compatibility6)

PHPackages © 2026

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