1. Go to this page and download the library: Download surgiie/transformer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
surgiie / transformer example snippets
use Closure;
use Illuminate\Support\Stringable;
// Example functions available at runtime:
function to_carbon($value)
{
return new Carbon\Carbon($value);
}
function only_numbers($value)
{
return preg_replace("/[^0-9]/",'',$value);
}
$input = [
'first_name'=>' jim ',
'last_name'=>' thompson',
'address' => '123 some street',
'phone_number'=>'123-456-7890',
'date_of_birth'=>"1991-05-01",
];
$transformers = [
'first_name'=>'trim|ucfirst',
'last_name'=>'trim|ucfirst',
'phone_number'=>'only_numbers',
// more on object values and method delegation below
'address' => [Stringable::class, '->after:123 ', '->toString'],
'date_of_birth'=>'to_carbon|->format:m/d/y',
];
$transformer = new DataTransformer($input, $transformers);
$newData = $transformer->transform();
// Returns:
// [
// "first_name" => "Jim",
// "last_name" => "Thompson",
// "phone_number" => "1234567890",
// "address"=> "some street",
// "date_of_birth" => "05/01/91",
// ]
function example_function(int $value){
return $value + 1;
}
$input = ['example'=>"1"];
$transformers = [
'example'=>'example_function:1@int', // "1" will be casted to an int.
];
$input = ['first_name'=>' Bob'];
$transformers = [
'first_name'=>['trim', function ($value) {
// modify the value
return $value;
}],
];
$transformer = new DataTransformer($input, $transformers);
$transformer->transform();
use Surgiie\Transformer\DataTransformer;
use Surgiie\Transformer\Contracts\Transformable;
class TransformValue implements Transformable
{
public function transform($value, Closure $exit)
{
// quit transforming value(s)
if($someCondition){
$exit();
}
// or modify the value
$value = "Changed";
return $value;
}
}
$input = ['first_name' => ' Bob'];
$transformers = [
'first_name' => ['trim', new TransformValue],
];
$transformer = new DataTransformer($input, $transformers);
$transformer->transform();
$input = [
'contact_info'=>[
'first_name'=>' jim ',
'last_name'=>' thompson',
'phone_number'=>'123-456-7890',
'address'=>'123 some lane.'
]
];
$transformers = [
'contact_info.first_name'=>'trim|ucwords',
'contact_info.last_name'=>'trim|ucwords',
'contact_info.phone_number'=>'preg_replace:/[^0-9]/,,:value:',
'contact_info.address'=>[function ($address) {
return 'Address Is: '.$address;
}],
];
$transformer = new DataTransformer($input, $transformers);
$transformer->transform();
$input = [
'first_name'=>' jim ',
'last_name'=>' thompson',
'ignored'=>' i-will-be-the-same'
];
$transformers = [
// apply to all keys that contain "name"
'*name*'=>'trim|ucwords',
];
$transformer = new DataTransformer($input, $transformers);
$transformer->transform();
use Closure;
class Example
{
protected $value;
public function __construct($value)
{
$this->value = $value;
}
public function concat($string)
{
return $this->value . $string;
}
}
function example($value)
{
return new Example($value);
}
$input = [
'string'=>"Foo",
];
$transformers = [
'string'=>'example|->concat:Bar',
];
use Surgiie\Transformer\DataTransformer;
use Surgiie\Transformer\Transformer;
// accepts the function name being executed and the key/name of the input being processed:
Transformer::guard(function($method, $key){
// only "trim" is allowed to be executed
return in_array($method, ['trim']);
});
$input = [
'first_name'=>' jim ',
];
$transformers = [
'first_name'=>'trim|ucwords',
];
$transformer = new DataTransformer($input, $transformers);
// throws a Surgiie\Transformer\Exceptions\ExecutionNotAllowedException once it gets to ucwords due to the guard method.
$transformer->transform();
use Surgiie\Transformer\Transformer;
$transformer = new Transformer(" uncle bob ", ['trim', 'ucwords']);
$transformer->transform(); // returns "Uncle Bob"
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Surgiie\Transformer\Concerns\UsesTransformer;
class ExampleController extends Controller
{
use UsesTransfomer;
public function store(Request $request)
{
//...
// transform a single value
$newValue = $this->transform(" example ", ['trim|ucwords']);
// or transform an array of data
$newData = $this->transformData(['example'=> 'data '], ["example"=>'trim|ucwords']);
}
}
public function store(Request $request)
{
// Using data from the request object (i.e. `$request->all()`)
$transformedData = $request->transform([
'first_name' => ['strtoupper'],
]);
// $transformedData['first_name'] will be all uppercase
// all other data will be
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.