我的私人图书馆中的自定义课程无法识别

时间:2019-01-16 08:27:48

标签: php namespaces composer-php autoload

我在Symfony项目中有一个名为“ CSVBuilder”的私有库。让我们看看它在我的项目中如何。

  • 我的项目
    • 供应商
      • mypackage
        • CsvBuilder.php
        • composer.json

CsvBuilder.php的内容如下:

<?php

namespace MyPackage;


class CSVBuilder
{
// etc..., the behavior of the class doesn't really matter

   public function __construct($fieldSep = "\t", $eol = "\n", $defVal = "", $utfEncode = false)
    {
        $this->defVal = $defVal;
        $this->fieldSep = $fieldSep;
        $this->eol = $eol;
        $this->utf8Encode = $utfEncode;
    }
}

我的私人图书馆的composer.json很短,这里是:

{
    "name": "mypackage",
    "autoload": {
        "psr-4": {
            "mypackage\\": ""
        }
    }
}

注意名称空间。好的。从现在开始没什么特别的。

因此,在另一个文件中,在randon控制器SiteController.php中,我有以下明显的代码:

<?php

namespace app\controllers;

use MyPackage\CSVBuilder as csv;
class SiteController extends Controller
{
    public function actionIndex()
    {
        $builder = new csv(); // this line crashed 
    }

它创建了这个错误:

  

错误   找不到“ MyPackage \ CSVBuilder”类

它看起来像一个名称空间问题,但是我不知道我的代码有什么问题。对我来说,一切听起来还不错。

当然,在SiteController.php中,我尝试将use MyPackage\CSVBuilder as csv;替换为use MyPackage as csv;,但它引发了相同的问题=>

  

错误   找不到“ MyPackage”类

有什么建议吗? :)

0 个答案:

没有答案