Я видел множество сообщений о запуске php-файлов без расширений в браузере. Мой вопрос: можно ли сделать то же самое при запуске файла в cli? Пример сценария: у меня есть файл с именем Test.php который содержит этот простой код:
class Test
{
public function action()
{
global $argv;
$script = array_shift($argv);
print($argv[0]);
}
}
(new Test)->action();
Теперь на терминале, вместо того, чтобы делать
$ php Test.php -calltoAction
Я хотел бы сделать:
$ php Test -calltoAction
и распечатайте призыв к действию. Как мне это сделать.






Это, безусловно, возможно. PHP CLI не заботится о расширениях файлов.
Попытка передать argv в вашу функцию как глобальную - не лучший вариант. Вместо этого передайте его как аргумент функции.
class Test
{
public function action($args)
{
$script = array_shift($args);
print($args[0]);
}
}
(new Test)->action($argv);
~
Переименуйте Test.php в Test. mv Test.php Test
Хорошо, спасибо .. это сработало .. дополнительный вопрос. Есть ли серьезные последствия для безопасности при исключении расширения файла?
Нет, о чем я могу думать.
Мне это не кажется хорошей практикой. Полезно знать, что файл имеет определенный тип содержимого. В долгосрочной перспективе вы запутаете себя и других, которые должны поддерживать этот код.
нет, я понял, что это не так. Я просто пытался воссоздать ремесленника laravel. Я новичок в написании сценариев cli. Просто хотел понять, насколько это сложно
Я получаю эту ошибку, когда вызываю ее без расширения: Не удалось открыть входной файл: Тест