有很多第三方的类库并没有制作 Composer,而是还以 require 的方式进行加载。对于此类的类库,我们只要小粒度的修改,就可以进行使用。我以极验 geetest 和邮件服务 SendCloud 为例。
在 Laravel 框架中建立存放第三方的 SDK 目录
mkdir app /Libraries
放置 geetest、SendCloud 的 SDK
官方下载后相关 SDK 后,移动到 app/Libraries 目录下:
app/Libraries/sendcloud-php-sdk
app/Libraries/gt3-php-sdk
注意各自 SDK 目录下是否存在 .git 目录,如果存在的话,记得递归删除掉 .git 目录。是 SDK 目录下的 .git 目录,千万不要删除错。
修改 composer.json 文件
...
"autoload" : {
"classmap" : [
"database/seeds" ,
"database/factories" ,
"app/Libraries/sendcloud-php-sdk/lib" ,
"app/Libraries/gt3-php-sdk"
],
"psr-4" : {
"App\\" : "app/"
}
},
...
在 autoload -> classmap 下,增加了 app/Libraries/sendcloud-php-sdk/lib、app/Libraries/gt3-php-sdk。
执行 composer 命令
Laravel 项目中执行:
composer dump-autoload
这样就完成了。
关于使用
例如在 Laravel 控制器中进行使用
$objSendCloud = new \SendCloud(API_USER, API_KEY[, VERSION]);
$objGeetestLib = new \GeetestLib(CAPTCHA_ID, PRIVATE_KEY);
好了,调用无误。完成!
有话要说