2010-12-03 7 views
0

en essayant de construire une démo d'application FB avec sfFacebookConnectPlugin par this tutorial et j'ai un problème trivial, mais je n'arrive toujours pas à le résoudre (iam symfony novice en utilisant 1.4). J'ai installé ce plug-ins par les commandes du terminal:Impossible de charger l'assistant "sfFacebookConnectHelper.php"

  • sfDoctrineGuardPlugin
  • sfFacebookConnectPlugin

Je les ai activé dans:

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'); 
    } 
} 

Mais quand iam en utilisant dans ma mise en page:

<?php use_helper('sfFacebookConnect')?> 

Im obtenir cette erreur:

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. 

alors que l'assistant est présent dans /home/palmic/www/behattest/plugins/lib/helper/sfFacebookConnectHelper.php

Comment dire Symfony charger à partir de là?

Merci!

Répondre

1

En tant que solution temporaire (jusqu'à ce que les développeurs qui a écrit le plugin déplacer leur aide), vous pouvez créer votre propre fichier sfFacebookConnectHelper dans SF_ROOT_DIR/lib/helper qui contient le code suivant:

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

Ce chemin peut-être tort, donc il suffit de pointer vers où leur aide est.

Ensuite, vous pouvez toujours utiliser <?php use_helper('sfFacebookConnect')?> dans votre code, et lorsque le vrai assistant est déplacé vers le bon dossier, il suffit de supprimer ce fichier.

Aussi, un petit conseil. Au lieu d'appeler $this->enablePlugins() à plusieurs reprises dans votre fichier ProjectConfiguration, vous pouvez le faire:

$this->enablePlugins(array(
    'sfDoctrinePlugin', 
    'sfBehatPlugin', 
    'sfDoctrineGuardPlugin', 
    'sfFacebookConnectPlugin' 
)); 
1

Le problème était dans le plugin lui-même, les aides et les autres classes lib doit être dans les plugins/< plugin-nom répertoire >/lib pour que plug-in des aides doit être:

plugins/<plugin-name>/lib/helper 

pas dans les plugins/lib.

Questions connexes