把这个hackety-hack-hack放在一起来完成这项工作(如果你设置了它,甚至可以与xdebug远程调试一起使用!!!)。
更新:此解决方案的一个警告是,当您在 Eclipse 中终止正在运行的 CLI 时,它会终止包装脚本,而不是直接终止 php 服务器。我已经向子(php 服务器)进程添加了一些信号的捕获和转发。在 OSX 中工作。
概述:
这是 bash 脚本php5.6-server
:
#!/bin/bash
_sigterm() {
echo "Caught SIGTERM signal!"
kill -2 "$child"
}
_sigint() {
echo "Caught SIGINT signal!"
kill -14 "$child"
}
if [ $1 = "-v" ]; then
#This is needed for when eclipse trys to detect php version
/path/to/php -v
else
trap _sigterm SIGTERM
trap _sigint SIGINT
# This is why your router file needs to be in the doc root
ROUTER=${@: -1}
DIR=$(dirname $ROUTER)
/path/to/php -S localhost:8000 -t $DIR $ROUTER
child=$!
wait "$child"
fi
这是一个简单的router.php
让它工作:
<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false; // serve the requested resource as-is.
} else {
echo "<p>Welcome to PHP</p>";
}
现在在 Eclipse 中Eclipse->Preferences->PHP->PHP Executables
添加一个新服务器:
应该就是这样。现在创建一个 PHP CLI 运行配置,使用包装器可执行文件作为“备用 PHP”,并为 php 文件指定路由文件:
然后作为 CLI 运行!!!PHP 服务器现在应该正在侦听本地主机上的 8000 端口。我怀疑这种方法也可能适用于 HHVM 的 Proxygen 服务器。