Raihel Controller
Create your routes using attributes in your controllers
Installation
composer install raihel/controller
Setting
Use Controller Factory to map your routes
diretory: An array with the directories of your controllerscontrollers: An array with your controller classesloadRoute: The class that will do the work of including the routes mapped in your controllers in your application accepts any class that implementsRaihel\Controller\Core\Load\Type\LoudRoute
Slim:
require __DIR__.'/../../vendor/autoload.php';
use App\HelloController;
use Raihel\Controller\Core\ControllerFactory;
use Slim\App;
$app = new App();
use Raihel\Controller\Core\Load\Type\SlimLoadRoute;
ControllerFactory::load(
loadRoute: new SlimLoadRoute($app),
diretory: [__DIR__ . '/../src'],
controllers: [HelloController::class]
);
$app->run();
Lumen:
ControllerFactory::load(
loadRoute: new LumenLoadRoute($router),
diretory: [__DIR__ . '/../app/Http/Controllers'],
);
Usage/Examples
Controller
Create your controller by adding the attribute Controller in your class it can receive a prefix that groups your routes
namespace App;
use Raihel\Controller\Attributes\Controller;
use Raihel\Controller\Attributes\Route\Get;
use Raihel\Controller\Attributes\Route\Put;
#[Controller('home')]
class AppController
{
#[Get]
public function home()
{
echo 'Hello World!';
}
#[Get('hello'), Put('hello')]
public function get2()
{
echo 'Hello World 2!';
}
}
Routes
The attribute Get before the home method creates a GET /home endponit for application
| Attributes |
|---|
| Get |
| Post |
| Put |
| Delete |
| Patch |
Authors
License
The Raihel Controller is open-sourced software licensed under the MIT license.