2014-12-02 19 views
5

Mi piacerebbe adattare questo codice per servire file PHP. Ho MAMP che esegue un server locale ma non riesco a capire come funziona questo codice per apportare le modifiche necessarie. So che il server Node non interpreterà i file PHP, ma sono confuso su questa architettura usando serve-static e serve-index perché apparentemente non posso semplicemente usare un percorso di file locale nel localhost di MAMP per servire quei file, giusto? Mi chiedo anche perché ha bisogno di 2 porte (9000 e 35729).Creare un server che esegua PHP con Gulp e Livereload

gulp.task('connect', ['styles'], function() { 
    var serveStatic = require('serve-static'); 
    var serveIndex = require('serve-index'); 
    var app = require('connect')() 
    .use(require('connect-livereload')({port: 35729})) 
    .use(serveStatic('.tmp')) 
    .use(serveStatic('app')) 
    .use('/bower_components', serveStatic('bower_components')) 
    .use(serveIndex('app')); 

    require('http').createServer(app) 
    .listen(9000) 
    .on('listening', function() { 
     console.log('Started connect web server on http://localhost:9000'); 
    }); 
}); 


gulp.task('serve', ['connect', 'watch'], function() { 
    require('opn')('http://localhost:9000'); 
}); 

gulp.task('watch', ['connect'], function() { 
    $.livereload.listen(); 

    // watch for changes 
    gulp.watch([ 
    'app/*.php', 
    '.tmp/styles/**/*.css', 
    'app/scripts/**/*.js', 
    'app/images/**/*' 
    ]).on('change', $.livereload.changed); 

    gulp.watch('app/styles/**/*.scss', ['styles']); 
    gulp.watch('bower.json', ['wiredep']); 
}); 

Io fondamentalmente desidera utilizzare PHP per template (piè di pagina, intestazione, ecc) per un sito web, proprio come this person posted here.

Ho la sensazione che le persone non lo facciano più, quindi qualsiasi suggerimento per lo sviluppo front-end con risorse e modelli statici (per l'adattamento successivo a WordPress o un altro CMS basato su PHP) è il benvenuto.

EDIT

prega di leggere questo: Gulp-webapp running BrowserSync and PHP

risposta

2

posso utilizzare la mia installazione di PHP nativa come un server, che ho fuoco fino questo server con il plugin 'gulp-connect-php'. Non l'ho ancora usato con XAMPP/MAMP, ma probabilmente hai solo bisogno di rintracciare il 'bin' e 'ini' nell'installazione PHP di XAMPP/MAMP. Ma non ho una soluzione su come connettere Gulp al tuo database.

plugin 'gulp-connect-php':

https://www.npmjs.com/package/gulp-connect-php

var gulp = require('gulp'), 
    livereload = require('gulp-livereload'), 
    connectPHP = require('gulp-connect-php'); 

gulp.task('connect', function() { 
    connectPHP.server({ 
    hostname: '0.0.0.0', 
    bin: 'C:/php/php.exe', 
    ini: 'C:/php/php.ini', 
    port: 8000, 
    base: 'dev', 
    livereload: true 
    }); 
}); 

Gulp collegamento unicamente in grado di avviare un server del nodo (se non sbaglio).

La porta 35729 è per il javascript livereload che è necessario posizionare nella parte inferiore del file PHP, HTML, in cui si inseriscono gli altri script. Grunt utilizza anche lo stesso codice:

<script src="//localhost:35729/livereload.js"></script> 

La porta 9000 è probabilmente la porta definita per il server Gulp Connect.

+0

Questo è un buon plugin! Purtroppo non sono stato in grado di adattarlo ad altri flussi di lavoro di sviluppo come quello che ho citato. Inoltre, ho scritto questo nuovo thread, che è molto simile, tranne che utilizza BrowserSync invece: http://stackoverflow.com/questions/27990781/gulp-webapp-running-browsersync-and-php – zok

Problemi correlati