2017-02-28 127 views
1

,当我尝试运行与Silex的控制台命令我有这样的错误。Silex的命令失败

PHP Error: Class 'Testing\Command\TestingCommand' not found in /var/www/testCmd/app/console on line 9 
PHP Stack trace: 
PHP 1. {main}() /var/www/testCmd/app/console:0 
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "TestingCommand" from namespace "Testing\Command". 
Did you forget a "use" statement for another namespace? in /var/www/testCmd/app/console:9 
Stack trace: 
#0 {main} 
    thrown in /var/www/testCmd/app/console on line 9 

我有app/console.php和app/bootstrap.php文件。控制台加载引导并在控制台文件我有这样一些事情:

#!/usr/bin/env php 
<?php 

set_time_limit(0); 

$app = require_once __DIR__ . '/bootstrap.php'; 

$application = $app['console']; 
$app['console']->add(new \Testing\Command\TestingCommand()); 
$application->run(); 

作曲家文件

{ 
    "name": "testing/Command", 
    "require": { 
     "knplabs/console-service-provider": "^2.0", 
     "silex/silex": "^2.0", 
     "symfony/monolog-bridge": "^3.1", 
     "doctrine/common": "^2.6", 
     "doctrine/dbal": "^2.5" 
    }, 
    "autoload": { 
     "psr-4": { 
      "\\": "src/" 
     } 
    } 
} 

的命令放在src /命令/ TestingCommand.php

我我是Silex的超级新手,我不知道可能导致问题的原因。谢谢

+0

凡本命令类位于后?添加有问题的composer.json的内容。 –

+0

我用作曲文件信息更新了这个问题。谢谢 –

回答

1

自动装弹机无法加载命令类。根据这一类应位于src/Testing/Command/TestingCommand.php composer.json和类名的文件的自动加载部分。所以,你可以在这个位置移动这个文件或设置composer.json另一个搜索目录:

"autoload": { 
    "psr-4": { 
     "Testing\\Command\\": "src/Command/" 
     "\\": "src/" 
    } 
} 

改变composer.json运行composer dump-autoload

https://getcomposer.org/doc/01-basic-usage.md#autoloading

+0

我运行了dump-autoload,我有这个 - >'非空的PSR-4前缀必须以名称空间分隔符结束。顺便说一句:我认为在psr-4的第一行之后有一个“,”。 –

+0

'“测试\\ \\命令”:“SRC /命令/”'我固定我的答案 –

+0

非常感谢你:) –