2017-05-23 2 views
0

Wenn ich include eine Datei in PHP fehlschlägt, meldet es.PHP: Überprüfen Sie, ob 'verwenden' eine gültige Klasse

Aber woher weiß ich, dass ich GuzzleHttp\Cookie\CookieJar Class erfolgreich importiere?

Und woher weiß ich, dass es eine gültige Klasse ist?

namespace GuzzleHttp; 

use GuzzleHttp\Cookie\CookieJar; 
use GuzzleHttp\Promise; 
+0

Die Anweisung 'use' lädt die Klassendatei nicht. Sie müssen dies entweder mit "include" oder "require" oder mit einer Autoload-Funktion tun. – raina77ow

+0

Verwenden Sie den Composer Autoloader, einfach – Dale

+0

'class_exists()' löst das automatische Laden einer Klasse aus –

Antwort

0

Heutzutage verwenden die meisten Anwendung Autoload-Funktion von Composer.

können Sie überprüfen, ob eine Klasse über Code existieren:

if (!class_exists(CookieJar::class)) { 
    throw new Exception('class not found'); 
} 

aber class_exists wahrscheinlich mehr nützlich, wenn Sie dynamische Sachen tun.

1

Es ist wichtig zu beachten, dass die use Anweisung NICHT diese Klasse enthalten, daher wäre es unmöglich zu erkennen, ob diese (Anweisung) erfolgreich war.

Wenn Sie jedoch versuchen würden, eine der importierten Klassen instanziieren und der Import fehlgeschlagen wäre, würden Sie einen Fehler erhalten.

Normalerweise verwenden Sie einen Autoloader wie composer, aber Sie können auch selbst einen Autoloader schreiben. Weitere Informationen hierzu finden Sie auf dieser Seite: What is Autoloading; How do you use spl_autoload, __autoload and spl_autoload_register?

Verwandte Themen