Download the PHP package devitools/serendipity without Composer
On this page you can find all versions of the php package devitools/serendipity. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package serendipity
Serendipity
O componente que faltava no Hyperf
Serendipity é uma biblioteca PHP que estende o framework Hyperf com funcionalidades avançadas de Domain-Driven Design ( DDD), validação inteligente, serialização automática e infraestrutura robusta para aplicações de alta performance.
🍿 Visão Geral
Serendipity preenche as lacunas do ecossistema Hyperf, oferecendo uma camada de abstração poderosa que combina os melhores padrões de desenvolvimento com a performance assíncrona do Hyperf. Utilizando o Constructo como base, oferece metaprogramação avançada para resolver dependências e formatar dados de forma flexível.
Principais Características
- 🏗️ Arquitetura DDD: Estrutura completa seguindo Domain-Driven Design
- ⚡ Assíncrono por Padrão: Totalmente compatível com corrotinas do Hyperf
- 🔍 Validação Inteligente: Sistema de validação baseado em atributos e regras
- 📊 Serialização Automática: Conversão inteligente de entidades para diferentes formatos
- 🎯 Type Safety: Tipagem forte com suporte a generics
- 🧪 Testabilidade: Ferramentas completas para testes unitários e de integração
- 📈 Observabilidade: Logging estruturado e monitoramento integrado
🚀 Instalação
Pré-requisitos
- PHP 8.3+
- Extensões: ds, json, mongodb, pdo, swoole
- Hyperf 3.1+
- Docker 25+ (para desenvolvimento)
- Docker Compose 2.23+
Instalação via Composer
Configuração Básica
Registre o ConfigProvider no seu config/config.php:
Configure as dependências em config/autoload/dependencies.php:
🎯 Funcionalidades Principais
Entidades com Tipagem Forte
Crie entidades robustas com validação automática e serialização inteligente:
Coleções Tipadas
Trabalhe com coleções type-safe que garantem integridade dos dados:
Validação de Input Inteligente
Sistema de validação integrado com Hyperf que suporta regras complexas:
Actions com Injeção de Dependência
Crie actions limpas com injeção automática de dependências:
🏗️ Arquitetura de Projeto com Serendipity
Estrutura recomendada para projetos que utilizam Serendipity, baseada em projetos reais em produção:
Organização das Camadas
Application Layer - Casos de uso e orquestração
- Service/: Coordenam operações entre domínio e infraestrutura
- Exception/: Exceções específicas da camada de aplicação
Domain Layer - Lógica de negócio pura
- Entity/: Entidades principais do negócio
- Enum/: Enumerações e constantes do domínio
- Repository/: Interfaces para persistência
- Service/: Regras de negócio complexas
- Validator/: Validações de regras de negócio
Infrastructure Layer - Implementações técnicas
- Repository/: Implementações concretas dos repositórios
- Service/: Integrações com APIs externas
- Parser/: Processamento e transformação de dados
- Support/: Utilitários técnicos
Presentation Layer - Interface com o mundo externo
- Action/: Endpoints HTTP e handlers
- Input/: Validação e sanitização de entrada
- Service/: Formatação de resposta
Exemplo de Estrutura de Action
📋 Exemplos Práticos
Entidade User com Validação
Input de Validação para User
Action para Criação de User
Serviço de Domínio para User
Repositório de User
Implementação do Repositório
Coleção Tipada de Users
🧪 Testes
Serendipity fornece ferramentas robustas para testes:
⚡ Performance e Observabilidade
Logging Estruturado
Métricas e Monitoramento
🔧 Configuração Avançada
Schema e Especificações
Configure schemas personalizados em config/autoload/schema.php:
Middlewares Personalizados
📚 Comandos CLI
Serendipity inclui comandos úteis para desenvolvimento:
🤝 Contribuindo
Fork o projeto, crie uma branch para sua feature, commit suas mudanças, push para a branch e abra um Pull Request.
Padrões de Desenvolvimento
- Siga PSR-12 para código PHP
- Use tipagem forte sempre que possível
- Implemente testes para novas funcionalidades
- Documente mudanças no README
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🔗 Links Relacionados
Serendipity - Descobrindo o potencial completo do Hyperf através de componentes elegantes e poderosos.
All versions of serendipity with dependencies
ext-ds Version *
ext-json Version *
ext-mongodb Version *
ext-pdo Version *
ext-swoole Version *
devitools/constructo Version ^1.5.12
fakerphp/faker Version ^1.24
google/cloud-logging Version ^1.32
guzzlehttp/guzzle Version ^7.9
guzzlehttp/psr7 Version ^2.7
hyperf/cache Version ~3.1.0
hyperf/collection Version ^3.1
hyperf/command Version ^3.1
hyperf/config Version ~3.1.0
hyperf/config-apollo Version ~3.1.0
hyperf/config-center Version ^3.1
hyperf/constants Version ~3.1.0
hyperf/context Version ^3.1
hyperf/contract Version ^3.1
hyperf/coordinator Version ^3.1
hyperf/coroutine Version ^3.1
hyperf/database Version ^3.1
hyperf/database-pgsql Version ^3.1
hyperf/db Version ^3.1
hyperf/db-connection Version ^3.1
hyperf/di Version 3.1.*
hyperf/elasticsearch Version ~3.1.0
hyperf/engine Version ^2.10
hyperf/event Version ^3.1
hyperf/exception-handler Version ^3.1
hyperf/framework Version 3.1.*
hyperf/guzzle Version ~3.1.0
hyperf/http-message Version ^3.1
hyperf/http-server Version ^3.1
hyperf/json-rpc Version ~3.1.0
hyperf/logger Version ~3.1.0
hyperf/memory Version ~3.1.0
hyperf/model-cache Version ~3.1.0
hyperf/process Version ~3.1.0
hyperf/rpc Version ~3.1.0
hyperf/rpc-client Version ~3.1.0
hyperf/rpc-server Version ~3.1.0
hyperf/service-governance Version ~3.1.0
hyperf/support Version ^3.1
hyperf/tracer Version ~3.1.0
hyperf/validation Version ^3.1
jawira/case-converter Version ^3.5
mongodb/mongodb Version ^1.19
monolog/monolog Version ^2.9 || ^3.8
mustache/mustache Version ^2.14
php-ds/php-ds Version ^1.5
psr/container Version ^2.0
psr/event-dispatcher Version ^1.0
psr/http-client Version ^1.0
psr/http-message Version ^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0
psr/log Version ^3.0
rakibtg/sleekdb Version ^2.15
sentry/sentry Version ^4.11
swow/psr7-plus Version ^1.1
symfony/console Version ^7.2