kl3ryk/symfony-facebook-bundle

此组件提供官方Facebook SDK和常用Facebook配置,适用于任何Symfony组件。

1.5.4 2013-09-19 08:31 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:57:36 UTC


README

此组件提供官方Facebook SDK客户端和常用Facebook配置(实现PrependExtensionInterface接口,见:https://symfony.com.cn/doc/current/cookbook/bundles/prepend_extension.html)供任何Symfony组件使用。

Facebook SDK客户端

  • 与Symfony会话存储集成(与使用原生PHP会话的纯客户端不同)
  • 与Symfony记录器集成
  • 内部使用Symfony "请求"对象

使用此组件的组件

如果您使用此组件,请联系我或在您的pull request中更新README。

针对Facebook SDK用户

使用Facebook SDK

# config.yml

facebook:
    application_id: "your_application_id"
    secret: "your_application_secret"
// Controllers/YourSymfonyController.php

class YourSymfonyController extends Controller
{
    function indexAction()
    {
        $readyToUseFacebookSdk = $this->get('facebook');
        // ... done
    }
}

使用扩展的Facebook SDK配置

# config.yml

facebook:
    application_id: "your_application_id"
    secret: "your_application_secret"
    file_upload: true # indicate if your server configuration allows CURL @ file uploads
    permissions: # see: https://developers.facebook.com/docs/reference/login/#permissions
        - publish_actions
        - user_games_activity
        - ... etc
    trust_proxy_headers: true # Facebook SDK now trusts EVERY HTTP_X_FORWARDED_* header

针对Symfony组件开发者

使用Laelaps Bundle自动化您的组件Facebook配置

// Appkernel.php

class AppKernel
{
    public function registerBundles()
    {
        return [
            // ...
            new \Laelaps\Bundle\Facebook\FacebookBundle,
            // ...
        ];
    }
}
# config.yml

facebook:
    application_id: "your_application_id"
    secret: "your_application_secret"
// DependencyInjection/YourExtension.php

use Laelaps\Bundle\Facebook\FacebookExtensionInterface;
use Laelaps\Bundle\Facebook\FacebookExtensionTrait;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;

class YourExtension extends Extension implements FacebookExtensionInterface
{
    use FacebookExtensionTrait;

    public function load(array $configs, ContainerBuilder $container)
    {
        print_r($configs);
        /*
            (
                [application_id] => example_application_id
                [secret] => example_secret
                [file_upload] =>
                [permissions] => Array
                    (
                    )

                [trust_proxy_headers] =>
            )
        */
    }
}

配置前缀

// DependencyInjection/YourExtension.php

use Laelaps\Bundle\Facebook\FacebookExtensionInterface;
use Laelaps\Bundle\Facebook\FacebookExtensionTrait;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;

class YourExtension extends Extension implements FacebookExtensionInterface
{
    use FacebookExtensionTrait;

    public function getFacebookConfigurationPrefix(array $config, ContainerBuilder $container)
    {
        return 'facebook_';
    }

    public function load(array $configs, ContainerBuilder $container)
    {
        print_r($configs[0]);
        /*
            (
                [facebook_application_id] => example_application_id
                [facebook_secret] => example_secret
                [facebook_file_upload] =>
                [facebook_permissions] => Array
                    (
                    )

                [facebook_trust_proxy_headers] =>

            )
        */
    }
}

语义化版本控制

此存储库遵循Semantic Versioning 2.0.0