A Symlex visa simplificar o desenvolvimento da Web ágil, fornecendo um sistema de trabalho que promove as melhores práticas pelo exemplo:
Desde o seu lançamento inicial em 2014, ele provou ser adequado para a rápida construção de microsserviços, CLI e aplicações de uma página única. Ele vem completo com exemplos de trabalho, desde testes até formulários e abstração do banco de dados. Basta excluir o que você não precisa.
O kernel é minúsculo e só cria um contêiner de serviço para bootstrapping seu aplicativo dentro de seu contexto. O uso de um único contêiner para configuração e injeção de dependência reduz a complexidade e leva a um desempenho aprimorado em comparação com outras estruturas. Também impede que os desenvolvedores instalem impensados pacotes sem entendê -los. O resultado é menos inchaço e um código mais simples, mais sustentável e testável, fundamental para o desenvolvimento ágil.
As classes simples são usadas sempre que possível para evitar o bloqueio do fornecedor e ativar a reutilização de código independente da estrutura. Veja trases.md.
Você pode combinar o back -end baseado em PHP com qualquer biblioteca JavaScript ou cliente REST. O Boilerplate de front-end está lá para sua conveniência e o coloca direto na pista para criar aplicativos impressionantes de uma página com Webpack e Vuetify, consulte Demo.symlex.org. Um exemplo de trabalho para aplicativos de linha de comando também está incluído.
Nossa documentação completa da estrutura pode ser encontrada em docs.symlex.org. Tuzi Liu mantém uma tradução chinesa para nós.
Nota: https://github.com/symlex/symlex-core contém o kernel e os roteadores como componentes reutilizáveis.
Antes de começar, verifique se você possui o Php 7.3+, o compositor e o docker instalados no seu sistema (como o Mac OS X). Execute get-composer.sh para instalar composer localmente no Linux. Em vez de usar o Docker, você pode configurar seu próprio ambiente de tempo de execução com base no Dockerfile existente. Além disso, você precisará de um banco de dados mais NodeJs e NPM para construir o front -end.
Etapa 1: Execute composer para criar um novo projeto Symlex:
composer create-project symlex/symlex myapp
O Composer solicitará valores de configuração para gerar app/config/parameters.yml para você.
Verifique se storage/cache é gravável para que os arquivos de cache possam ser criados pelo aplicativo.
Etapa 2: Iniciar Roadrunner e Mariadb usando docker-compose :
cd myapp
docker-compose up
NOTA: Esta configuração é apenas para fins de teste e desenvolvimento, consulte os comentários no docker-compose.yml para obter detalhes. Pode ser necessário ajustá -lo se você executar o Docker com um usuário diferente por motivos de segurança. No OS X, a versão atual do Docker é muito lenta na execução do PHP no sistema de arquivos do host. docker-compose up -d executa o Docker em segundo plano, mas você não verá mensagens úteis de log neste caso.
Etapa 3: deixe fazer inicializar o banco de dados e construir os componentes do front-end para você:
make terminal
make all database
Para verificar tudo está funcionando, execute make test .
Nota: Você também pode usar essa abordagem para executar outros comandos da CLI posteriormente. A fabricação deve ser pré-instalada em ambientes típicos de desenvolvimento do UNIX-caso contrário, talvez seja necessário obtê-lo primeiro, por exemplo, instalando as ferramentas de linha de comando Xcode no OS X via xcode-select --install ou adicionando a build-base ou o pacote build-essential no Linux. O Makefile contém uma lista de todos os objetivos.
Após a instalação bem -sucedida, abra o site em http: // localhost: 8081/e faça login como [email protected] usando a senha passwd .
Arquivos YAML localizados no app/config Configurar o aplicativo com base em parâmetros e serviços. Os principais arquivos de configuração são app/config/web.yml e app/config/console.yml .
Se você adicionar localhost-debug ao seu /etc/hosts e acessar o site com isso, ele carregará no modo de depuração (você verá um rastreamento de pilha e outras informações de depuração nas páginas de erro).
A interface do usuário do MaHHOG está disponível em http: // localhost: 8025/. Ele pode ser usado para receber e visualizar e -mails enviados automaticamente pelo sistema, por exemplo, quando novos usuários são criados.
Se você deseja criar um aplicativo mais leve, dê uma olhada em nossos outros exemplos:
Documentação completa: https://docs.symlex.org/en/latest/framework/
O Symlex agora inclui o RoadRunner - um servidor de aplicativos PHP de alto desempenho - como uma alternativa ao Nginx. Ele será baixado automaticamente quando você criar a imagem do Docker.
Nossas instruções de instalação para o Symlex> = 4.4.0 não funcionam para versões anteriores, pois ainda usam NGINX e PHP-FPM. Em vez de web e php , agora existe um único serviço app alimentado pela RoadRunner. Se você preferir o Nginx, pode usar uma liberação mais antiga ou copiar a configuração anterior para a nova versão. Alguns de nossos aplicativos de exemplo também usam NGINX.
O Symlex é mantido por Michael Mayer e pretende simplificar o desenvolvimento da Web ágil, fornecendo um sistema de trabalho que promove as melhores práticas pelo exemplo. Michael lançou sua primeira estrutura PHP em 2001 e trabalhou com vários grandes fornecedores de estruturas no passado. Construir isso não teria sido possível sem muito trabalho anterior de outros desenvolvedores. Obrigado a aqueles e a todos que contribuíram!
A escolha é o inimigo da produtividade. Em outras palavras, se sua solução fizer tudo e não tiver opiniões sobre nada, ela não resolve nada. - Asim Aslam
Sinta-se à vontade para enviar um e-mail para [email protected] Se você tiver alguma dúvida, precisar de suporte comercial ou apenas quiser dizer olá. Congratulamo -nos com contribuições de qualquer tipo. Se você tiver um bug ou uma ideia, leia nosso guia antes de abrir um problema.
É óbvio que o desempenho da estrutura do PHP depende principalmente das linhas de código que precisam ser executadas para cada solicitação. Embora o Symlex tenha sido projetado para ser simples e magro, um bom desempenho é um subproduto muito importante dessa abordagem.
O melhor código não é código. Onde não há código, não há bugs. Nenhuma API para aprender. Sem interface do usuário estranho. Os melhores refatores são deleções. - Eric Elliott
Conforme publicado pelo PHPBenchmarks.com, as solicitações de REST são mais de 40% mais rápidas em comparação com outras estruturas comuns do PHP:
Observe que esses tempos de resposta foram medidos no modo de produção totalmente otimizado em hardware de servidor rápido com apenas 5 solicitações simultâneas. Na prática, as diferenças podem ser muito maiores em termos de tempo absoluto. O consumo de memória também deve ser considerado:
Por que você deveria se importar? Primeiro, seus usuários vão adorar. Como regra geral, 100 ms é sobre o limite para que eles sintam que o sistema está reagindo instantaneamente, o que significa que nenhum feedback especial é necessário, exceto para exibir o resultado. O tempo total de resposta também inclui rede (~ 25 ms), navegador e outras despesas gerais, o que deixa apenas uma pequena fração desses 100 ms para implementar a lógica de negócios real. Segundo, você economizará muito dinheiro para a infraestrutura do servidor e os desenvolvedores são mais produtivos, pois os testes estão funcionando mais rapidamente.
O Symlex foi iniciado em 2014 como um simples caldeiro Silex, já que o próprio Silex não vem com uma "edição padrão" que aponta você na direção certa. O uso do SILEX em vez de Symfony foi recomendado pelos Sensiolabs (os criadores de ambas as estruturas) como uma alternativa leve ao Symfony + Fosrestbundle para criar rapidamente serviços de repouso de alto desempenho e aplicativos da Web de página única.
Logo percebeu que o Pimple - o contêiner de serviço que vem com Silex - parece complicado para os desenvolvedores provenientes de Symfony e dificulta a reutilização do código existente. Além disso, muitos exemplos de código SILEX e até aplicativos do mundo real acessaram o contêiner de serviço de todas as partes do código (não apenas a própria estrutura), que contorna a inversão do controle e leva à testabilidade desajeitada. Portanto, o Symlex promove o uso estrito da injeção de dependência e combina a conveniência de um contêiner de serviço completo com a velocidade de um micro-quadro.
Hoje, o Symlex possui seu próprio componente de roteamento (com base no Symfony 4) e não usa mais o Silex. A estrutura provou ser útil para um grande número de aplicações diferentes. Alguns deles foram baseados no kernel de Symfony regular antes e fizeram a mudança porque estavam se afogando em complexidade e sofreram tempos de resposta bem acima de 30 segundos no modo de desenvolvimento. O Symlex os trouxe de volta aos trilhos sem grandes mudanças em sua base de código existente.
O Symlex é um projeto sem fins lucrativos, administrado inteiramente por voluntários. Você é muito bem -vindo para nos apoiar via patrocinadores do GitHub, especialmente se precisar de ajuda para usar nosso software. Eles corresponderão a todas as doações no primeiro ano.
Por favor, deixe uma estrela, se você gosta deste projeto, ele fornece motivação adicional para continuar. Muito obrigado! <3