如何在Symfony 3.3中加载第三方库

时间:2017-07-21 20:59:17

标签: php symfony

我有一个小的Symfony 3.3项目,并希望使用this库。我已经用composer安装了它,就像它在README.md中所说的那样:

composer require fzaninotto/faker

现在我不知道如何将其包含在我的应用代码中。 它不适用于require_once,但我认为应该有更好的方法,直接包含在命名空间中。所以我可能需要在某处注册它的命名空间,对吧?

我正在使用Symfony 3.3。

1 个答案:

答案 0 :(得分:2)

如果安装了此库,则它将位于您的Vendor目录中。

如果是Bundle:

转到app / AppKernel.php并在registerBundles方法中将其注册为Bundle。 例如:

public function registerBundles()
{
    $bundles = [
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        new Symfony\Bundle\SecurityBundle\SecurityBundle(),
        new Symfony\Bundle\TwigBundle\TwigBundle(),
        new Symfony\Bundle\MonologBundle\MonologBundle(),
        new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
        new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
        new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
        new AppBundle\AppBundle(),        
        new Faker\Bundle\FakerBundle() // Insert this, but make sure the names is correct, this is just an example!
    ];

    if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
        $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
        $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
        $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
        $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
    }

    return $bundles;
}

如果不是Bundle:

您只需use您想要的类,您需要使用它的文件(控制器,服务,存储库......)。 例如:

use Faker\Guesser\Name;