0

我试图通过本教程使用sfFacebookConnectPlugin构建 FB 应用程序演示,但我遇到了一些小问题,但仍然无法修复它(iam symfony 新手使用 1.4)。我已经通过终端命令安装了这个插件:

  • sfDoctrineGuard插件
  • sfFacebookConnect插件

我在以下位置激活了它们:

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
      if (function_exists('date_default_timezone_set')) {
        date_default_timezone_set(@date_default_timezone_get());
      }
    $this->enablePlugins('sfDoctrinePlugin');
    $this->enablePlugins('sfBehatPlugin');
    $this->enablePlugins('sfDoctrineGuardPlugin');
    $this->enablePlugins('sfFacebookConnectPlugin');
  }
}

但是当我在我的布局中使用时:

<?php use_helper('sfFacebookConnect')?>

我收到此错误:

Unable to load "sfFacebookConnectHelper.php" helper
in: SF_ROOT_DIR/apps/frontend/modules/main/lib/helper,
SF_ROOT_DIR/apps/frontend/lib/helper,
SF_ROOT_DIR/lib/helper,
SF_SYMFONY_LIB_DIR/helper.

虽然助手存在于/home/palmic/www/behattest/plugins/lib/helper/sfFacebookConnectHelper.php

如何告诉 symfony 从那里加载它?

谢谢!

4

2 回答 2

1

作为临时修复(直到编写插件的开发人员移动他们的帮助程序),您可以创建自己的 sfFacebookConnectHelper 文件,SF_ROOT_DIR/lib/helper其中包含以下代码:

<?php
require_once dirname(__FILE__) . '/../../plugins/sfFacebookConnectPlugin/lib/sfFacebookConnectHelper.php';

那条路径可能是错误的,所以只需将它指向他们的助手所在的位置。

然后你仍然可以<?php use_helper('sfFacebookConnect')?>在你的代码中使用,当真正的助手移动到正确的文件夹时,只需删除这个文件。

另外,一个小提示。$this->enablePlugins()您可以这样做,而不是在您的 ProjectConfiguration 文件中重复调用:

$this->enablePlugins(array(
  'sfDoctrinePlugin',
  'sfBehatPlugin',
  'sfDoctrineGuardPlugin',
  'sfFacebookConnectPlugin'
));
于 2010-12-04T21:47:14.303 回答
1

问题出在插件本身,助手和其他 lib 类必须在 plugins/<plugin-name>/lib 目录中,以便插件助手必须在:

plugins/<plugin-name>/lib/helper

不在插件/库中。

于 2010-12-04T11:20:27.963 回答