Vendor包
找了很多资料,都没有怎么比较详细的说明vendor中的包怎么用,自己试验总结了一下,在此说明。
模板vendor中自带的包
类似于laravel,composer之类的包,模板已经把Provider,aliases之类的写好了,可以直接用,在此不详说了。
别名设置(aliases)在config/app.php中可以找到
自己用composer安装的包
- 比如在项目中我想用一个封装好的curl类,比如anlutro/curl,那么我们用composer安装好之后,要顺利的用这个类,需要在config/app.php中的aliases数组加上* ‘cURL’ => ‘anlutro\cURL\Laravel\cURL’ *
为什么要这么设置呢,其实涉及到antoload中的psr-4规范,可以看看该例子中的anlutro文件夹中的composer.json
"autoload": {
"psr-4": {
"anlutro\\cURL\\": "src/"
}
},
- 这里就说明anlutro\cURL 相当于访问其下的src/下的子目录,所以anlutro\cURL\Laravel\cURL其实就相当于引用anlutro文件夹下的src文件夹下的Laravel文件夹下的cURL.php文件
<?php
/**
* PHP OOP cURL
*
* @author Andreas Lutro <anlutro@gmail.com>
* @license http://opensource.org/licenses/MIT
* @package PHP cURL
*/
namespace anlutro\cURL\Laravel;
use Illuminate\Support\Facades\Facade;
/**
* cURL facade class.
*/
class cURL extends Facade
{
public static function getFacadeAccessor()
{
return 'anlutro\cURL\cURL';
}
}
看到这里的代码就不难理解了
- 在代码中只要use anlutro\cURL\Laravel\cURL即可使用已经定义好的aliases了
其它相对规范的包
这里举一个七牛云的例子
这些包都是非常符合Laravel的依赖注入的思想的,拥有一个服务提供者的类