2013-06-12 15 views

Odpowiedz

0

Wygląda na to, że Pakiet nie obsługuje właścicieli zasobów niestandardowych bez bezpośredniej edycji pakietu (jest to na pierwszy rzut oka, nigdy nie używałem tego pakietu).

Plik oauth.xml (https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/config/oauth.xml) łączy się z każdym z istniejących właścicieli zasobów, więc domyślam się, że możesz przyjrzeć się jednemu z tych, które są tutaj połączone, co stanowiłoby dobry punkt wyjścia.

0

Zgodnie z bundle documentation możesz to zrobić.

Wierzę, że używa GenericOauth2ResourceOwner klasy A zlokalizowany w katalogu vendor wiązka HWI \ Bundle \ OAuthBundle \ OAuth \ ResourceOwner.

4

Przekroczono właściciela zasobów połączonych HWIOAuthBundle, ponieważ musiałem obsługiwać wyjątki połączeń. Można użyć przepustkę kompilatora, aby to zrobić:

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'); 
    } 
} 

potem w swoim zestawie:

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()); 
    } 
} 

Więcej na przesłonięcia wiązki: http://symfony.com/doc/current/cookbook/bundles/override.html

+0

mogę potwierdzić, że to działa w ten sposób wielki! – Bruno