无法使用控制台路由

时间:2018-11-06 09:08:37

标签: php windows console zend-framework2 apigility

到目前为止,我正在开发Apigility应用程序。它与http完美配合,可以用作Web前端应用程序的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无法通过路由进行匹配。”​​。我在Internet上发现了一些示例,这些示例运行诸如“ zf foo bar”之类的命令来以命令行方式运行zend应用程序,但在我的Windows 8.1系统上却没有该命令。我应该安装这个吗? 我正在使用作曲家,并且尝试安装各种软件包,例如zfcampus / zf-console或zendframework / zend-console,但没有任何明显的变化...

我是Apigility的新手,但也有Zend ...所以我的主要问题是我不知道我的问题是来自另一个还是另一个...

在其他地方,我收到的答案是我的路由是错误的,没有真正的intel来说明原因和错误的原因,我在这里添加了一些我尝试过的示例,其中一些摘自可用的文档。

我正在尝试另一个示例:

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代码响应)。也许不是检测到它在控制台中运行?

0 个答案:

没有答案