Mostrando postagens com marcador facebook. Mostrar todas as postagens
Mostrando postagens com marcador facebook. Mostrar todas as postagens

quinta-feira, 30 de maio de 2013

phpsh um REPL para PHP

Vocês sabem o que a sigla REPL significa? Ela significa read-eval-print-loop. Ela é usada para denominar um abiente shell de programação interativa. É como um programa de linha de comando onde você pudesse executar os comandos de sua linguagem de programação favorita e observar o que cada comando faz imediatamente depois de apertar Enter. Diversas linguagens de programação possuem seus REPL's como Python, Ruby, Perl, Scala, Groovy, Forth, Lisp, Javascript etc. Aliás é bem provável que você que está lendo este texto agora já tenha um ambiente REPL para Javascript instalado e funcional, afinal, os browsers mais usados como Firefox, Chrome e Iternet Explorer possuem interpretadores Javascript. Aperte F12 no Chrome e Internet Explorer ou Ctrl + Shift + K no firefox e procure pela aba console.

O PHP também já vem com um REPL instalado. Se você executar o seguinte comando:
php -a
Verá que ele irá abrir o "Interative Shell". Mas infelizmente ele é muito limitado, no meu caso por exemplo aparece um til(~) cada vez que aperto a tecla Delete e o autoloading não está disponível. E no windows eu diria que ele simplesmente não funciona.

O pessoal do Facebook criou um REPL bem legal para PHP. Chamdo phpsh ele é implementado na maior parte em Python(pecado mortal!). Mas enfim, ele tem recursos legais como autoloading, opção para carregar código já existente e a tecla Delete funciona!

O endereço com instruções para instalá-lo está aqui. Para baixá-lo eu simplesmente clonei o repositório usando o git, mas você também pode obtê-lo através de um arquivo zip na mesma página.

Existem alguns módulos PHP que precisam estar instalados, são eles: pcre, posix e tokenizer. No caso do Python também existem algumas dependências. No meu caso tive que instalar o easy_install para instalar o pacote readline. Para instalar o easy_install tive que instalar o pacote python-setuptools. Depois de instalar o setuptools basta usar o comando para instalar o readline:
sudo easy_install readline
E depois segui as instruções para instalar globalmente:
cd phpsh (precisamos entrar no diretório raiz do phpsh depois de baixá-lo)

python setup.py build
sudo python setup.py install
phpsh

E pronto! Você já pode escrever código PHP e apertar enter para ver o resultado. Eu particularmente acho muito úteis estes ambientes REPL. Quando eu quero ver o que uma função faz ou simplesmente testar algumas poucas linhas de código é muito fácil abrir o terminal e já começar a escrever o código e poucos momentos depois já ver o resultado. Espero que isto ajude vocês tanto quanto me ajuda.

terça-feira, 2 de fevereiro de 2010

Saiu! HipHop o compilador PHP feito pelo Facebook

Aí vai o link para o post sobre o projeto, feito por um dos envolvidos. Na verdade não é um compilador, ele transforma seu código PHP em C++ e compila usando o g++, ou seja, é um tradutor PHP->C++.
Agora é tentar testar o cara! Até mais.

Update: O repositório do projeto no GitHub está fora do ar, ou melhor, o GitHub está fora do ar.

Update II: Na página indicada pelo link acima eles vão fazer uma apresentação ao vivo falando do HipHop. No horário brasileiro deve ser as 01:30. Depois desta apresentação o código deve ser liberado.

Facebook pode estar preparando um compilador para a linguagem PHP

Estão dizendo por aí na web que o Facebook deve lançar um novo projeto open-source hoje. E que esse projeto provavelmente é um compilador PHP. Ou seja, você poderia pegar seu código fonte escrito em PHP e transformá-lo em código nativo da máquina. Em teoria isso poderia aumentar muito a velocidade de execução dos códigos da linguagem.
Uma boa parte da base de código do Facebook é escrita em PHP, e com os milhões e milhões de usuários que a rede social tem, um pequeno ganho na velocidade de execução pode significar muita coisa. Vou ficar de olho na página de projetos open-source deles a partir de hoje, talvez sai alguma coisa lá.