Valinor
data-transfer-object
Valinor | data-transfer-object | |
---|---|---|
10 | 16 | |
1,236 | 2,177 | |
1.2% | - | |
8.8 | 6.4 | |
11 days ago | over 1 year ago | |
PHP | PHP | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Valinor
-
PHP libraries and tools
cuyz/valinor: PHP library that helps to map any input into a strongly-typed value object structure.
- Data-Mapper: A package for fast mapping of strong-typed objects
- PHP RFC: Deprecations for PHP 8.3
- brick/json-mapper: map JSON data to strongly typed PHP DTOs
-
Hydration / Mapping library
I know there are alternatives like Valinor (https://github.com/CuyZ/Valinor)
-
[Bundle] Automatically map the incoming request data to a DTO and optionally validate it
For the next major version, i'm considering giving the option to use valinor (or anything else) instead of the Serializer component in the next major version. If you have more ideas, let me know.
-
Valinor — Object mapper with strong type support and error handling
You can check the repository on GitHub; there is also a documentation website.
-
pjson: a simple JSON <=> PHP8+ data objects library
See also: Valinor https://github.com/CuyZ/Valinor which does some of what you want, albeit in a more verbose fashion, but without polluting your objects.
- Valinor: a library that maps unstructured input to properly typed objects
data-transfer-object
- Data-Mapper: A package for fast mapping of strong-typed objects
- brick/json-mapper: map JSON data to strongly typed PHP DTOs
-
A (very) small package to cast a variable to a new type, in including custom classes
Speaking of… https://github.com/spatie/data-transfer-object is dead, does doctrine offer similar functionality?
-
Given a messy class used _heavily_ with a hard time understanding whats going on... how to log stuff in testing / demo??
Once you are confident in the argument types, add them to the methods. If there are too many, create a Data Transfer Object. Also add method return types.
-
Refactoring #5: From arrays to Data Transfer Objects
The benefits of using DTOs are numerous, there's even a package from Spatie for them. See the package's release post and this awesome DTO explanation for a more in-depth take and how to implement and use them in a more sensible way.
-
Leveraging DTOs for JSON database columns as an alternative to additional tables
I opted to use Spatie's DTO package and a bit of additional custom code for easy casting. I decided to map each JSON column to its own DTO, so I created two classes for land and for army.
-
What are peoples thoughts/feelings regarding PHP attributes?
When possible, I surely will try using the spatie/data-transfer-object with attributes to see if I like it.
-
Workflow to keep CHANGELOG up-to-date with Release Notes
Open Source projects using this Action. Mostly my own projects, as I just released the Action. However, Spatie, a huge contributor to open source PHP packages recently added the workflow to their PHP package template; which makes me super proud ♥️
-
Restricting ORM objects to repository classes and DTOs
This spatie lib looks neat too, though it might not be all that static analysis friendly. I guess this doesn't save you from having two classes with the same properties. Seems like it could be worth a shot. Short of inventing a code generation tool I don't know how much better I can do.
- Autoload callback when certain class is called first time
What are some alternatives?
laravel-data - Powerful data objects for Laravel
php-dto - A data transfer object inspired by Rust's serde
Serde - Robust Serde (serialization/deserialization) library for PHP 8.
Serializer - Library for (de-)serializing data of any complexity (supports JSON, and XML)
serializer - Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.
package-skeleton-laravel - A skeleton repository for Spatie's Laravel Packages
ObjectHydrator - Object Hydration library to create Command and Query objects.
git-auto-commit-action - Automatically commit and push changed files back to GitHub with this GitHub Action for the 80% use case.
Psalm - A static analysis tool for finding errors in PHP applications
fram - Fram is a view framework for PHP
json-mapper - Maps JSON data to strongly typed PHP DTOs
Doctrine - Doctrine Object Relational Mapper (ORM)