使用PHP内置服务器设置Eclipse PDT

3
我是一名新手PHP开发者,目前我使用NetBeans进行工作。不幸的是,NetBeans不是最好的IDE,在我的Mac上速度非常慢。
我想使用Eclipse PDT来开发PHP,因为我更喜欢Eclipse(我来自Java领域)。
但是我无法在Eclipse中设置服务器...所有文档和主题都只显示人们将文件保存在外部服务器的htdocs文件夹中(例如MAMP或XAMPP)。由于我不需要数据库,我只想使用PHP的内置服务器,而不是安装和运行一个重量级应用程序。
我想复制NetBeans中唯一真正好的事情:我只需单击“运行”按钮,就可以立即在浏览器中看到结果。
您如何设置这个?
2个回答

4
即使我有点晚了,但我还是想写下我的解决方案,因为今天我也遇到了同样的问题。
我认为唯一的机会是手动启动PHP内置Web服务器。在所需的根目录中打开终端,并使用以下命令启动Web服务器: php -S localhost:8000
然后,您可以添加一个新的服务器,基本URL为:http://localhost:8000,选择文档根目录,就可以像在Netbeans中一样使用相同的功能了。

谢谢Tobias,我自己找到了这个解决方案。它对资源的消耗较小,但不是那么快速和简单。我知道我想要太多了,但一旦你得到了好东西,少一点就不够了 :) - Zach J
1
是的,这让我终于能够使用内置的composer在eclipse中运行我的codeigniter测试。 - Robert

1

将这个hackety-hack-hack放在一起使其工作(如果您设置了它,甚至可以与xdebug远程调试一起使用!!!)。

更新:这种解决方案的一个注意事项是,当您在Eclipse中终止正在运行的CLI时,它会终止包装器脚本,而不是直接终止php服务器。我添加了一些陷阱和子进程(php服务器)的信号转发。在OSX中工作。

概述:

  • 我正在运行Eclipse Neon
  • 需要在您希望提供服务的文档根目录中创建路由文件(请参见此处:http://php.net/manual/en/features.commandline.webserver.php
  • 创建一个包装bash脚本来调用PHP服务器模式并传入详细信息
  • 设置脚本具有可执行权限
  • 将此bash脚本添加为PHP可执行文件
  • 对于项目,创建一个PHP CLI运行配置,使用此新可执行文件,传递路由器文件。

这里是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 并添加新的服务器: enter image description here 然后就完成了。现在使用包装可执行文件作为“备选PHP”创建PHP CLI运行配置,并指定路由文件的php文件。

enter image description here

然后在命令行中运行!现在,一个PHP服务器应该正在您的本地主机上的8000端口上监听。我怀疑这种方法也适用于HHVM的Proxygen服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接