+6

PHP 5.3 parte 4: Arquivos Phar

criado por Douglas V. Pasqua em 11/01/2010 2:54pm
Arquivos Phar são semelhantes aos arquivos JAR do Java. Recurso incluído na versão 5.3 do php, esta nova funcionalidade permite que você distribua sua aplicação PHP inteira ou uma biblioteca em um único arquivo, chamado de arquivo Phar. Esta funcionalidade tornou-se nativa do php na versão 5.3. Não existe uma ferramenta externa para criar arquivos phar como acontece no java. Toda manipulação, criação e utilização dos arquivos são realizados através de códigos PHP. Pelo fato de ser nativo, praticamente não há perca de desempenho em sua utilização.

Criando arquivos Phar

Para criar arquivos Phar será necessário alterar a diretiva phar.readonly no php.ini para Off. Por padrão, esta diretiva vem habilitada por motivos de segurança. Em servidores de produção, arquivos Phar não precisam ser criados, somente executados, por isso a preocupação com a segurança.

O primeiro passo para criar um arquivo Phar é instanciar a classe Phar:

<?php
$p = new Phar('/project/app.phar', 0, 'app.phar');
$p->startBuffering();

O primeiro parâmetro para o construtor da classe Phar é o caminho no sistema de arquivos onde será criado ou acessado o arquivo Phar.
O segundo parâmetro são flags passadas para a classe pai.
O terceiro parâmetro é um alias que poderá ser utilizado para referenciar o arquivo Phar em chamadas de funções de streams.
O método startBuffering é utilizado com a finalidade de desempenho. Todas mudanças que fizermos no arquivo Phar serão efetivadas somente quando chamarmos a função stopBuffering. Quando não utilizamos startBuffering cada mudança realizada no arquivo Phar será efetivada imediatamente.

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 (~6 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 (~6 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 (~6 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 (~6 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 (~6 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 (~6 anos atrás)

Novo Comentário:

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