首页 » PHP教程 » phpmonlog技巧_composerlock文件的浸染

phpmonlog技巧_composerlock文件的浸染

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

在项目中利用composer.json

在项目中利用composer,你须要有一个composer.json文件,此文件的浸染紧张用来声明包之间的相互关系和其他的一些元素标签。

phpmonlog技巧_composerlock文件的浸染

require 关键字

phpmonlog技巧_composerlock文件的浸染
(图片来自网络侵删)

第一件事情在composer.json便是利用require关键字了,你将见告composer哪些包是你项目所须要的

代码如下:

{

\公众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版本。

安装包

在项目文件路径下运行

代码如下:

$ composer install

这样子他会自动下载monolog/monolog文件到你的vendor目录下面。

接下来须要解释一件事情便是

composer.lock - 锁定文件

在安装完所有须要的包之后,composer会天生一张标准的包版本的文件在composer.lock文件中。
这将锁定所有包的版本。

利用composer.lock(当然是和composer.json一起)来掌握你的项目的版本

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

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

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

$ php composer.phar update

或者

$ composer update

Packagist(这该当便是composer,觉得有点像python的包,虽然没那么强大,呵呵,有了这种标准往后,往后大家开拓网站绝对会很轻松,可以借鉴很多人的代码了,并且更加方便了!

Packagist是composer的紧张仓库,大家可以去看看,composer仓库的根本是包的源码,你可以随意的获取,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');

当然你也可以在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__);

composer.lock文件的浸染

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

代码如下:

composer install

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

如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。

为了获取依赖的最新版本,并且升级 composer.lock 文件,你该当利用 update 命令。

代码如下:

composer update

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

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

代码如下:

composer update vendor/package vendor/package2

你还可以利用通配符进行批量更新:

代码如下:

composer update vendor/

相关文章

介绍白点控制之路,从原理到方法

白点,作为生活中常见的现象,无处不在。对于如何控制白点,许多人却感到困惑。本文将从原理出发,探讨白点的控制方法,并结合实际案例,为...

PHP教程 2025-01-03 阅读1 评论0

介绍直播王者,如何开启你的电竞直播之旅

随着电竞产业的蓬勃发展,越来越多的年轻人投身于电竞直播行业。王者荣耀作为一款备受欢迎的MOBA手游,吸引了大量玩家和观众。如何开启...

PHP教程 2025-01-03 阅读1 评论0