首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOSFacebookBundle无法导入资源路由

FOSFacebookBundle无法导入资源路由
EN

Stack Overflow用户
提问于 2013-09-25 07:28:09
回答 3查看 2.2K关注 0票数 1

我正在尝试合并FOSFacebookBundle和FOSUserBundle。FosUserBundle一个人正在完美地工作,但是当我尝试与他集成facebookbundle时,我犯了错误,我正在使用Symfony 2.3.4。

无法从"@FOSFacebookBundle/Resources/config/routing.xml“导入资源"C:/xampp/htdocs/Symfonia/app/config\routing.yml".确保"FOSFacebookBundle/Resources/config/routing.xml“包正确注册并加载到应用程序内核类中。

我在routing.yml的每个地方都有4个空格。当然,我是用AppKernel.php实现的。

My routing.yml:

代码语言:javascript
复制
fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
    prefix: /profile

fos_user_register:
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
    prefix: /register

fos_user_resetting:
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
    prefix: /resetting

fos_user_change_password:
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
    prefix: /profile
_welcome:
    pattern:  /
    defaults: { _controller: AcmeUserBundle:Welcome:index }

_security_check:
    pattern:  /login_fb_check
_security_logout:
    pattern:  /logout
fos_facebook_channel:
    resource: "@FOSFacebookBundle/Resources/config/routing.xml"

Config.yml

代码语言:javascript
复制
imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
services:
    my.facebook.user:
        class: Acme\UserBundle\Security\User\Provider\FacebookProvider
        arguments:
            facebook: "@fos_facebook.api"
            userManager: "@fos_user.user_manager"
            validator: "@validator"
framework:
    #esi:             ~
    translator:      { fallback: %locale% }
    secret:          %secret%
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~
    csrf_protection: ~
    validation:      { enable_annotations: true }
    templating:
        engines: ['twig']
        #assets_version: SomeVersionScheme
    default_locale:  "%locale%"
    trusted_proxies: ~
    session:         ~
    fragments:       ~
    http_method_override: true

# Twig Configuration
twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%

# Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    bundles:        [ ]
    #java: /usr/bin/java
    filters:
        cssrewrite: ~
        #closure:
        #    jar: %kernel.root_dir%/Resources/java/compiler.jar
        #yui_css:
        #    jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        # if using pdo_sqlite as your database driver, add the path in parameters.yml
        # e.g. database_path: %kernel.root_dir%/data/data.db3
        # path:     %database_path%

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true


# Swiftmailer Configuration
swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    username:  %mailer_user%
    password:  %mailer_password%
    spool:     { type: memory }

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Acme\UserBundle\Entity\User
fos_facebook:
  alias:  facebook
  app_id: 123456879
  secret: s3cr3t
  cookie: true
  permissions: [email, user_birthday, user_location]

和我的security.yml

代码语言:javascript
复制
security:
    providers:
        chain_provider:
            chain:
                providers: [fos_user_bundle, my_fos_facebook_provider]
        fos_user_bundle:
            id: fos_user.user_provider.username
        my_fos_facebook_provider:
            id: my.facebook.user   
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: chain_provider
                csrf_provider: form.csrf_provider
            fos_facebook:
                app_url: "http://apps.facebook.com/appName/"
                server_url: "http://localhost/facebookApp/"
                login_path: /login
                check_path: /login_fb_check
                default_target_path: /
                provider: chain_provider  
            logout: true              
            anonymous: true

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }
        - { path: ^/facebook/,           role: [ROLE_FACEBOOK] }
        - { path: ^/.*,                  role: [IS_AUTHENTICATED_ANONYMOUSLY] }


    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-25 12:51:35

我也有同样的问题,刚刚解决了。

似乎没有下载routing.xml文件,在应用程序的文件夹\vendor\friendsofsymfony\facebook-bundle\FOS\FacebookBundle\Resources\config中搜索它。

如果不在这里,那么只需下载并从存储库"https://github.com/FriendsOfSymfony/FOSFacebookBundle/blob/master/Resources/config/routing.xml“复制它。

routing.xml如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>

<routes xmlns="http://symfony.com/schema/routing"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">

    <route id="fos_facebook_channel" pattern="/channel.html">
        <default key="_controller">FOSFacebookBundle:Facebook:channel</default>
        <requirement key="_method">GET</requirement>
    </route>

</routes>
票数 2
EN

Stack Overflow用户

发布于 2013-10-13 23:59:55

看起来,捆绑包匹配版本1.2.*的最新稳定版本不包括路由文件,因此如果您使用的是composer,并且最小的稳定性设置为“稳定”(默认情况下是这样),那么只需引用该包,允许这样的开发稳定性:

代码语言:javascript
复制
require {
    ...,
    "friendsofsymfony/facebook-bundle": "1.2.*@dev"
}

然后使用composer更新包:

代码语言:javascript
复制
php composer update friendsofsymfony/facebook-bundle

这样,当其他开发人员克隆回购程序并通过composer在自己的locar工作目录中安装版本时,问题不会被复制到相同项目的其他开发人员身上。

票数 1
EN

Stack Overflow用户

发布于 2013-09-25 09:05:07

只需浏览这个链接并检查路由和配置文件的

FOSFacebookBundle and FOSUserBundle

和更多的描述

https://github.com/FriendsOfSymfony/FOSFacebookBundle/tree/2.0#include-the-login-button-in-your-templates

确保这一点

将这个包添加到应用程序的内核:

代码语言:javascript
复制
 // app/ApplicationKernel.php
  public function registerBundles()
  {
      return array(
          // ...
          new FOS\FacebookBundle\FOSFacebookBundle(),
          // ...
      );
  }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18998761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档