In meinem Controller möchte ich eine Funktion verwenden mpdf
z.In yii2, wie kann ich meine eigenen PHP-Klassen automatisch laden?
public function actionPdf(){
include("MPDF57/mpdf.php");
$mpdf=new mPDF('c');
$mpdf->SetDisplayMode('fullpage');
$mpdf->WriteHTML("<h1>Hello World!</h1>");
$mpdf->Output('filename.pdf', 'F');
}
}
Dies funktioniert nicht, und wirft einen Fehler:
Class 'app\controllers\mPDF' not found
Was soll ich tun, wenn ich die Klasse
(a) automatisch zu laden wollen. Nur für diesen Controller Aktion
(b). Um es überall nur mit der use
-Anweisung nutzbar zu machen.
Ich weiß, es muss etwas mit namespaces
tun, aber weiß nicht, wie definiere ich einen Namespace, und wo stelle ich diese MPDF57
Ordner und dann zugänglich machen.
Ich habe auch versucht dies:
$name = "MPDF57/mpdf.php";
spl_autoload_register(function ($name) {
var_dump($name);
});
Aber diese entweder nicht funktioniert hat. löst den gleichen Fehler aus, wenn ich meine Controller-Aktion anrufe. Hier
ist der Namespace-Deklaration und use
Aussagen innen:
namespace app\controllers;
use Yii;
use app\models\Regs;
use app\models\Voters;
use app\models\RegsSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use \yii\web\Response;
use yii\helpers\Html;
use kartik\mpdf\Pdf;
Können Sie uns den Anfang Ihrer Datei zeigen, mit den Use-Anweisungen und schließlich der Namespace-Deklaration? –
Was ist der Pfad von mpdf.php relativ zu deinem Yii Webroot? – topher
Namespace-App \ Controller; Verwendung Yii; Verwenden Sie App \ models \ Regs; Verwenden Sie App \ models \ Wähler; Verwenden Sie App \ models \ RegsSearch; verwenden Sie yii \ web \ Controller; Verwenden Sie yii \ web \ NotFoundHttpException; Verwenden Sie yii \ filters \ VerbFilter; Verwenden Sie \ yii \ web \ Response; Verwenden Sie yii \ helpers \ Html; Verwenden Sie kartik \ mpdf \ Pdf; –