Skip to content

Introdução

O Doggy Framework é um framework de desenvolvimento low-code empresarial com IA nativa, construído sobre o Symfony 7.4 LTS (suporte de longo prazo até 2029).

Porquê escolher o Doggy?

  • IA nativa: integração aprofundada com MCP, Agent e múltiplos modelos (Alibaba Bailian, OpenAI, LM Studio, Ollama, etc.), com sistema de configuração LLM integrado, assistente IA global, aprimoramento de vista IA, assistente de codificação, consulta em linguagem natural, reconhecimento visual e outras capacidades de IA
  • Motor low-code: define modelos de negócio com Attributes do PHP 8 e a anotação personalizada @Ef, gerando automaticamente migrações de base de dados e interfaces de administração
  • Designer de vistas com IA: layout por arrastar-e-soltar + operação por linguagem natural com IA + subagentes de reconhecimento de intenções para gerar vistas + gestão de múltiplas versões
  • Segurança empresarial: início de sessão sem palavra-passe WebAuthn, separação de três responsáveis, políticas de palavras-passe, registo de auditoria em toda a cadeia
  • Comunicação em tempo real: push em tempo real baseado em Mercure SSE, Hub integrado no FrankenPHP, sem serviços adicionais
  • Alto desempenho: modo Worker do FrankenPHP + compressão zstd/br, arquitetura com prioridade para PostgreSQL
  • Ecosystema completo: estrutura organizacional, tarefas agendadas, armazenamento de ficheiros, sistema de email, biblioteca de componentes SunUI, prontos a usar

Stack tecnológica

CamadaTecnologia
LinguagemPHP 8.2+
FrameworkSymfony 7.4 LTS
RuntimeFrankenPHP (modo Worker) via runtime/frankenphp-symfony
Base de dadosPostgreSQL 14+
ORMDoctrine ORM + StofDoctrineExtensionsBundle (Gedmo)
Fila de mensagensSymfony Messenger (Doctrine Transport)
Comunicação em tempo realMercure SSE (dunglas/mercure)
IASymfony AI (MCP, Agent, Store, suporte de múltiplas plataformas)
AutenticaçãoWebAuthn (web-auth/webauthn-symfony-bundle) + JWT (firebase/jwt)
Armazenamento de ficheirosLeague Flysystem (Local / OSS / S3)
FrontendTwig + jQuery + biblioteca de componentes SunUI
Bibliotecas de utilidadesPHPSpreadsheet, Imagine, Predis, Ramsey UUID

Requisitos de sistema

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

Início rápido

Instalação

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

Configuração de ambiente

bash
cp .env.example .env
# Edite o .env para configurar a ligação à base de dados e a chave JWT do Mercure

Iniciar a base de dados

O PostgreSQL precisa de ser instalado e executado em separado:

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

O Mercure Hub está integrado no FrankenPHP, não sendo necessário iniciá-lo em separado.

Acesso

Estrutura de diretórios

config/
├── bundles.php          # Lista de Symfony Bundles ativados
├── packages/            # Configuração de cada Bundle
└── services.yaml

src/
├── Annotation/          # Anotações personalizadas: Ef.php, EfGroup.php
├── Command/             # 16 comandos Console
├── Controller/          # Controladores Admin, Api, Security
├── Entity/              # Entidades Doctrine + CommonTrait
│   ├── Organization/    # Department, Position, etc.
│   ├── Platform/        # Entidades relacionadas com a plataforma
│   ├── Security/        # User, Role, Permission
│   ├── Storage/         # Entidades de armazenamento de ficheiros
│   └── System/          # Entidades de configuração de sistema
├── Form/                # Tipos de formulário
├── Message/             # Mensagens assíncronas
├── MessageHandler/      # Processadores de mensagens
├── Repository/          # Repositórios Doctrine
├── Security/            # WebAuthn, JWT, Voter
├── Service/             # AI, Calendar, Security, Storage, Task, View, etc.
└── Twig/                # TwigExtension

Caddyfile                # Configuração do FrankenPHP (Hub Mercure, compressão, cache)

Bundles centrais ativados

BundleFunção
FrameworkBundleNúcleo do Symfony
DoctrineBundle + MigrationsBundleORM da base de dados e migrações
SecurityBundleAutenticação e autorização de segurança
TwigBundle + TwigExtraBundleMotor de templates
MonologBundleRegisto de logs
StofDoctrineExtensionsBundleExtensões Gedmo (árvore, timestamps, eliminação suave, etc.)
NelmioCorsBundleSuporte CORS
WebauthnBundleAutenticação sem palavra-passe WebAuthn
MercureBundlePush de mensagens em tempo real
AiBundleIntegração Symfony AI
FlysystemBundleAbstração de armazenamento de ficheiros
HautelookAliceBundleFixtures de dados de teste

Conceitos centrais

Modelo dinâmico

Defina os campos de negócio com a anotação @Ef e os Attributes do PHP 8, e o modelo completa automaticamente:

  • Geração de migrações de base de dados
  • Renderização de interfaces CRUD
  • Regras de validação de dados
  • Verificações de permissões
php
use App\Annotation\Ef;

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

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

Consulte: Modelo dinâmico

Trait comum de entidades

Todas as entidades combinam as seguintes capacidades através do CommonTrait:

CommonTrait
├── BlameableTrait      # Registo automático de quem criou/atualizou
├── TimestampableTrait  # Registo automático de datas de criação/atualização
├── SoftDeleteTrait     # Eliminação suave
└── IdTrait             # Chave primária auto-incrementada

Estrutura organizacional

Árvore de departamentos multi-nível (Nested Set), gestão de empregados e sistema de posições, com suporte para:

  • Árvore de departamentos com profundidade ilimitada (Gedmo NestedTree)
  • Atribuição a múltiplas empresas e departamentos
  • Sistema de posições e níveis
  • Importação/exportação em massa de utilizadores (PHPSpreadsheet)

Consulte: Estrutura organizacional

Sistema de segurança

  • Início de sessão sem palavra-passe WebAuthn (suporta Passkey, chave de segurança, biometria)
  • Separação de três responsáveis (administrador de sistema, administrador de segurança, administrador de auditoria)
  • Políticas de complexidade e validade de palavras-passe
  • Auditoria de operações em toda a cadeia

Consulte: Autenticação WebAuthn

Recursos

Código aberto sob MIT | Copyright © 2026 Doggy