Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
подходит и для ларавела
/app/Console/Commands/MyCommand
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class MyCommand extends Command
{
protected $name = 'mycommand:hello-world';
protected $description = 'Приветствет вас';
public function fire()
{
$this->info( 'Hello World Started' );
// все аргументы...
$arguments = $this->argument();
// все опции...
$options = $this->option();
// output all
dd($arguments, $options);
}
// ОБЪЯВЛЯЕМ АРГУМЕНТЫ, иначе пошлёт при указании неизвестного аргумента
// array($name, $mode, $description, $defaultValue)
protected function getArguments()
{
return [
[ 'myArgument', InputArgument::OPTIONAL, 'myArgument', null ],
];
}
// ОБЪЯВЛЯЕМ ОПЦИИ, иначе пошлёт при указании неизвестной опции
// array($name, $shortcut, $mode, $description, $defaultValue)
protected function getOptions()
{
return [
[ 'myOption', null, InputOption::VALUE_OPTIONAL, 'myOption definition', null ],
];
}
// подробно тут http://laravel.com/docs/5.1/artisan
}
/app/Console/Kernel.php
<?php namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Laravel\Lumen\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected $commands = [
\App\Console\Commands\MyCommand::class,
];
// если требуется работать от крона
protected function schedule(Schedule $schedule)
{
$schedule->command('mycommand:hello-world myArgument --myOption="bla-bla-bla"')
->withoutOverlapping() // не запускать задачу если ещё работает предыдущая
->appendOutputTo(storage_path().'/logs/mycommand_myArgument_'.$mon.'.log')
->cron('*/20 * * * *') // каждые 20 минут
// ->everyFiveMinutes()
;
}
}
работу команды можно проверить следующими путями:
аргумент+опция
php artisan mycommand:hello-world myArgument --myOption="bla-bla-bla"
output:
Hello World Started
array:2 [
"command" => "mycommand:hello-world"
"myArgument" => "myArgument"
]
array:9 [
"myOption" => "bla-bla-bla"
"help" => false
"quiet" => false
"verbose" => false
"version" => false
"ansi" => false
"no-ansi" => false
"no-interaction" => false
"env" => null
]
только аргумент
php artisan mycommand:hello-world myArgument
output:
Hello World Started
array:2 [
"command" => "mycommand:hello-world"
"myArgument" => "myArgument"
]
array:9 [
"myOption" => null
"help" => false
"quiet" => false
"verbose" => false
"version" => false
"ansi" => false
"no-ansi" => false
"no-interaction" => false
"env" => null
]
только опция
php artisan mycommand:hello-world --myOption="bla-bla-bla"
output:
Hello World Started
array:2 [
"command" => "mycommand:hello-world"
"myArgument" => null
]
array:9 [
"myOption" => "bla-bla-bla"
"help" => false
"quiet" => false
"verbose" => false
"version" => false
"ansi" => false
"no-ansi" => false
"no-interaction" => false
"env" => null
]
Не в сети
Страницы 1