Download the PHP package manychois/php-strong without Composer
On this page you can find all versions of the php package manychois/php-strong. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download manychois/php-strong
More information about manychois/php-strong
Files in manychois/php-strong
Package php-strong
Short Description A utility library for PHP to help you write strong-typed code.
License MIT
Homepage https://github.com/manychois/php-strong
Informations about the package 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
-
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(andArrayReaderInterface) walk dot-separated paths and expose readers such asasInt,bool,string,object, andinstanceOfso nested structures are validated when accessed. -
PSR-11 container —
StrongContainerInterfaceandStrongContainerWrapperwrap anyPsr\Container\ContainerInterfaceand addgetObject($id, $class)so resolved services are checked against an expected class or interface. -
Web— PSR-7 value objects:OutRequest,InRequest,Response,Stream,Uri, andUploadedFile, plusMethodandStatusCodeenums. PSR-17 factories:RequestFactory(requests and server requests),ResponseFactory,StreamFactory,UploadedFileFactory, andUriFactory. Sessions:PhpSession/PhpSessionInterfaceexpose$_SESSIONwith the same path-style, validated access asArrayReader, plus lifecycle helpers. -
Time —
UtcClockimplements PSR-20’s clock in UTC, with support for deterministic tests (e.g. frozen instants). - Text —
Regex,MatchResult,Capture, andUtf8Stringoffer an object-oriented, exception-oriented approach to pattern matching and UTF-8 strings; small helpers likeStringSideand value types such asDayOfWeeklive alongside them.
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
All versions of php-strong with dependencies
psr/container Version ^2.0.2
psr/clock Version ^1
psr/http-message Version ^2.0
psr/http-factory Version ^1.1