【问题标题】:Rails-like console for PHP?类似 Rails 的 PHP 控制台?
【发布时间】:2010-05-25 20:01:26
【问题描述】:

每隔一段时间,我的本地 PHP 开发环境中就可以正常工作,而在我的服务器上的测试环境中却不行。调试它是一场噩梦。如果我有 Rails 提供的控制台,调试会简单得多。

除了 PHP 之外,还有什么类似于 Rails 控制台的东西吗?

我应该提到我正在使用自制的 PHP 应用程序。

【问题讨论】:

  • Symfony 框架有一个漂亮的控制台界面。它非常有用。
  • PHP 是一种语言。 Rails 是一个框架。
  • @webbiedave Ruby 语言本身有一个控制台:'irb'。 Rails 控制台只是建立在此之上。

标签: php console debugging


【解决方案1】:

通过运行php -a,PHP 有一个基本的交互式 shell。不过,它没有基于框架的控制台的花里胡哨。

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

【讨论】:

  • 我认为这是最接近我正在寻找的东西。
【解决方案2】:

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

其他一些技巧 - 转储每台机器、开发和生产的环境设置(使用具有

<?php phpinfo(); ?>

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

最后,您可以使用 php 以交互方式运行 php - 就像使用 irb 和 ruby​​ 一样,尽管在这种情况下它可能没有那么有用。

【讨论】:

  • 我遇到的问题实际上是由于测试数据库中的数据不正确,因此查看系统配置并不总是有帮助。
【解决方案3】:

您可以使用 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/

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      相关资源
      最近更新 更多