Artigos de Tecnologia e Negócios > Programação

PHP Composer: autoloading, executáveis e scripts

Giovanni Tempobono
Giovanni Tempobono

O Composer é uma das ferramentas principais do PHP moderno.

Autoloading com o Composer

Imagine que você precisa enviar um e-mail, e para isso vai ser necessário o uso de três classes Email.php, Mensagem.php e Servidor.php. Quando vamos utilizar elas em um arquivo,temos que fazer uso da função de require.

require ‘Email.php’;
require ‘Mensagem.php’;
require ‘Servidor.php’;

Legal, isso funciona, mas imagine que precisássemos utilizar mais de vinte classes, esse código iria ficar gigante né? para contornar isso, podemos utilizar a função de autoload do Composer.

O Composer faz o autoload das classes do seu projeto, do mesmo jeito que ele faz o autoload de bibliotecas externas. Para isso, existe uma propriedade chamada autoload que pode ser adicionada no composer.json:

{
    "autoload": {
        "psr-4": {"MeuNamespace\\": "src/"}
    }
}

Neste código, estamos fazendo uso do autoload seguindo a convenção PSR-4. A PSR-4 é uma das PHP Standards Recommendations, que foi criada pelo PHP-FIG (PHP Framework Interop Group) que define normas para se criar o autoload de arquivos PHP. No caso, estamos atribuindo o namespace “MeuNamespace” para o diretório src na raiz do programa.

Com isso todo o nosso código estará acessível através desse namespace, a única configuração que devemos fazer é incluir na nossa aplicação o arquivo de autoload do Composer! ele pode ser incluído com o seguinte código:

require ‘vendor/autoload.php’;

O Composer mantém um cache próprio em relação aos arquivos de autoload, então precisamos utilizar o seguinte comando toda vez que fizermos uma alteração no autoload, pois ele vai atualizar o cache.

composer dump-autoload

Acessando arquivos executáveis pelo Composer.

Em uma aplicação real, é muito comum precisarmos desenvolver testes para que a nossa aplicação não sofra com regressão de funcionalidade ou bugs que podem ser criados conforme vamos desenvolvendo. Uma biblioteca que auxilia com isso no PHP é o PHPUnit, e podemos instalar no nosso projeto utilizando o Composer.

composer require --dev phpunit/phpunit

Observe o –dev utilizado logo depois do require, isso é desejável nessa situação pois o PHPUnit é uma dependência que só faz sentido enquanto estamos no ambiente de desenvolvimento e ela não deve ser instalada no ambiente de produção. No ambiente de produção, o comando a ser digitado para instalar as dependências é:

composer install --no-dev

O que instalará somente as dependências que podem ser instaladas em um ambiente de produção, excluindo as dependências de desenvolvimento e deixando o ambiente de produção mais enxuto.

Depois de instalarmos dependências que possuem arquivos executáveis instaladas pelo Composer, elas ficam acessíveis no diretório vendor dentro da pasta bin. Para executarmos o PHPUnit, faremos o seguinte:

php vendor/bin/phpunit

Scripts customizados com o Composer

Quando executamos testes na nossa aplicação, precisamos de toda a performance possível para que os testes executem logo. Uma otimização que pode ser feita é desligar o debugger quando executamos a bateria de testes, isso pode ser feito com o seguinte comando:

php -d xdebug.remote_enable=Off -d xdebug.remote_autostart=Off vendor/bin/phpunit

Grande, não é? para facilitar, podemos criar um comando customizado do Composer, basta adicionar a seguinte propriedade no arquivo composer.json:


{
    "scripts": {
        "test": "@php -d xdebug.remote_autostart=Off -d xdebug.remote_enable=Off vendor/bin/phpunit"
    }
}

Legal! agora quando executarmos o comando composer test, vamos executar de uma maneira mais curta o mesmo comando que digitamos antes.

Você pode descobrir mais sobre o Composer olhando a documentação oficial e se você quiser conhecer mais sobre desenvolvimento de PHP moderno, acesse a formação PHP da Alura.

Leia também:

Artigos de Tecnologia e Negócios > Programação

Cursos profissionais de Programação é na Alura, comece agora!

  • 971 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 971 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 971 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 971 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana