PHPackages                             manychois/php-strong - 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. manychois/php-strong

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

manychois/php-strong
====================

A utility library for PHP to help you write strong-typed code.

018PHPCI passing

Since Apr 3Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/manychois/php-strong)[ Packagist](https://packagist.org/packages/manychois/php-strong)[ RSS](/packages/manychois-php-strong/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

php-strong
==========

[](#php-strong)

**php-strong** is a small PHP library that adds **typed boundaries** around places PHP is usually loose: nested arrays, the DI container, native sessions, and string matching. It does not replace the language type system; it gives you explicit, predictable APIs so invalid shapes fail **at the edge** (when you read a value or resolve a service) instead of far down the call stack.

It targets **PHP 8.5+**, uses the `Manychois\PhpStrong` namespace with PSR-4 autoloading, and integrates with **PSR-7** (HTTP messages), **PSR-17** (HTTP factories), **PSR-11** (containers), and **PSR-20** (clock) where relevant.

What’s in the box
-----------------

[](#whats-in-the-box)

- **Collections** — Lazy and eager sequences (`LazySequence`), mutable lists (`ArrayList`), readonly list views (`ReadonlyList`), maps with typed keys (`StringMap`, `IntMap`, `ObjectMap`, and readonly variants), plus shared sequence/list interfaces and comparers for ordering. Suited to application code that wants clear generics-friendly collection APIs.
- **Typed array and object reading** — `ArrayReader` (and `ArrayReaderInterface`) walk **dot-separated paths** and expose readers such as `asInt`, `bool`, `string`, `object`, and `instanceOf` so nested structures are validated when accessed.
- **PSR-11 container** — `StrongContainerInterface` and `StrongContainerWrapper` wrap any `Psr\Container\ContainerInterface` and add `getObject($id, $class)` so resolved services are checked against an expected class or interface.
- **`Web`** — **PSR-7** value objects: `OutRequest`, `InRequest`, `Response`, `Stream`, `Uri`, and **`UploadedFile`**, plus **`Method`** and **`StatusCode`** enums. **PSR-17** factories: `RequestFactory` (requests and server requests), `ResponseFactory`, `StreamFactory`, `UploadedFileFactory`, and `UriFactory`. **Sessions:** `PhpSession` / `PhpSessionInterface` expose `$_SESSION` with the same path-style, validated access as `ArrayReader`, plus lifecycle helpers.
- **Time** — `UtcClock` implements PSR-20’s clock in UTC, with support for deterministic tests (e.g. frozen instants).
- **Text** — `Regex`, `MatchResult`, `Capture`, and `Utf8String` offer an object-oriented, exception-oriented approach to pattern matching and UTF-8 strings; small helpers like `StringSide` and value types such as `DayOfWeek` live alongside them.

Why use it?
-----------

[](#why-use-it)

If you like **C#- or Java-style rigor** at API boundaries—without fighting PHP’s arrays and superglobals—php-strong narrows `mixed` early: fewer surprises in business logic and better alignment with static analysis (e.g. PHPStan) on downstream code.

Installation
------------

[](#installation)

```
composer require manychois/php-strong
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance60

Regular maintenance activity

Popularity8

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 95.5% 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/e1ba7e0a3d6113e5704a03007e1d40c208af6ac5ec3a57e389ac426c661cbbb1?d=identicon)[manychois](/maintainers/manychois)

---

Top Contributors

[![manychois](https://avatars.githubusercontent.com/u/3290769?v=4)](https://github.com/manychois "manychois (21 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

array-accessclockcontainerpsr-11psr-20regexsessionstrong-typetype-safetytyped-array

### Embed Badge

![Health badge](/badges/manychois-php-strong/health.svg)

```
[![Health](https://phpackages.com/badges/manychois-php-strong/health.svg)](https://phpackages.com/packages/manychois-php-strong)
```

###  Alternatives

[lasserafn/php-initials

A package to generate initials in PHP

414.7M3](/packages/lasserafn-php-initials)

PHPackages © 2026

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