Можно ли создать собственные команды запуска npm для Laravel? - PullRequest
0 голосов
/ 27 сентября 2018

Laravel имеет следующие встроенные npm run команды (среди прочих):

npm run install
npm run watch

Можно ли создавать собственные npm run команды для запуска пользовательских сценариев PHP?Например, я хочу создать команду с именем npm run csv, которая будет запускать скрипт PHP, который импортирует кучу данных CSV в базу данных.

Спасибо.


Редактировать : После того, как вы задали вопрос и увидели множество ответов, стало совершенно очевидно, что написание команды php artisan, вероятно, является лучшим способом.Поэтому я так и сделаю.

Спасибо всем за ваши ответы.Что касается того, почему я не задавал этот вопрос, это довольно просто: я не знал, что это был лучший подход.Я все еще новичок в Laravel и учусь.Спасибо.

Ответы [ 4 ]

0 голосов
/ 27 сентября 2018

Мне нравится эта сторона Ларавела.Из того, что вы пытаетесь достичь, могу ли я посоветовать пользовательские команды ремесленников?:)

https://laravel.com/docs/5.7/artisan

Рекомендуйте чтение, оно отлично подходит для того, что вы ищете: D

0 голосов
/ 27 сентября 2018

Сначала вы должны написать Artisan Console Command .Тогда вы можете запустить его, используя npm.Но это не рекомендуемый способ.Вы можете выполнить любую команду ремесленника, например:

php artisan inspire

Если вы хотите запустить ее с npm, просто добавьте эту команду в сценарий package.json.Например:

{
   "scripts": {
       "inspire": "php artisan inspire"
   }
}

Затем выполните команду следующим образом:

npm run inspire
0 голосов
/ 27 сентября 2018

Создание собственной команды ремесленника должно быть чище.

См. https://laravel.com/docs/5.7/artisan#writing-commands

Затем поместите свой код импорта csv в метод handle ().

Youпросто нужно будет запустить: php artisan import-csv или что-то вроде

0 голосов
/ 27 сентября 2018

Нет необходимости использовать 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 и бэк-энда.Попробуйте!

...