@@ -21,11 +21,51 @@ class PhugDevServer
2121
2222 public function __construct ($ server , $ file , $ browserReloadPort )
2323 {
24+ if (ctype_digit (strval ($ file )) && !file_exists ($ file )) {
25+ $ __server = $ server ;
26+ $ server = $ file ;
27+ $ file = $ __server ;
28+ }
29+
2430 $ this ->server = $ server ;
2531 $ this ->file = $ file ;
26- $ this ->browserReloadPort = $ browserReloadPort ;
32+ $ this ->browserReloadPort = intval ($ browserReloadPort );
33+ }
34+
35+ /**
36+ * @return int|string
37+ */
38+ public function getServer ()
39+ {
40+ $ serverPort = intval ($ this ->server );
41+ if ($ serverPort ) {
42+ return "localhost: $ serverPort " ;
43+ }
44+
45+ return $ this ->server ;
2746 }
2847
48+ /**
49+ * @return string
50+ */
51+ public function getFile ()
52+ {
53+ return $ this ->file ;
54+ }
55+
56+ /**
57+ * @return int
58+ */
59+ public function getBrowserReloadPort ()
60+ {
61+ return $ this ->browserReloadPort ;
62+ }
63+
64+ /**
65+ * Start browser-reload and dev-server listening.
66+ *
67+ * @return bool
68+ */
2969 public function listen ()
3070 {
3171 $ browserReloadPort = $ this ->browserReloadPort ;
@@ -35,22 +75,26 @@ public function listen()
3575 }
3676 $ php = PHP_BINARY ;
3777 $ file = escapeshellarg ($ this ->file );
38- $ watcher = realpath (file_exists ('vendor/bin /watcher ' ) ? 'vendor/bin /watcher ' : 'watcher ' );
78+ $ watcher = realpath (file_exists ('vendor/phug /watcher/watcher ' ) ? 'vendor/phug/watcher /watcher ' : 'watcher ' );
3979 if (!$ watcher ) {
4080 throw new \RuntimeException ('No watcher program found in the vendor/bin directory. ' );
4181 }
4282
4383 // @codeCoverageIgnoreStart
4484 if (strtolower (substr (php_uname (), 0 , 3 )) === 'win ' ) {
85+ echo "Opening new window for browser-reload watching on port $ browserReloadPort (or superior if not available). \n" ;
4586 pclose (popen ("start $ php $ watcher --browser-reload= $ browserReloadPort " .
4687 "> watcher-output.log 2> watcher-error.log " , 'r ' ));
88+ echo "Listening $ file on $ server. \n" ;
4789 echo shell_exec ("set BROWSER_RELOAD_PORT= $ browserReloadPort && $ php -S $ server $ file " );
4890
4991 return true ;
5092 }
5193
94+ echo "Browser-reload watching listening on port $ browserReloadPort (or superior if not available). \n" ;
5295 shell_exec ("$ php $ watcher --browser-reload= $ browserReloadPort " .
5396 "> watcher-output.log 2> watcher-error.log & " );
97+ echo "Listening $ file on $ server. \n" ;
5498 echo shell_exec ("BROWSER_RELOAD_PORT= $ browserReloadPort $ php -S $ server $ file " );
5599
56100 return true ;
0 commit comments