Skip to content

Introduction

Doggy Framework est un framework de développement low-code d'entreprise natif IA, construit sur Symfony 7.4 LTS (support à long terme jusqu'en 2029).

Pourquoi choisir Doggy ?

  • Natif IA : intégration approfondie de MCP, Agent et de multiples modèles (Alibaba Bailian, OpenAI, LM Studio, Ollama, etc.), avec un système de configuration LLM intégré, un assistant IA global, une amélioration de vue IA, un assistant de codage, une requête en langage naturel, une reconnaissance visuelle et d'autres capacités IA
  • Moteur low-code : définition de modèles métier via les attributs PHP 8 combinés aux annotations personnalisées @Ef, avec génération automatique des migrations de base de données et des interfaces d'administration
  • Concepteur de vues piloté par l'IA : disposition par glisser-déposer + opérations en langage naturel IA + génération de vues par sous-agents d'identification d'intention + gestion multi-versions
  • Sécurité de niveau entreprise : connexion sans mot de passe WebAuthn, modèle des trois officiers, stratégie de mot de passe, journal d'audit de bout en bout
  • Communication en temps réel : push en temps réel basé sur Mercure SSE, Hub intégré à FrankenPHP, sans service supplémentaire
  • Haute performance : mode Worker FrankenPHP + compression zstd/br, architecture PostgreSQL en priorité
  • Écosystème complet : structure organisationnelle, tâches planifiées, stockage de fichiers, système de messagerie, bibliothèque de composants SunUI, le tout prêt à l'emploi

Pile technologique

CoucheTechnologie
LangagePHP 8.2+
FrameworkSymfony 7.4 LTS
RuntimeFrankenPHP (mode Worker) via runtime/frankenphp-symfony
Base de donnéesPostgreSQL 14+
ORMDoctrine ORM + StofDoctrineExtensionsBundle (Gedmo)
File de messagesSymfony Messenger (Doctrine Transport)
Temps réelMercure SSE (dunglas/mercure)
IASymfony AI (MCP, Agent, Store, support multi-plateformes)
AuthentificationWebAuthn (web-auth/webauthn-symfony-bundle) + JWT (firebase/jwt)
Stockage de fichiersLeague Flysystem (Local / OSS / S3)
FrontendTwig + jQuery + bibliothèque de composants SunUI
Bibliothèques utilitairesPHPSpreadsheet, Imagine, Predis, Ramsey UUID

Configuration requise

  • PHP >= 8.2
  • ext-ctype, ext-iconv
  • PostgreSQL >= 14
  • Composer >= 2.5

Démarrage rapide

Installation

bash
git clone git@github.com:doggy/skeleton.git my-app
cd my-app

Configuration de l'environnement

bash
cp .env.example .env
# 编辑 .env 配置数据库连接与 Mercure JWT 密钥

Démarrer la base de données

PostgreSQL doit être installé et exécuté séparément :

bash
# macOS
brew install postgresql@14
brew services start postgresql@14
createdb app

# Ubuntu/Debian
sudo apt install postgresql-14
sudo systemctl start postgresql
sudo -u postgres createdb app

Le Hub Mercure est intégré à FrankenPHP ; aucun démarrage supplémentaire n'est nécessaire.

Accès

Structure des répertoires

config/
├── bundles.php          # 已启用的 Symfony Bundle 列表
├── packages/            # 各 Bundle 配置
└── services.yaml

src/
├── Annotation/          # 自定义注解:Ef.php, EfGroup.php
├── Command/             # 16 个 Console 命令
├── Controller/          # Admin, Api, Security 控制器
├── Entity/              # Doctrine 实体 + CommonTrait
│   ├── Organization/    # Department, Position 等
│   ├── Platform/        # 平台相关实体
│   ├── Security/        # User, Role, Permission
│   ├── Storage/         # 文件存储实体
│   └── System/          # 系统配置实体
├── Form/                # 表单类型
├── Message/             # 异步消息
├── MessageHandler/      # 消息处理器
├── Repository/          # Doctrine Repository
├── Security/            # WebAuthn, JWT, Voter
├── Service/             # AI, Calendar, Security, Storage, Task, View 等
└── Twig/                # TwigExtension

Caddyfile                # FrankenPHP 配置(含 Mercure Hub、压缩、缓存)

Bundles centraux activés

BundleRôle
FrameworkBundleNoyau Symfony
DoctrineBundle + MigrationsBundleORM de base de données et migrations
SecurityBundleAuthentification et autorisation
TwigBundle + TwigExtraBundleMoteur de templates
MonologBundleJournalisation
StofDoctrineExtensionsBundleExtensions Gedmo (arborescence, horodatage, suppression logicielle, etc.)
NelmioCorsBundleSupport CORS
WebauthnBundleAuthentification sans mot de passe WebAuthn
MercureBundlePush de messages en temps réel
AiBundleIntégration Symfony AI
FlysystemBundleAbstraction du stockage de fichiers
HautelookAliceBundleDonnées de test (fixtures)

Concepts clés

Modèle dynamique

Les champs métier sont marqués via l'annotation @Ef, combinée aux attributs PHP 8 pour définir le modèle, avec réalisation automatique de :

  • La génération des migrations de base de données
  • Le rendu de l'interface CRUD
  • Les règles de validation des données
  • Les contrôles de permission
php
use App\Annotation\Ef;

class Department
{
    #[Ef(displayName: '部门名称', required: true)]
    private string $name;

    #[Ef(displayName: '部门编码', searchable: true)]
    private string $code;
}

Référence : Modèle dynamique

Trait commun des entités

Toutes les entités combinent les capacités suivantes via CommonTrait :

CommonTrait
├── BlameableTrait      # 创建人/更新人自动记录
├── TimestampableTrait  # 创建时间/更新时间自动记录
├── SoftDeleteTrait     # 软删除
└── IdTrait             # 自增主键

Structure organisationnelle

Arborescence de départements multi-niveaux (Nested Set), gestion des employés, système de postes, avec prise en charge de :

  • Arborescence de départements à niveaux illimités (Gedmo NestedTree)
  • Appartenance à plusieurs sociétés et départements
  • Système de postes et de niveaux
  • Import/export groupé d'utilisateurs (PHPSpreadsheet)

Référence : Structure organisationnelle

Système de sécurité

  • Connexion sans mot de passe WebAuthn (prise en charge des Passkey, clés de sécurité, biométrie)
  • Modèle des trois officiers (administrateur système, administrateur sécurité, auditeur de sécurité)
  • Stratégies de complexité et de durée de validité des mots de passe
  • Audit des opérations de bout en bout

Référence : Authentification WebAuthn

Ressources

Open source sous licence MIT | Copyright © 2026 Doggy