(Symfony 4)如何实现常量类

时间:2019-01-15 20:42:42

标签: symfony constants

我试图在代码中到处都有常量,所以我不必只粘数字,我知道这是不好的做法。

因此,在我的根文件夹中,放置了一个类常量,如下所示:

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 :(得分:1)

这是cerad的解决方案,不是我的。

我的问题是我的Constants.php位于项目的根文件夹中。

我不得不将Constants.php文件移动到src文件夹中,因此将其放在src的根目录(而不是项目的根目录)中进行了修复。

答案 1 :(得分:0)

您可以尝试将类文件放入“ src / Utilities”,然后symfony会自动加载它。