PHP code example of marcot89 / laravel-magic-routes

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

    

marcot89 / laravel-magic-routes example snippets


namespace App\Http\Controllers;

use MarcoT89\LaravelMagicRoutes\Traits\MagicRoutes;

class UserController extends Controller
{
    use MagicRoutes;
}

namespace App\Http\Controllers;

class UserController extends Controller
{
    use MagicRoutes;

    public function index(...) {...}
    public function store(...) {...}
    public function update(...) {...}
    public function create(...) {...}
    public function show(...) {...}
    public function edit(...) {...}
    public function destroy(...) {...}
    public function forceDestroy(...) {...}
}

class PostController extends Controller
{
    use MagicRoutes;

    // Generated route:
    // GET /posts/{post}/publish
    public function publish(Post $post) {...}

    // Generated route:
    // POST /posts/{post}/publish
    public function postPublish(Post $post) {...}

    // Generated route:
    // PUT /posts/{post}/publish
    public function putPublish(Post $post) {...}

    // Generated route:
    // DELETE /posts/{post}/publish
    public function deletePublish(Post $post) {...}
}

class PostController extends Controller
{
    public function publish(Post $post, $one, $two, $three) {...}
}

class UserController extends Controller
{
    use MagicRoutes;

    // use a string for one middlware
    protected $middleware = 'auth';
    // or use an array for many middlewares
    protected $middleware = [
        'auth',
        'verified' => ['except' => ['index', 'edit', 'update']],
    ];
}

class UserController extends Controller
{
    use MagicRoutes;

    public function __construct()
    {
        $this->middleware('auth');
    }
}

namespace App\Http\Controllers\Api\V1;

...

class UserController extends Controller
{
    use MagicRoutes;

    public function index(...) {...}
}

namespace App\Http\Controllers\Posts;

class PublishController extends Controller
{
    use MagicRoutes;

    protected $middleware = 'auth';
    protected $method = 'post'; // only works for invokable controllers
    // or
    protected $method = 'post|put'; // separate by pipe for more http methods

    public function __invoke(Post $post) {...}
}

namespace App\Http\Controllers\Users; // Note that it is inside Users namespace for prefix route

class PostController extends Controller
{
    use MagicRoutes;

    protected $prefix = '{user}';

    public function index(User $user) {
        return $user->posts()->paginate();
    }
}

class UserController extends Controller
{
    use MagicRoutes;

    protected $plural = false;

    ...
}