我安装了Eclipse PDT-all-in-one-win32-2.0.0GA和WampServer 2.0.
我尝试在eclipse中作为PHP脚本运行但我有这个错误:
"当前的调试器没有任何已定义的PHP可执行文件."
我该如何创建这个.exe ??
我一直在使用eclipse-pdt与xdebug和apache一起使用超过一年.事情完美无缺,我可以在eclipse中完成我想要的所有交互式调试(使用我自己的机器作为服务器).
现在我从apache切换到nginx(因此PHP现在不是作为Apache服务而是作为fast-cgi运行)而且我找不到一种方法来配置eclipse与xdebug很好地协同工作.我不确定xdebug或eclipse(或两者)的问题是否确定.
在eclipse配置中,我已经将对PHP配置文件的引用更改为/etc/php5/cli/php.ini.
使用以下php.ini文件
zend_extension=/usr/lib/php5/20060613/xdebug.so
Run Code Online (Sandbox Code Playgroud)
var_dump()我得到它的xdebug版本,而不是普通的PHP版本)...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=...,但程序执行不会在断点处停止如果我使用该文件的其他版本(在切换到nginx之前它是有效的):
zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req
Run Code Online (Sandbox Code Playgroud)
我根本无法访问我网站的任何页面.
PS:我机器上的附加数据: - 操作系统: GNU/Linux - Ubuntu 9.10 64位.- PHP: 5.2.10-2ubuntu6.3,带Suhosin-Patch 0.9.7; Zend Engine v2.2.0,版权所有(c)1998-2009 Zend Technologies with Xdebug v2.0.4 - Eclipse:见截图.

