Включить вспомогательный класс в поле зрения - PullRequest
0 голосов
/ 28 мая 2018

Я работаю над требованием, при котором я должен включать все распространенные методы, такие как нумерация страниц и т. Д., Которые использовались в моих представлениях во всех моих представлениях.Для этого я подумал, что вспомогательный файл полезен, и создал вспомогательный файл в каталоге common\helpers\ с именем Common в качестве имени вспомогательного файла.Я сталкиваюсь с трудностями при использовании этого вспомогательного файла в моем файле просмотра.

Я включил этот вспомогательный файл в мое представление как

use common\helpers\Common;

Когда я открываю страницу я получаюошибка как "Class 'common \ helpers \ Common' not found"

Мой вспомогательный файл: Common.php

namespace common\helpers;
class Common
{
  protected $_file;
  protected $_data = array();

  public function __construct($file)
  {
    $this->_file = $file;
  }
  public static function getCommonHtml($id=NULL)
  {
   ----
   ----
  }
  -----
  --- Some other methods---
  -----
}

Я нашел это в Google и получил несколько решений, но они никогдаработал.

1 Ответ

0 голосов
/ 28 мая 2018

Вам необходимо объявить ваше новое пространство имен в вашем composer.json:

"autoload": {
    "psr-4": {
        ...
        "common\\": "common/"
    }
},

и выполнить:

composer dump-autoload

В качестве альтернативы вы можете объявить псевдоним для нового пространства имен,поэтому автозагрузчик Yii справится с этим (как в расширенный шаблон ):

Yii::setAlias('@common', dirname(__DIR__))

Но автозагрузчик Yii будет отброшен в Yii 2.1, поэтому я бы придерживался пути композитора (или сделаю оба- псевдоним может быть полезен не только для автозагрузки).

...