data-transfer-object
Serializer
data-transfer-object | Serializer | |
---|---|---|
16 | 9 | |
2,177 | 2,302 | |
- | - | |
6.4 | 7.9 | |
over 1 year ago | about 1 month 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.
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
Serializer
- Data-Mapper: A package for fast mapping of strong-typed objects
- brick/json-mapper: map JSON data to strongly typed PHP DTOs
-
Design Decisions: Why use final classes
Making a class "final" is always a bad decision IMO. You would never know how will other people use your library. For example, we used JMSSerializerBundle and wanted to extend DateHandler to make it not to throw exceptions if a date string is invalid. But the class is final. So we had to just copy-paste it :(
- Symfony serializer is tedious
-
Array -> Entity
Or this popular alternative: https://jmsyst.com/libs/serializer
-
PHP libraries and tools
JMS Serializer: This library allows you to (de-)serialize data of any complexity. Currently, it supports XML and JSON.
-
Yet another Data-Transfer-Object package
Only took a very brief look, but it looks nice. I like that the DTO class isn't required to extend anything, and that it seems to be for real DTOs used for actual transfer of data between systems - not 'local dtos'. It feels like this might be more comparable to something like schmittjoh/serializer rather than spatie/data-transfer-object.
-
PHP foreach loop to XML
When it's time to create the PDF, convert the object structure to an XML using an already existing serializer (like JMS or symfony serializer) or do this by hand.
-
Is there a better way to connect to an API?
One frequently used serializer is JMS Serializer which allows you to convert JSON or XML to objects (or the other way around if needed). You can then use the objects in your application.
What are some alternatives?
php-dto - A data transfer object inspired by Rust's serde
Fractal - Output complex, flexible, AJAX/RESTful data structures.
package-skeleton-laravel - A skeleton repository for Spatie's Laravel Packages
JsonMapper - Map nested JSON structures onto PHP classes
git-auto-commit-action - Automatically commit and push changed files back to GitHub with this GitHub Action for the 80% use case.
Ardent - A Collections library for PHP.
fram - Fram is a view framework for PHP
Arrayy - 🗃 Array manipulation library for PHP, called Arrayy!
Doctrine - Doctrine Object Relational Mapper (ORM)
CRUDlex - CRUDlex is an easy to use CRUD generator for Symfony 4 and Silex 2 which is great for auto generated admin pages
serializer - Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.