用于PHP的Rails控制台?

时间:2010-05-25 20:01:27

标签: php console debugging

每隔一段时间,事情就会在我的本地PHP开发环境中运行,而在我的服务器上的测试环境中,事情却没有。调试这个是一场噩梦。如果我有一个像Rails提供的控制台,调试会简单得多。

有什么类似Rails控制台但是对于PHP?

我应该提一下,我正在使用home-brewn PHP应用程序。

4 个答案:

答案 0 :(得分:4)

通过运行php -a,PHP可以使用基本的交互式shell。它虽然没有基于框架的控制台的铃声和口哨声。

可以在文档中找到更多信息:http://docs.php.net/commandline.interactive

答案 1 :(得分:1)

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

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

<?php phpinfo(); ?>

并比较差异 - 这可能有助于突出为什么某些部分在环境之间失败。

最后你可以用php -a交互式运行php,就像你可以使用irb和ruby一样,虽然在这种情况下它可能没那么有用。

答案 2 :(得分:0)

您可以使用php-cli的-d-a标记来滚动自己的应用程序控制台。它会是这样的:

php -d auto_prepend_file=init.php -a

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

http://franklinstrube.com/blog/rails-like-console-php/

答案 3 :(得分:0)

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支持并轻松检查方程值。