安装类库之前一定要先切换成中国镜像,否则会超级久,或是没反应!
composer解析:
composer.json文件:
{
"require":{
"厂商/类库名字":"版本号"
}
}
composer.json与composer.lock的作用:
使用composer.lock(当然是和composer.json一起)来控制你的项目的版本。
这一点非常的重要,我们使用install命令来处理的时候,它首先会判断composer.lock文件是否存在,如果存在,将会下载相对应的版本(不会在于composer.json里面的配置),这意味着任何下载项目的人都将会得到一样的版本。
如果不存在composer.lock,composer将会通过composer.json来读取需要的包和相对的版本,然后创建composer.lock文件,这样子就可以在你的包有新的版本之后,你不会自动更新了,升级到新的版本,使用update命令即可,这样子就能获取最新版本的包并且也更新了你的composer.lock文件。
使用流程:
(全局安装)
1.安装,详情见http://docs.phpcomposer.com/00-intro.html#Introduction;
2.安装步骤完成后,进入到步骤二:在你的项目下使用(下载所需的软件包);
3.在你的项目的根目录中新建一个composer.json文件,里面写好你所需的软件包,像这样:
{
"require":{
"monolog/monolog":"1.0.*"
}
}
然后进入安装软件包的步骤;
4.安装软件包之前先将composer切换成中国镜像
命令为:composer config -g repo.packagist composer https://packagist.phpcomposer.com
5.配置好中国镜像后,再通过命令行进入到你项目的根目录中;
6.进入到项目中后,执行composer install命令,这时只要等待就好,完成!
7.这时你的项目根目录就像这样
8.但是若要添加多个类库呢,像这样
我又多加了一个smarty类库,如果此时我们依然直接执行composer install命令的话,则会报错的,因为你的composer.lock文件是没有更新的;
9.此时是报错的情形,这时你只要再输入composer update命令就好啦,所以完整的添加第二个类库的流程是:
1):先修改composer.json文件,往其中加入你所需的类库信息;
2):再在命令行中直接输入composer update就好啦!(也就是说,除了第一次加入类库时是执行composer install,其他时候再次添加的话就是直接更新就好了composer update)
10.卸载类库,只需要执行一条命令即可,如:composer remove phpmailer/phpmailer
最后,在你项目的入口文件像index.php中,加上一句:require(__DIR__.'/vendor/autoload.php');
这时你就可以非常方便的使用你加载的类库了!
当然你也可以在composer.json中加载自己的代码:
{
"autoload": {
"psr-0": {"Acme": "src/"}
}
}
composer将会把psr-0注册为Acme的命名空间
你可以定义一个映射通过命名空间到文件目录,src目录是你的根目录,vendor是同一级别的目录,例如一个文件为:src/Acme/Foo.php就包含了Acme\Foo类
当你在增加autoload之后,你必须要重新install来生成vendor/autoload.php文件
在我们引用此文件的时候,将会返回一个autoloader类的实力,所以你可以把返回的值放入一个变量,然后在增加更多的命名空间,如果在开发环境下这是非常方便的,例如:
$loader = require 'vendor/autoload.php';
$loader->add('Acme\Test', __DIR__);
(持续更新中)