Регистрация команд laravel 4.1.28 не работает - PullRequest
0 голосов
/ 05 июня 2018

В настоящее время я работаю с Laravel версии 4.1.28 и создал команду с командой php artisan: make , которая отлично работает, и создал файл в app / commands / ArchiveMailorder.php :

<?php

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;

class ArchiveMailorder extends Command {

    protected $name = 'archive:mailorder';

    protected $description = 'This is my first command';

    public function __construct()
    {
        parent::__construct();
    }

    public function fire()
    {
      $this->line("Hello world");
    }

    protected function getArguments()
    {
        return array(
            array(),
        );
    }

    protected function getOptions()
    {
        return array(
            array(),
        );
    }
}

Теперь, когда я пытаюсь зарегистрировать эту команду внутри app / start / artisan.php вроде:

    Artisan::add(new ArchiveMailorder());
Or
\Illuminate\Foundation\Artisan::add(new ArchiveMailorder());
Or
\Illuminate\Support\Facades\Artisan::add(new ArchiveMailorder());

, я получаю следующую ошибку:

{"error":{"type":"ErrorException","message":"Missing argument 1 for Symfony\\Component\\Console\\Command\\Command::addArgument()","file":"C:\\xampp\\htdocs\\mocs\\vendor\\symfony\\console\\Symfony\\Component\\Console\\Command\\Command.php","line":362}}

Я перешел по следующим ссылкам для создания и регистрации команды:

Задание Cron с Laravel 4

https://laravel.com/docs/4.2/commands#building-a-command

Но все равно не могу заставить команду работать.Так скажите, пожалуйста, что я делаю не так?И что мне делать, чтобы решить эту проблему?

О, и файл comoser.json выглядит так:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.1.*",
        "mews/purifier": "dev-master",
        "anahkiasen/former": "dev-master",
        "laracasts/utilities": "1.0"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

1 Ответ

0 голосов
/ 05 июня 2018

В laravel 4.1 / 4.2 вы регистрируете команду simple, просто добавляя

Artisan::add(new SomeCommandName());

В вашей команде ваша проблема заключается в этой функции:

  protected function getArguments()
    {
        return array(
            array(),
        );
    }

Removeэта функция, если вы не предоставляете аргументы.Так как вы возвращаете массив.

Если вам не нужны какие-либо из этих функций, вам просто понадобятся эти две функции, чтобы начать, обратитесь к документации по laravel, чтобы узнать что-нибудь еще?:

public function __construct()
{
    parent::__construct();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function fire()
{
  // Do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...