加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP编程:composer.lock文件的作用

发布时间:2020-12-13 03:07:09 所属栏目:PHP教程 来源:网络整理
导读:《composer.lock文件的作用》要点: 本文介绍了composer.lock文件的作用,希望对您有用。如果有疑问,可以联系我们。 PHP实战 Composer的根本使用 PHP实战 在名目中使用composer.json PHP实战 在项目中使用composer,你必要有一个composer.json文件,此文件的

《composer.lock文件的作用》要点:
本文介绍了composer.lock文件的作用,希望对您有用。如果有疑问,可以联系我们。

PHP实战Composer的根本使用

PHP实战在名目中使用composer.json

PHP实战在项目中使用composer,你必要有一个composer.json文件,此文件的作用主要用来声明包之间的相互关系和其他的一些元素标签.

PHP实战
require 症结字

PHP实战第一件事情在composer.json就是使用require关键字了,你将告诉composer哪些包是你项目所必要的

代码如下:

{
??? "require": {
??????? "monolog/monolog": "1.0.*"
??? }
}

PHP实战如你所见,require的工具将会映射包的名称( monolog/monolog)和包的版本是1.0.*

PHP实战
包的定名

PHP实战基本上包的命名是 主名/项目名称( monolog/monolog),主名必需唯一,但是项目也就是我们的包的名称可以有相同的,例如: igorw/json,和seldaek/json

PHP实战包的版本

PHP实战我们必要使用monolog的版本是1.0.*,他的意思是只要版本是1.0分支即可,例如1.0.0,1.0.2或者1.0.99

PHP实战版本界说的两种方式:

PHP实战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版本.??

PHP实战安装包

PHP实战在项目文件路径下运转

代码如下:

$ composer install

PHP实战这样子他会自动下载monolog/monolog文件到你的vendor目次下面.

PHP实战接下来必要说明一件事情就是

PHP实战composer.lock - 锁定文件

PHP实战在安装完所有必要的包之后,composer会生成一张标准的包版本的文件在composer.lock文件中.这将锁定所有包的版本.

PHP实战使用composer.lock(当然是和composer.json一起)来节制你的项目的版本

PHP实战这一点非常的重要,我们使用install命令来处置的时候,它首先会判断composer.lock文件是否存在,如果存在,将会下载相对应的版本(不会在于composer.json里面的配置),这意味着任何下载项目的人都将会得到一样的版本.

PHP实战如果不存在composer.lock,composer将会通过composer.json来读取必要的包和相对的版本,然后创建composer.lock文件

PHP实战这样子就可以在你的包有新的版本之后,你不会自动更新了,升级到新的版本,使用update命令即可,这样子就能获取最新版本的包而且也更新了你的composer.lock文件.

PHP实战$ php composer.phar update
又或
$ composer update

PHP实战Packagist(这应该就是composer,感觉有点像python的包,虽然没那么强大,呵呵,有了这种标准以后,以后大家开发网站绝对会很轻松,可以借鉴很多人的代码了,并且更加便利了!)
Packagist是composer的主要仓库,大家可以去看看,composer仓库的基础是包的源码,你可以随意的获取,Packagist的目的建成一个任何人都可以使用的仓库,这就意味着在你的文件中任意的require包了.

PHP实战关于主动加载

PHP实战为了方便的加载包文件,Composer自动生成了一个文件 vendor/autoload.php,你可以方便只有的使用它在任何你必要使用的地方
require 'vendor/autoload.php';

PHP实战这意味着你可以非常非常方便的使用第三方代码了,假设你的项目必要使用monlog,你直接使用吧,他们都已经自动加载了的!

代码如下:

$log = new MonologLogger('name');
$log->pushHandler(new MonologHandlerStreamHandler('app.log',MonologLogger::WARNING));
$log->addWarning('Foo');

PHP实战当然你也可以在composer.json中加载本身的代码:

代码如下:

{
??? "autoload": {
??????? "psr-0": {"Acme": "src/"}
??? }
}

PHP实战composer将会把psr-0注册为Acme的定名空间

PHP实战你可以定义一个映射通过命名空间到文件目录,src目录是你的根目录,vendor是同一级别的目录,例如一个文件为:src/Acme/Foo.php就包括了AcmeFoo类

PHP实战当你在增加autoload之后,你必需要重新install来生成vendor/autoload.php文件

PHP实战在我们引用此文件的时候,将会返回一个autoloader类的实力,所以你可以把返回的值放入一个变量,然后在增加更多的命名空间,如果在开发环境下这是非常便利的,例如:

代码以下:

$loader = require 'vendor/autoload.php';
$loader->add('AcmeTest',__DIR__);

PHP实战composer.lock文件的作用

PHP实战install 命令从当前目录读取 composer.json 文件,处置了依赖关系,并把其安装到 vendor 目录下.

代码如下:

composer install

PHP实战如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖.这确保了该库的每个使用者都能获得相同的依赖版本.

PHP实战如果没有 composer.lock 文件,composer 将在处置完依赖关系后创建它.

PHP实战为了获取依赖的最新版本,而且升级 composer.lock 文件,你应该使用 update 命令.

代码如下:

composer update

PHP实战这将办理项目的所有依赖,并将确切的版本号写入 composer.lock.

PHP实战如果你只是想更新几个包,你可以像这样分离列出它们:

代码如下:

composer update vendor/package vendor/package2

PHP实战你还可使用通配符进行批量更新:

代码以下:

composer update vendor/*

编程之家培训学院每天发布《composer.lock文件的作用》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读