Download the PHP package elipettingale/transformation without Composer

On this page you can find all versions of the php package elipettingale/transformation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package transformation

Transformation

A package to easily transform data using transformer classes. The idea behind this package is to be able to take data in one format and return it in a different or stripped down format. For example, you might use this when you are making an api endpoint and don't want to return everything or want to return something in multiple formats.

This is the generic version of this package. There is also a wordpress specific version here: https://github.com/elipettingale/wordpress-transformation

How to Install

Just install the package using composer:

composer require elipettingale/transformation

How to Use

First start by creating a transformer class:

class UserTransfomer extends Transformer
{

}

Then use the Transform class to transform some data:

$users = [
    [
        'first_name' => 'Dave',
        'last_name' => 'Test',
        'email' => '[email protected]'
    ],
    [
        'first_name' => 'Gina',
        'last_name' => 'Test',
        'email' => '[email protected]'
    ]
];

$users = Transform::all($users, UserTransfomer::class);

Based on the configuration defined in your transformer class the data will be manipulated and returned

Building a Transformer Class

There are a few tools that you can use to transform your data, these can be defined in your transformer classes.

Includes or Excludes

These are properties you can define to determine which attributes are returned.

Defining includes will mean that only attributes that you define will be returned, for example the following transformer:

class UserTransfomer extends Transformer
{
    protected $includes = [
        'first_name'
    ];
}

would mean that using our earlier example we now have the following in $users:

[
    [
        'first_name' => 'Dave'
    ],
    [
        'first_name' => 'Gina'
    ]
]

Defining excludes will mean that all attributes will be returned except for those that you define, for example the following transformer:

class UserTransfomer extends Transformer
{
    protected $excludes = [
        'first_name'
    ];
}

would now transform our $users to:

[
    [
        'last_name' => 'Test',
        'email' => '[email protected]'
    ],
    [
        'last_name' => 'Test',
        'email' => '[email protected]'
    ]
]

If you define neither then all attributes will be returned.

Renames

Don't like the name of an attribute? You can use renames to change the key of attributes:

class UserTransfomer extends Transformer
{
    protected $includes = [
        'first_name'
    ];

    protected $rename = [
        'first_name' => 'name'
    ];
}

will now return:

[
    [
        'name' => 'Dave'
    ],
    [
        'name' => 'Gina'
    ]
]

Mutators

If you've ever worked with Eloquent you should recognise this. A mutator is a method you define that will alter an attribute in some why before returning the data. It can also be used to define new computed attributes.

For example, take the following transformer:

class UserTransfomer extends Transformer
{
    public function getFullNameAttribute()
    {
        return $this->item['first_name'] . ' ' . $this->item['last_name'];
    }
}

This will create a new attribute called full_name and will use your function to calculate it's value.

Now when running our users through this transformer we get:

[
    'first_name' => 'Dave',
    'last_name' => 'Test',
    'email' => '[email protected]',
    'full_name' => 'Dave Test
],
[
    'first_name' => 'Gina',
    'last_name' => 'Test',
    'email' => '[email protected]',
    'full_name' => 'Gina Test
]

Note that these new attributes will still obey the defined includes, excludes and renames.


All versions of transformation with dependencies

PHP Build Version
Package Version
Requires elipettingale/case-converter Version ^1.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package elipettingale/transformation contains the following files

Loading the files please wait ....