Se você chegou até aqui, já deve saber que Gtk é usado para criação de interfaces gráficas e que, apesar de ser nativo do Linux, também funciona em outros sistemas operacionais como Windows e Mac. Se você ja que leu até aqui meio rápido, também deve saber que o Php possuia (ainda possui até) uma ótima extensão para desenvolvimento de interface gráfica, assim como também deve saber que só com Php 5 e Gtk 2. Mas você talvez não saiba que já existe um bind muito funcional para Php 7.* e Gtk 3, e que agora um bind utilizando FFI está sendo desenvolvido.

Em maio/2019 foi lançado o primeiro release do appimage, que já contem o Php e a extensão compilada, que é só baixar e executar. A ultima foi lançada em 25 de julho/2019, com Php 7.3 e Gtk 3.24. Todos os releases, bem como o fonte da extensão se você quiser criar sua compilação, voce encontra no link https://github.com/scorninpc/php-gtk3/releases.

Apesar de todo o trabalho, considero o insucesso do projeto simplesmente pelo fato de não ter uma compilação para Windows. Não tenho um numero, mas acredito nisso pelo que vejo nas listas de email e nos grupos ao qual faço parte. A grande maioria ainda é usuário Windows, e isso não ocorreu, por que sou totalmente leigo em Windows, não sei nem como começar, se devo usar Cygwin ou Visual Studio (confesso que tentei algumas vezes, mas não me entra na cabeça como essas gambiarras funcionam no Windows. As libs fazem tanto sentido no Linux ....). O problema foi não ter um instalador que fizesse todo o trabalho no Windows. Usuários Windows não possuem o costume de compilar para usar.

De qualquer forma, estava tudo pronto para o lançamento do Php7.4 com a extensão Gtk, foi então que o FFI foi incorporado ao Php 7.4 como experimental e eu comecei a ficar animado com ele. A libffi é uma biblioteca para interface com funções externas, fornecendo assim uma interface entre a linguagem C, não requerendo mais que compilar extensões para adicionar funções ao Php. Resumindo, ela faz uma interface entre bibliotecas C para o Php em tempo de execução. Imagine utilizar funções C, somente baixando uma classe na internet. É isso.

Como disse anteriormente, acredito fortemente que o insucesso do projeto tenha sido o quesito "compile para usar" no Windows, então por que não portar o Gtk por FFI, se o FFI não obrigará mais essa compilação? Foi ai que comecei a fazer o port, que pode ser encontrado em versão inicial aqui https://github.com/scorninpc/php-gtk-ffi.

Para executar, basta ter Php7.4 ou maior com extensão FFI, clonar o repositório, e mudar o caminho do .SO ou do .DLL dentro de src/Gtk.php

Teste de uso inicial

Para Linux continua sendo muito fácil, já que Gtk é nativamente desenvolvido para Linux. Mas para Mac e Windows, continua sendo muito fácil baixar e instalar as libs Gtk, e só usar. Caso tenha experiência no Windows e quiser contribuir com uma instalação simples, tudo dentro de um diretório para que possamos distribuir, seria uma contribuição e tanto.

O plano agora é continuar focado no port, e estou fazendo de forma diferente desta vez. Agora estou portando os widgets que preciso para desenvolvimento do Fabula IDE. Então enquanto faço o port, já estou aperfeiçoando o Fabula MVC Framework e desenvolvendo o Fabula IDE. Caso utilize e queira que eu dê prioridade em algum, por favor, basta abrir um issue no Github que terei o maior prazer em fazer o port.

Não deixe de ajudar, contribuir ou apenas comentar. Acredite: para quem desenvolve projetos por gosto, o incentivo é o que faz o projeto andar mais rápido ou mais lento. Projetos open-source não são piada. Ajude, contribua e participe dos projetos open-source que você gosta.