类似Rails的PHP控制台?

类似Rails的PHP控制台?,php,console,debugging,Php,Console,Debugging,有时候,在本地PHP开发环境中工作,而在服务器上的测试环境中则不工作。调试这个是一场噩梦。如果我有Rails提供的控制台,调试就会简单得多 除了PHP,还有其他类似Rails控制台的东西吗 我应该提到的是,我正在使用一个home brewn PHP应用程序。PHP通过运行PHP-a提供了一个基本的交互式shell。不过,它没有基于框架的控制台的功能 更多信息可以在文档中找到:就像webbiedave提到的php是一种语言,Rails是Ruby的框架。但是,您可以在php脚本中插入“断点”——或者

有时候,在本地PHP开发环境中工作,而在服务器上的测试环境中则不工作。调试这个是一场噩梦。如果我有Rails提供的控制台,调试就会简单得多

除了PHP,还有其他类似Rails控制台的东西吗


我应该提到的是,我正在使用一个home brewn PHP应用程序。

PHP通过运行
PHP-a
提供了一个基本的交互式shell。不过,它没有基于框架的控制台的功能


更多信息可以在文档中找到:

就像webbiedave提到的php是一种语言,Rails是Ruby的框架。但是,您可以在php脚本中插入“断点”——或者从浏览器执行——或者如果安装了php cli,则从cli执行脚本(这与浏览器不完全相同,但也可能提供更多有用的信息)

其他一些技巧-转储每台机器、开发和生产的环境设置(使用一个简单的脚本

<?php phpinfo(); ?>

并比较不同之处—这可能有助于突出显示环境之间某些部分出现故障的原因


最后,您可以使用php交互运行php—这与使用irb和ruby非常相似,但在这种情况下可能没有那么大帮助。

您可以使用php cli的
-d
-a
标志来滚动您自己的应用程序控制台。它类似于:

php -d auto_prepend_file=init.php -a
您的
init.php
将是引导您的应用程序代码的任何文件。例如,对于WordPress,这将是wp-load.php


php-a
不是很有用

我建议您编写一个如下的小脚本,并将其放入/usr/bin

import readline
from subprocess import call

pre_lines = """
ini_set("display_errors", 1);
error_reporting(E_ALL);
date_default_timezone_set("GMT");
"""

if __name__ == '__main__':
    try:
        call(["php", "--version"])
        print
        while True:
            user_input = raw_input('php> ')
            if user_input.strip() == "":
                continue
            elif user_input.find("=")>=0 and user_input.find("==")==-1:
                pre_lines += user_input + ";\n"
            elif user_input.find(";")>=0:
                call(["php", "-r", "%s\n%s" % (pre_lines, user_input)])
            else:
                call(["php", "-r", "%s\nvar_export(%s);" % (pre_lines, user_input)])
                print
    except EOFError:
        print "Bye"
    except KeyboardInterrupt:
        print "Bye"
    except OSError:
        print "You either don't have PHP installed, or the PHP binary is not in PATH"

有了上面的内容,您就可以轻松地获得readline支持和检查公式值。

Symfony框架有一个很好的控制台界面。它非常有用。PHP是一种语言。Rails是一个框架。@webbiedave Ruby语言本身有一个控制台:“irb”。Rails控制台就是建立在这个基础上的。我遇到的问题实际上是由于测试数据库中的错误数据,所以查看系统配置并不总是有帮助的。我认为这是最接近我要查找的内容。