Download the PHP package jonathanbandeira/exemple without Composer

On this page you can find all versions of the php package jonathanbandeira/exemple. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package exemple

Docker, PHP Built-In Server, Composer, Geradores de Documentação e Testes

Docker

Docker é uma plataforma de virtualização open source que permite a criação, implantação e execução de aplicações usando containers. Os containers permitem que você embale seu software junto com todas as partes de que ele depende, incluindo bibliotecas, sistemas operacionais e outras dependências. Isso significa que você pode ter certeza de que sua aplicação funcionará exatamente da mesma maneira, independentemente do ambiente onde ela está sendo executada.

Para mais informações ou para acessar o link de download verifique o site oficial do Docker https://www.docker.com/.

Utilizando Docker no VS Code

OBS.: No primeiro acesso ao container, será feito um processo de instalação e configuração deste que poderá levar alguns minutos.
OBS.: Utilize git fora do container. Apesar de ser possível utilizar no container, será necessário configurar chaves ssh, mas como o projeto está versionado e pode ser clonado em diversas estações de trabalho, não é recomendável salvar as credenciais do git.

Arquivos de configuração do Docker

OBS.: O container acima é fornecido pela Microsoft e consiste de um ambiente linux com instações de PHP e Node, além de configurações adicionais feitas através de comandos unix para instalação de dependências a nível de SO e configurações do PHP Documentor e Xdebug em modo de cobertura.

PHP Built-In Server

O PHP Built-in Server é um servidor web embutido em uma versão específica do PHP, a partir da versão 5.4. Ele permite que desenvolvedores iniciem rapidamente um servidor de desenvolvimento local, sem a necessidade de instalar e configurar outros servidores como Apache ou Nginx. O servidor embutido só deve ser usado para fins de desenvolvimento e não para ambientes de produção.

Para iniciar o servidor acesse o diretório público via terminal e digite o seguinte comando:

Após acesse a url no navegador.

OBS.: Utilize qualquer porta alta, não é obrigatório utilizar a 8888 e evite utilizar a 8080 pois o VS Code a utiliza para tunelamento.


Disponibilizando acesso ao Built-In Server com Ngrok

Ngrok é uma ferramenta que permite criar um servidor seguro para testar seus aplicativos e serviços hospedados localmente. Ele cria um túnel que expõe seu servidor local à Internet pública, permitindo que seja acessível de qualquer lugar, enquanto mantém seu IP e a porta local privados. Ele é usado para fins de desenvolvimento, testes, demonstrações e outras aplicações.

Cadastre-se no site https://ngrok.com/ e após ligar seu Built-In Server abra outro terminal e digite o seguinte comando:

OBS.: O terminal ficará travado na apliação do Ngrok que fornecerá um link público para disponibilização do acesso ao seu ambiente de desenvolvimento.

Composer

O que é?

O Composer é um gerenciador de dependências para o PHP. Ele é usado para gerenciar as dependências do seu projeto, como bibliotecas, frameworks e outras ferramentas. O Composer permite que você crie seu projeto de forma fácil e rápida, mantendo o seu código sempre atualizado e acessível.

Acesso a documentação

https://getcomposer.org/doc/

Instalação

https://getcomposer.org/download/

Onde encontrar pacotes PHP instaláveis via Composer

Como iniciar um projeto com Composer?

Em seguida responda as perguntas e configure seu composer.json.

Você também pode criar o arquivo composer.json manualmente.

Principais comandos

Principais propriedades presentes no composer.json

OBS.: O autoload e o require possuem propriedades semelhantes com o sufixo dev, onde ficam armazenadas definições válidas apenas para o ambiente de desenvolvimento. Para instalar as dependências sem carregar os recursos de desenvolvimento utilize o comando a seguir:

Exemplo de arquivo composer.json completo

composer.lock e vendor

O arquivo composer lock contém a referência para todas as instalações efetuadas no ambiente, incluindo a informação das versões instaladas de cada biblioteca agindo como uma referência para o composer preservar as mesmas versões especificadas.

Já o diretório vendor contém os códigos-fonte de todas as bibliotecas instaladas, o classpath do autoload e scripts binários. É a base para o carregamento de projetos que utilizam composer. Para utilizá-lo basta carregar o arquivo /vendor/autoload.php em qualquer arquivo de seu projeto.

É bem comum não guardar ambos os arquivos durante o versionamento. Para fácilitar este gerênciamento, utilize o arquivo .gitignore especificando os paths da raiz do projeto até todo e qualquer arquivo e diretório que queira manter fora do controle de versão.

Criando scripts para execução com composer

Neste exemplo trabalharemos com um script para limpeza do cache e dos arquivos do composer

  1. Crie a seção script como no exemplo abaixo:

  2. Adicione a chave "clear" e atribua no formato json um array vazio
  3. Adicione o comando unix "rm -f composer.lock" utilizando as aspas e ao final coloque a virgula. (O composer aceita quaisquer comandos unix e comandos php através da flag -r. Ex.: php -r "echo 'teste';";)
  4. Adicione o comando "@composer clear-cache". Para utilizar comandos composer nos seus scripts basta referenciá-los com o @ antes da palavra reservada composer
  5. Teste o seu script com o comando a seguir:

