zero-to-prod / dynamic-setter
Fluently set class properties with dynamic methods.
Fund package maintenance!
zero-to-prod
Requires
- php: ^7.1
Requires (Dev)
- phpunit/phpunit: ^7.0
README
Fluently set class properties with dynamic methods.
Installation
To install this package run composer install:
composer require zerotoprod/dynamic-setter
Usage
The DynamicSetter
trait allows you to easily create class instances and dynamically set properties through method chaining.
It provides a simple way to manage object instantiation and property setting with set_*
methods.
To use the DynamicSetter
trait, include it in your class and define the properties you want to set dynamically.
use Zerotoprod\StreamContext\DynamicSetter; class User { use DynamicSetter; public $name; public $email; } $user = User::new() ->set_name('John Doe') ->set_email('john.doe@example.com'); echo $user->name; // Output: John Doe echo $user->email; // Output: john.doe@example.com
Nested Objects
You can also use the DynamicSetter trait in classes that contain other objects, allowing you to set properties in a nested structure.
class Address { use DynamicSetter; public $city; public $postalCode; } class Customer { use DynamicSetter; public $name; public $address; } $customer = Customer::new() ->set_name('Jane Doe') ->set_address( Address::new() ->set_city('New York') ->set_postalCode('10001') ); echo $customer->name; // Output: Jane Doe echo $customer->address->city; // Output: New York echo $customer->address->postalCode; // Output: 10001