定制 codeeasy/slim-framework-skeleton 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

codeeasy/slim-framework-skeleton

Composer 安装命令:

composer create-project codeeasy/slim-framework-skeleton

包简介

Slim Framework skeleton by Code Easy

README 文档

README

Slim Framework Skeleton by Code Easy

Uma maneira simples de começar com o Slim Framework tendo o mínimo necessário.

license

TABELA DE CONTEÚDOS

SOBRE

O "Slim Framework Skeleton by Code Easy" é um esqueleto de uma aplicação com o Slim Framework que tem o objetivo de trazer o mínimo necessário para desenvolver uma aplicação com o Slim Framework já configurada incluindo:

  • Uma linguagem de template;
  • Injeção de dependências;
  • Testes automatizados;
  • Estrutura de diretórios;
  • Dotenv;
  • Um projeto configurado com a arquitetura MVC;
  • Containers através do Docker.

OBS: A única camada do MVC que não foi implementada é o Model pelo fato de que, para cada tipo de armazenamento, seja um banco de dados SQL, um arquivo, algum tipo de banco de dados NoSQL, entre outros, existe uma implementação diferente, além de que, uma aplicação ou um site com o mínimo necessário, pode nem mesmo precisar de um banco de dados as vezes.

STATUS DO PROJETO

  • 🚧 Helpers para testes automatizados: Em construção 🚧
  • ⛔ Slim CSRF: Não iniciado ⛔
  • ⛔ Manual de Contribuição: Não iniciado ⛔

FUNCIONALIDADES

  • Testes automatizados com o PHP Unit. Os testes estão localizados no diretório tests/ e são configurados em phpunit.xml;
  • Análise estática de código com o Psalm;
  • Kernel da aplicação onde tudo é iniciado e configurado, localizado em src/Kernel/Server.php;
  • Provedor de Serviços, funciona com o PHP-DI e fica localizado em src/Kernel/Provider.php, local esse onde é possível realizar as injeções de dependências no Slim Framework;
  • Middlewares localizados em src/Http/Middleware e configurados em src/Kernel/Middleware.php;
  • Sistema de rotas construído em src/Routes e invocados em src/Kernel/Server.php;
  • Controllers construídos em src/Http/Controller e invocados em src/Routes;
  • Área de Serviços (Services) que podem ser construídos para a sua aplicação e injetados pelo Provedor de Serviços;
  • Linguagem de template Twig:
    • Os arquivos Twig se encontram no diretório resources/view/;
    • O serviço do Twig se encontra no diretório src/Service/Twig bem como as suas configurações;
    • Dentro do serviço do Twig já tem uma estrutura pronta para você configurar as suas próprias funções e filtros do Twig;
    • Possui um sistema de cache sendo que o cache fica armazenado em cache/twig.
  • Helpers personalizados que podem ser constrídos em config/helpers.php;
  • Diretório public com arquivos prontos para a publição de um site com foco no SEO.

PRÉ-REQUISITOS

Para utilizar esse esqueleto os requisito são:

  • PHP 7.4 ou superior;
  • Composer (De preferência a versão 2, mesma utilizada na criação desse projeto);
  • Docker e Docker Compose (Opcional).

COMO RODAR A APLICAÇÃO/TESTES

1. Download

OBS: Problemas na execução do composer podem ocorrer caso esteja faltando algum módulo a ser instalado no seu PHP.

1.1. Composer

Você deve baixar o esqueleto como um novo projeto através do composer com o comando composer create-project codeeasy/slim-framework-skeleton <nome-do-projeto>.

Você também pode escolher uma das versões e executar o comando composer create-project "codeeasy/slim-framework-skeleton:v0.0.3" <nome-do-projeto>, por exemplo, alterando a v0.0.3 pela versão desejada.

As versões se encontram no link a seguir:

1.2. Github (Download Manual)

Acesse o seguinte link:

Aqui você terá todas as versões do projeto, da mais recente à mais antiga, é só você escolher uma e baixar o .zip ou o .tar.gz e depois descompactar.

Por fim, acesse o diretório descompactado e execute o comando composer install para instalar as dependências.

