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.
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...
Bonsoir.
Pour CakePHP version 2, je te conseille de regarder ici : Charger des fichiers Vendor.