PHPackages                             tabbbzero/archiectureprojet - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. tabbbzero/archiectureprojet

ActiveProject

tabbbzero/archiectureprojet
===========================

05[1 issues](https://github.com/manica28/Packagist-Architecture/issues)PHP

Since Jul 23Pushed 9mo agoCompare

[ Source](https://github.com/manica28/Packagist-Architecture)[ Packagist](https://packagist.org/packages/tabbbzero/archiectureprojet)[ RSS](/packages/tabbbzero-archiectureprojet/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Architecture Projet PHP
=======================

[](#architecture-projet-php)

**Framework PHP léger et moderne basé sur une architecture MVC avec injection de dépendances, validation automatique et gestion des middlewares.**

---

🚀 Installation &amp; Démarrage
------------------------------

[](#-installation--démarrage)

```
# Installation
composer create-project tabbzero/architectureprojet:dev-main mon-projet
cd mon-projet

# Configuration .env
DB_USER=root
DB_PASSWORD=password
dsn=mysql:host=localhost;dbname=ma_base;charset=utf8mb4
APP_URL=http://localhost:8000

# Migration & Lancement
php migrations/Migration.php
cd public && php -S localhost:8000
```

---

🏗️ Architecture &amp; Structure
-------------------------------

[](#️-architecture--structure)

**📁 Structure du Projet**

DossierDescriptionContenu**`app/config/`**Configurationmiddlewares, rules, services.yml**`app/core/`**Framework coreabstract, Router, Database, Validator**`src/`****Votre code application**├─ `controller/`ContrôleursLogique métier et endpoints├─ `entity/`EntitésModèles de données├─ `repository/`RepositoriesAccès aux données└─ `service/`ServicesLogique applicative**`routes/`**Définition des routesMapping URL → Contrôleur**`migrations/`**Scripts de migrationCréation/modification DB**`public/`**Point d'entréeindex.php, assets publics---

🛠️ Utilisation Rapide
---------------------

[](#️-utilisation-rapide)

### **Routage avec Middlewares**

[](#routage-avec-middlewares)

```
// routes/route.web.php
$routes = [
    'GET:/api/users' => [
        'controller' => UserController::class,
        'method' => 'index'
    ],
    'POST:/api/users' => [
        'controller' => UserController::class,
        'method' => 'store',
        'middlewares' => ['auth', 'cryptPassword']
    ],
    'GET:/api/users/{id}' => [
        'controller' => UserController::class,
        'method' => 'show'
    ]
];
```

### **Contrôleur**

[](#contrôleur)

```
namespace App\Controller;
use App\Core\Abstract\AbstractController;

class UserController extends AbstractController
{
    public function index()
    {
        $users = []; // Récupérer depuis repository

        $this->renderJson([
            'data' => $users,
            'statut' => 'success',
            'code' => 200
        ]);
    }

    public function store()
    {
        $validator = new Validator();
        $rules = [
            'email' => [['required'], ['isMail']],
            'password' => [['required'], ['minLength', 8]]
        ];

        if (!$validator->validate($_POST, $rules)) {
            $this->renderJson([
                'errors' => $validator->getErrors()
            ], 400);
            return;
        }

        // Logique de création...
    }
}
```

### **Entité**

[](#entité)

```
namespace App\Entity;
use App\Core\Abstract\AbstractEntity;

class User extends AbstractEntity
{
    public function __construct(
        private int $id,
        private string $nom,
        private string $email
    ) {}

    public static function toObject(array $data): static
    {
        return new static($data['id'], $data['nom'], $data['email']);
    }

    public function toArray(): array
    {
        return ['id' => $this->id, 'nom' => $this->nom, 'email' => $this->email];
    }
}
```

### **Repository**

[](#repository)

```
namespace App\Repository;
use App\Core\Abstract\AbstractRepository;

class UserRepository extends AbstractRepository
{
    public function selectAll(): array
    {
        $stmt = $this->pdo->prepare("SELECT * FROM users");
        $stmt->execute();

        return array_map([User::class, 'toObject'], $stmt->fetchAll());
    }

    public function findById(int $id): ?User
    {
        $stmt = $this->pdo->prepare("SELECT * FROM users WHERE id = ?");
        $stmt->execute([$id]);

        $row = $stmt->fetch();
        return $row ? User::toObject($row) : null;
    }
}
```

---

✨ Fonctionnalités Avancées
--------------------------

[](#-fonctionnalités-avancées)

**🔐 Validation Automatique**

- `required`, `minLength`, `maxLength`, `isMail`, `isPassword`
- `isSenegalPhone`, `isCNI` (spécifique Sénégal)

**🛡️ Middlewares Intégrés**

- `auth` : Vérification authentification
- `cryptPassword` : Cryptage automatique des mots de passe

**📸 Gestion d'Images**

- Upload local et Cloudinary
- Support multi-upload

**💾 Sessions Simplifiées**

```
Session::set('user', $userData);
$user = Session::get('user', 'id');
Session::destroy();
```

**⚙️ Injection de Dépendances**

```
# app/config/services.yml
repositories:
  userRepository: App\Repository\UserRepository
services:
  userService: App\Service\UserService
```

**🔄 Migration &amp; Seeding**

- Scripts automatisés de création de tables
- Peuplement de données de test

---

🎯 Avantages
-----------

[](#-avantages)

✅ **Léger** - Framework minimaliste sans bloatware
✅ **Moderne** - PHP 8.1+, PSR compatible
✅ **Sécurisé** - Middlewares, validation, cryptage
✅ **Flexible** - Architecture modulaire
✅ **API-First** - Réponses JSON standardisées
✅ **Prêt à l'emploi** - Migration, seeding, exemples

---

📞 Support &amp; Contribution
----------------------------

[](#-support--contribution)

**🐛 Issues** : GitHub Issues
**📖 Documentation** : README complet dans le projet
**🤝 Contributions** : Pull Requests bienvenues

```
                                                                                        !!!**Développé avec ❤️ par TableZero**!!!

```

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance40

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/719a9adf66a19e1a1943bc769956c34750ff2f30a21a568edf828bdfca0a34f0?d=identicon)[manica28](/maintainers/manica28)

---

Top Contributors

[![manica28](https://avatars.githubusercontent.com/u/177277323?v=4)](https://github.com/manica28 "manica28 (12 commits)")

### Embed Badge

![Health badge](/badges/tabbbzero-archiectureprojet/health.svg)

```
[![Health](https://phpackages.com/badges/tabbbzero-archiectureprojet/health.svg)](https://phpackages.com/packages/tabbbzero-archiectureprojet)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
