erenkucukersoftware/powerful-php

⚡ Laravel Helpers, Collections and Js like object oriented chaining for Native PHP

Maintainers

👁 erenka

Package info

github.com/erenkucukersoftware/powerful-php

Issues

pkg:composer/erenkucukersoftware/powerful-php

Statistics

Installs: 25

Dependents: 0

Suggesters: 0

Stars: 5

v1.0.0 2021-06-15 17:47 UTC

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 29eae1cace1b94bcb3c3e1a11ae9271c948ff0bf

  • Eren Kucuker <erenkucuker.woop@gmail.com>

This package is not auto-updated.

Last update: 2026-06-25 16:44:13 UTC


README

👁 License: MIT
👁 Twitter: yerenkucuker

⚡ Laravel Helpers, Collections and Js like object oriented chaining for Native PHP

Install

composer require erenkucukersoftware/powerful-php

🚀 Usage

Object Oriented Chaining

Example 1 :

Functional Approach
$snakeCase = strtolower(
 preg_replace('/(.)(?=[A-Z])/u', '$1_', 
 preg_replace('/\s+/u', '', 
 ucwords('HelloWorld')
 )
 )
);
 
var_dump($snakeCase); // "hello_world"
Object Oriented Approach
//powerfulphp

$snakeCase = 
 pipe('Hello World')
 ->ucwords(_)
 ->preg_replace('/\s+/u', '', _)
 ->preg_replace('/(.)(?=[A-Z])/u', '$1_', _)
 ->strtolower(_)
 ->var_dump;
//
// string(11) "hello_world"
//

Example 2 :

Passing Value Between Pipes

To pass a value as an argument to a function, use the underscore (_) character :

pipe('hello')
 ->str_replace('o', '', _)
 ->var_dump; // "hell"

Example 3 :

One Parameter Usage

You can omit parentheses if only one argument is used:

pipe('some')
 ->is_array
 ->dd; // bool(false) 

Example 4 :

Values
$context = pipe('hello')->strtoupper;

var_dump($context);
// object(Fun\Pipe\Pipe)#8 (1) { ... } 

var_dump($context());
// string(5) "HELLO"

Example 5 :

Namespaces

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()"
;

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Author

👤 Eren Küçüker

Show your support

Give a ⭐️ if this project helped you!

👁 Image

📝 License

Copyright © 2021 Eren Küçüker.
This project is MIT licensed.