Мой пользовательский класс из моей личной библиотеки не распознан - PullRequest
0 голосов
/ 16 января 2019

У меня есть личная библиотека под названием "CSVBuilder" в проекте Symfony. Посмотрим, как это у меня в проекте.

  • MyProject
    • производитель
      • 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' не найден

Любое предложение, пожалуйста? :)

...