mf/stringify

Simple and tiny class (function) to stringify anything in PHP.

7.0.0 2023-12-13 09:53 UTC

This package is auto-updated.

Last update: 2024-04-13 10:29:24 UTC


README

Latest Stable Version Tests and linting Coverage Status

Simple and tiny class (function) to stringify anything in PHP.

Installation

composer require mf/stringify

Usage

By class and static method

use MF\Stringify\Stringify;

echo Stringify::stringify([1, 2, 3]);   // "[1, 2, 3]"

By standalone function

use function MF\Stringify\stringify;

echo stringify([1, 2, 3]);   // "[1, 2, 3]"
$result = array_map(stringify(...), [1, 'two']); // ['1', '"two"']

Sprintf bonus

with a new %A placeholder for stringify function

use function MF\Stringify\sprintf;

echo sprintf('Hello %A!', 'world');     // Hello "world"!
echo sprintf('Hello %A!', ['world']);   // Hello ["world"]!

Example

NOTE: values longer than 100 chars is shrinked to 100 chars with ... suffix

For easier examples, let's use a standalone function

Type PHP Result (string)
NULL stringify(null); null
bool stringify(true); true
bool stringify(false); false
string stringify(''); ""
string stringify('Some string'); "Some string"
int stringify(42); 42
float stringify(3.14); 3.14
array stringify([1, 2, 3]); [1, 2, 3]
array stringify(['foo' => 'bar']); ["foo" => "bar"]
array stringify(['person' => ['name' => 'Peter Parker'], 'alterego' => 'spider-man']); ["person" => ["name" => "Peter Parker"], "alterego" => "spider-man"]
object stringify(new \Foo\Bar()); Foo\Bar
object stringify(new \DateTime()); DateTime { 2018-11-15T10:20:30+00:00 }
object stringify(Seq::range('1..4')); MF\Collection\Immutable\Seq [1, 2, 3, 4]

Changelog

For latest changes see CHANGELOG.md file. We follow Semantic Versioning.

Contributing and development

Install dependencies

composer install

Run tests

For each pull-request, unit tests as well as static analysis and codestyle checks must pass.

To run all those checks execute:

composer all