Ich habe die folgende benutzerdefinierte Klasse erstellt, die ich in meiner Yii2 Anwendung verwenden mag:Yii2 - Wie lade ich eine benutzerdefinierte Klasse AutoLoad?
@ common/components/helper/CustomDateTime.php
namespace common\components\helper;
class CustomDateTime{function Now() {...}}
Ich mag diese Klasse verwenden dies wie:
public function actionDelete($id)
{
$account = $this->findModel($id);
$account->archived = 1;
$account->archived_date = CustomDateTime::Now();
$account->save();
return $this->redirect(['index']);
}
In meiner @ common/config/bootstrap.php Datei habe ich ein classMap erstellt diese http://www.yiiframework.com/doc-2.0/guide-concept-autoloading.html nach.
Yii::$classMap['CustomDateTime'] = '@common/components/helper/CustomDateTime.php';
Aber ich erhalte die Fehlermeldung: Class 'app \ Controller \ myapp \ CustomDateTime' nicht gefunden
FRAGE: Wie erstelle ich einen classMap so, dass ich nicht zu Verwenden Sie die Verwendung Anweisung am Anfang jedes Controllers auf meine benutzerdefinierte Klasse zugreifen?
Yii 1.1 hatte eine Option in der Konfigurationsdatei, um einen Satz Code zu "importieren", so dass eine Klassendatei beim Aufruf automatisch geladen werden konnte.
SOLUTION
Vielen Dank an @Animir für mich zurück in die ursprüngliche Dokumentation umgeleitet wird. .
Ich fand, dass ich folgendes in meinem @ common/config/bootstrap.php Datei
Yii::$classMap['CustomDateTime'] = '@common/components/helper/CustomDateTime.php';
ABER verwenden - es funktioniert nur, wenn die die CustomDateTime.php Datei nicht deklarierten Namespace .
//namespace common\components\helper;
class CustomDateTime{function Now() {...}}
So sind Sie eigentlich, dass überall mit oder einfach nur faul :)? Verwenden Sie auch eine bessere IDE, da gute IDEs die Datei automatisch enthalten, wenn Sie sie verwenden. –
Ich bin noch neu bei PHP, also verstehe ich nicht ganz, was Lazy Loading bedeutet. Mein Ziel ist es, den oberen Teil jeder PHP-Datei nicht mit einer langen Liste von Benutzungsanweisungen zu belegen. – zDaniels
Ich sprach nicht von faulen Laden Ich habe davon gesprochen, dass du faul bist. Sie können das möglicherweise nicht in jeder Klasse benötigen (es sei denn, was Sie tun wollen, ist unglaublich dumm). Erfahren Sie, wie Namespaces funktionieren oder zur prozeduralen Programmierung gehen. –