Je travaille avec CakePHP 3 (beta 2) version récemment lancée. J'ai besoin d'intégrer Facebook Login à l'aide de PHP SDK et je ne comprends pas bien importer des fichiers de fournisseur dans cette version.
Dans CakePHP 2x, j'avais utilisé
App::import('Vendor', 'Facebook', array('file' => 'Facebook' . DS . 'src'. DS. 'facebook.php'));
J'ai donc besoin de reproduire la même chose dans CakePHP 3x (je n'utilise pas de composeur).
Toute référence pour cela?
Eh bien, vous devrez le charger vous-même si compositeur n'est pas une option. Vous pouvez toujours utiliser la méthode de base require et créer vous-même une nouvelle instance de la classe de fournisseur. Référence: http://book.cakephp.org/3.0/fr/core-libraries/app.html#loading-vendor-files
Utilisation:
//The following line should do the same like App::import() in the older version of cakePHP
require_once(ROOT . 'vendor' . DS . 'Facebook' . DS . 'src' . DS . 'facebook.php');
$facebookApi = new facebook();
la réponse fournie par Ayman B. ne semble pas faire le travail comme prévu dans la question après l'avoir essayé moi-même, pour les raisons suivantes:
Pour corriger la réponse, procédez comme suit:
1 - Définissez dans bootstrap.php une nouvelle constante cakephp telle que: Define ('VENDOR', ROOT. DS. 'Vendor' .DS); comme VENDOR constante est supprimée dans cakephp 3.x, vous pouvez le définir vous-même 2 - Ensuite, vous devez spécifier le nom du fournisseur, le nom du package et le nom de la classe dans une constante du fournisseur telle que: define (' _ ',; et alors vous pouvez faire $ facebookApi = new \\ ();
cela fonctionnera pour vous comme prévu dans la question
Si vous avez des problèmes, essayez de revenir à moi, je vais vous montrer un exemple d'utilisation comme décrit ici ...
J'ai également eu le même problème avec CakePHP 3.0.
Effectuez l'installation en suivant les instructions à l'aide de Composer.
Ensuite, vous devez charger correctement le plug-in dans votre contrôleur avec l'instruction use
. Comme ça:
utilise Ghunti\HighchartsPHP\Highchart;
Cela résoudra le problème d'utilisation du plugin.
Depuis CakePhp 3.x, la norme de code recommandée consiste à utiliser require_once sans les crochets "()".
require_once (ROOT.'Folder'.DIRECTORY_SEPARATOR.'requiredfile.ph ');
devient
require_once ROOT.'Folder'.DIRECTORY_SEPARATOR.'requiredfile.ph ';
https://book.cakephp.org/3.0/en/contributing/cakephp-coding-conventions.html
J'espère que cela aidera quelqu'un dans le futur.