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