Rails-подобная консоль для PHP? - PullRequest
4 голосов
/ 26 мая 2010

Время от времени все работает в моей локальной среде разработки PHP, а в моей тестовой среде на моем сервере - нет. Это кошмар, чтобы отладить это. Если бы у меня была консоль, подобная Rails, отладка была бы намного проще.

Есть ли что-нибудь похожее на консоль Rails, кроме PHP?

Следует отметить, что я использую домашнее PHP-приложение.

Ответы [ 4 ]

4 голосов
/ 26 мая 2010

PHP имеет базовую интерактивную оболочку, доступную при запуске php -a. Однако в нем нет наворотов консоли на основе фреймворка.

Более подробную информацию можно найти в документации: http://docs.php.net/commandline.interactive

1 голос
/ 26 мая 2010

Как упоминалось в webbiedave, php - это язык, а Rails - это фреймворк Ruby. Тем не менее, вы можете вставить «точки останова» в ваш php-скрипт - и либо выполнить из браузера - либо, если у вас установлен php-cli, выполнить скрипт из CLI (который не совсем совпадает с браузером, но может предоставить более полезную информацию).

Несколько других советов - сбросьте настройки среды для каждой машины, разработки и производства (с помощью простого скрипта, который имеет

<?php phpinfo(); ?>

И сравните различия - это может помочь выявить причину сбоя определенных частей между средами.

Наконец, вы можете запускать php в интерактивном режиме с помощью php -a так же, как вы можете использовать irb и ruby, хотя это может быть не так полезно в этой ситуации.

0 голосов
/ 09 декабря 2013

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 и сможете легко проверять значения уравнений.

0 голосов
/ 11 октября 2013

Вы можете развернуть собственную консоль приложения с флагами -d и -a для php-cli. Это было бы что-то вроде:

php -d auto_prepend_file=init.php -a

Ваш init.php будет любым файлом, загружающим код вашего приложения. Например. для WordPress это будет wp-load.php.

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

...