Ho creato la seguente classe personalizzata che mi piacerebbe utilizzare nella mia richiesta Yii2:Yii2 - Come si carica automaticamente una classe personalizzata?
@ comune/componenti/assistente/CustomDateTime.php
namespace common\components\helper;
class CustomDateTime{function Now() {...}}
voglio usare questa classe in questo modo:
public function actionDelete($id)
{
$account = $this->findModel($id);
$account->archived = 1;
$account->archived_date = CustomDateTime::Now();
$account->save();
return $this->redirect(['index']);
}
Nel mio @ file comune/config/bootstrap.php ho creato un classMap secondo questa http://www.yiiframework.com/doc-2.0/guide-concept-autoloading.html.
Yii::$classMap['CustomDateTime'] = '@common/components/helper/CustomDateTime.php';
Ma sto ottenendo l'errore: Class 'app \ controller \ myapp \ CustomDateTime' non trovato
DOMANDA: Come faccio a creare un classMap in modo che io non devo utilizzare l'istruzione all'inizio di ogni controller per accedere alla mia classe personalizzata?
Yii 1.1 utilizzato per avere un'opzione nel file di configurazione per "importare" un set di codice in modo che un file di classe possa essere caricato automaticamente quando è stato chiamato.
SOLUZIONE
Molte grazie a @Animir per me reindirizzare indietro alla documentazione originale. http://www.yiiframework.com/doc-2.0/guide-concept-autoloading.html.
ho trovato che posso utilizzare il seguente nel mio @ comune/config/bootstrap.php file di
Yii::$classMap['CustomDateTime'] = '@common/components/helper/CustomDateTime.php';
MA - funziona solo quando il file del CustomDateTime.php non ha un namespace dichiarato .
//namespace common\components\helper;
class CustomDateTime{function Now() {...}}
Quindi stai effettivamente utilizzando che ovunque o semplicemente pigri :)? Usa anche un IDE migliore perché i buoni IDE includeranno automaticamente il file quando lo utilizzi. –
Sono ancora nuovo su php, quindi non capisco appieno il significato di caricamento pigro. Il mio obiettivo è non ingombrare la parte superiore di ogni file php con una lunga lista di istruzioni d'uso. – zDaniels
Non stavo parlando di carico pigro, stavo parlando di te che sei pigro. Non puoi averne bisogno in ogni classe (a meno che quello che vuoi fare sia incredibilmente stupido). Scopri come funzionano gli spazi dei nomi o vai alla programmazione procedurale. –