Atividade

Agora crie um comando com o nome "build-app" que limpe seu ambiente e instale todas as dependências

Criando sua primeira biblioteca com composer

  1. Crie seu composer.json utilizando o composer init
  2. Crie um arquivo dentro da pasta /src com o nome Conexao.php
  3. Copie o código abaixo dentro deste arquivo:

  4. Crie o autoload PSR-4 para a classe conexão com as seguintes especificações:

  5. Crie o repositório público no seu github. (Altere o vendor name para o nome da sua conta no github)
  6. Faça o upload do código para o seu github
  7. Crie uma release e uma tag 1.0 para o seu projeto
  8. Acesse e faça login no site https://packagist.org/
  9. Publique seu repositório clicando no menu submit e fornecendo o link para o seu repositório no github
  10. Com o repositório publicado no packagist você poderá inseri-lo como dependência em seu projeto. Para isso, feche a pasta atual e crie um projeto novo utilizando o .devcontainer e copie no packagist o comando de instalação da sua biblioteca.

Geradores de Documentação

PHUML

PHUML (Processing and Handling of UML Models) é uma ferramenta de modelagem baseada em UML (Unified Modeling Language) que permite aos usuários criar modelos de software e sistemas. O PHUML possibilita a visualização, análise e manipulação desses modelos, além de oferecer recursos para a geração automática de código a partir dos modelos criados.

Em seu novo projeto criado na atividade passada, acrescente a dependência de desenvolvimento abaixo:

Utilize o comando a seguir para gerar o diagrama de classes.

Você poderá trocar o diretório de origem e destino caso precise. Para mais informações sobre a configuração do PHUML acesse https://montealegreluis.com/phuml/docs/class-diagram.html. É possível gerar versões da documentação com apenas métodos, ou apenas atributos, com ou sem associações e escolher a ferramenta de desenho entre as disponíveis, dot e neato. O comando sugerido acima já traz a versão mais completa do gerador do phuml utilizando o graphviz dot que já está instalado no .devcontainer.

Atividade

Acrescente uma nova classe para categoria nas notícias e atualize o diagrama de classes

PHP Documentor

O PHP Documentor é uma ferramenta de documentação de código aberto que gera documentação estruturada e legível para códigos PHP. O PHP Documentor é usado para aumentar a produtividade e facilitar a manutenção, pois ajuda a criar documentos ricos em conteúdo, estruturados e atualizados. O PHP Documentor permite aos desenvolvedores criar documentos HTML, PDF, DocBook e man pages a partir do código-fonte.

Para gerar a documentação basta utilizar o comando abaixo:

Repare que a documentação está incompleta e dispondo apenas das informações básicas das classes e arquivos.

Utiliza-se docblocks, que são um conjunto de propriedades que agregam na definição de arquivos, classes, funções e variáveis, para melhorar a qualidade da documentação gerada, não somente pelos arquivos gerados mas pela explicitação em código de comentários.

DocBlocks

  1. Arquivo

É comum documentar arquivos especificando o pacote (namespace) e a finalidade deste.

  1. Classe ou interface

Documenta-se a classe com uma breve descrição acompanhada das docblocks @final ou @abstract caso estas sejam abstrações ou classes finais

  1. Funções

Na documentação de funções, é comum utilizar o @access para definir o nível de privacidade da função, sua lista de parâmetros através do uso do @param, o retorno @return e caso ela possa disparar exceptions previsiveis, utiliza-se o @throws

  1. Atributos

No caso de atributos, utiliza-se a docblock @var acompanhada do tipo e da descrição

Caso você tenha uma variável, parâmetro ou retorno que pode ser de múltiplos tipos ou você não sabe o tipo, utilize o mixed. O mixed é o tipo básico do PHP que desde as primeiras versões permite que uma váriavel mude de tipo.

Acesse o site do PHP Documentor para ver a lista completa de docblocks disponíveis e como utilizá-los.

https://docs.phpdoc.org/3.0/guide/guides/docblocks.html#more-on-docblocks

Atividade

Agora que você já conhece as docblocks e o PHP Documentor, acrescente as docblocks nas classes do diretório exemplos e gere novamente a documentação

Atividade

Utilizando os conhecimentos em scripts do composer e o PHP Documentor e PHUML, crie um script "composer doc" que crie uma pasta docs sem conteúdo e gere a documentação utilizando as duas ferramentas estudadas.

Tipos de testes

Testes unitários

Testes unitários são testes que validam unidades individuais de código. Eles são projetados para verificar se uma unidade específica de código está funcionando corretamente. Esses testes são executados em uma única unidade de código ao mesmo tempo, o que significa que eles são executados isoladamente do resto do código.

Testes de integração

