2016-05-11 17 views
0

ich einen Anbieter Bibliothek mit dieser Konfiguration erstellt:Komponist Autoload-Klasse nicht gefunden

"autoload": { 
    "psr-4": { "Company\\PhpUtils\\": "src/" } 
}, 

Verzeichnisstruktur:

php-utils/ 
---src/ 
------JSON/ 
--------Json.php 

Json Klasse:

<?php 

namespace Company\PhpUtils\JSON; 

Jetzt schließe ich es als ein Abhängigkeit:

"company/php-utils": "1.0.0" 

und es in einem symfony Test verwenden:

<?php 

namespace Tests\AppBundle\Controller; 

use Company\PhpUtils\JSON\Json; 

Run Tests:

./vendor/phpunit/phpunit/phpunit ./tests 
PHPUnit 4.8.22 by Sebastian Bergmann and contributors. 

PHP Fatal error: Class 'Company\PhpUtils\JSON\Json' not found in... 

Die Klasse Json statisch ist ... na ja ... folgt Singletonmuster.

So ... Einfache Frage. Was mache ich falsch?

+0

dumme Frage: Haben Sie Komponisten installieren oder zu aktualisieren, nachdem die vorgenommenen Änderungen in composer.json laufen? –

+0

Dumme Antwort. Ich habe es getan und habe auch versucht, den Computer automatisch zu löschen. Ich ändere den Komponisten psr4.php und wenn ich den Eintrag manuell hinzufüge, funktioniert es. Hätte ich das nicht getan, wäre mir dieses Thema nicht aufgegangen. – Serginho

Antwort

0

In Ihrem phpunit Befehl gibt es keine Bootstrap, Wechsel von:

./vendor/phpunit/phpunit/phpunit ./tests 

An:

./vendor/phpunit/phpunit/phpunit ./tests --bootstrap ./vendor/autoload.php 
+0

Wir sprechen über symfony standart proyect. Im Basisordner befindet sich eine phpunit.xml.dist, die app/autoload.php enthält. Und ich sagte: Wenn ich den Eintragsnamensraum in der Datei vendor/composer/psr4.php hinzufüge, funktioniert alles – Serginho