hajjvero/you-route 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

hajjvero/you-route

最新稳定版本:v1.1.1

Composer 安装命令:

composer require hajjvero/you-route

包简介

Bibliothèque de routage PHP légère basée sur les attributs PHP

README 文档

README

You-Route est une bibliothèque de routage PHP légère basée sur les attributs PHP. Elle permet de définir facilement des routes HTTP pour vos applications web en utilisant des attributs PHP modernes.

Fonctionnalités

  • Routage basé sur les attributs PHP 8+
  • Support des méthodes HTTP (GET, POST, PUT, DELETE, etc.)
  • Paramètres d'URL dynamiques
  • Intégration facile avec les contrôleurs
  • Architecture modulaire et extensible

Prérequis

  • PHP >= 8.4
  • Composer

Installation

Ajoutez la dépendance à votre projet via Composer :

composer require hajjvero/you-route

Utilisation

1. Définition des routes

Utilisez l'attribut #[Route] pour définir vos routes :

<?php

use YouRoute\Attribute\Route;
use YouRoute\Http\Response;

class HomeController
{
    #[Route(path: '/', name: 'home')]
    public function index(): Response
    {
        return new Response('<h1>Bienvenue sur la page d\'accueil</h1>');
    }
    
    #[Route(path: '/user/{id}', name: 'user_show', methods: ['GET'])]
    public function show(int $id): Response
    {
        return new Response("<h1>Profil utilisateur #$id</h1>");
    }
}

2. Configuration du routeur

<?php

require_once 'vendor/autoload.php';

use YouRoute\YouRouteKernel;
use YouRoute\Http\Request;

// Initialiser le kernel
$kernel = new YouRouteKernel();

// Résoudre la requête
$request = new Request();
$kernel->run(__DIR__ . '/src/Controller', $request);

3. Structure du projet

your-project/
├── src/
│   ├── Attribute/
│   │   └── Route.php
│   ├── Http/
│   │   ├── Abstract/
│   │   │   ├── AbstractRequest.php
│   │   │   └── AbstractResponse.php
│   │   ├── Request.php
│   │   └── Response.php
│   ├── Router/
│   │   ├── Abstract/
│   │   │   └── AbstractRouteResolver.php
│   │   ├── RouteCollection.php
│   │   ├── RouteDispatcher.php
│   │   └── RouteResolver.php
│   └── YouRouteKernel.php
├── composer.json

Méthodes HTTP supportées

Vous pouvez spécifier les méthodes HTTP autorisées pour chaque route :

#[Route(path: '/api/users', methods: 'POST')] // Une seule méthode
#[Route(path: '/api/users/{id}', methods: ['PUT', 'DELETE'])] // Plusieurs méthodes

Paramètres d'URL

Définissez des paramètres dynamiques dans vos URLs avec la syntaxe {paramètre} :

#[Route(path: '/article/{id}/{slug}', name: 'article_show')]
public function show(int $id, string $slug): Response
{
    // $id et $slug sont automatiquement extraits de l'URL
}

Préfixe de routes avec les classes

Vous pouvez également définir un préfixe pour toutes les routes d'une classe en appliquant l'attribut #[Route] au niveau de la classe :

<?php

use YouRoute\Attribute\Route;
use YouRoute\Http\Response;

#[Route(path: '/api')]
class ApiController
{
    #[Route(path: '/users', methods: 'GET')]
    public function getUsers(): Response
    {
        return new Response('<h1>Liste des utilisateurs</h1>');
    }
    
    #[Route(path: '/users/{id}', methods: 'GET')]
    public function getUser(int $id): Response
    {
        return new Response("<h1>Détails de l'utilisateur #$id</h1>");
    }
}

Dans cet exemple, les routes seront accessibles via /api/users et /api/users/{id}.

Architecture

La bibliothèque suit une architecture modulaire organisée en plusieurs composants principaux :

Composant Attribute

  • Route.php : Définition de l'attribut Route utilisé pour annoter les contrôleurs

Composant Http

Composant Router

Kernel

Contribution

Les contributions sont les bienvenues ! N'hésitez pas à soumettre des issues ou des pull requests.

Licence

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

Auteur

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-04