bypass-finals
Serializer
bypass-finals | Serializer | |
---|---|---|
3 | 9 | |
444 | 2,302 | |
- | - | |
5.4 | 7.9 | |
5 days ago | about 1 month 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.
bypass-finals
-
BillaBear - Design Decisions ‐ Not Using Final Classes
I had this issue when working with Dibi as I needed to mock final methods. You can use this https://github.com/dg/bypass-finals package and forget all the debate about finals against non-final.
-
Laravel considered harmful
It definitely is my job. If you feel you should ignore best practices and author's opinion, use something like this: https://github.com/dg/bypass-finals
-
Design Decisions: Why use final classes
Even with the keyword final it's still possible to extend by using the final disable library https://github.com/dg/bypass-finals but the fact you needed to disable it makes it very clear that it's unsupported behaviour.
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?
Codeception - Full-stack testing PHP framework
Fractal - Output complex, flexible, AJAX/RESTful data structures.
Torch - Examples of using each Illuminate component in non-Laravel applications
JsonMapper - Map nested JSON structures onto PHP classes
composer-patches - Simple patches plugin for Composer
data-transfer-object - Data transfer objects with batteries included
parthenon - The Symfony SaaS boilerplate
Ardent - A Collections library for PHP.
laravel-strict-coding-standard - PHP_CodeSniffer rules for Laravel to force the "right" design of the app
Arrayy - 🗃 Array manipulation library for PHP, called Arrayy!
Laravel - The Laravel Framework.
CRUDlex - CRUDlex is an easy to use CRUD generator for Symfony 4 and Silex 2 which is great for auto generated admin pages