Serde
data-transfer-object
Serde | data-transfer-object | |
---|---|---|
7 | 16 | |
266 | 2,177 | |
- | - | |
8.3 | 6.4 | |
about 2 months ago | over 1 year ago | |
PHP | PHP | |
GNU General Public License v3.0 or later | 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.
Serde
- Data-Mapper: A package for fast mapping of strong-typed objects
-
Is rust serde unique?
In PHP there is a lib that draws inspiration from serde https://github.com/Crell/Serde
-
What environment, framework or class would you use to interact with APIs?
Guzzle for the actual connection. Get back JSON. Use https://github.com/Crell/Serde to map that JSON into classed objects. Do as you will with the objects. (You can also do the same the other way around to create a message object with all the type safety and builder functionality you want, Serde it to JSON/array, and then send the message through Guzzle.)
-
Has there been any talk of an "empty" coalesce operator?
I even have a very nice library to make that dead simple for you: https://github.com/Crell/Serde
-
Hydration / Mapping library
Sounds a lot like Serde. :-)
-
pjson: a simple JSON <=> PHP8+ data objects library
Sounds a bit like Serde: https://github.com/crell/serde
- Serde: A modern serialization library for PHP 8.1
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?
Valinor - PHP library that helps to map any input into a strongly-typed value object structure.
php-dto - A data transfer object inspired by Rust's serde
json-mapper - Maps JSON data to strongly typed PHP DTOs
Serializer - Library for (de-)serializing data of any complexity (supports JSON, and XML)
ObjectHydrator - Object Hydration library to create Command and Query objects.
package-skeleton-laravel - A skeleton repository for Spatie's Laravel Packages
pjson - JSON <=> PHP8+ objects serialization / deserialization library
git-auto-commit-action - Automatically commit and push changed files back to GitHub with this GitHub Action for the 80% use case.
JsonMapper - Map nested JSON structures onto PHP classes
fram - Fram is a view framework for PHP
saloon - 🤠 Build beautiful API integrations and SDKs with Saloon
Doctrine - Doctrine Object Relational Mapper (ORM)