PHP 5.3 parte 4: Arquivos Phar
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:
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:
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:
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á:
Para chamar o arquivo admin.php:
http://localhost/exemplo.phar/admin.php
A saída no browser será:
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
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)
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
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)
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
(~15 anos atrás)
Alterar a linha acima para:
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