norse-blue / prim
PHP Primitive Objects
Fund package maintenance!
norse-blue
axelitus
Ko Fi
www.buymeacoffee.com/axelitus
Requires
- php: ^7.3
- ext-bcmath: *
- ext-json: *
- ext-mbstring: *
- doctrine/inflector: ^1.3
- moontoast/math: ^1.1
- norse-blue/extensible-objects: ^0.3
- ramsey/uuid: ^3.8
Requires (Dev)
- nunomaduro/phpinsights: ^1.0
- phpstan/phpstan: ^0.11.5
- phpunit/phpunit: ^8.1
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2022-02-01 13:16:33 UTC
README
DEPRECATED: This package was growing too big and has now been deprecated in favor of the following smaller, segmented and more contained packages:
- norse-blue/collection-objects
- norse-blue/enum-objects
- norse-blue/extensible-objects
- norse-blue/handy-properties
- norse-blue/optionals
- norse-blue/scalar-objects
- norse-blue/value-objects
PHP Prim is a PHP library that exposes primitive types as immutable objects with convenience methods to operate on them.
Installation
Requirements:
- PHP 7.3+
- BC Math extension (for UUIDs)
- JSON extension
- Multibyte String extension
Install Prim using Composer:
composer require norse-blue/prim
Usage
There are three ways to create a primitive object instance:
-
Using the
new
keyword:use NorseBlue\Prim\Scalars\StringObject as Str; $str = new Str('my string'); echo $str->upper(); // Outputs: // MY STRING
-
Using the facades:
Note: params passed by reference are not supported in facades because the calls depend on
__callStatic
, which does not pass params by reference. See Overloading.use NorseBlue\Prim\Facades\Scalar\StringFacade as Str; echo Str::upper('my string'); // Outputs: // MY STRING
-
Using the namespaced functions:
use NorseBlue\Prim\string; $str = string('my string'); echo $str->upper(); // Outputs: // MY STRING
You can also chain methods together:
use NorseBlue\Prim\string; $str = string('THIS IS MY TEXT.')->lower()->ucfirst(); echo $str; // Outputs: // This is my text.
You don't need to worry about side-effects for scalar objects, as they are implemented as immutable objects and each method returns a new object. To store the value don't forget to assign it to a variable or it will be lost.
Documentation
For the full documentation refer to the docs folder.
Changelog
Please refer to the CHANGELOG.md file for more information about what has changed recently.
Contributing
Contributions to this project are accepted and encouraged. Please read the CONTRIBUTING.md file for details on contributions.
Credits
Security
If you discover any security related issues, please email security@norse.blue instead of using the issue tracker.
Support the development
Do you like this project? Support it by donating
License
PHP Prim is open-sourced software licensed under the MIT license.