Composer的高级使用一

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'));

?>

Composer的高级使用一

自动加载自定义的方法

在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方法的内容

相关推荐