Download the PHP package dereuromark/cakephp-dto without Composer
On this page you can find all versions of the php package dereuromark/cakephp-dto. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dereuromark/cakephp-dto
More information about dereuromark/cakephp-dto
Files in dereuromark/cakephp-dto
Package cakephp-dto
Short Description CakePHP DTO Plugin
License MIT
Homepage https://github.com/dereuromark/cakephp-dto/
Informations about the package cakephp-dto
CakePHP DTO plugin
A Data Transfer Object (DTO) is an object used to pass typed data between layers in your application, similar in concept to Structs in C, Martin Fowler's Transfer Objects, or Value Objects.
The goal of this package is to structure "unstructured data", replacing simple (associative) arrays with a more speaking solution.
- By making all fields typeable, we can be sure that their values are never something we didn't expect. Especially with modern PHP and more strict typehinting moving forward this is rather important to detect and fail early.
- We can have full IDE autocomplete and typehinting.
- We can use tools like PHPStan to statically analyze the code (more strictly).
- We can simplify the logic where required fields will now just throw a meaningful exception.
- We can work with different inflections of field names more easily.
- Easy way of immutable DTOs with required fields, to trust them in following code.
- Works out of the box with any value object that is serializable (either as array or string).
For more see Motivation and Background.
This plugin will provide you with a tool to quickly generate custom and optimized DTOs for your special use cases.
This branch is for use with CakePHP 5.0+. For details see version map.
Examples
Live examples in the Sandbox: Github Demo.
See Examples for basic, immutable and complex entity use cases. The generated demo DTOs of those are in tests/test_app/src/Dto/.
Note: Param/return types are enabled and strict types disabled by default.
Installation
You can install this plugin into your CakePHP application using Composer.
Then load the plugin with the following command:
Usage
See Docs for details.
All versions of cakephp-dto with dependencies
ext-json Version *
cakephp/cakephp Version ^5.0.3
cakephp/twig-view Version ^2.0.1
sebastian/diff Version ^5.0.0 || ^6.0.0