创建一个使用 Gulp 和 Livereload 运行 PHP 的服务器


Create a server that runs PHP with Gulp and Livereload

我想调整这段代码来提供PHP文件。我让 MAMP 运行本地服务器,但我无法弄清楚这段代码是如何工作的,以便进行必要的更改。我知道 Node 服务器不会解释 PHP 文件,但我对这种使用 serve-staticserve-index 的架构感到困惑,因为显然我不能只使用 MAMP 本地主机中的本地文件路径来提供这些文件,对吧?我也想知道为什么它需要 2 个端口(9000 和 35729)。

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']);
});

我基本上想使用 PHP 为网站模板(页脚、页眉等),就像这个人在这里发布的那样。

我有一种感觉,人们不再这样做了,所以欢迎任何关于使用静态资产和模板进行前端开发的建议(以便以后适应WordPress或其他基于PHP的CMS)。

编辑

请阅读以下内容:运行 BrowserSync 和 PHP 的 Gulp-webapp

我使用我的本机PHP安装作为服务器,而不是使用"gulp-connect-php"插件启动此服务器。我还没有在XAMPP/MAMP中使用它,但是可能你只需要将"bin"和"ini"重新定位到XAMPP/MAMP的PHP安装中。但是我没有如何将Gulp与您的数据库连接的解决方案。

'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 Connect只能启动Node服务器(如果我没记错的话)。

端口 35729 用于实时加载 javascript,您需要将其放置在 PHP、HTML 文件的底部,在那里放置其他脚本。咕噜咕噜也使用完全相同的代码:

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

端口 9000 可能是 Gulp Connect 服务器的已定义端口。