如何在CakePHP 3x中导入供应商文件

G.J*_*G.J 15 cakephp vendor cakephp-3.0

我正在使用最近推出的CakePHP 3(beta 2)版本.我需要使用PHP SDK集成Facebook登录,我不清楚在此版本中导入供应商文件.
在CakePHP 2x中,我曾经使用过

App::import('Vendor', 'Facebook', array('file' => 'Facebook' . DS . 'src'. DS. 'facebook.php'));
Run Code Online (Sandbox Code Playgroud)

所以我需要在CakePHP 3x中重现相同的内容(我不使用作曲家).
有什么参考吗?

Aym*_*air 21

如果作曲家不是一个选项,你将不得不自己加载它.您始终可以使用非常基本的require方法并自己创建供应商类的新实例.参考:http://book.cakephp.org/3.0/en/core-libraries/app.html#loading-vendor-files

使用:

 //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();
Run Code Online (Sandbox Code Playgroud)

  • APP提供cakephp3的src文件夹的路径.并且'vendor'不再是'src'文件夹的子文件夹.所以require_once在你的代码中不起作用. (2认同)

Das*_*ath 19

在cakephp3中,要添加新的供应商库,您可以按照以下步骤操作:

  1. 放置库文件夹 your_project/vendor/
  2. 包括库文件使用require_once(ROOT . DS . 'vendor' . DS . "my_library_folder" . DS . "my_library_base_class.php") ,这包括我们代码中的库代码文件.
  3. 在控制器顶部包含类名称,如:

namespace App\Controller; use MyLibraryBaseClass; ,

这将导入要使用的命名空间中的库代码文件.

  1. 创建加载类的对象为

    $my_obj= new MyLibraryBaseClass();