Невозможно использовать консольный маршрут - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю над приложением Apigility, пока все хорошо. Он отлично работает с http, чтобы служить API для веб-интерфейса. Теперь я пытаюсь реализовать запланированные операции cron через консольную маршрутизацию. Но что бы я ни пытался, я не могу заставить его работать ...

Сначала я просто добавил это в конфигурацию моего модуля:

'console' => [
    'router' => [
        'routes' => [
            'test_route' => [
                'options' => [
                    'route'    => '/test',
                    'defaults' => [
                        'controller' => 'mymodule\V1\Console\Test\Controller',
                        'action' => 'test'
                    ],
                ],
            ],
        ],
    ],
],

Затем пытаюсь позвонить с:

php ./public/index.php /test

Результатом было «Базовый путь не предоставлен». Поэтому я добавил это в конфигурацию моего модуля:

'view_manager' => [
       'base_path' => __DIR__ . '/../',
]

Теперь, что бы я ни пытался, я всегда получаю 404 «Запрошенный URL не может быть сопоставлен путем маршрутизации». Я нашел в Интернете примеры запуска команд типа «zf foo bar» для запуска приложения Zend в качестве командной строки, но у меня нет этой команды в моей системе (Windows 8.1). Должен ли я установить это? Я использую composer, и я пытался установить различные пакеты, такие как zfcampus / zf-console или zendframework / zend-console, но без каких-либо заметных изменений ...

Я новичок в Apigility, но и в Zend ... Итак, моя главная проблема, я полагаю, заключается в том, что я понятия не имею, происходит ли моя проблема с одной или другой ...

Как и в каком-то другом месте, я получил ответ, что моя маршрутизация была неправильной без реальной информации о том, почему и как она была неправильной, я добавлю сюда несколько других примеров, которые я пробовал, некоторые из доступных документов.

Я пробую другой пример:

module.config.php

'console' =>[
'router' => [
        'routes' => [
            'console.foo' => [
                'options' => [
                    'route' => 'delete user <userEmail>',
                    'defaults' => [
                        'controller' => 'Application\Controller\Index',
                        'action'     => 'password'
                    ],
                ],
            ],
        ],
    ],
],

тогда я звоню:

php ./public/index.php delete user ti@ad.com

Я все еще получаю ту же ошибку "URL не может быть сопоставлен путем маршрутизации" ....

Прямо сейчас я пытаюсь развернуть приложение на сервере Linux, я думаю, может быть, оно связано с моей машиной Windows?

Я также пробовал эти маршруты:

'console' =>[
    'router' => [
        'routes' => [
            'console.foo' => [
                'options' => [
                    'route' => 'delete user <userEmail>',
                    'defaults' => [
                        'controller' => 'Application\Controller\Index',
                        'action'     => 'password'
                    ],
                ],
            ],
            'console.foo2' => [
                'options' => [
                    'route' => 'test',
                    'defaults' => [
                        'controller' => 'Application\Controller\Index',
                        'action'     => 'password'
                    ],
                ],
            ],
            'console.foo3' => [
                'options' => [
                    'defaults' => [
                        'controller' => 'Application\Controller\Index',
                        'action'     => 'password'
                    ],
                ],
            ],
            'console.foo4' => [
                'route' => 'test',
            ],
            'console.foo5' => [
            ],
            'console.foo6' => [
                'type' => 'catchall'
            ],
        ],
    ],
],

И я попробовал, конечно, другую связанную команду, с параметрами, без ...

php ./public/index.php test
php ./public/index.php
php ./public/index.php delete user test@dom.aine

Независимо от того, что я делаю, я всегда получаю один и тот же ответ "URL не соответствует ни одному маршруту" .... И, очевидно, не имеет отношения к моей машине, то же самое на моем сервере Linux

Просто чтобы подчеркнуть одну вещь, я действительно отображаю 404 в консоли (отображается ответ HTML-кода). Может быть, он не обнаруживает, что работает в консоли ??

...