composer.lock文件的作用
Composer的基本使用
在项目中使用poser.json
在项目中使用poser,你需要有一个poser.json文件,此文件的作用主要用来声明包之间的相互关系和其他的一些元素标签。
require 关键字
第一件事情在poser.json就是使用require关键字了,你将告诉poser哪些包是你项目所需要的
{
"require": {
"monolog/monolog": "1.0."
}
}
如你所见,require的对象将会映射包的名称( monolog/monolog)和包的版本是1.0.
包的命名
基本上包的命名是 主名/项目名称( monolog/monolog),主名必须唯一,项目也就是我们的包的名称可以有相同的,例如: igorw/json,和seldaek/json
包的版本
我们需要使用monolog的版本是1.0.,他的意思是只要版本是1.0分支即可,例如1.0.0,1.0.2或者1.0.99
版本定义的两种方式
1. 标准的版本定义保准的版本包文件,如1.0.2
2. 一定范围的版本使用比较符号来定义有效的版本的范围,有效的符号有>, >=, <,<=, !=
3. 通配符特别的匹配符号,例如1.0.就相当于>=1.0,<1.1版本的即可
4. 下一个重要的版本~符号最好的解释就是,~1.2就相当于>1.2,<2.0,但~1.2.3就相当于>=1.2.3,<1.3版本。
安装包
在项目文件路径下运行
$ poser install
这样子他会自动下载monolog/monolog文件到你的vendor目录狼蚁网站SEO优化。
接下来需要说明一件事情就是
poser.lock - 锁定文件
在安装完所有需要的包之后,poser会生成一张标准的包版本的文件在poser.lock文件中。这将锁定所有包的版本。
使用poser.lock(是和poser.json一起)来控制你的项目的版本
这一点非常的重要,我们使用install命令来处理的时候,它会判断poser.lock文件是否存在,如果存在,将会下载相对应的版本(不会在于poser.json里面的配置),这意味着任何下载项目的人都将会得到一样的版本。
如果不存在poser.lock,poser将会通过poser.json来读取需要的包和相对的版本,然后创建poser.lock文件
这样子就可以在你的包有新的版本之后,你不会自动更新了,升级到新的版本,使用update命令即可,这样子就能获取最新版本的包并且也更新了你的poser.lock文件。
$ php poser.phar update
或者
$ poser update
Packagist(这应该就是poser,感觉有点像python的包,虽然没那么强大,呵呵,有了这种标准以后,以后大家开发网站绝对会很轻松,可以借鉴很多人的代码了,并且更加方便了!)
Packagist是poser的主要仓库,大家可以去看看,poser仓库的基础是包的源码,你可以随意的获取,Packagist的目的建成一个任何人都可以使用的仓库,这就意味着在你的文件中任意的require包了。
关于自动加载
为了方便的加载包文件,Composer自动生成了一个文件 vendor/autoload.php,你可以方便只有的使用它在任何你需要使用的地方
require 'vendor/autoload.php';
这意味着你可以非常非常方便的使用第三方代码了,假设你的项目需要使用monlog,你直接使用吧,他们都已经自动加载了的!
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
你也可以在poser.json中加载自己的代码
{
"autoload": {
"psr-0": {"Acme": "src/"}
}
}
poser将会把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__);
poser.lock文件的作用
install 命令从当前目录读取 poser.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。
poser install
如果当前目录下存在 poser.lock 文件,它会从此文件读取依赖版本,而不是根据 poser.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。
如果没有 poser.lock 文件,poser 将在处理完依赖关系后创建它。
为了获取依赖的最新版本,并且升级 poser.lock 文件,你应该使用 update 命令。
poser update
这将解决项目的所有依赖,并将确切的版本号写入 poser.lock。
如果你只是想更新几个包,你可以像这样分别列出它们
poser update vendor/package vendor/package2
你还可以使用通配符进行批量更新
poser update vendor/
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程