PHP code example of aina / dagophp

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

    

aina / dagophp example snippets




use Dago\Router;

/** @var Router $router */

$router->get('/', 'HomeController@index');
$router->get('/user/{id}', 'UserController@show');
$router->post('/user', 'UserController@store');

// avec middleware
$router->get('/dashboard', 'DashboardController@index', [\App\Middlewares\AuthMiddleware::class]);

// closure directe
$router->get('/ping', function (\Dago\Request $request) {
    return (new \Dago\Response())->json(['pong' => true]);
});

namespace App\Controllers;

use Dago\Controller;
use Dago\Request;
use Dago\Response;

class UserController extends Controller
{
    public function show(Request $request): Response
    {
        $id = $request->param('id');

        return $this->view('user', ['id' => $id]);
        // ou : return $this->json(['id' => $id]);
        // ou : return $this->redirect('/');
    }
}

 $view->layout('layout'); 

namespace App\Models;

use Dago\Model;

class User extends Model
{
    protected static string $table = 'users';
}

User::all();
User::find(1);
User::where('email', '[email protected]');
User::create(['name' => 'Aina', 'email' => '[email protected]']);

$validator = new \Dago\Validator();
$errors = $validator->validate($request->all(), [
    'email' => '=> $errors], 422);
}

(new \Dago\Mail())->send(
    '[email protected]',
    'Sujet du mail',
    '<p>Corps du message en HTML</p>'
);

namespace App\Middlewares;

use Dago\Middleware;
use Dago\Request;
use Dago\Response;

class AuthMiddleware implements Middleware
{
    public function handle(Request $request, \Closure $next): Response
    {
        if (!isset($_SESSION['user_id'])) {
            return (new Response())->redirect('/login');
        }

        return $next($request);
    }
}
bash
php dago migrate
bash
php dago serve
php dago serve -p 8080   # port personnalisé

app/
├── Controllers/     # Contrôleurs applicatifs (App\Controllers\)
├── Models/          # Modèles (App\Models\)
└── Middlewares/     # Middlewares (App\Middlewares\)

config/
├── app.yaml         # nom, mode debug, clé secrète
├── database.yaml     # connexion MySQL
└── mail.yaml         # connexion SMTP

database/
└── migrations/       # une migration = un fichier PHP qui `return` du SQL

public/
└── index.php          # front controller

resources/
└── views/             # templates PHP (layout + vues)

routes/
├── web.php            # charge automatiquement tous les autres fichiers du dossier
└── *.php              # un fichier de routes par domaine (home.php, product.php...)

src/                    # cœur du framework (namespace Dago\)
├── App.php             # bootstrap
├── Router.php           # routing + middlewares
├── Request.php / Response.php
├── Controller.php / View.php
├── Database.php / Model.php
├── Middleware.php        # interface
├── Validator.php
├── Config.php            # lecture des fichiers config/*.yaml
├── Mail.php               # client SMTP fait maison
└── Console.php            # commandes CLI (php dago ...)

dago                       # point d'entrée CLI