gulp-connect-php icon indicating copy to clipboard operation
gulp-connect-php copied to clipboard

Closing sessions

Open sensaetions opened this issue 7 years ago • 10 comments

Hello, I am using gulp-connect-php on a lot of different projects to serve up my PHP pages. Sometimes I would start one server on one project, and then have to switch to a different project. I make sure to close the connection by ending the gulp task. However, when I switch to the different project and run my gulp task, the connection opens the previous site instead.

So far, the only way I can close off the connection completely is to restart my computer. That is not practical in the long run. How can I make it so that previous connection ends completely and loads the appropriate site? Thank you in advance.

Below is an example of my gulp task.

gulp.task('connect', function () {
    connect.server({
        root: 'src',
        livereload: true
    });
});

gulp.task('connectSync', ['connect'], function () {
    connectPhp.server({}, function () {
        browserSync({
            proxy: 'localhost:8000',
            open: {
                browser: 'Google Chrome'
            }
        });
    });
});

sensaetions avatar Feb 07 '17 15:02 sensaetions

Sorry for the late reply on this. Can you please provide me some environment specifics? What os, php version etc.

micahblu avatar Apr 14 '17 05:04 micahblu

Hey there, I just ran into this issue on OSX Sierra with PHP 5.6/7.0/7.1 – the php process simply does not terminate when I stop the gulp task from running. Managed to kill the process by locating it first with lsof -i tcp:8000 and then killing the PID. Any thoughts? Thanks in advance.

EDIT: sometimes things will work as expected. Managed to reproduce a few times however.

vieko avatar Apr 16 '17 02:04 vieko

@vieko I am presently in the process of reworking portions of this, including its dependence on lsof. The current status of where i am in this is available here: https://github.com/micahblu/gulp-connect-php/pull/41

You are welcome (encouraged) to test that out and see how it goes.

Please direct any bugs against 1.0.0 WIP against the other repo (https://github.com/grmartin/gulp-connect-php). Once it is merged in to this one, bug tracking will move here, i simply do not wish to muddy the waters in this repo until after that branch is mainlined.

grmartin avatar Apr 17 '17 13:04 grmartin

1.0.0 is now in the primary master branch of the original repository. See: http://github.com/micahblu/gulp-connect-php.

grmartin avatar Apr 19 '17 02:04 grmartin

This ticket will close on or near 17 May 2017 unless updated.

grmartin avatar May 08 '17 02:05 grmartin

I am also seeing the behavior where the server does not stop when the gulp process is ended (MacOS). My gulp task looks like this:

gulp.task('connect', ['browsersync'], function () {
    connect.server({ base: config.wordpress.dest, port: 8001, debug: true, open: false});
});

dylanspurgin avatar May 20 '17 00:05 dylanspurgin

So, Gulp 3 uses orchestrator. Presently our library doesn't implement any binding to Gulp's events. That would be why its not 'automatically' stopping, there is a closeServer call.

For now i would suggest adding a handler yourself... Should be something much like this (based on @dylanspurgin's code in his comment):

gulp.task('connect', ['browsersync'], function () {
    connect.server({ base: config.wordpress.dest, port: 8001, debug: true, open: false}, function() {
    	gulp.on('stop', function _gulp_php_stopper() {
    		connect.closeServer();
    	});
    });
});

I will however add this to my TODO list.

grmartin avatar May 20 '17 01:05 grmartin

@micahblu, I can add this but I'd like to make it so it can be opted out from via a configure parameter... any issues with that conceptually?

grmartin avatar Jun 25 '17 01:06 grmartin

Not at all, let's go for it

micahblu avatar Jun 27 '17 16:06 micahblu

So, Gulp 3 uses orchestrator. Presently our library doesn't implement any binding to Gulp's events. That would be why its not 'automatically' stopping, there is a closeServer call.

For now i would suggest adding a handler yourself... Should be something much like this (based on @dylanspurgin's code in his comment):

gulp.task('connect', ['browsersync'], function () {
   connect.server({ base: config.wordpress.dest, port: 8001, debug: true, open: false}, function() {
   	gulp.on('stop', function _gulp_php_stopper() {
   		connect.closeServer();
   	});
   });
});

I will however add this to my TODO list.

Not sure why, but for me the gulp stop event gets fired way to early. I replaced it with following code and seems to work, even if it also feels hacky.

      process.on('exit', () => {
          console.log('Shutting down php server');
          gulpConnectPhp.closeServer()
      });

Jikstra avatar Apr 16 '18 18:04 Jikstra