1. Go to this page and download the library: Download kevupton/laravel-swagger 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/ */
kevupton / laravel-swagger example snippets
/** @var Swagger\Annotations\Swagger $swagger */
$swagger = \Kevupton\LaravelSwagger\scan(app_path('location'), [
'models' => [
/** All models go in here */
\App\Models\User::class,
]
]);
class User {
protected $table = 'users';
protected $fillable = ['first_name', 'last_name', 'image_id'];
protected $hidden = ['created_at', 'updated_at', 'image_id'];
protected $with = ['image'];
public $timestamps = true;
public function image() {
return $this->belongsTo(Image::class);
}
}
namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
use Kevupton\LaravelSwagger\DynamicMethod;
use Swagger\Annotations\Parameter;
use Swagger\Annotations\Response;
class BaseController extends Controller {
//Define the function that returns the dynamic methods
public static function getSwaggerRoutes() {
return [
'index' => DynamicMethod::GET([
'tags' => ['{{tag}}'],
'summary' => '{{summary}}',
'parameters' => [
new Parameter([
'in' => 'query',
'name' => 'page',
'description' => 'the page number',
'
public static $keyname = 'Value that will be replaced';
class TestController {
public static $tag = "my custom tag";
public static $summary = "how awesome is this";
public static $response = "#/definitions/Response"
namespace App\Handlers;
use Kevupton\LaravelSwagger\DynamicHandler;
use Kevupton\LaravelSwagger\LaravelSwagger;
use Kevupton\LaravelSwagger\ValueContainer;
class CustomHandler extends DynamicHandler {
/**
* The handler which sets all the values in the dynamic definition.
*
* @param String $class the Controller class name
* @param LaravelSwagger $LS the LaravelSwagger instance.
* @throws DynamicHandlerException
*/
public function handle($class, LaravelSwagger $LS) {
//all the registered keys
$keys = $this->method->keys();
$key = 'response';
//get the value of from the class
$value = ValueContainer::getValue($class, $key);
/**
* Do some handling here of the value?
*/
//to set a registered key
$this->method->set($key, $value);
}
}
use App\Handlers\CustomHandler;
class BaseController extends Controller {
//The method for defining the custom handler
public static function getSwaggerHandler() {
return CustomHandler::class;
}
}
namespace App\Swagger;
use Kevupton\LaravelSwagger\DynamicMethod;
use Kevupton\LaravelSwagger\MethodContainer;
class CustomContainer extends MethodContainer {
/**
* Gets
* @return DynamicMethod[]
*/
public function getSwaggerMethods()
{
// TODO: Implement getSwaggerMethods() method.
}
/**
* Gets the Routes for the container
*
* @return DynamicMethod[]
*/
public function getSwaggerRoutes()
{
// TODO: Implement getSwaggerRoutes() method.
}
/**
* Gets the default Handler class
*
* @return string the Class Name of the DynamicHandler instance
*/
public function getSwaggerHandler()
{
// TODO: Implement getSwaggerHandler() method.
}
}
use App\Swagger\CustomContainer;
class BaseController extends Controller {
public static $swagger_container = CustomContainer::class;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.