+6

PHP 5.3 parte 4: Arquivos Phar

criado por Douglas V. Pasqua em 11/01/2010 2:54pm
Arquivo Stub

O arquivo Stub é um pedaço de código que será executado quando o arquivo Phar for carregado. Para definir o pedaço de código que será executado ao carregar o arquivo Phar pode-se usar o método setStub que aceita o código em forma de string. Exemplo:

$p->setStub('<?php Phar::mapPhar(); 
             include "phar://app.phar/index.php"; __HALT_COMPILER(); ?>');

O código deve terminar com a função __HALT_COMPILER(). O método statico Phar::mapPhar() lê e inicializa o arquivo Phar a ser executado. O streammer phar:// é usado para referenciar os arquivos que estão dento do pacote Phar. No exemplo anterior ao carregar o arquivo app.phar será executado o arquivo index.php.

Caso não existam nenhum procedimento especial ao carregar o arquivo Phar, onde você deseja simplesmente exeturar um arquivo php diretamente, usá-se o método createDefaultStub. É só passá-lo como parâmetro para o método setStub.

$p->setStub($p->createDefaultStub('index.php'));

Vamos a um exemplo prático onde utilizaremos os conceitos já abordados até aqui. Criar arquivo index.php:

<?php
echo "Olá mundo";

PHP para criar pacote Phar (cria_phar.php):
<?php
$p = new Phar('teste.phar', 0, 'teste.phar');
$p->startBuffering();
$p['index.php'] = file_get_contents("index.php");
// $p->addFile('index.php'); - segunda opção para incluir arquivos.
$p->setStub($p->createDefaultStub('index.php'));
$p->stopBuffering();

Criando o arquivo teste.phar através da linha de comando:

# php cria_phar.php

Após a execução do script acima será criado o arquivo teste.phar.
Executando o pacote phar:

# php teste.phar

A saída da execução do script acima será:

Olá Mundo

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

Novo Comentário:

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