2013-09-25 2 views
1

Я пытаюсь объединить FOSFacebookBundle и FOSUserBundle. FosUserBundle в одиночку работает отлично, но когда пытаюсь интегрировать facebookbundle с ним им получать маршрут error.I'm с использованием Symfony 2.3.4FOSFacebookBundle Невозможно импортировать маршрутизацию ресурсов

Невозможно импортировать ресурс "@ FOSFacebookBundle/Resources/Config/routing.xml" от "C:/XAMPP/HTDOCS/Symfonia/приложение/Config \ routing.yml". Убедитесь, что пакет «FOSFacebookBundle/Resources/config/routing.xml» правильно зарегистрирован и загружен в класс ядра приложения .

У меня есть 4 пробела в каждом месте маршрутизации .yml. Конечно, я реализовал ее в AppKernel.php

Мой routing.yml:

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

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

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 

Спасибо за любую помощь!

ответ

2

У меня была та же проблема, сейчас.

Похоже, что файл routing.xml не загружен, найдите его в папке \vendor\friendsofsymfony\facebook-bundle\FOS\FacebookBundle\Resources\config вашего приложения.

Если не здесь, то просто скачайте его и скопировать его из хранилища «https://github.com/FriendsOfSymfony/FOSFacebookBundle/blob/master/Resources/config/routing.xml»

routing.xml, как показано ниже:

<?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> 
+0

Да, вот и все! Спасибо! – Kielus

+0

Если вы следовали инструкциям по установке, обратите внимание на то, что в настоящее время он сообщает вам установить '1.2. *' Через Composer, но файл 'routing.xml' был введен * после * этой версии, поэтому он находится только в ведущей ветке - вот почему он не найден – richsage

-1

просто пройти по этой ссылке и проверить маршрутизации и конфигурации файла
FOSFacebookBundle and FOSUserBundle
и Более подробное описание
https://github.com/FriendsOfSymfony/FOSFacebookBundle/tree/2.0#include-the-login-button-in-your-templates

и убедитесь, что с этим
Добавить этот пакет в ядро ​​вашего приложения:

// app/ApplicationKernel.php 
    public function registerBundles() 
    { 
     return array(
      // ... 
      new FOS\FacebookBundle\FOSFacebookBundle(), 
      // ... 
    ); 
    } 
+0

Привет, спасибо, что ответим. Я проверил все вопросы о переполнении, прежде чем публиковать этот вопрос, и я уже реализовал FacebookBundle для AppKernel. Любые другие идеи? – Kielus

1

Это кажется, что последний стабильный релиз согласующего расслоением версии 1.2 . * не включает файл маршрутизации, поэтому, если вы используете композитор, а минимальная стабильность установлена ​​на «стабильная» (как по умолчанию), то просто ссылайтесь на комплект, позволяющий стабильность dev следующим образом:

require { 
    ..., 
    "friendsofsymfony/facebook-bundle": "1.2.*@dev" 
} 

затем просто обновить пакет с помощью композитора:

php composer update friendsofsymfony/facebook-bundle 

Таким образом, проблема не будет повторена для других разработчиков, работающих над проектом, когда они клонировать репозиторий и установить verdors через композитор в своем собственном рабочем каталоге Локара ,

Смежные вопросы