我正在尝试合并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:
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谢谢你的帮助!
发布于 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如下:
<?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>发布于 2013-10-13 23:59:55
看起来,捆绑包匹配版本1.2.*的最新稳定版本不包括路由文件,因此如果您使用的是composer,并且最小的稳定性设置为“稳定”(默认情况下是这样),那么只需引用该包,允许这样的开发稳定性:
require {
...,
"friendsofsymfony/facebook-bundle": "1.2.*@dev"
}然后使用composer更新包:
php composer update friendsofsymfony/facebook-bundle这样,当其他开发人员克隆回购程序并通过composer在自己的locar工作目录中安装版本时,问题不会被复制到相同项目的其他开发人员身上。
发布于 2013-09-25 09:05:07
只需浏览这个链接并检查路由和配置文件的
FOSFacebookBundle and FOSUserBundle
和更多的描述
确保这一点
将这个包添加到应用程序的内核:
// app/ApplicationKernel.php
public function registerBundles()
{
return array(
// ...
new FOS\FacebookBundle\FOSFacebookBundle(),
// ...
);
}https://stackoverflow.com/questions/18998761
复制相似问题