Microsymfony?
Sobre ?
Microsymfony é um esqueleto de aplicativo Symfony 7.2 em esteróides, pronto para uso.
Fiz uma longa postagem no blog explicando a filosofia por trás e como usá -la:
- Introdução ao modelo de aplicação de microssimfonia
Uma regra: a única dependência obrigatória é o PHP !
PS : Se você deseja usar a última versão Symfony 6.4 LTS no seu arquivo composer.json , substitua todas as ocorrências de 7.2 por 6.4 e execute composer up .
Índice
- Demos
- Start rápido
- Com o binário de Symfony
- Com Frankenphp
- Requisitos
- Pilha
- Características
- Ramificações de recursos
- Infraestrutura
- Banco de dados
- Ferramentas
- Notas
- Symfony UX
- Arquivos de configuração do PHP
- Outras boas práticas
- Referências
- Contribuindo
- Segurança
- Créditos
- Licença
- Construído com microsymfony
Demos?
Porque uma demonstração ao vivo é sempre melhor do que todas as explicações:
- Demonstração ao vivo em https://microsymfony.ovh
- Demoção ao vivo alimentada por Frankenphp em https://frankenphp.microsymfony.ovh
Start rápido ⚡
Com o binário de Symfony?
Você deve ter o binário e o compositor do Symfony instalado localmente.
Para criar um novo projeto, a partir da última tag, execute:
composer create-project strangebuzz/microsymfony && cd microsymfony
Em seguida, inicie o servidor PHP com make:
Ou com Castor:
Abra https://127.0.0.1:8000 (considerando sua porta 8000 é gratuita) e aproveite! ?
PS : Você também pode usar o botão verde "Use este modelo" no canto superior direito da página inicial do projeto Github. Isso cria um novo repositório a partir do ramo principal em vez da última versão. Eu garanto que todos os compromissos principais são estáveis; Você pode verificar se os trabalhos de IC associados são ✅.
Com Frankenphp?
Também podemos usar o Frankenphp para executar o Microsymfony. Você deve ter o Docker instalado localmente.
Crie um novo projeto no modelo do GitHub, execute:
docker run --rm -it -v $PWD:/app composer:latest create-project strangebuzz/microsymfony && cd microsymfony
Instale o Frankenphp Symfony Runtime:
docker run --rm -it -v $PWD:/app composer:latest require runtime/frankenphp-symfony
Em seguida, corra:
docker run
-e FRANKENPHP_CONFIG="worker ./public/index.php"
-e APP_RUNTIME=Runtime\FrankenPhpSymfony\Runtime
-v $PWD:/app
-p 80:80 -p 443:443
-d
dunglas/frankenphp
Aberto https: // localhost e aproveite! ?
PS : No Windows, substitua $PWD por "%cd%" .
Você também pode usar diretamente a filial do Frankenphp.
Requisitos ⚙
- Php 8.2 (também trabalha com Php 8.3 e Php 8.4)
- A CLI de Symfony
Requisitos opcionais?
- A extensão XDEBUG PHP se você quiser executar o relatório de cobertura do código
- Castor Task Runner, se você não quiser usar make e seu makefile
Pilha ?
- Php 8.2 a 8.4
- Symfony 7.2
- Twig 3.8
- Estímulo Hotwirado 3.2 e Turbo 8.0
- Phpunit 11.5
- Pico CSS 2.0
Características
Microsymfony envia esses recursos, prontos para uso:
- Dois corredores de tarefas
- Fazer (fonte) (demonstração)
- Castor (fonte) (demonstração)
- Análise estática com Phpstan 2
- Padrões de codificação com php-cs-fixer
- Testes (demonstração)
- Exemplo de teste de unidade
- Exemplo de teste de integração
- Exemplo de teste funcional
- Exemplo de teste da API
- Exemplo de teste E2E
- Cobertura de código a 100% (limite configurável)
- Relatório de cobertura sobre escrutínio
- Github CI (Ações)
- Testes Saída do trabalho
- Saída de emprego de fiapo
- Saída de trabalho de segurança
- Mapper de ativo+estímulo (documentação)
- Vanilla JS (fonte) (demonstração)
- Busque um terminal JSON do aplicativo (fonte) (demonstração)
- Um modelo de erro personalizado
Ramificações de recursos?
As filiais dos recursos não são mescladas na filial principal, mas são usadas para testar a integração de uma nova biblioteca de fornecedores ou fazer um POC. Por exemplo, você já sonhou em testar eloqüentes, o Laravel Orm, em um projeto Symfony? Em seguida, clone a ramificação eloquent e execute composer install && make load-fixtures .
Infraestrutura
- Frankenphp (PR, filial, rebocado em 2024-11-17)
- Symfony-Docker (PR, Branch, Renegado em 2024-11-17)
Banco de dados?
Essas ramificações «banco de dados» visam exibir uma lista de registros de um banco de dados SQLite.
- Doutrina DBAL (PR, Ramo, Repelido em 2024-12-22)
- Eloqüente ORM (PR, ramo, rejeitado em 2024-11-17)
Ferramentas?
- Taskfile (PR, ramo, rejeitado em 2024-11-17)
- Twigstan (PR, Branch, rebocado em 2024-11-17)
- Twig-cs-fixer (PR, ramo, rejeitado em 2024-11-21)
Rebasear -se regularmente a essas filiais, para que estejam sempre atualizadas.
Notas?
Symfony-ux
Os formulários turbo são desativados em ativos/app.js. Para ativar o recurso para um determinado formulário, adicione o atributo data-turbo="true" a ele. Ou altere o parâmetro Turbo.setFormMode para on o recurso globalmente. Nos dois casos, o código do seu controlador deve ser modificado de acordo.
Arquivos de configuração do PHP
Se você instalar uma nova biblioteca Symfony, as receitas do Flex podem adicionar arquivos YAML ao seu projeto. Esses arquivos YAML são carregados, mas você pode convertê -los em PHP, como os outros arquivos de configuração. Por exemplo, para converter a configuração messenger YAML em PHP com simplificar, execute:
vendor/bin/config-transformer convert config/packages/messenger.yaml
Outras boas práticas?
- Usando arquivos de configuração PHP em vez de yaml (fonte)
- Usando tipos estritos em todos os arquivos PHP (fonte)
- Usando o padrão ADR em um controlador de ação (fonte) (doc)
- O arquivo composer.json é normalizado com ergebnis/compositor-normalizando
- Uso do plug-in do compositor para instalar e executar o php-cs-fixer
Referências
- Como mudar das configurações YAML para PHP hoje com o Symplify (TomasVotruba.com)
- Phpstan 2.0 Lançado com nível 10 e elefpações! (phpstan.org)
- Um melhor padrão de ADR para seus controladores Symfony (StrangeBuzz.com)
- Minha configuração de arquivo de tarefas para Symfony (jmsche.fr)
- Você deve estar usando o PhpStans Bleeding Edge (backendtea.com)
- Uma boa convenção de nomenclatura para rotas, controladores e modelos? (jolicode.com)
- Desenvolvimento de aplicativos front-end, estilo (s) de Symfony (s) (dunglas.dev)
- Verificações automatizadas de cobertura de teste com travis, phpunit for github pull solicitações (ocramius.github.io)
- Instalando e usando PHP-CS-Fixer (StrangeBuzz.com)
- Castor, uma jornada pelo mar de corredores de tarefas (jolicode.com)
- Inicializando seu projeto Symfony com fundações sólidas (StrangeBuzz.com)
- Organizando seus testes de projeto Symfony (StrangeBuzz.com)
- Quais são as suas melhores práticas de Symfony? (StrangeBuzz.com)
- Definir um fluxo de trabalho CI/CD para um projeto Symfony, graças às ações do GitHub (StrangeBuzz.com)
- The Symfony Framework Best Practices (Symfony.com)
Contribuindo?
Consulte Contribuindo e code_of_conduct para obter detalhes.
Segurança ?
Por favor, consulte a segurança para obter detalhes.
Créditos
- Bobina (mantenedor primário)
- Todos os colaboradores
Licença ⚖️
A licença do MIT (MIT). Consulte o arquivo de licença para obter mais informações.
Construído com microsymfony
- Placehold.ovh (2024-12-01)
- APTARTEMENTOTOURCOING.COM (2024-11-30)
- Demoção EasyAdmin Mercure (2023-05-24)