Bonjour,
Je le sais que un sujet à été écrit et j'ai essayer de suivre les étape et cakephp ne trouve pas les classe :

use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookSession;

Il me retoune une erreur qui ne trouve pas ces classe.
Pas de problème j'ai demander à cakephp de charger l'autoloader que j'ai généré avec composer.

Je les mis dans mon AppController de mon application pour qui soit accessible partout :

public function beforeFilter(){
        parent::beforeFilter();
         require_once dirname(__DIR__) . '/Vendor/autoload.php';
}

Je pense que ça vient du namespace. Mon dosseir cakephp s'appelle MusicalityMaker

namespace MusicalityMaker\Facebook;

L'erreur est toujours présente.

Tant que j'ai pas réussit à charger les classe de Facebook je suis bloquer et je ne peut pas aller plus loin.
voici le lien du sujet en question :
http://www.grafikart.fr/forum/topics/15143

Les classe de Facebook :
Dans le dossier app/vendor/

Merci.

Tout mes sympatie de ce qui est arriver en France.

4 réponses


Bonjour,
j'ai eu le même problème que toi pour une autre librairie qui utilisait des namespaces.
La solution que j'ai trouvé a été de modifier le fichier bootstrap.php en mettant ceci au tout début du fichier :

// Charger l'autoload de composer.
require APP . 'Vendor/autoload.php';

// Retire et réajoute l'autoloader de CakePHP puisque Composer pense que
// c'est le plus important.
spl_autoload_unregister(array('App', 'load'));
spl_autoload_register(array('App', 'load'), true, true);

spl_autoload_register(function($class) {
    foreach(App::path('Vendor') as $base) {
        $path = $base . str_replace('\\', DS, $class) . '.php';
        if (file_exists($path)) {
            return include $path;
        }
    }
});

Ensuite, tu charge tes classes comme d'habitude.
Par contre, si tu utilise CakePHP 3.0, je n'ai pas de solution directe à te proposer...

Quelle version de cakephp ? tu as fait un composer install ?

lakamark
Auteur

J'utilise la version : 2.6.0 de cakephp

Bonsoir.
Pour CakePHP version 2, je te conseille de regarder ici : Charger des fichiers Vendor.