Не удалось загрузить помощник "sfFacebookConnectHelper.php" - PullRequest
0 голосов
/ 03 декабря 2010

Я пытаюсь создать демонстрационную версию приложения FB с sfFacebookConnectPlugin с помощью этого урока , и у меня есть тривиальная проблема, но я все еще не могу ее исправить (iam Symfony новичок, использующий 1.4).Я установил эти плагины с помощью команд терминала:

  • sfDoctrineGuardPlugin
  • sfFacebookConnectPlugin

У меня они активированы в:

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, чтобы загрузить его оттуда?

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 декабря 2010

В качестве временного исправления (пока разработчики, написавшие плагин, не перенесут своего помощника), вы можете создать свой собственный файл 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'
));
1 голос
/ 04 декабря 2010

Проблема была в самом плагине, помощники и другие классы lib должны быть в каталоге plugins / / lib, чтобы помощники плагинов были в:

plugins/<plugin-name>/lib/helper

нет в плагинах / lib.

...