+6

PHP 5.3 parte 4: Arquivos Phar

criado por Douglas V. Pasqua em 11/01/2010 2:54pm
Trabalhando com arquivos Phar

Integrar arquivos Phar em sua aplicação é simples e fácil. A maneira mais simples de se usar arquivos de dentro do pacote Phar é incluí-los em sua aplicação da mesma maneira que você inclui outros arquivos usando include.
Parar referênciar algum arquivo dentro do pacote Phar usá-se o streammer phar://. Segue abaixo o exemplo:

<?php
include 'teste.phar';
include 'phar://teste.phar/index.php';

Na primeira linha estamos incluíndo o pacote Phar. Ao rodar essa linha será chamado o código especificado no stub, que no caso é a execução do arquivo index.php. Na segunda linha estamos incluindo diretamente o arquivo index.php. Qualquer uma das duas chamadas são válidas e uma não depende da outra para rodar. Poderíamos ter chamado ou somente a primeira linha ou somente a segunda linha. De acordo com a segunda linha do exemplo podemos observar que é possível incluir qualquer arquivo existente dentro do pacote Phar.

Agora vamos ver um exemplo de como trabalhar com arquivos Phar via web. Para isso vamos utilizar o método statico Phar::webPhar. Ele funciona como um front controller redirecionando as requisições web para os arquivos dentro do pacote Phar. No próximo exemplo vamos criar um novo arquivo Phar para ser utilizado em um ambiente web:

<?php;
// Criando arquivo Phar:
try {
  $phar = new Phar('exemplo.phar');
  $phar['index.php'] = '<?php echo "Hello World Index"; ?>';
  $phar['admin.php'] = '<?php echo "Hello World Admin"; ?>';
  $phar->setStub('<?php Phar::webPhar(); __HALT_COMPILER(); ?>');
} catch (Exception $e) {
// Tratando erro
}
print "Arquivo Phar criado";

O método webPhar() deve estar dentro do código stub e será executado ao chamarmos o pacote exemplo.phar. Após criarmos o arquivo exemplo.phar devemos colocá-lo dentro do diretório raiz do servidor web. Devemos configurar o servidor web para que ele saiba o quê fazer com arquivos de extensão .phar. Segue abaixo a configuração que deve ser realizada no apache:

AddType application/x-httpd-php .php .phar

Apenas adicionamos a extensão .phar ao final da cláusula AddType já existente no httpd.conf.

Agora podemos chamar a aplicação pelo browser:

http://localhost/exemplo.phar

A saída no browser será:

Hello World Index

Para chamar o arquivo admin.php:

http://localhost/exemplo.phar/admin.php

A saída no browser será:

Hello World Admin

Comentários:

Mostrando 1 - 6 de 6 comentários
Para rodar arquivos .phar, primeiramente você deve identificar a seguinte linha dentro do arquivo de configuração do Apache:

AddType application/x-httpd-php .php

Alterar a linha acima para:

AddType application/x-httpd-php .php .phar

Coloque o arquivo .phar dentro do diretório Root do apache, que no seu caso pode ser dentro do public_html/

Depois é só acessar. Exemplos:

http://localhost/exemplo.phar
http://localhost/exemplo.phar/admin.php

01/04/2010 11:35am (~14 anos atrás)

Foi mal pelo quest anterior. Na verdade o que eu não entendi foi como roda a aplicação depois que ela está em .phar
01/04/2010 9:54am (~14 anos atrás)

Eu não entendi, isso tem que ser executado na raiz da aplicaco? no caso /public_html/ no servidor?
01/04/2010 9:46am (~14 anos atrás)

Marcos Regis disse:
Só um adendo. O Phar em si não é algo novo. O Pear vem empacotado em um arquivo .phar quando baixamos o pacote do php em .zip.
Para usar Phar em versões anteriores a PHP 5.3 basta usar as extensão PECL
http://pecl.php.net/package/phar


25/02/2010 4:49pm (~15 anos atrás)

Renato Suero disse:
Douglas,Parabéns nem sabia que dava pra fazer algo do tipo com o php achei muito bacana seu artigo vlw ai :d
25/02/2010 7:16am (~15 anos atrás)

Douglas, parabéns pelo artigo. O "phar" não me soa estranho, mas é um recurso que eu não conhecia. Muito bacana.
14/01/2010 11:27pm (~15 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)