1. Go to this page and download the library: Download solvire/php-hypermedia-api 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/ */
solvire / php-hypermedia-api example snippets
use Solvire\API\Serializers\DataFields\CharField;
use Solvire\API\Serializers\DataFields\BooleanField;
use Solvire\API\Serializers\DataFields\IPAddressField;
use Solvire\API\Serializers\DataFields\DateTimeField;
use Solvire\API\Serializers\DataFields\EmailField;
use Solvire\API\Serializers\DataFields\IntegerField;
use Solvire\API\Serializers\LaravelModelSerializer;
use Solvire\API\Serializers\DataFields\SplitPointField;
/**
*
* @author solvire <[email protected]>
* @package Serializers
* @namespace App\Http\Controllers\API\Serializers
*/
class CompanySerializer extends LaravelModelSerializer
{
public function initDataFields()
{
$this->addField('id', new IntegerField(['readOnly'=>true, 'columnName'=>'ComapnyID']))
->addField('name', new CharField(['columnName'=>'Company_name']))
->addField('address', new CharField(['columnName'=>'Address']))
->addField('city', new CharField(['columnName'=>'City']))
->addField('state', new CharField(['columnName'=>'State']))
->addField('zip', new CharField(['columnName'=>'Zip']))
->addField('county', new CharField())
->addField('area_code', new IntegerField(['columnName'=>'AreaCode']))
->addField('phone', new CharField(['columnName'=>'Comp_phone']))
->addField('domain', new CharField())
->addField('sic', new CharField(['columnName'=>'SIC']))
->addField('revenue', new IntegerField(['columnName'=>'Rev']))
->addField('employees', new IntegerField(['columnName'=>'Emps']))
->addField('exp_id', new IntegerField(['writeOnly'=>true,'columnName'=>'ExpID']))
->addField('naics', new IntegerField(['columnName'=>'NAICS']))
->addField('year_founded', new IntegerField())
->addField('f1000', new IntegerField())
->addField('alexa', new IntegerField())
->addField('fbpage', new CharField())
->addField('opt_out', new BooleanField(['writeOnly'=>true]))
->addField('location', new SplitPointField(['latitudeColumn' => 'latitude', 'longitudeColumn' => 'longitude', 'allowNull' => true]));
}
}
use Solvire\API\Serializers\ArraySerializer;
use Solvire\API\Serializers\DataFields\CharField;
use Solvire\API\Serializers\DataFields\BooleanField;
use Solvire\API\Serializers\DataFields\IPAddressField;
use Solvire\API\Serializers\DataFields\DateTimeField;
/**
*
* @author solvire <[email protected]>
* @package Serializers
* @namespace LeadFerret\Http\Controllers\API\Serializers
*/
class HealthSerializer extends ArraySerializer
{
public function initDataFields()
{
$this->addField('status', new CharField());
$this->addField('server_data', new CharField());
$this->addField('ip', new IPAddressField());
$this->addField('you', new CharField());
$this->addField('stage', new CharField());
$this->addField('alive', new BooleanField());
$this->addField('timestamp', new DateTimeField());
}
}
use Solvire\API\Serializers\DataFields\CharField;
use Solvire\API\Serializers\DataFields\BooleanField;
use Solvire\API\Serializers\DataFields\DateTimeField;
use Solvire\API\Serializers\DataFields\IntegerField;
use Solvire\API\Serializers\DataFields\PhoneField;
use Solvire\API\Serializers\LaravelModelSerializer;
use Solvire\API\Serializers\DataFields\SerializerField;
use Solvire\API\Serializers\DataFields\TransformerField;
use Solvire\API\Serializers\DataFields\SplitPointField;
use LeadFerret\Models\Transformers\API\DepartmentToCategoryTransformer;
use Solvire\API\Serializers\DataFields\GenderField;
/**
* Serialize a contact object
*
* @author solvire <[email protected]>
* @package Serializers
* @namespace LeadFerret\Http\Controllers\API\Serializers
*/
class ContactSerializer extends LaravelModelSerializer
{
/**
* (non-PHPdoc)
* @see \Solvire\API\Serializers\BaseSerializer::initDataFields()
*/
public function initDataFields()
{
// the serializer field takes a closure
$company = function ($model) {
return $model->company;
};
$getModel = function ($model){
return $model;
};
$this->addField('id', new IntegerField(['readOnly'=>true, 'columnName'=>'ContactID']))
->addField('first_name', new CharField(['columnName'=>'first_name']))
->addField('last_name', new CharField(['columnName'=>'last_name']))
->addField('title', new CharField(['columnName'=>'user_title']))
->addField('phone', new PhoneField(['columnName'=>'contact_phone']))
->addField('created', new DateTimeField(['columnName'=>'created_on','format'=>'Y-m-d H:i:s']))
->addField('score', new IntegerField())
->addField('crowd_score', new IntegerField())
->addField('title_level', new CharField(['columnName'=>'title_levels']))
->addField('gender', new GenderField(['maleValue'=>'Male','femaleValue'=>'Female'])) // normalized gender values
->addField('ads_status', new IntegerField(['writeOnly'=>true]))
->addField('useragent', new CharField())
->addField('device', new CharField(['writeOnly'=>true,'columnName'=>'uadevice']))
->addField('opt_out', new BooleanField(['writeOnly'=>true]))
->addField('company', new SerializerField( ['serializer'=>new CompanySerializer(), 'callback' => $company] ))
->addField('professional_categories', new TransformerField(['transformer'=> (new DepartmentToCategoryTransformer()), 'callback' => $getModel ]));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.