假设我在PHP代码中有一个典型的工厂模式:
abstract class Model
{
function m()
{
}
}
class model_A
{
function a()
{
}
}
class model_B
{
function b()
{
}
}
function modelFactory($name)
{
$className = 'model_' . $name;
$object = new $className();
// ... do some magic stuff ...
return $object;
}
Run Code Online (Sandbox Code Playgroud)
我知道@var和@return phpdoc标签,但在输入之后是否有任何神奇的方法:
$x = modelFactory('A');
Run Code Online (Sandbox Code Playgroud)
Eclipse会知道$ x是model_A的一个实例吗?
我可以在某处定义一个固定的字符串向量,如下所示:
"modelFactory('A')" => "new model_A()"
"modelFactory('B')" => "new model_B()"
Run Code Online (Sandbox Code Playgroud)
在处理代码完成之前,Eclipse要在内存中替换.
我刚刚安装了最新版本的Eclipse Kepler,它是RC3(见http://www.eclipse.org/downloads/index-developer.php).我一直在使用这个"smartyPDT"(在https://code.google.com/p/smartypdt/上找到)插件用于所有以前的版本,但我似乎不能再安装这个插件了.我收到了错误
Cannot complete the install because one or more required items could not be found.
Software being installed: Smarty Feature 0.91.0
(org.eclipse.php.smarty_feature.feature.group 0.91.0)
Missing requirement: Smarty Feature 0.91.0 (org.eclipse.php.smarty_feature.feature.group 0.91.0) requires 'org.eclipse.php 0.0.0' but it could not be found
Run Code Online (Sandbox Code Playgroud)
我尝试使用旧版本的smartyPdt,它是0.9.0,也是0.9.1.任何想法如何解决这个问题或更好的如何让SmartyPDT与开普勒一起工作?
我在代码中使用以下样式的数组初始化:
$a = array(
'one' => 123,
'two' => 456
);
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下PDT/Zend Studio无法正常工作; 按[Return]键后,它将光标置于$ a(在我的示例中)并忽略缩进.如果数组键是数字(至少不是以引号开头),一切正常.
这是它当前的工作原理(| - 是edtitor在按下[Return]后放置插入符号的位置)
$a = array(
'one' => 123,[RETURN]
|
);
Run Code Online (Sandbox Code Playgroud)
这是预期的结果:
$a = array(
'one' => 123,[RETURN]
|
);
Run Code Online (Sandbox Code Playgroud)
那么是否有可能强制编辑遵循我的缩进规则?
我已经为64位Linux安装了Eclipse PDT Helios SR1 GTK(Ubuntu Maverick干净安装).
我添加了Subversive插件以使用Subversion,并安装了SVNKit 1.3.2连接器.我使用的是Sun的java而不是OpenJDK版本.
当我同步的PHP项目,并双击一个PHP文件比较比较基础版本我做了分歧 - 它会打开一个比较文件的窗口,但窗口是空的 - 我看到灰色的背景,如果没有文件打开.
当我打开未设置为PHP文件的文件时,它工作正常.(如果我要一个.module扩展名的文件,并把它定义为在内容类型偏好设置面板的PHP文件,它会严重如上所述采取行动.如果我会删除此定义,它会工作[好像我比较纯文本文件]).
任何人都知道为什么会这样?
如果我错过了任何有助于诊断或解决此问题的重要信息,请知道并且我会添加它.
谢谢.
我在Amazon EC2云中的"Amazon Linux"(Centos派生的)32位实例上运行XAMPP 1.7.3a.我下载/构建/安装了XDEBUG 2.1.0.phpinfo()输出中的相关项如下所示:
Directive Local Value Master Value
xdebug.idekey ECLIPSE_DBGP ECLIPSE_DBGP
xdebug.default_enable On On
xdebug.remote_autostart On On
xdebug.remote_connect_back Off Off
xdebug.remote_cookie_expire_time 3600 3600
xdebug.remote_enable On On
xdebug.remote_handler dbgp dbgp
xdebug.remote_host 127.0.0.1 127.0.0.1
xdebug.remote_mode req req
xdebug.remote_port 9000 9000
xdebug.remote_log /opt/lampp/logs/xdebug_log
/opt/lampp/logs/xdebug_log
Run Code Online (Sandbox Code Playgroud)
我使用PuTTY版本0.60中的SSH客户端从运行XP SP3的Windows笔记本电脑访问Linux机器.另外在笔记本电脑上我已经安装了Eclipse PDT(Helios Service Release 1 Build id:20100917-0705),我想我已经正确配置了使用端口9000进行XDEBUG远程调试.我说我想,因为我'很难弄清楚如何做到这一点,以及如何使用Eclipse PDT.但我确实设法配置并使用端口9000在localhost(127.0.0.1)上使用XAMPP for Windows 1.7.3提供的网页运行的PHP代码的"远程"调试工作.服务器的phpinfo()输出在笔记本电脑,其PDT 是能够调试是与上述相同,除了:
xdebug.idekey my_username no value
xdebug.remote_host localhost localhost
xdebug.remote_log no value no value
Run Code Online (Sandbox Code Playgroud)
我很确定这些差异与问题无关.事实上,xdebug.idekey最初是Linux上的"root novalue",然后我通过编辑php.ini并在启动apache的sudo-ed脚本中设置环境变量DBGP_IDEKEY来更改为ECLIPSE_DBGP,徒劳地希望让事情正常工作.
笔记本电脑和Linux机箱之间有防火墙和NAT路由器.所以我试图通过PuTTY ssh隧道使用端口转发来使Linux XDEBUG与Windows PDT通信.我一直在使用XT转发PuTTY几个月没有任何问题.我在PuTTY中设置了隧道,本地端口9000转发到Linux机箱上的9000端口,Linux机箱上的端口9000转发到127.0.0.1上的端口9000,PuTTY隧道面板显示:
L9000 host...amazonaws.com:9000
R9000 …Run Code Online (Sandbox Code Playgroud) 为什么我在Eclipse中看不到我的PHP文件的TODO?
我在PDT中遇到了这个问题,我只是想把答案放到别人也这样做的情况下.
有没有人知道在编辑CSS文件时哪里可以找到禁用自动插入关闭花括号的首选项?现在输入'div.classname {line-break line-break}'对我来说是第二天性,但是对于最新版本的Eclipse PDT,我总是这样做:
div.classname {
} /* <- extra bracket! Bad! */
Run Code Online (Sandbox Code Playgroud)
}
...因为编辑器会自动为您插入右括号.我似乎无法摆脱这种习惯,坦率地说,我不想摆脱输入语法正确代码的习惯.我已经能够关闭编辑js和php文件的所有打字辅助内容,但似乎没有类似的CSS文件偏好.有没人遇到过它?
提前谢谢了.
我在Windows上安装了Xampp(实际上是xampp和wamp都有,但两者都有相同的问题),并启用了xdebug.我已经安装了包含pdt的最新eclipse for eclipse.断点正常工作但是如果我按f6或f5当前行没有更新,变量就会改变,好像我已经走到下一行,但突出显示的行保持不变.有任何想法吗?
我附上一些截图,以便更容易理解:
断点有效:

我在'Debug'和'Variables'窗口中按f6,lineno和$ a更改:

我再次按f6:

我尝试更新到最新的xdebug,但同样的事情发生了.
eclipse-pdt ×10
php ×8
eclipse ×7
xdebug ×3
factory ×1
fastcgi ×1
scripting ×1
subversive ×1
synchronize ×1
task ×1
todo ×1
zend-studio ×1