2017-02-28 11 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ファイルを持っています。コンソールは、ブートストラップをロードしていると、コンソールファイルで私のようないくつかのことがあります。コマンドはSRC /コマンド/ TestingCommand.php

Iに位置しています

{ 
    "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/" 
     } 
    } 
} 

#!/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(); 

作曲ファイルをシレックスにとっては初めてのスーパーです。私はこの問題の原因を知ることができません。ありがとうございます

+0

を変更した後?問題のcomposer.jsonのコンテンツを追加します。 –

+0

私は作曲家のファイル情報で質問を更新しました。 –

答えて

1

オートローダはコマンドクラスをロードできません。 composer.jsonのautoloadセクションとこのクラスのクラス名ファイルはsrc/Testing/Command/TestingCommand.phpにあるはずです。だから、この場所にこのファイルを移動したり、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プレフィックスは名前空間のセパレータで終わらなければならない"というものです。 btw:psr-4の最初の行の後に "、"があると思います。 –

+0

'" \\コマンド\\ "をテストする:" src/Command/"'私の答えは固定 –

+0

ありがとうございます:) –

関連する問題