1. Go to this page and download the library: Download oscarricardosan/mapper 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/ */
oscarricardosan / mapper example snippets
class Customer{
public function store(array $data){
//En laravel
$customer = new Customer();
$customer->fill($data);
$customer->save();
}
}
use Oscarricardosan\Mapper\Mapper;
/**
* @property $name
* @property $company "PHP Company"
* @property $document_type "cc"
* @property $document_number
* @property $city
* @property $state
* @property $country
* @property $car
*/
class CustomerMap extends Mapper
{
public function getDocumentTypeAttribute($value)
{
return strtoupper($value);
}
public function setCityAttribute($value)
{
if($value == 'Moscú')
$this->attributes['country'] = 'Rusia';
}
}
//Accessor default value
echo($customerMap->document_type); => CC
//Accessor new value
$customerMap->document_type = 'ti';
echo($customerMap->document_type); => TI
//Mutator
$customerMap->city = 'Moscú';
echo($customerMap->country); => Rusia
/**
* @property $name
* @property $car
* @property $document_type
*/
class CustomerMap extends Mapper
{
protected $alias = [
0 => 'name',
1 => 'car',
2 => 'document_type'
];
public function getDocumentTypeAttribute($value)
{
return strtoupper($value);
}
}
//Passing vector
$customerMap = new CustomerMap(['Oscar', 'Tesla S', 'ti']);
echo($customerMap->name); => Oscar
echo($customerMap->car); => Tesla S
echo($customerMap->document_type); => TI
#Laravel
/***
* REPOSITORY
***/
class CustomerRepository{
public function store(CustomerMap $customerMap)
{
$customer = new Customer();
$customer->fill($customerMap->getAttributes());
$customer->save();
}
public function update(CustomerMap $customerMap)
{
$customer = new Customer();
$customer->name = $customerMap->name;
$customer->name = $customerMap->company;
$customer->save();
}
}
/***
* CONTROLLER
***/
class CustomerController{
$repository;
public function __construct(){
$this->repository = new CustomerRepository();
}
public function store($request)
{
$customerMap = new CustomerMap($request->all());
$this->repository->store($customerMap);
}
public function update($request)
{
$customerMap = new CustomerMap($request->all());
$this->repository->update($customerMap);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.