Use PHP com seu servidor de desenvolvimento Yeoman

Nota: Eu não uso esta pilha há alguns anos. A julgar pelos comentários, este protocolo ficou bastante obsoleto. Pegue o que puder, mas saiba que YMMV.

Já precisou usar um script PHP em seu projeto Yeoman? É muito simples fazer isso, mantendo todas as vantagens que Yeoman traz para você (especialmente recarregar ao vivo).

A integração é realizada por meio de um middleware de Felix Gnass chamado gateway . O Gateway permite que você especifique manipuladores CGI para solicitações correspondentes a certas extensões (.php em nosso caso). O Sr. Gnass escreveu uma postagem no blog sobre o tópico desse protocolo, mas não incluiu instruções passo a passo para a integração de middleware, o que demorei um pouco para descobrir.

Código de exemplo

https://github.com/falsetto/php-from-yeoman

Gere um aplicativo com Yeoman

$ mkdir php-from-yeoman
$ cd php
-from-yeoman
$ yo webapp

Certifique-se de que php-cgi está em seu $ PATH

$ which php-cgi

Se obtiver php-cgi not found, veja como instalá-lo usando o Homebrew no OS X (para outros sistemas operacionais, o Google é seu amigo):

brew tap homebrew/dupes
brew tap josegonzalez
/homebrew-php
brew install php54

Módulo de gateway de configuração

$ npm install gateway

Modifique Gruntfile.jsadicionando o seguinte próximo ao topo:

var gateway = require('gateway');

Modifique a matriz retornada pela função em connect.livereload.options.middlewarepara ficar assim:

middleware: function (connect) {
return [
lrSnippet
,
gateway
(__dirname + '/app', {
'.php': 'php-cgi'
}),
mountFolder
(connect, '.tmp'),
mountFolder
(connect, 'app')
];
}

Renomear app / index.html e testar

$ mv app/index.html app/index.php

Adicione dentro da tag de .<?php echo "<h1>Hello from PHP!</h1>";bodyapp/index.php

Em seguida, inicie seu servidor de desenvolvimento:

$ grunt server

Supondo que seu navegador foi iniciado e carregado , você deverá ver Hello from PHP! na página.http://localhost:9000/

Faça algumas alterações em app / index.php, salve o arquivo e seu navegador deverá recarregar automaticamente.

Observação: devido a uma condição ingênua na biblioteca livereload, o recarregamento ao vivo só funcionará para arquivos PHP quando a URL terminar com ‘/’ (basicamente, arquivos index.php).