Laravel имеет следующие встроенные npm run
команды (среди прочих):
npm run install
npm run watch
Можно ли создать кастом npm run
команды для запуска пользовательских скриптов PHP? Например, я хочу создать команду с именем npm run csv
это запустит скрипт PHP, который импортирует кучу данных CSV в базу данных.
Благодарю.
редактировать: После того, как вы задали вопрос и увидели множество ответов, стало очевидным, что написание php artisan
команда, вероятно, лучший путь. Таким образом, это то, что я буду делать.
Спасибо всем за ваши ответы. Что касается того, почему я не задавал этот вопрос, это довольно просто: я не знал, что это был лучший подход. Я все еще новичок в Laravel и учусь. Благодарю.
Сначала вы должны написать Ремесленная консольная команда. Тогда вы можете запустить его с помощью npm
, Но это не рекомендуемый способ. Вы можете запустить любую команду ремесленника, как:
php artisan inspire
Если вы хотите запустить это с npm
просто добавьте эту команду в package.json
Скрипт Например:
{
"scripts": {
"inspire": "php artisan inspire"}
}
Затем выполните команду следующим образом:
npm run inspire
Это должно быть чище, чтобы создать свою собственную команду ремесленников.
Увидеть https://laravel.com/docs/5.7/artisan#writing-commands
Затем поместите свой код импорта CSV в метод handle ().
Вам просто нужно запустить: php artisan import-csv или что-то вроде
Я люблю эту сторону Ларавела. Из того, что вы пытаетесь достичь, могу ли я посоветовать специальные команды ремесленников? 🙂
https://laravel.com/docs/5.7/artisan
Рекомендую к прочтению, отлично подходит для того, что вы ищете: D
Нет необходимости использовать NPM для вызова PHP! Почему бы просто не создать свой собственный исполняемый файл?
Используя Laravel, есть система команд, так что вы можете сделать свою собственную artisan
команды. Но если вы хотите что-то более простое, вы можете сделать это:
Пример. Я создаю файл в моем проекте под названием bin/do_stuff
#!/usr/bin/env php
<?php
echo "Easy as that!\n";
Затем сделайте его исполняемым:
chmod +x bin/do_stuff
Тогда вы можете запустить его с ./bin/do_stuff
! Совсем не сложно! Теперь вы также можете передавать аргументы так:
./bin/do_stuff--option1=value1 --option2
С или без значений. Для этого добавим следующее:
foreach ($argv as $arg)
{
preg_match('/\-\-(\w*)\=?(.+)?/', $arg, $value);
if ($value && isset($value[1]) && $value[1])
{
$options[$value[1]] = isset($value[2]) ? $value[2] : null;
}
}
Отлично подходит для работы в cron и остальном. Попробуйте!