(Symfony 4) Как реализовать класс констант - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь иметь константы везде в своем коде, поэтому мне не нужно просто вставлять числа, я знаю, что это плохая практика.

Итак, в моей корневой папке я поместил константы класса, например:

namespace App;

class Constants{

    public const FREE_TIER = 0;

}

Так что я включаю "use App \ Constants;" в моем классе репозитория.

Вот функция, в которой я пытаюсь получить доступ к своему классу констант:

use App\Constants; /* earlier on */ 

/**
 * @param User $user
 * @return array
 */
public function countFreeTiers() : array
{
    $qb = $this->createQueryBuilder('t');
    $qb->select('COUNT(t.tierNumber)')
       ->where('t.tierNumber = :freeTier')
       ->groupBy('t.tierNumber')
       ->orderBy('t.tierNumber', 'ASC')
        ->setParameter('freeTier', Constants::FREE_TIER /* error here */)
       ->setParameter('true', true);

    $query = $qb->getQuery();
    return $query->getResult();
}

Это ошибка, которую я получаю:

Attempted to load class "Constants" from namespace "App".
Did you forget a "use" statement for another namespace?

Разве мне не разрешено просто использовать пространство имен "App"?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Вы можете попробовать поместить файл класса в 'src / Utilities', и Symfony автоматически загрузит его.

0 голосов
/ 16 января 2019

Это решение cerad, а не мое.

Моя проблема заключалась в том, что мой Constants.php находился в корневой папке проекта.

Мне пришлось переместить файл Constants.php в папку src, чтобы поместить его в корень src (в отличие от корня проекта), чтобы исправить это.

...