savinmikhail/primitive_wrappers

The object wrappers and static helpers for php primitive types

v1.2.0 2024-06-29 07:41 UTC

This package is auto-updated.

Last update: 2024-10-29 08:37:38 UTC


README

EO principles respected here Code Coverage Quality Score

Object-Oriented Primitive Wrappers

This PHP library provides object-oriented wrappers for primitive data types, aiming to improve code readability, maintainability, and error handling compared to traditional procedural approaches.

Worth to mention, that some other programming languages like Java, Python etc have it built-in.

Features

  • Object-Oriented Design: The library offers object-oriented wrappers for primitive types, allowing developers to work with primitives in a less imperative style.

  • Enhanced Error Handling: The library provides more robust error handling mechanisms, so you don't have to remember to check whether some json_decode returned false, or null, or empty string, or threw Error or Exception.

  • Improved Readability: Clear and descriptive method names enhance code readability and maintainability, so you don't have to worry whether function calls str_split or strSplit or split. Either to remember what some strpbrk mean

  • Advanced Methods: You can convert cases (e.g. from camel to snake) fluently, or get words from a string, and many more!

Installation

Run

composer require savinmikhail/primitive_wrappers

Example Usage

use Mikhail\PrimitiveWrappers\Str;

// Create a string wrapper
$str = new Str('Hello, world!');

// Get the length of the string
$length = $str->length();

// Use methods as a builder
$lowercaseCapitalized = $str->toLower()->capitalize();

//use some more advanced methods
$snake = (new Str('Lorem ipsum dolor sit amet'))->snake(); //lorem_ipsum_dolor_sit_amet

Similar projects

Symfony string

Illuminate Str

Primitive objects

Contributing

Contributions are welcome! If you encounter any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request on GitHub.

License

This library is released under the MIT license.