Я хочу использовать php в режиме консоли и создать среду для тестирования моих функций.
Я не хочу, чтобы меня заставляли использовать веб-браузер и создавать новый файл каждый раз, когда я хочу протестировать функцию.
Я хочу получить доступ к функции в консоли, а затем вернуть результат.
Как мне это сделать?
Обновлять:
Возможно, я плохо это объяснил. Я только хочу посмотреть, к какому результату вернется функция.
Возможно, мне нужно изучить модульное тестирование, но на данный момент мне нужна только интерактивная консоль, которая позволяет мне тестировать все функции одну за другой.
В моем случае мне нужно загрузить функции wordpress (я знаю, как это сделать с помощью обычного файла .php, а затем браузера для анализа файла), но я не загружаю, если это возможно сделать с помощью php из командной строки.






Вы захотите прочитать «Модульное тестирование» в общем смысле, а затем попробовать применить их к PHP.
Используемая вами структура (если есть), стиль кода и тесты, которые вы хотите запустить, будут определять точные методы, которые вам нужно использовать. Только сначала усвоив концепцию модульных тестов и внедрив их в свои лучшие практики кодирования, вы сможете добиться прогресса в этом отношении.
Как насчет:
php -a
И если вы скомпилируете php с поддержкой readline, он будет более интересным.
Я думаю, вы уточнить, какие именно функции. Wordpress не предоставляет ничего подобного из коробки, как и большинство приложений PHP.
Я также думаю, что вы вызываете здесь проблемы, когда такие приложения не разрабатываются для таких сред.
Вот пример попытки вызвать "current_time ()" из functions.php и попытки, которые мне пришлось сделать, чтобы понять, что это не сработает таким образом:
php -r 'require "functions.php"; var_dump(current_time("mysql"));'
дает
Fatal error: Call to undefined function apply_filters() in functions.php on line 346
Пытающийся
php -r 'require "functions.php"; require "plugin.php"; var_dump(current_time("mysql"));'
дает
Fatal error: Call to undefined function wp_cache_get() in functions.php on line 351
Пытающийся
php -r 'require "functions.php"; require "plugin.php"; require "cache.php"; var_dump(current_time("mysql"));'
дает
Fatal error: Call to a member function get() on a non-object in cache.php on line 93
Глядя на последнюю ошибку в источнике, я вижу
function wp_cache_get($id, $flag = '') {
global $wp_object_cache;
return $wp_object_cache->get($id, $flag);
}
Использование глобальных переменных делает тестирование в других средах PITA, если не невозможным.
Если это не то, что вы пытаетесь сделать, вы должны быть более конкретными / подробными в своем вопросе.
Я использовал phpsh в прошлом и нашел его очень полезным. Как только вы запустите его, вам нужно будет поместить chdir() туда, где находятся ваши файлы, а затем, очевидно, require() любые файлы, содержащие функции, которые вам нужно протестировать. Затем вы можете просто проверить свои вызовы функций, введя их в оболочку, например. var_dump(some_function(1, 2));
Я прочитал ваш вопрос и ваше последующее объяснение, но до сих пор не совсем понимаю, чего вы пытаетесь достичь. Вы хотите запустить оболочку PHP, чтобы убедиться, что функция wordpress возвращает правильное значение?