# 安装扩展包
**声明依赖**
> 以下以monolog为例
在项目目录下创建一个`composer.json`文件,指明依赖
~~~
{
"require": {
"monolog/monolog": "1.2.*"
}
}
~~~
如果不需要使用`https`,可以这么写,以解决有时候因为https造成的问题:
~~~
{
"require": {
"monolog/monolog": "1.2.*"
},
"config": {
"secure-http": false
}
}
~~~
* * * * *
**包版本约束**
精确版本:示例: `1.0.2`。
范围:使用比较操作符你可以指定包的范围。这些操作符包括:>,>=,<,<=,!=。你可以定义多个范围,使用空格 或者逗号,表示逻辑上的与,使用双竖线||表示逻辑上的或。其中与的优先级会大于或。示例:
~~~
>=1.0
>=1.0 <2.0
>=1.0 <1.1 || >=1.2
~~~
| 名称 | 实例 | 描述 |
| --- | --- | --- |
| 确切的版本号 | 1.0.2 | 你可以指定包的确切版本 |
| 范围 | >=1.0 >=1.0,<2.0 >=1.0,<1.1\|>=1.2 | 通过使用比较操作符可以指定有效的版本范围。 有效的运算符:>、>=、<、<=、!=。 你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。 AND 的优先级高于 OR。 |
| 通配符 | 1.0.* | 你可以使用通配符\*来指定一种模式。1.0.\*与>=1.0,<1.1是等效的。 |
| 赋值运算符 | ~1.2 | 这对于遵循语义化版本号的项目非常有用。~1.2相当于>=1.2,<2.0。想要了解更多,请阅读下一小节。 |
下一个重要版本操作符:使用波浪号~。示例:
~1.2相当于>=1.2 <2.0.0,而~1.2.3相当于>=1.2.3 <1.3.0。
折音号^:例如,^1.2.3相当于>=1.2.3 <2.0.0,因为在2.0版本前的版本应该都没有兼容性的问题。而对于1.0之前的版本,这种约束方式也考虑到了安全问题,例如^0.3会被当作>=0.3.0 <0.4.0对待。
* * * * *
**自动加载**
Composer提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:
~~~
require 'vendor/autoload.php';
~~~
详细示例
~~~
{
"require": {
"php": ">=5.4.0",
"illuminate/database": "*",
"monolog/monolog": "1.2.*"
},
"config": {
"secure-http": false
},
"autoload": {
"classmap": [
"app/models"
],
"files": [
"vendor/yjc/src/Alipay/autoload.php"
],
"psr-4": {
"Yjc\\Sms\\": "vendor/yjc/src/Sms"
}
}
}
~~~
`autoload`部分指定自动加载的文件夹,每次里面的文件有新增,使用composer dump-autoload即可。
详见:http://docs.phpcomposer.com/03-cli.html#dump-autoload