savinmikhail / primitive_wrappers
The object wrappers and static helpers for php primitive types
Requires
- php: >=7.4
- ext-mbstring: *
Requires (Dev)
- phan/phan: ^5.4
- phpmd/phpmd: ^2.15
- phpro/grumphp: ^2.5
- phpunit/phpunit: ^11.1
- rector/rector: ^1.1
- squizlabs/php_codesniffer: ^3.9
This package is auto-updated.
Last update: 2024-11-29 08:49:50 UTC
README
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
orstrSplit
orsplit
. Either to remember what somestrpbrk
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
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.