Gerando UUIDs em PHP seguindo os princípios SOLID

Eu utilizei o código do post anterior:

Gerando UUIDs em PHP: Um guia completo, exemplo de implementação e história do UUID – Elzo Brito

Para fazer uma implementação completa de um pacote seguindo os princípios do padrão Solid.

Ao organizar as pastas para gerar um pacote com o código relacionado à geração de UUIDs em PHP, você pode seguir uma estrutura típica de um projeto PHP.

OliviaUuid/
├── src/
│ ├── UUID/
│ │ ├── UUIDGeneratorInterface.php
│ │ ├── RandomUUIDGenerator.php
│ │ └── UUIDService.php
│ └── autoload.php
├── tests/
│ ├── UUID/
│ │ ├── RandomUUIDGeneratorTest.php
│ │ └── UUIDServiceTest.php
│ └── bootstrap.php
├── composer.json
├── LICENSE
└── README.md

Explicação da estrutura de pastas:

  • src/: Essa pasta contém o código-fonte do pacote.
    • UUID/: Nesta pasta, estão os arquivos relacionados à geração de UUIDs.
      • UUIDGeneratorInterface.php: Interface que define o contrato para a geração de UUIDs.
      • RandomUUIDGenerator.php: Classe que implementa a interface UUIDGeneratorInterface e gera UUIDs aleatórios.
      • UUIDService.php: Classe que depende da interface UUIDGeneratorInterface e fornece um serviço para a geração de UUIDs.
    • autoload.php: Arquivo de autoloading que carrega automaticamente as classes do pacote.
  • tests/: Esta pasta contém os testes para o código do pacote.
    • UUID/: Aqui, estão os arquivos de teste relacionados à geração de UUIDs.
      • RandomUUIDGeneratorTest.php: Testes para a classe RandomUUIDGenerator.
      • UUIDServiceTest.php: Testes para a classe UUIDService.
    • bootstrap.php: Arquivo de inicialização para configurar o ambiente de teste.
  • composer.json: Arquivo de configuração do Composer, onde você especifica as dependências e outras informações sobre o pacote.
  • LICENSE: Arquivo de licença do pacote.
  • README.md: Arquivo de documentação do pacote.

Essa estrutura de pastas segue as melhores práticas para organizar um projeto PHP e permite que você separe adequadamente o código-fonte do pacote, os testes e outros arquivos relacionados. Além disso, ao incluir um arquivo composer.json, você pode gerenciar as dependências e facilitar a instalação e o uso do pacote em outros projetos usando o Composer.

Deixe um comentário