Doctrine orm 为什么要在ZF2应用程序中执行DoctrineModule Cli步骤';s的命令行请求?
我正在尝试在Cli命名空间下为我的zf2应用程序创建一个控制台感知模块。我刚刚用一个简单的控制器、模块配置文件和module.php创建了模块目录 问题是,当我在命令行上调用“php public/index.php”时,我会在我的应用程序的控制台横幅后得到doctriemodule的默认Cli输出,如下所示:Doctrine orm 为什么要在ZF2应用程序中执行DoctrineModule Cli步骤';s的命令行请求?,doctrine-orm,zend-framework2,command-line-interface,Doctrine Orm,Zend Framework2,Command Line Interface,我正在尝试在Cli命名空间下为我的zf2应用程序创建一个控制台感知模块。我刚刚用一个简单的控制器、模块配置文件和module.php创建了模块目录 问题是,当我在命令行上调用“php public/index.php”时,我会在我的应用程序的控制台横幅后得到doctriemodule的默认Cli输出,如下所示: ➜ myapp git:(master) ✗ php public/index.php --- This is app banner --- --------------------
➜ myapp git:(master) ✗ php public/index.php
--- This is app banner ---
----------------------------------------------
DoctrineModule
----------------------------------------------
DoctrineModule Command Line Interface version 0.8.0
Usage:
[options] command [arguments]
... bla bla ...
module/Cli/config/module.config.php:
return array(
'console' => array(
'router' => array(
'routes' => array(
'testroute' => array(
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Cli\Controller\Index',
'action' => 'index'
)
)
)
)
)
),
);
module/Cli/module.php的内容:
<?php
namespace Cli;
use Zend\ModuleManager\Feature\ConsoleBannerProviderInterface;
use Zend\Console\Adapter\AdapterInterface as Console;
use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
class Module implements AutoloaderProviderInterface, ConsoleBannerProviderInterface
{
public function getConsoleBanner(Console $console){
return "--- This is app banner ---\n";
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src'
)
)
);
}
}
这是因为条令模块的复杂性。当路由错误时,就会发生这种情况。例如,没有匹配的路由、找不到控制器等
顺便说一下
return array(
'console' => array(
'router' => array(
'routes' => array(
'testroute' => array(
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Cli\Controller\Index',
'action' => 'index'
)
)
)
)
)
),
);
这部分看起来不好。虽然web路由具有“/”是可以的,但对于控制台路由则不是。您应该根据重新考虑您的配置。akond,谢谢您的回答。我只是尝试用'route'=>'foo'
更改'route'=>'/'
,并通过php public/index.php foo
调用应用程序(也尝试了不使用foophp public/index.php
),但没有任何更改。“require”部分的composer.json内容是什么?我将尝试重现错误。这里也有同样的问题@foozy,对于描述的错误有什么解决方案吗?我现在也遇到了同样的问题:-/我测试中的问题是:我放弃在“controllers=>invokables”consif数组中使用新控制器更新“module.config.php”