Внутри моего контроллера я хочу использовать функцию mpdf
, например.В yii2, как мне автозагрузить мои собственные классы PHP?
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');
}
}
Это не работает, и выдает ошибку:
Class 'app\controllers\mPDF' not found
Что делать, если я хочу автозагрузку классу
(а). Только для этого действия контроллера
(b). Чтобы использовать его везде, просто используя инструкцию use
.
Я знаю, что он должен что-то сделать с namespaces
, но не знаю, как определить пространство имен и где я помещаю эту папку MPDF57
, а затем сделаю ее доступной.
Я также попытался это:
$name = "MPDF57/mpdf.php";
spl_autoload_register(function ($name) {
var_dump($name);
});
Но это не сработало. бросает ту же ошибку, когда я вызываю свой контроллер Action.
Вот объявление пространства имен и use
заявления внутри:
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;
Можете ли вы показать нам верхнюю часть вашего файла с помощью операторов использования и, в конечном итоге, объявления пространства имен? –
Каков путь mpdf.php относительно вашего Yii webroot? – topher
namespace app \ controllers; использовать Yii; использовать приложение \ models \ Regs; use app \ models \ Voters; использовать приложение \ models \ RegsSearch; использовать yii \ web \ Controller; использовать yii \ web \ NotFoundHttpException; использовать yii \ filters \ VerbFilter; использование \ yii \ web \ Response; использовать yii \ helpers \ Html; использовать kartik \ mpdf \ Pdf; –