Testes de integração são usados para verificar se diferentes unidades de código interagem corretamente. Estes testes são usados para verificar se as unidades de código trabalham bem juntas e se eles são capazes de produzir resultados esperados.

Testes de aceitação

Testes de aceitação são usados para verificar se um sistema satisfaz os requisitos de um usuário. Esses testes são usados para verificar se o sistema está funcionando como o usuário espera.

Cobertura de código

Cobertura de código é uma métrica usada para medir a quantidade de código que foi testado. A cobertura de código é usada para verificar se todas as partes do código foram testadas adequadamente.

Asserções

Asserções em testes são declarações que afirmam se um resultado obtido em um teste é ou não o esperado. Elas são usadas para verificar se o código está executando corretamente e produzindo os resultados esperados. Asserções são geralmente representadas por frases como "O resultado deve ser igual a ..." ou "O resultado deve estar entre ...".

PHPUnit

PHPUnit é um framework de testes de unidade para a linguagem de programação PHP. Ele fornece ferramentas para testar aplicativos PHP para garantir sua qualidade e confiabilidade. O PHPUnit permite que os desenvolvedores escrevam e execute testes unitários automatizados para aplicativos e bibliotecas de código PHP. O PHPUnit é construído com base no xUnit e cumpre os princípios do desenvolvimento ágil. É o mais popular framework de testes de unidade para PHP.

Para instalar o PHP Unit basta acrescentar no seu composer.json a seguinte dependenca

Configurando a suíte de testes

A suíte de testes consiste de uma coletânea de testes unitários executados em um ambiente com configurações pré-definidas.

  1. Crie um arquivo na raiz do projeto com o nome de phpunix.xml e acrescente as linhas a seguir:

  2. Crie um diretório tests e nele um arquivo bootstrap.php com o seguinte código:

  3. Acrescente em seu composer.json a seguinte seção:

  4. Crie dentro da pasta tests o diretório unit e nele começe a criar seus testes.

Criando testes unitários com o PHPUnit

Neste exemplo, trabalharemos com operações matemáticas básicas para conhecer os recursos do PHPUnit

Todos os testes feitos com PHPUnit devem ter o nome do arquivo com o sufixo Test e o nome dos métodos de teste com o prefixo test

  1. Crie um arquivo com o nome MathTest.php e acrescente nele o código a seguir:

  2. Crie seu primeiro teste. Para isso, acrescente uma função com o nome testSoma. Teste se a soma 2 + 2 é igual a 4. Para isso, utilize a asserção assetEquals que recebe dois parâmetros e os compara.

  3. Vamos alterar o teste criado anteriormente para torná-lo dinâmico. Para isso, troque os dois números 2 e o número quatro por váriaves $n1, $n2 e $n3 nos parâmetros da função.

Antes de rodar o teste, crie uma função com o nome de NumerosProvider com o seguinte código:

Acrescente antes da função testSoma o docblock a seguir:

DataProviders são um conjunto de instâncias de teste que podem ser utilizados para ampliar a precisão de seus testes informando múltiplos parâmetros e respostas esperadas.

  1. Acrescente em sua classe as funções a seguir:

Atividade

Pesquise e implemente testes utilizando algumas das asserções disponíveis na doc oficial do PHPUnit https://docs.phpunit.de/en/9.Para isso, utilize operações básicas do PHP.

Atividade

Carregue as classes do diretório examples com o autoload do composer e faça testes unitários para cada classe.

Atividade

Carregue a biblioteca que você criou e faça testes unitários para a classe Conexão.

Atividade

Implemente um teste de integração, utilizando as classes Conexão, Autor e Notícia.

Codeception

Codeception é um framework de teste automatizado para aplicativos web PHP. Ele provê uma série de ferramentas para ajudar a testar aplicativos web, desde testes unitários até testes de aceitação do usuário. Ele também possui um conjunto de bibliotecas e recursos para ajudar a automatizar a execução de testes.

Criando testes de cobertura

  1. Acrescente em seu composer.json as segunintes dependências:

  2. Crie um arquivo na raíz do seu projeto com o nome codeception.yml e cole o código a seguir:

  3. Extraia o arquivo codeception.zip para dentro da pasta tests
  4. Execute o comando a seguir para rodar o teste de cobertura:

Caso prefira gerar o relatório em modo gráfico, utilize o comando:

Criando testes de aceitação

  1. Utilizando o PHP Built-In Server, disponibilize na porta 8888 o conteúdo da pasta view.
  2. Crie uma pasta dentro de /tests com o nome acceptance
  3. Instale a dependência a seguir:

  4. Copie o código a seguir dentro do arquivo FirstCest.php, que você deverá criar na pasta acceptance

Atividade

Implemente um teste para formulários utilizando um formulário online qualquer e os métodos da documentação disponíveis em https://codeception.com/docs/AcceptanceTests


All versions of exemple with dependencies

PHP Build Version
Package Version
No informations.
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package jonathanbandeira/exemple contains the following files

Loading the files please wait ....