PHP code example of fabio / laravel-simple-bases

1. Go to this page and download the library: Download fabio/laravel-simple-bases 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/ */

    

fabio / laravel-simple-bases example snippets


class AuthController extends BaseAuth

Route::post('v1/login', 'v1\AuthController@login');

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'jwt',
            'provider' => 'users',
            'hash' => false,
        ],
    ],

'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\v1\User::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

$this->fieldsCreate = [
        'name' => '     'motor_power' => '

public function transform(Car $car)
    {
        return [
            'name' => $car->name,
            'license_plate' => $car->license_plate,
            'motor_power' => $car->motor_power,
        ];
    }

Route::resource('v1/car', 'v1\CarController');

public function carType()

'car_type' => fractal_transformer(
                $car->carType,
                CarTypeTransformer::class,
                null
            )

return [
    'model::class' => [
        'property_param' => [
            'model' => 'Model::class',
            'property' => 'property_database'
        ],
    ]
];

return [
    \App\Models\v1\User::class => [

        'car_uuid' => [
            'model' => \App\Models\v1\Car::class,
            'property' => 'car_id'
        ],

    ]
];

return [
    'model::class' => [
        'fantasy_property' => 'photo',
        'save_location' => '/photos/property_item',
        'extension' => '.png'
    ],
];

return [

    \App\Models\v1\Car::class => [
        'fantasy_property' => 'photo',
        'save_location' => '/photos/car',
        'extension' => '.png'
    ],

];

public function transform(Car $car)
    {
        return [
            'uuid' => $car->uuid,
            'name' => $car->name,
            'license_plate' => $car->license_plate,
            'motor_power' => $car->motor_power,
            'files' => fractal_transformer(
                $car->files,
                FileTransformer::class,
                null
            )
        ];
    }

class CarPermission extends BasePermission
{

     protected $permissions = [
        'index' => [],
        'show' => [],
        'store' => [],
        'update' => [],
        'destroy' => [],
    ];

}

class CarPermission extends BasePermission
{

     protected $permissions = [
        'index' => [
            UserRole::ADMIN,
            UserRole::COMMON
        ],
        'show' => [
            UserRole::ADMIN,
            UserRole::COMMON
        ],
        'store' => [
            UserRole::ADMIN,
        ],
        'update' => [
            UserRole::ADMIN,
        ],
        'destroy' => [
            UserRole::ADMIN,
        ],
    ];

}

class UserRole extends ModelBase
{
    const ADMIN = 1;
    const COMMON = 2;


class CarController extends BaseController
{
    public function __construct(
        Car $car,
        CarTransformer $carTransformer,
        CarValidation $carValidation,
        CarPermission $carPermission
    )
    {
        $this->model = $car;
        $this->service = new CarService($this->model);
        $this->transformer = $carTransformer;
        $this->validation = $carValidation;
        $this->permission = $carPermission;
    }
}

public function userRole()
    {
        return $this->belongsTo('App\Models\v1\UserRole');
    }

protected $permissions = [
        'index' => [],
        'show' => [],
        'store' => [],
        'update' => [],
        'destroy' => [],
        'other_function_name' => [],
        'other_function_name2' => [],
    ];

$this->hasPermissonSet();

return $user->userRole->id;

class HandlePermission implements HandlePermissionInterface
{
}

 public static function handle($user)
    {
        /**
         * @var User $user
         */
        return $user->userRole->id;
    }

 public static function message(): string
    {
        return 'Your users do not have access to this feature';
    }

fractal_transformer(mixed $data, Transformer $transformer, mixed $defaultValue = [])

fractal_transformer($user->car, CarTransformer::class, null)

public function transform(User $user)
    {
        return [
            'uuid' => $user->uuid,
            'name' => $user->name,
            'car' => fractal_transformer(
                $user->car,
                CarTransformer::class,
                null
            ),
        ];
    }

php artisan make:controller v1/AuthController

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

php artisan jwt:secret

php artisan config:cache

 php artisan fabio-pv:generate-endpoint-class Car --table-name=cars

{{url}}/api/v1/user?filters[0][car.car_type.name@equal]=Sporty

{{url}}/api/v1/car?paginate=value

{{url}}/api/v1/car?paginate=false
{{url}}/api/v1/car?paginate=20


php artisan fabio-pv:model-with-file-config
config/model_with_file.php

php artisan config:cache

php artisan fabio-pv:generate-permission-handle
app/Exceptions/Handler.php
app/Exceptions/Handler.php