2. Configurações

Copie o arquivo .env.example para .env e preencha com os dados necessários, se necessário.

3. Executando

3.1 PHP

Se for usar o PHP que está instalado na sua máquina então execute o comando php -S 0.0.0.0:<SUA-PORTA> -t public como por exemplo php -S 0.0.0.0:8080 -t public, depois acesse o seu navegador com o link http://localhost:<PORTA_ESCOLHIDA>, se aparecer o site então é porque está tudo pronto, agora é só começar a programar.

3.2 Docker

Se for usar o docker acesse o arquivo dockerfile e altere os conteúdos da linha 4 a linha 7.

ARG USER=demo
ARG UID=1000
ARG GID=1000
ARG PW=demo

Aqui você pode alterar USER=demo por um outro nome de usuário como USER=codeeasy por exemplo e também alterar a senha de PW=demo para outra como PW=1234.

O UID e o GID estão relacionados ao ID do usuário e o ID do grupo numa distribuição linux, se você estiver usando uma distribuição linux você pode colocar os mesmos IDs que o seu usuário e grupo para evitar problemas de permissão de arquivos.

Para descobrir os IDs de usuário e grupo, repectivamente, na sua distribuição linux execute no terminal o comando echo $(id -u) $(id -g) e os dois IDs serão mostrados.

É claro que você também pode colocar qualquer outro ID.

No Windows o sistema de arquivos funciona diferente então você pode colcoar qualquer ID ou deixar o padrão de 1000 1000.

Depois você pode acessar o docker-compose.yml e alterar a porta padrão que está como 8080, se desejar, para isso basta alterar APENAS UMA das portas para a porta desejada como é mostrado a baixo.

ports:
    - <PORTA-A-SER-ALTERADA>:80

Exemplo alterando para a porta 8085:

ports:
    - 8085:80

Também é possível alterar o nome do container como é mostrado a baixo:

services:
  web:
    build: .
    container_name: <NOME-DO-CONTAINER>

Depois disso execute o comando docker-compose up -d para montar a imagem e criar o container.

Execute o comando docker-compose ps para verificar se o container está em execução e se aparecer State Up e Ports 0.0.0.0:80-><PORTA-ESCOLHIDA>/tcp então o container está funcionando.

Por fim acesse no seu navegador a URL http://localhost:<PORTA-ESCOLHIDA>, se aparecer o site então é porque está tudo pronto, agora é só começar a programar.

4. Dicas para o Docker

Se você estiver usando o docker segue algumas dicas de comandos para serem utilizados:

  • docker-compose ps: Verifica o status dos containers especificados no arquivo docker-compose.yml;
  • docker-compose up -d: Faz o build da imagem do dockerfile, caso não exista o build ainda, e cria os containers;
  • docker-compose build: Faz o build da imagem do dockerfile;
  • docker-compose down: Destrói os containers especificados no docker-compose.yml;
  • docker-compose stop: Para a execução dos containers especificados no docker-compose.yml;
  • docker-compose start: Inicia a execução dos containers especificados no docker-compose.yml caso os containers já tenham sido criados;
  • docker exec -it <NOME-DO-CONTAINER> /bin/bash: Acessa o terminal de um container em específico usando o bash.

5. Testes

5.1 PHP Unit

Todos os testes se encontram dentro do diretório tests/.

Para executar os testes automatizados execute o comando vendor/bin/phpunit.

5.2 Psalm

Para executar os testes execute o comando vendor/bin/psalm --show-info=true.

TECNOLOGIAS UTILIZADAS

CONTRIBUIÇÃO


Felipe Vieira

💻

AUTOR


Felipe Vieira

Linkedin Badge Gmail Badge

codeeasy/slim-framework-skeleton 适用场景与选型建议

codeeasy/slim-framework-skeleton 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 30 次下载、GitHub Stars 达 3, 最近一次更新时间为 2020 年 07 月 25 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 codeeasy/slim-framework-skeleton 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 codeeasy/slim-framework-skeleton 我们能提供哪些服务?
定制开发 / 二次开发

基于 codeeasy/slim-framework-skeleton 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 30
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-07-25