menu
Adianti Framework
menu Menu
Quando desenvolvemos uma aplicação de negócios, é normal precisarmos de pacotes de terceiros para realizar tarefas específicas, tais como: gerar gráficos, documentos, gerar boletos, notas fiscais, códigos de barras, e outros.

No início dos anos 2000, as formas mais comuns de integrar bibliotecas de terceiros em projetos PHP eram os repositórios PEAR e PHPClasses. PHPClasses é um repositório mantido pela comunidade, sem padronização e consistência entre os pacotes disponibilizados. PEAR foi o primeiro repositório de classes a seguir um certo nível de padronização e validação dos pacotes enviados. No entanto, foi a partir do ano de 2012, com o advento do Composer, que um ecossistema robusto de disponibilização de pacotes foi criado.

O Composer, lançado em 2012, é um gerenciador de dependências para PHP. Ele fornece um método padronizado para instalação de pacotes e dependências, e baseia-se fortemente no conceito de Namespaces, lançado com o PHP5.3 no início de 2012. Namespaces permitem o isolamento lógico entre os pacotes, evitando conflitos de declarações. O Composer não é um gerenciador de pacotes tal como o APT do Ubuntu. Ele também roda pela linha de comando, mas resolve dependências e instala pacotes para uso da aplicação, ou seja, bibliotecas de classes PHP. Para tal, ele utiliza o repositório de pacotes Packagist.

Para instalar o composer, em sistemas com o curl disponível, utilize o seguinte comando:
curl -sS https://getcomposer.org/installer | php

Após o composer estar instalado, você já pode instalar um pacote, com o seguinte comando:
php composer.phar require fzaninotto/faker

O comando "composer require" faz algumas coisas como:
- Instala a biblioteca no diretório vendor. Neste caso em vendor/fzaninotto/faker/
- Instala outros pacotes que a biblioteca necessita, também em vendor
- Escreve o arquivo composer.json, com todos pacotes instalados até o momento
- Escreve o arquivo vendor/autoload.php, que é um autoloader das classes instaladas

O arquivo composer.json é uma receita que contém todos pacotes instalados pelo composer, e possui o seguinte formato:
{ "require": { "fzaninotto/faker": "^1.7", "phpmailer/phpmailer": "^6.0", "tburry/pquery": "^1.1", "picqer/php-barcode-generator": "^0.2.2", "dompdf/dompdf": "^0.8.1", "bacon/bacon-qr-code": "^1.0", "phprtflite/phprtflite": "^1.3" }, "require-dev": { "phpunit/phpunit": "^7" } }


O Framework já acompanha alguns pacotes, por isso você verá ali alguns pacotes pré-instalados. Mesmo que você apague acidentalmente a pasta vendor, por meio do composer.json, conseguirá restaurar todos os pacotes com o comando "composer install".

O arquivo vendor/autoload.php é o carregador de classes para os pacotes instalados pelo Composer. Ele tem um conteúdo parecido com o exibido a seguir, podendo ser ligeiramente diferente, conforme o conjunto de bibliotecas instaladas.

  1. <?php
  2. // autoload.php @generated by Composer
  3. require_once __DIR__ '/composer/autoload_real.php';
  4. return ComposerAutoloaderInit3403f6f57b1c5808f5595c77dea0e15d::getLoader();
  5. ?>


Para que uma aplicação desenvolvida com o Framework possa utilizar os pacotes instalados pelo composer, o vendor/autoload.php precisa ser carregado, o que já é feito pelo init.php. Este trecho de código a seguir, importa o autoload e registra ele na pilha de autoloaders da biblioteca SPL do PHP. Isto já é feito desde a versão 5, portanto, não há nada que você precise fazer.
  1. <?php
  2. $loader = require 'vendor/autoload.php';
  3. $loader->register();
  4. ?>


Então, para utilizar uma bibliteca do Composer, você só precisa instalar o composer, instalar o pacote, e utilizá-lo na aplicação. Para utilizar o Faker, por exemplo, que é uma biblioteca para geração de dados fictícios de pessoas, basta requisitar a biblioteca e sair usando:

  1. <?php
  2. class FakerView extends TPage
  3. {
  4.     public function __construct()
  5.     {
  6.         parent::__construct();
  7.         
  8.         $faker Faker\Factory::create();
  9.         
  10.         $output '';
  11.         $output .= '<b>Title</b>: ' $faker->title '<br>';
  12.         $output .= '<b>Name</b>: ' $faker->name '<br>';
  13.         $output .= '<b>State</b>: ' $faker->state '<br>';
  14.         $output .= '<b>State Abbr</b>: ' $faker->stateAbbr '<br>';
  15.         $output .= '<b>City</b>: ' $faker->city '<br>';
  16.         $output .= '<b>Street Name</b>: ' $faker->streetName '<br>';
  17.         $output .= '<b>Number</b>: ' $faker->buildingNumber '<br>';
  18.         $output .= '<b>Country</b>: ' $faker->country '<br>';
  19.         
  20.         $panel = new TPanelGroup('Faker');
  21.         $panel->add($output);
  22.         parent::add($panel);
  23.     }
  24. }
  25. ?>


Revisão dos passos:
1) Instalar o composer: curl -sS https://getcomposer.org/installer | php
2) Instalar o pacote: php composer.phar require fzaninotto/faker
3) Utilizar o pacote na aplicação.


Comentários

 


Você precisa realizar login para enviar posts, comentários, dentre outros. Para isso, clique em um dos botões a seguir para logar utilizando a API de um dos serviços.