zero-to-prod / transformable
Transform a class into different types.
Fund package maintenance!
Github
Installs: 6 283
Dependents: 14
Suggesters: 12
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.1.0
- ext-json: *
- zero-to-prod/package-helper: ^1.1.3
Requires (Dev)
- phpunit/phpunit: <12.0
Suggests
- zero-to-prod/data-model: Transform data into a class.
README
Contents
- Introduction
- Requirements
- Installation
- Documentation Publishing
- Usage
- Local Development
- Contributing
Introduction
Transform a class into different types.
Requirements
- PHP 7.1 or higher.
Installation
Install Zerotoprod\Transformable
via Composer:
composer require zero-to-prod/transformable
This will add the package to your project’s dependencies and create an autoloader entry for it.
Additional Packages
- DataModel: Transform data into a class.
- DataModelHelper: Helpers for a
DataModel
. - DataModelFactory: A factory helper to set the value of your
DataModel
.
Documentation Publishing
You can publish this README to your local documentation directory.
This can be useful for providing documentation for AI agents.
This can be done using the included script:
# Publish to default location (./docs/zero-to-prod/transformable) vendor/bin/zero-to-prod-transformable # Publish to custom directory vendor/bin/zero-to-prod-transformable /path/to/your/docs
Automatic Documentation Publishing
You can automatically publish documentation by adding the following to your composer.json
:
{ "scripts": { "post-install-cmd": [ "zero-to-prod-transformable" ], "post-update-cmd": [ "zero-to-prod-transformable" ] } }
Usage
To use the Zerotoprod\Transformable\Transformable
trait in your class, simply include it:
use Zerotoprod\Transformable\Transformable; class YourDataModel { use Transformable; public $name; public $email; } $model = new YourDataModel(); $model->name = 'John Doe'; $model->email = 'john.doe@example.com'; $array = $model->toArray(); $json = $model->toJson();
Methods
toArray(): array
Converts the object’s properties into an associative array.toJson(): string
Converts the object’s properties into a JSON string.
Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the issues page if you want to contribute.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.