承接 bondomvc/mvc 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

bondomvc/mvc

最新稳定版本:v1.2.1

Composer 安装命令:

composer require bondomvc/mvc

包简介

BondoMVC - A lightweight, modern PHP MVC framework for rapid web application development

README 文档

README

Un framework PHP MVC léger, moderne et réutilisable comme Laravel, parfait pour des projets web rapides et scalables.

✨ Fonctionnalités

  • Routeur MVC - Routes automatiques avec conversion tirets → camelCase
  • Validation - Validation de formulaires complète
  • Authentification - Login/Register avec hash bcrypt
  • Middleware - Protéger les routes (auth_required)
  • API REST - Endpoints JSON complètes
  • CRUD - Gestion complète des données
  • ORM Simple - Classe Database avec requêtes préparées
  • Helpers - 20+ fonctions utilitaires
  • Configuration - Support .env

📋 Structure du Projet

BondoMVC/
├── app/
│   ├── controllers/        # Contrôleurs (HomeController, AuthController, etc.)
│   ├── models/             # Modèles (User, Product, etc.)
│   ├── views/              # Vues (HTML/PHP)
│   └── middleware/         # Middlewares (AuthMiddleware, etc.)
├── core/                   # Noyau du framework
│   ├── App.php             # Routeur principal
│   ├── Controller.php       # Classe de base pour contrôleurs
│   ├── Model.php           # Classe de base pour modèles
│   ├── Database.php        # Gestion base de données
│   ├── Validator.php       # Validation
│   ├── Middleware.php      # Classe de base middleware
│   └── Helpers.php         # Fonctions utilitaires
├── config/
│   └── config.php          # Configuration (BD, URLs, etc.)
├── database/
│   └── seed.sql            # Données d'exemple
├── public/
│   ├── index.php           # Point d'entrée
│   ├── css/                # Fichiers CSS
│   ├── js/                 # Fichiers JavaScript
│   └── api-docs.html       # Documentation API
├── .env.example            # Modèle de configuration
├── .htaccess               # Réécriture d'URLs
└── composer.json           # Dépendances PHP

🚀 Installation

1. Cloner/Copier le framework

cd C:\xampp\htdocs
# ou copier le dossier BondoMVC

2. Installer les dépendances

composer install
composer dump-autoload

3. Configurer .env

cp .env.example .env

Puis éditer .env:

APP_NAME=MonApp
URLROOT=http://localhost/BondoMVC
DB_HOST=localhost
DB_NAME=ma_base
DB_USER=root
DB_PASS=

4. Créer la base de données

mysql -u root < database/seed.sql

5. Lancer le serveur

# Avec XAMPP
# Démarrer Apache dans XAMPP Control Panel

# Ou avec PHP built-in
php -S localhost:8000

Accédez à http://localhost/BondoMVC

📚 Guide d'Utilisation

Créer un Contrôleur

php console make:controller ProductController

Ou créer manuellement dans app/controllers/ProductController.php:

<?php

namespace App\Controllers;

use Core\Controller;

class ProductController extends Controller
{
    public function index()
    {
        $data = ['title' => 'Produits'];
        $this->view('products/index', $data);
    }

    public function show($id)
    {
        $this->view('products/show', ['id' => $id]);
    }
}

Créer un Modèle

php console make:model Product

Ou créer manuellement dans app/models/Product.php:

<?php

namespace App\Models;

use Core\Model;

class Product extends Model
{
    protected string $table = 'products';

    public function getAll()
    {
        return $this->db()->fetchAll("SELECT * FROM {$this->table}");
    }

    public function getById($id)
    {
        return $this->db()->fetch("SELECT * FROM {$this->table} WHERE id = ?", [$id]);
    }
}

Créer une Vue

Fichier app/views/products/index.php:

<h1><?= escape($title) ?></h1>
<p><?= escape($description) ?></p>

Routes

Les routes se font automatiquement!

GET  /product → ProductController@index()
GET  /product/show/1 → ProductController@show(1)
POST /product/do-create → ProductController@doCreate()

Conversion automatique:

  • /do-createdoCreate()
  • /my-actionmyAction()

