6

我开始实现 HWIOAuthBundle 并想创建自己的自定义资源所有者。但是我不清楚文件/目录结构。

我需要将文件放在哪里才能利用捆绑包?

4

3 回答 3

4

我覆盖了 HWIOAuthBundle linkedin 资源所有者,因为我需要处理连接异常。您可以使用编译器传递来执行此操作:

namespace UserAccountBundle\DependencyInjection\Compiler;

use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class OverrideServiceCompilerPass implements CompilerPassInterface
{
    public function process(ContainerBuilder $container)
    {
        $definition = $container->getDefinition('hwi_oauth.resource_owner.linkedin');
        $definition->setClass('UserAccountBundle\OAuth\MyLinkedInResourceOwner');
    }
}

然后在你的包中:

namespace UserAccountBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;
use UserAccountBundle\DependencyInjection\Compiler\OverrideServiceCompilerPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class UserAccountBundle extends Bundle
{

    public function build(ContainerBuilder $container)
    {
        parent::build($container);

        $container->addCompilerPass(new OverrideServiceCompilerPass());
    }
}

有关捆绑包覆盖的更多信息:http: //symfony.com/doc/current/cookbook/bundles/override.html

于 2015-04-16T08:32:30.097 回答
0

根据捆绑文档,您可以这样做。

我相信这是使用位于供应商捆绑目录 HWI\Bundle\OAuthBundle\OAuth\ResourceOwner 中的GenericOauth2ResourceOwner类。

于 2013-07-13T21:15:54.530 回答
0

看起来捆绑包不支持自定义资源所有者而不直接编辑捆绑包(这只是乍一看,我从未真正使用过这个捆绑包)。

oauth.xml 文件(https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/config/oauth.xml)链接到每个现有的资源所有者,所以我想你可以看看其中一个这里链接的那些将是一个很好的起点。

于 2013-06-12T08:47:06.967 回答