mapathe/core

There is no license information available for the latest version (v1.0.0) of this package.

Dépendance Core contenant le cœur de l'application PHP (routes, base, services, etc.)

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/mapathe/core

v1.0.0 2025-07-25 16:02 UTC

This package is auto-updated.

Last update: 2025-12-25 17:23:09 UTC


README

Vue d'ensemble

Mapathe Core est une bibliothèque PHP moderne qui fournit les composants fondamentaux pour développer des applications web avec injection de dépendances, routage et gestion de sessions.

Installation

composer require mapathe/core

Architecture

Container d'Injection de Dépendances

Le Container gère automatiquement les dépendances avec support des singletons.

$container = Container::getInstance();

// Lier une classe
$container->bind(Interface::class, Implementation::class);

// Singleton
$container->singleton(Service::class);

// Résoudre
$service = $container->resolve(Service::class);

Application Principale

La classe App centralise l'accès aux services.

// Initialiser l'application
App::initialize();

// Récupérer un service
$controller = App::get('CitoyenController');
$service = App::get(\App\Service\CitoyenService::class);

Routage

Le Router gère les routes avec support des paramètres et middlewares.

// Dans routes/route.web.php
return [
    [
        'method' => 'GET',
        'path' => '/users/{id}',
        'controller' => 'CitoyenController',
        'action' => 'show',
        'middlewares' => ['auth']
    ],
    [
        'method' => 'POST',
        'path' => '/login',
        'action' => function() {
            echo "Connexion";
        }
    ]
];

// Résoudre la route courante
Router::resolve();

Configuration des Services

Les services sont configurés via config/services.yml :

services:
  repositories:
    CitoyenRepository:
      class: \App\Repository\CitoyenRepository
      singleton: true
      
  services:
    CitoyenService:
      class: \App\Service\CitoyenService
      singleton: true
      dependencies: ['CitoyenRepository']
      
  controllers:
    CitoyenController:
      class: \App\Controller\CitoyenController
      dependencies: ['CitoyenService']

Classes Abstraites

AbstractController

Base pour tous les contrôleurs avec méthodes CRUD et réponses JSON.

class CitoyenController extends AbstractController
{
    public function index() {
        $data = ['users' => []];
        $this->renderJson($data, "success", 200, "Liste récupérée");
    }
}

AbstractEntity

Base pour les entités avec sérialisation.

class User extends AbstractEntity
{
    public static function toObject(array $data): static {
        // Conversion array vers objet
    }
    
    public function toArray(): array {
        // Conversion objet vers array
    }
}

AbstractRepository

Base pour les repositories avec connexion PDO.

class UserRepository extends AbstractRepository
{
    public function findAll() {
        $stmt = $this->pdo->query("SELECT * FROM users");
        return $stmt->fetchAll();
    }
}

Gestion des Sessions

$session = Session::getInstance();

$session->set('user', $userData);
$user = Session::get('user');
Session::requireAuth(); // Middleware auth

Base de Données

Configuration automatique via variables d'environnement :

DB_DRIVER=pgsql
DB_HOST=localhost
DB_PORT=5433
DB_NAME=pgdbDaf
DB_USER=pguserDaf
DB_PASSWORD=pgpassword

Middlewares Intégrés

  • auth : Vérifie l'authentification utilisateur
  • guest : Redirige les utilisateurs connectés

Exemple Complet

// Structure du projet
/src
  /core           # Classes du framework
  /config
    services.yml  # Configuration des services
/routes
  route.web.php   # Définition des routes

// Bootstrap
require 'vendor/autoload.php';
App::initialize();
Router::resolve();

Fonctionnalités Clés

Injection de dépendances automatique
Routage avec paramètres dynamiques
Middlewares d'authentification
Sessions sécurisées
ORM simple avec PDO
Configuration YAML
Réponses JSON standardisées

Cette bibliothèque offre une base solide pour développer rapidement des applications PHP modernes avec une architecture propre et maintenable.