Создание тестовой среды с помощью php cli

Я хочу использовать php в режиме консоли и создать среду для тестирования моих функций.

Я не хочу, чтобы меня заставляли использовать веб-браузер и создавать новый файл каждый раз, когда я хочу протестировать функцию.

Я хочу получить доступ к функции в консоли, а затем вернуть результат.

Как мне это сделать?

Обновлять:

Возможно, я плохо это объяснил. Я только хочу посмотреть, к какому результату вернется функция.

Возможно, мне нужно изучить модульное тестирование, но на данный момент мне нужна только интерактивная консоль, которая позволяет мне тестировать все функции одну за другой.

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

Я прочитал ваш вопрос и ваше последующее объяснение, но до сих пор не совсем понимаю, чего вы пытаетесь достичь. Вы хотите запустить оболочку PHP, чтобы убедиться, что функция wordpress возвращает правильное значение?

mark 30.12.2008 13:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
852
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы захотите прочитать «Модульное тестирование» в общем смысле, а затем попробовать применить их к 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));

Другие вопросы по теме