+5

Desenvolva aplicações Desktop com PHP (não, não é GTK)

criado por Guilherme Alencar em 02/03/2013 12:21pm
PHP Desktop (Chromium)

http://code.google.com/p/phpdesktop-chromium/

PHP Desktop (Chromium) é um projeto de código aberto desenvolvido por Guilherme Alencar para prover um meio de desenvolver aplicações desktop nativas utilizando tecnologias web como PHP, HTML5, JS e SQLite. Engloba um navegador web (Chromium, uma versão livre do navegador Chrome do Google), um servidor web embutido (nativo da linguagem PHP desde a sua versão 5.4.0), e o interpretador PHP, com a extensão sqlite3 para banco de dados da aplicação.

A idéia é inspirada no conceito de SSB (Site-Specific Browser), que consiste em adaptar um navegador para rodar aplicações web no modo desktop de modo específico para sua aplicação. Em alguns navegadores esta funcionalidade é adicionada com Extensões, mas no Chromium esta função é nativa com a opção -app="site".

Há um outro projeto PHP Desktop, desenvolvido por Czarek Tomczak (http://code.google.com/p/phpdesktop/), no qual este foi inspirado. O meio utilizado por Czarek para alcançar os seus objetivos é distinto, a saber, compilar uma aplicação com a mesma engine do Chrome utilizando um framework chamado CEF (Chromium Embedded Framework), que se assemelhará a um navegador executando o servidor Web PHP embutido num mesmo executável. Isto será muito mais limpo, rápido e menor. O projeto PHP Desktop de Czarek também é mais abrangente, pois pretende alcançar mais navegadores, enquanto este se prende ao Chromium (embora possa ser implementado para outros navegadores também, por meio de extensões, como já referido).

O projeto de Czarek já criou uma aplicação SSB para Microsoft Internet Explorer, o que é vantajoso, pois o projeto é pequeno por rodar a versão do Internet Explorer do Host, e não um Internet Explorer embutido (isto tem vantagens e desvantagens, pois você nunca saberá que versão do Internet Explorer o Host terá instalado).

A versão para Chromium de Czarek ainda não possui release, e este projeto pode ser utilizado enquanto isso não ocorre.

Outras vantagens de se utilizar este projeto é a possibilidade de utilizar recursos do navegador na sua aplicação, como a opção Ctrl+Print (o que não foi implementado ainda no CEF). Também existe a possibilidade de utilização de Extensões do navegador Chromium na sua aplicação, o que pode acrescentar funcionalidades interessantes.

O modo de desenvolver é o mesmo para uma aplicação Web para WAMP (Windows, Apache, MySQL e PHP). Coloca-se a aplicação na pasta www, em que o primeiro arquivo a ser executado deve-se chamar index.php ou index.html. Depois, basta executar o Launcher.exe que executará o servidor PHP (phpdesktop.exe, que é o mesmo executável do php.exe do zip obtido em php.net), e o navegador Chromium apontando para o endereço 127.0.0.1 na porta 54007 (http://127.0.0.1:54007/). Se a janela for fechada, o executável phpdesktop.exe é eliminado da lista de processos do Windows utilizando Javascript e PHP.

Por enquanto o projeto roda apenas em Windows.
Descrição das Aplicações

PHP 5.4.12, Chromium (Portable) 26.0.1410.5, jQuery Javascript Library 1.6.2.
Extensões do PHP

As extensões utilizadas são: cURL, SQLite3, OpenSSL, PDO (SQLite). Outras extensões podem ser utilizadas baixando-se o zip da versão 5.4.12 do php em php.net e colocando a dll desejada em ext/, e depois ativando-a em php.ini. Extensões sugeridas são GD2 (para geração de imagens) e extensões para habilitar suporte a outros bancos de dados (MySQL, PostgreSQL).

Comentários:

Mostrando 1 - 8 de 8 comentários
sergiomota disse:
legal
12/02/2014 1:41pm (~5 meses atrás)

Galera alguem conseguiu usar ele com o mysql ou sabe como fazer?
17/07/2013 8:50am (~1 ano atrás)

Muito boa a ideia,,, mas quando pensamos em aplicação desktop precisamos pensar em segurança e também sigilo dos arquivos!!! isso para que a aplicação possa ter sua integridade segura!, como poderia ser feito isso ?
30/05/2013 8:27pm (~1 ano atrás)

Se você tiver interesse a solução correta seria essa aqui:

http://wiki.uniformserver.com/index.php
Mini_Servers:_MySQL_5.0.67_Portable

Tem até uma parte que ensina como eliminar o servidor, dentre outras. Se você quiser acrescentar qualquer aplicação a idéia é sempre acrescentar com a idéia de Portable, como se estivesse executando de um Pendrive. Essa seria a versao para pendrive do MySQL.
04/04/2013 7:30am (~1 ano atrás)

Acredito que tem como implementar uma versão com MySQL. O programa subiria de 30 Mb para uns 60 ou 70 Mb, só arriscando. Seria necessário instalar o servidor mysql standalone e colocar o Launcher.c para lançá-lo também. No arquivo que elimina o servidor web (phpdesktop.exe) teria que haver uma instrução para eliminar o MySQL também. Também teria que haver a dll que habilita integração php-mysql e ela deveria estar habilitada no php.ini também.

Eu não acho que seja bom usar o MySQL neste caso. O PHPDesktop é recomendado para aplicações pequenas, não recomendo fazer aplicações de grande porte nele. Para aplicações pequenas o SQLite é suficiente e muito bom.
04/04/2013 7:26am (~1 ano atrás)

amadeu disse:
seria possível colocar ele com DB mysql? se sim como seria para habilitar?
03/04/2013 9:50am (~1 ano atrás)

Valeu!
Dá pra apontar outro servidor no arquivo Launcher.c. Ao invés de 127.0.0.1 basta apontar outro ip e recompilar.
28/03/2013 8:51am (~1 ano atrás)

Muito legal a aplicação!
PHP é muito bom na web, mas sempre tem aqueles que querem rodar local.
Isso ae pode ajudar bastante quando o software for para micro e pequenas empresas. Acredito que para médio-grande softwares essa solução não seja adequada, pois vai exigir um servidor melhor.
27/03/2013 5:37pm (~1 ano atrás)

Novo Comentário:

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