Bibliotecas externas


1Apresentação

Ao desenvolver um site ou uma API, é comum usar bibliotecas de funções para realizar determinados processos (para evitar ter que desenvolver tudo você mesmo).

Temma é bem flexível e se adapta à forma como você deseja carregar essas bibliotecas. De modo geral, as bibliotecas podem ser carregadas copiando-as para o diretório lib/, ou usando o gerenciador de dependências Composer.


2Copiando a biblioteca

Se a biblioteca for um conjunto de arquivos .php ou um arquivo .phar, você pode copiar o(s) arquivo(s) para o diretório lib/ do projeto.


2.1Arquivos .php

Se você colocar arquivos .php no diretório lib/, e eles contiverem objetos compatíveis com o padrão PSR-4, eles serão tratados automaticamente pelo autoloader do Temma.

Por exemplo, o objeto \Skywalker\Luke deve ser armazenado no arquivo lib/Skywalker/Luke.php, e pode ser instanciado diretamente:

$luke = new \Skywalker\Luke();

Se, por outro lado, os arquivos não seguirem o padrão PSR-4, você precisará incluí-los explicitamente antes de poder usar os objetos e funções que eles contêm.

Por exemplo, se o arquivo lib/skywalker/family.php contiver o objeto \Skywalker\Luke, você precisará incluí-lo antes de instanciá-lo:

<?php

require_once('skywalker/family.php');

// algum código

$luke = new \Skywalker\Luke();

2.2Arquivo .phar

Se você colocar um arquivo .phar diretamente no diretório lib/, todos os seus objetos que usam o conteúdo desse arquivo terão que incluí-lo:

<?php

require_once("a_library.phar");

Se você colocou o arquivo .phar em um subdiretório, deve incluir o caminho completo abaixo de lib/:

<?php

require_once("path/to/a_library.phar");

3Usando o Composer

Composer é o gerenciador de dependências comumente usado em projetos PHP. Ele facilita o carregamento de bibliotecas declaradas no serviço Packagist.

Supondo que você já tenha o Composer instalado, você pode criar um arquivo composer.json na raiz do seu projeto, e listar nele as bibliotecas que precisam ser instaladas:

{
    "require": {
        "lib1": ">=1.0.0",
        "lib2": "2.*"
    }
}

Em seguida, para que o Composer baixe as bibliotecas listadas (e suas dependências), execute o comando: composer update

Se você instalou o Composer como um arquivo .phar, você precisará executar php composer.phar update

O Composer vai colocar os arquivos baixados no diretório vendor/.

Se você instalou bibliotecas com o Composer, o Temma vai carregar automaticamente o autoloader do Composer, tornando os objetos das bibliotecas diretamente instanciáveis.