Содержание статьи

При работе через PHP CLI доступен отдельный набор настроек, включая собственный php.ini. Это даёт возможность указать параметры, влияющие именно на запуск из терминала: объём памяти, путь к модулям, значения переменных окружения. Скрипты могут принимать аргументы, что обеспечивает удобный контроль поведения программ через флаги и параметры.
CLI полезен при написании административных инструментов. Например, можно создавать команды для миграций, сборки проектов, генерации отчётов. За счёт прямого доступа к оболочке разработчик управляет процессом более гибко: вызывает системные утилиты, работает с файлами и каталогами, формирует цепочки команд.
Назначение интерфейса командной строки в PHP
PHP CLI предназначен для запуска скриптов без участия веб-сервера, что позволяет использовать язык как универсальный инструмент для системных задач. Запуск выполняется через бинарный файл php, который принимает путь к скрипту и дополнительные параметры. Это упрощает интеграцию PHP с оболочкой Linux, macOS и Windows.
CLI применяют для формирования отчётов, пакетной обработки данных, запуска миграций и выполнения действий по расписанию через cron или Планировщик задач. Такой подход избавляет от необходимости поднимать отдельный HTTP-контекст и снижает нагрузку на сервер, поскольку выполнение происходит только в консольной среде.
Запуск PHP-скриптов через терминал и параметры запуска

CLI поддерживает флаги, которые меняют поведение интерпретатора без правки php.ini. Это удобно при тестировании, работе с ресурсами и настройке окружения. Параметры передаются после имени бинарного файла или после названия скрипта – в зависимости от их назначения.
| Параметр | Назначение |
|---|---|
| -f file.php | Явный запуск указанного скрипта |
| -d key=value | Установка значения конфигурации на время выполнения |
| -r «код» | Запуск PHP-инструкции без отдельного файла |
| —ini | Отображение активных конфигурационных файлов |
| —version | Показ версии установленного интерпретатора |
Аргументы, передаваемые скрипту, доступны через массив $argv. Это позволяет формировать команды, которые принимают входные данные, работают с флагами, файлами и путями, что упрощает создание самостоятельных инструментов.
Обработка аргументов командной строки в приложениях

Передаваемые аргументы позволяют управлять поведением скриптов без изменения исходного кода. Значения попадают в массивы $argv и $argc, что упрощает разбор параметров и построение гибких консольных утилит.
Для удобства можно применять собственный парсер или использовать стандартные механизмы обработки параметров.
- $argv хранит список аргументов в порядке передачи.
- $argc содержит их количество.
- Флаги можно разделять на короткие (-v) и длинные (—verbose).
Подход к разбору аргументов зависит от сложности команды. В простых сценариях достаточно проверки наличия флагов, в более сложных – привязки значений к ключам.
- Проверка аргументов вручную через операторы in_array() и перебор массива.
- Использование getopt() для структурированного получения флагов и параметров.
- Комбинация позиционных аргументов и именованных ключей для скриптов с несколькими режимами работы.
Такой подход позволяет создавать команды, которые запускаются с разными наборами параметров: указание пути к файлу, выбор режима обработки, включение отладочной информации. Это упрощает настройку приложений и повышает удобство их использования в повседневных задачах.
Настройка php.ini для работы через CLI

CLI использует собственный конфигурационный файл, который может отличаться от настроек веб-окружения. Путь к активному php.ini отображается через команду php —ini, что помогает определить, какой файл обрабатывает интерпретатор при запуске из терминала.
Если CLI-скрипты взаимодействуют с базами данных или подключают внешние модули, желательно задать корректные пути в extension_dir и включить нужные расширения. Это исключает расхождения между браузерным и консольным окружением.
Создание отдельного php.ini для задач автоматизации упрощает поддержку проектов. Такой файл размещают в каталоге, который использует конкретная версия интерпретатора, и выполняют запуск через соответствующий бинарник. Это позволяет настраивать распределение ресурсов и перечень расширений под каждую консольную задачу отдельно.
Использование встроенного веб-сервера PHP из CLI
Встроенный сервер запускается командой php -S localhost:8000 и предназначен для локальной отладки. Он не требует предварительной настройки и использует текущий каталог как корень сайта. Это удобно при проверке маршрутов, обработке форм и тестировании скриптов, которые должны работать через HTTP.
Для корректной отдачи файлов можно указать маршрутный скрипт: php -S localhost:8000 router.php. Такой файл перехватывает запросы и перенаправляет их на нужные обработчики. Это помогает воспроизвести структуру маршрутизации, применяемую в фреймворках.
Если проект использует автоматическую сборку, подключение статических ресурсов или промежуточные скрипты, сервер удобно комбинировать с инструментами командной строки. Запуск через CLI позволяет быстро перезапускать окружение, менять порт или директорию без изменения конфигурационных файлов.
Создание и запуск собственных консольных инструментов на PHP

Консольные инструменты строятся как PHP-скрипты с добавлением shebang строки #!/usr/bin/env php в начале файла, что позволяет запускать их напрямую из терминала. Для обработки аргументов используют $argv и $argc, а при сложных сценариях – функцию getopt(), позволяющую работать с ключами и флагами.
После написания скрипт делают исполняемым с помощью chmod +x tool.php на Linux и macOS. На Windows запускают через php tool.php или настраивают ассоциацию файлов с интерпретатором. Такой подход позволяет интегрировать инструмент в автоматизированные процессы и использовать его как самостоятельную команду.
Вопрос-ответ:
Что такое PHP CLI и чем он отличается от обычного запуска PHP через веб-сервер?
PHP CLI — это режим запуска PHP напрямую из терминала без использования веб-сервера. Основное отличие в том, что скрипты выполняются в консольной среде, имеют доступ к аргументам командной строки и не зависят от HTTP-контекста. Это позволяет использовать PHP для автоматизации задач, пакетной обработки данных и создания служебных утилит.
Какие параметры можно передавать при запуске скриптов через PHP CLI?
При запуске скрипта через CLI можно использовать параметры интерпретатора и аргументы для самого скрипта. Среди полезных флагов: -f для указания файла, -d key=value для временной настройки параметров php.ini, -r для выполнения одиночной команды и —ini для проверки загруженных конфигураций. Скрипт получает аргументы через массив $argv, что позволяет управлять поведением программы.
Как настроить php.ini для работы скриптов через CLI?
CLI использует отдельный php.ini, путь к которому можно узнать командой php —ini. Рекомендуется проверить значения memory_limit, max_execution_time и error_reporting для корректной работы скриптов, особенно при обработке больших данных. При необходимости подключают нужные расширения и корректируют extension_dir, чтобы консольные задачи использовали тот же набор модулей, что и веб-скрипты.
Как создать собственный консольный инструмент на PHP?
Для создания инструмента создают PHP-скрипт с добавлением shebang строки #!/usr/bin/env php в начале файла. Скрипт обрабатывает аргументы через $argv и getopt(), а затем выполняет задачи. На Linux и macOS скрипт делают исполняемым командой chmod +x tool.php и запускают напрямую, на Windows используют php tool.php. Важно разделять логику: разбор аргументов, выполнение задач и вывод сообщений, а ошибки направлять в stderr для удобства диагностики.