Validation

$validator = new Validator();
$validator->validate([
    'name' => 'required|min:3|max:255',
    'email' => 'required|email|unique:users,email',
    'password' => 'required|min:6|confirmed'
]);

if ($validator->hasErrors()) {
    // Afficher erreurs
    $validator->displayErrors();
}

Authentification

// Login
if ($user = $userModel->getByEmail($email)) {
    if ($userModel->verifyPassword($password, $user['password'])) {
        setSession('user_id', $user['id']);
        redirect('/dashboard');
    }
}

// Récupérer l'utilisateur
$user = auth();

// Vérifier si connecté
if (isAuth()) {
    // Utilisateur connecté
}

Middleware

class AdminController extends Controller
{
    public function __construct()
    {
        $middleware = new AuthMiddleware();
        if (!$middleware->handle()) {
            exit;
        }
    }
}

API REST

class ApiController extends Controller
{
    public function articles()
    {
        $articles = /* récupérer */;
        $this->jsonResponse([
            'success' => true,
            'data' => $articles
        ], 200);
    }

    protected function jsonResponse($data, $statusCode = 200)
    {
        http_response_code($statusCode);
        header('Content-Type: application/json');
        echo json_encode($data);
        exit;
    }
}

Accès: GET /api/articles → JSON

🛠️ CLI - Générateur de Code

Créer un Contrôleur

php console make:controller NomController

Créer un Modèle

php console make:model NomModel

Créer un Middleware

php console make:middleware NomMiddleware

🚀 Déploiement en Production

1. Préparer l'environnement

# 1. Configurer .env pour production
DB_HOST=prod.db.server
DB_NAME=prod_database
APP_DEBUG=false

# 2. Générer autoload optimisé
composer install --optimize-autoloader --no-dev

# 3. Vérifier permissions
chmod -R 755 app/ core/ public/
chmod -R 777 storage/ # pour les uploads

2. Serveur Apache

Configuration .htaccess (déjà prête):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Activer mod_rewrite:

a2enmod rewrite
systemctl restart apache2

3. SSL/HTTPS

# Installer Let's Encrypt
certbot certonly --apache -d monsite.com

# Renouvellement automatique
certbot renew --dry-run

4. Base de données

# Exporter BD
mysqldump -u user -p base > backup.sql

# Importer en prod
mysql -u user -p prod_db < backup.sql

5. Monitoring

# Logs
tail -f /var/log/apache2/error.log

# Performance
htop

📊 Exemple Complet - Blog

1. Créer modèle

php console make:model Post
php console make:controller PostController

2. Migration BD

CREATE TABLE posts (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

3. Modèle

class Post extends Model
{
    protected string $table = 'posts';

    public function getAll()
    {
        return $this->db()->fetchAll(
            "SELECT * FROM {$this->table} ORDER BY created_at DESC"
        );
    }
}

4. Contrôleur

class PostController extends Controller
{
    public function index()
    {
        $posts = (new Post())->getAll();
        $this->view('posts/index', ['posts' => $posts]);
    }
}

5. Vue

<?php foreach ($posts as $post): ?>
    <article>
        <h2><?= escape($post['title']) ?></h2>
        <p><?= escape($post['content']) ?></p>
    </article>
<?php endforeach; ?>

🔒 Sécurité

  • ✅ Requêtes préparées (prévention SQL injection)
  • ✅ Hash bcrypt pour mots de passe
  • ✅ Escape automatique (escape())
  • ✅ Validation des entrées
  • ✅ CSRF tokens disponibles
  • ✅ Middleware d'authentification

📞 Support

Erreurs courantes:

404 Not Found

  • Vérifier l'URL (avec /BondoMVC)
  • Vérifier que le contrôleur existe
  • Vérifier la méthode du contrôleur

Database error

  • Vérifier .env
  • Vérifier que la BD existe
  • Vérifier permissions utilisateur MySQL

Erreur 500

  • Activer APP_DEBUG=true dans .env
  • Vérifier les logs Apache

📄 Licence

MIT - Libre d'utilisation

🎓 Ressources

Créé avec ❤️ - BondoMVC Framework

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04