Composer的高级使用一
自动加载
对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。
require 'vendor/autoload.php';
这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log',Monolog\Logger::WARNING)); $log->addWarning('Foo');
比如:在项目根目录下的index.php输入以下代码:运行会生成log日志
<?php
require '../vendor/autoload.php';
//通道名字my_logger
$log = new Monolog\Logger('my_logger');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::INFO));
//栈先进后出,warning先调用
$log->pushHandler(new Monolog\Handler\FirePHPHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('小心');
$log->addInfo('错误',array('cw1','cw2'));
?>
自动加载自定义的方法
在vendor同级新建文件夹func,在func文件夹下新建两个文件夹user和gread,两个文件夹下新建文件类似:
<?php
namespace U_func;
class user{
public function desc() {
echo "this is func->user";
}
}
?>
修改composer.json文件为:
{
"require": {
"monolog/monolog": "1.0.*"
},
"autoload":{
"psr-4": {
"U_func\\": "func/user/",
"G_func\\": "func/gread/"
}
}
}
根目录修改index.php文件:
<?php
require './vendor/autoload.php';
$user=new \U_func\\user();
$gread=new \G_func\gread();
echo $user->desc();
echo "<br/>";
echo $gread->desc();
?>
运行composer install命令
加载index.php,会输出desc方法的内容