在yii2中,如何自动加载自己的PHP类?

在yii2中,如何自动加载自己的PHP类?,php,yii2,Php,Yii2,在我的控制器内,我想要一个使用mpdf的函数,例如 public function actionPdf(){ include("MPDF57/mpdf.php"); $mpdf=new mPDF('c'); $mpdf->SetDisplayMode('fullpage'); $mpdf->WriteHTML("<h1>Hello World!</h1>"); $mpdf->Output('filename.p

在我的控制器内,我想要一个使用mpdf的函数,例如

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');

    }

}
但这也不起作用。调用控制器操作时引发相同的错误

以下是命名空间声明和
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;
您只需使用以下软件包:

  • 使用composer进行安装:

    编写器要求“mpdf/mpdf”“>=6.0.0”

  • 像这样使用它:

    $mpdf=new\mpdf()


  • 或者您可以使用像这样的Yi2扩展:

    我在以前的一个项目中遇到过这样的问题。我不擅长PHP或Yii2,所以请按照我的指南操作,风险自负:)

    当您添加
    use path\to\ExternalLibrary
    时,意味着该接口可以在当前类(例如CurrentController.php)中使用

    这意味着您的应用程序知道如何将您的路径带到它的阶段

    例如,
    use common\models\Post
    允许您直接使用
    Post
    类,因为
    $posts=new Post

    所以,如果您的库只包含一个文件,那么put就是一些“规范”路径。例如,到
    common\models\
    。因此,您可以像使用任何其他模型接口一样使用它

    但为了您的项目,请将其放在供应商文件夹中。然后使用composer安装随机库。并观察修改了哪些文件(一般为1-3)。还应尝试理解修改逻辑。当你确定你已经掌握了一切,复制并粘贴这些部分,并更改你的库的路径、名称等

    我认为,最好的方法是使您的库PSR-4兼容,并将其作为PHP包提供。因此,其他人也可以从你的工作中受益

    有很多关于制作php软件包的指南


    如果您打算成为一名优秀的PHP开发人员,我建议您查阅Josh Lockhart的《现代PHP:新特性和良好实践》一书(免费PDF可用:)。这将帮助您理解OO PHP的基本原理,包括名称空间、接口等。因此,您将能够以现代方式处理此类问题

    Yii已经有了自动加载器,你不需要任何东西来加载你的类。 只要用正确的名称空间创建类,它就会被加载到您只使用它的地方


    Namspace应该表示PHP文件的实际路径。PHP文件名和类名应该相同。

    您能告诉我们您的文件的顶部,以及使用语句和名称空间声明吗?mpdf.PHP相对于您的Yii webroot的路径是什么?名称空间应用程序\控制器;使用Yii;使用app\models\Regs;使用应用程序\模型\投票者;使用app\models\RegsSearch;使用yii\web\Controller;使用yii\web\NotFoundHttpException;使用yii\filters\VerbFilter;使用\yii\web\Response;使用yii\helpers\Html;使用kartik\mpdf\Pdf;由于您使用的是kartik mpdf扩展,因此无需自行安装mpdf。。。在提出此类问题之前,您应该先了解php名称空间的基础知识:我想要一个加载我自己的类的解决方案。mpdf只是一个例子,我的问题是“在yii2中,如何自动加载自己的PHP类?”。现在编辑你的答案如果你能回答我的问题,我将删除否决票、否决票并接受它!不要把两个不同的问题混为一谈。我不会再回答你的问题,或者可能是在你学习了php编程的基础知识之后……我还是新手,还在学习,StackOverflow对我来说是一个很好的资源,你也是,但是告诉我我的问题是如何无效的,我已经做了适当的研究,我阅读了文档,但无法理解,这就是为什么要花几个小时在这个问题上,写评论等等。这就是我再次要求回答的唯一原因。我知道如何定义名称空间。但我不知道如何包含该名称空间下的所有文件。现在不要指望我仅仅为了这个就翻阅10页长的文档。那样我就永远不会成为程序员了
    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;