PHP 5.3 parte 4: Arquivos Phar
Adicionando arquivos
Existem várias maneiras de adicionar arquivos dentro do pacote. Uma delas é utilizando o método addFile:
Na primeira chamada de método addFile estamos adicionando o arquivo /project/userBlog.php dentro do pacote. O segundo comando é semelhante, porém estamos passando um segundo parâmetro. Através do segundo parâmetro definimos o caminho que o arquivo será armazenado no pacote. Quando precisarmos utilizar esse arquivo no pacote, vamos referênciá-lo através de /lib/CMS.php.
O objeto Phar utiliza ArrayAccess SPL que permite acessar o conteúdo do pacote Phar através de array. É a maneira mais simples de se adicionar arquivos:
Normalmente quando precisamos adicionar muitos arquivos para dentro do pacote torna-se inviável utilizar as opções anteriores, onde temos que adiocionar um a um. Existem métodos que facilitam essa tarefa, como buildFromDirectory e buildFromIterator.
buildFromDirectory:
A função buildFromDirectory adiciona os arquivos de um diretório dentro do pacote Phar. O segundo parâmetro, opcional, é uma expressão regular usada para filtrar os arquivos que serão incluídos. No exemplo anterior estamos incluíndo todos os arquivos com a extensão .php do diretório /project dentro do pacote Phar.
Existem várias maneiras de adicionar arquivos dentro do pacote. Uma delas é utilizando o método addFile:
$p->addFile("/project/userBlog.php"); $p->addFile("/project/userCMS.php", "/lib/CMS.php");
Na primeira chamada de método addFile estamos adicionando o arquivo /project/userBlog.php dentro do pacote. O segundo comando é semelhante, porém estamos passando um segundo parâmetro. Através do segundo parâmetro definimos o caminho que o arquivo será armazenado no pacote. Quando precisarmos utilizar esse arquivo no pacote, vamos referênciá-lo através de /lib/CMS.php.
O objeto Phar utiliza ArrayAccess SPL que permite acessar o conteúdo do pacote Phar através de array. É a maneira mais simples de se adicionar arquivos:
<?php $p['index.php'] = file_get_contents("/project/index.php"); $p['teste.txt'] = "Teste 123 456";
Normalmente quando precisamos adicionar muitos arquivos para dentro do pacote torna-se inviável utilizar as opções anteriores, onde temos que adiocionar um a um. Existem métodos que facilitam essa tarefa, como buildFromDirectory e buildFromIterator.
buildFromDirectory:
$p->buildFromDirectory('/project', '/\.php/');
A função buildFromDirectory adiciona os arquivos de um diretório dentro do pacote Phar. O segundo parâmetro, opcional, é uma expressão regular usada para filtrar os arquivos que serão incluídos. No exemplo anterior estamos incluíndo todos os arquivos com a extensão .php do diretório /project dentro do pacote Phar.
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
(~15 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
(~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)
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