# 安裝擴展包
**聲明依賴**
> 以下以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