⚡ Laravel Helpers, Collections and Js like object oriented chaining for Native PHP
composer require erenkucukersoftware/powerful-php
$snakeCase = strtolower(
preg_replace('/(.)(?=[A-Z])/u', '$1_',
preg_replace('/\s+/u', '',
ucwords('HelloWorld')
)
)
);
var_dump($snakeCase); // "hello_world"
//powerfulphp
$snakeCase =
pipe('Hello World')
->ucwords(_)
->preg_replace('/\s+/u', '', _)
->preg_replace('/(.)(?=[A-Z])/u', '$1_', _)
->strtolower(_)
->var_dump;
//
// string(11) "hello_world"
//
To pass a value as an argument to a function, use the underscore (_) character :
pipe('hello')
->str_replace('o', '', _)
->var_dump; // "hell"
You can omit parentheses if only one argument is used:
pipe('some')
->is_array
->dd; // bool(false)
$context = pipe('hello')->strtoupper;
var_dump($context);
// object(Fun\Pipe\Pipe)#8 (1) { ... }
var_dump($context());
// string(5) "HELLO"
Calling single function from namespace
pipe()
->use('Some\\Namespace')->foo // Call "\Some\Namespace\foo()"
->foo // Call "\foo()"
;
Calling multiple function from namespace
pipe()
->use('Some\\Namespace', fn($pipe) =>
$pipe
->a // Call "\Some\Namespace\a()"
->b // Call "\Some\Namespace\b()"
)
->a // Call "a()"
;
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
👤 Eren Küçüker
- Website: www.erenkucuker.com
- Twitter: @yerenkucuker
- Github: @erenkucukersoftware
- LinkedIn: @yunus-eren-küçüker-609716168
Give a ⭐️ if this project helped you!
Copyright © 2021 Eren Küçüker.
This project is MIT licensed.