2017 © Pedro PelΓ‘ez
 

library data-transformer

DataTransformer

image

itmedia/data-transformer

DataTransformer

  • Tuesday, June 5, 2018
  • by by25
  • Repository
  • 1 Watchers
  • 2 Stars
  • 117 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 4 % Grown

The README.md

DataTransformer

Build Status, (*1)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для трансформации Π΄Π°Π½Π½Ρ‹Ρ… Π² массивы, Π½Π° основании ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ схСмы (Transformer)., (*2)

Install

composer require itmedia/data-transformer

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

ВрансформСры:

ВрансформСр Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ отнаслСдован ΠΎΡ‚ Itmedia\DataTransformer\Transformer\Transformer ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ map($resource):, (*3)

МоТно ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ трансформации ΠΊΠ°ΠΊ массивов, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²., (*4)

class UserTransformer extends Transformer
{
    public function map($resource)
    {
        return [
            'name' => $resource['user_name'],
            'email' => $resource['user_email']
        ];
    }

}

class GroupTransformer extends Transformer
{
    public function map($resource)
    {
        return [
            'id' => $resource['group_id'],
            'name' => $resource['group_name']
        ];
    }

}

Врансформация Π΄Π°Π½Π½Ρ‹Ρ…:


$resource = [ 'user_name' => 'Tester', 'user_email' => 'email@email.com', 'password' => 'mypass', 'user_group' => [ [ 'group_id' => 1, 'group_name' => 'User' ], [ 'group_id' => 2, 'group_name' => 'Manager' ] ] ]; $transformer = new UserTransformer(); $transformer->addCollection(new GroupTransformer('user_group', ['field' => 'groups'])); $transformProvider = new TransformProvider(); $result = $transformProvider->transformItem($resource, $transformer);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:, (*5)

[
    'name' => 'Tester',
    'email' => 'email@email.com',
    'groups' => [
        [
            'id' => 1,
            'name' => 'User'
        ],
        [
            'id' => 2,
            'name' => 'Manager'
        ]
    ]
]

ΠžΠΏΡ†ΠΈΠΈ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ трансформации

ВрансформСры ΠΌΠΎΠ³ΡƒΡ‚ Π² сСбя Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ трансформСры., (*6)

$transformer = new UserTransformer();
$transformer->add(new UserTransformer()); // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта
$transformer->addCollection(new GroupTransformer($property, $mapping, $options)); // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ элСмСнтов

Π“Π΄Π΅:, (*7)

  • $property - Бвойство, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° значСния для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ трансформации. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅ΠΌ массива, Ρ‚Π°ΠΊ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (default: null), (*8)

  • $mapping - ΠžΠΏΡ†ΠΈΠΈ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° (склСивания Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ массив)., (*9)

ДоступныС ΠΎΠΏΡ†ΠΈΠΈ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π°:, (*10)

  • field НазваниС ΠΊΠ»ΡŽΡ‡Π° массива, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ присвоСн Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ трансформации (default: null):, (*11)

    • string - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°;
    • null - автоматичСски Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ. Если коллСкция, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ $property ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ масивом;
    • false - объСдинСниС с ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ масивом.
  • required - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствования Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ $property (выкидываСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅) (default: false)., (*12)

    • $options - ΠžΠΏΡ†ΠΈΠΈ трансформации. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для управлСния прСобразования Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для скрытия ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π΅ΠΉ. ΠžΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ доступныС ΠΎΠΏΡ†ΠΈΠΈ трансформации Π² Transformer::defaultOptions(). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ - Itmedia\DataTransformer\Tests\Stub\Transformer\ArrayGroupTransformer

Врансформация Π΄Π°Π½Π½Ρ‹Ρ…:

$options = [
    'root_key' => 'data'
];
$transformProvider = new TransformProvider($options);

ΠžΠΏΡ†ΠΈΠΈ:, (*13)

  • root_key - ΠžΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ массив Π² ΠΊΠ»ΡŽΡ‡ root_key. (default: null)

Врансформация ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта:, (*14)

$transformProvider->transformItem($resource, $transformer);

Врансформация ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ элСмСнтов:, (*15)

$transformProvider->transformCollection($resource, $transformer);

The Versions

05/06 2018

dev-master

9999999-dev https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^7.1.3

 

The Development Requires

03/02 2017

dev-develop

dev-develop https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

03/02 2017

v0.2.1

0.2.1.0 https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

18/08 2016

v0.2.0

0.2.0.0 https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

08/08 2016

v0.1.3

0.1.3.0 https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

08/08 2016

v0.1.2

0.1.2.0 https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

20/07 2016

v0.1.1

0.1.1.0 https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

15/07 2016

v0.1.0

0.1.0.0 https://github.com/by25/DataTransformer

DataTransformer

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires