1. Go to this page and download the library: Download zaff/challenge2 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/ */
zaff / challenge2 example snippets
use App\Config\Core\Router;
use App\Controller\CommandeController;
use App\Controller\SecurityController;
// Routes publiques
Router::get('/', SecurityController::class, 'index');
Router::post('/login', SecurityController::class, 'authenticate');
// Routes protégées par middleware
Router::get('/list', CommandeController::class, 'index', ['auth']);
Router::get('/form', CommandeController::class, 'create', ['auth', 'isVendeur']);
// Résolution des routes
Router::resolve();
use App\Config\Core\AbstractController;
class MonController extends AbstractController
{
public function index()
{
// Logique pour lister
$this->renderHtml('ma_vue.php', ['data' => $data]);
}
public function create()
{
// Logique pour créer
}
public function store()
{
// Logique pour sauvegarder
}
public function show()
{
// Logique pour afficher un élément
}
public function edit()
{
// Logique pour éditer
}
public function destroy()
{
// Logique pour supprimer
}
}
protected function renderHtml(string $view, array $params = [])
{
// $view : chemin vers la vue (ex: 'commande/list.php')
// $params : données à passer à la vue
}
use App\Config\Core\Database;
$pdo = Database::getConnection();
use App\Config\Core\App;
// Récupérer une dépendance
$pdo = App::get('pdo');
use App\Config\Core\AbstractEntity;
class MonEntity extends AbstractEntity
{
public static function toObject(array $tableau): static
{
// Convertir un tableau en objet
}
public function toArray(Object $object): array
{
// Convertir un objet en tableau
}
}
abstract class AbstractRepository
{
abstract public function selectAll();
abstract public function insert();
abstract public function update();
abstract public function delete();
abstract public function selectById();
abstract public function selectBy(Array $filtre);
}
// Route protégée par authentification
Router::get('/dashboard', Controller::class, 'index', ['auth']);
// Route pour vendeurs uniquement
Router::get('/admin', Controller::class, 'admin', ['auth', 'isVendeur']);
$middlewares['monMiddleware'] = 'maFonction';
function maFonction()
{
// Logique du middleware
if (!$condition) {
header('Location: /erreur');
exit;
}
}
use App\Config\Core\Session;
$session = Session::getInstance();
// Définir une valeur
$session->set('user_id', 123);
// Récupérer une valeur
$userId = $session->get('user_id');
// Vérifier l'existence
if ($session->isset('user_id')) {
// ...
}
// Supprimer une clé
$session->unset('user_id');
// Détruire la session
$session->destroy();
use App\Config\Core\Validator;
$validator = new Validator();
// Validation email
$validator->isEmail('email', $email, 'Email invalide');
// Validation champ vide
$validator->isEmpty('nom', $nom, 'Le nom est requis');
// Vérifier les erreurs
if ($validator->isValid()) {
// Aucune erreur
} else {
$errors = $validator->getErrors();
}
// Dans config/helpers.php
dd($variable); // Affiche et arrête l'exécution
// controller/MonController.php
class MonController extends AbstractController
{
public function index()
{
$this->renderHtml('ma_vue.php', ['titre' => 'Bonjour']);
}
// Implémenter les autres méthodes...
}