php好搭档--composer

本来想写个中二的开头,奈何没文化,算了,直接步入正题吧。今天来说 php 的好搭档--Composer。

说到 Composer,大多数 phper 应该都使用过。但是是否都和我一样,只是单纯的用过,其他的一概不知呢?ok,这并不羞耻,现在我们来了解一些 Composer 的前世今生。

文档中也明确说明了,Composer 是 php 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。并统一引用他们。

引用?这个是不有点熟悉?初学 php 时候,对于一些可以复用的逻辑方法,我们会将它们封装成一个通用文件,然后在需要用到的地方,使用 require 或 include 来引入该文件,然后就可以在需要使用的地方调用方法。后期又出现了 __autoload、spl_autoload_register,用来加载文件。但是不管使用 require、__autoload,都避免不了代码引入时候的“乱”的问题。是的,就是乱,没有一个统一管理的规则,每次需要引入新的文件,都需要去修改代码。能不能有一个工具来管理并且统一加载需要使用的文件呢?Composer 应运而生。

Composer 将这样为你解决问题:

1、你有一个项目依赖于若干个库。

2、其中一些库依赖于其他库。

3、你声明你所依赖的东西。

4、Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)。

作用:

1、安装并管理依赖

2、统一引入依赖。

基础使用

1、首次安装 Composer 后,需要执行初始化命令来生成 composer.json 文件,按照提示来逐步完成就可以。

$ composer init
Do not run Composer as root/super user! See https://getcomposer.org/root for details

  Welcome to the Composer config generator
  
This command will guide you through creating your composer.json config.

# 1. 输入项目命名空间
# 注意<vendor>/<name> 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
Package name (<vendor>/<name>) [root/test_composer]:yourname/projectname

# 2. 项目描述
Description []:这是一个测试composer init 项目

# 3. 输入作者信息,直接回车可能出现如下提示,有的系统可以直接回车,具体为什么?这里不详细介绍
 Invalid author string.  Must be in the format: John Smith <john@example.com>
# 3.1. 注意必须要符合 John Smith <john@example.com>
Author [, n to skip]: John Smith <john@example.com>

# 4. 输入最低稳定版本,stable, RC, beta, alpha, dev
Minimum Stability []:dev

# 5. 输入项目类型
Package Type (e.g. library, project, metapackage, composer-plugin) []:library

# 6. 输入授权类型
License []:

Define your dependencies.

# 7. 输入依赖信息
Would you like to define your dependencies (require) interactively [yes]?

# 7.1. 如果需要依赖,则输入要安装的依赖
Search for a package:php

# 7.2. 输入版本号
Enter the version constraint to require (or leave blank to use the latest version): >=5.4.0

#  如需多个依赖,则重复以上两个步骤(7.1/7.2)
Search for a package:

# 8. 是否需要require-dev,
Would you like to define your dev dependencies (require-dev) interactively [yes]?


{
    "name": "dduan/test_compser",
    "description": "这是一个测试composer init 项目",
    "type": "library",
    "require": {
        "php": ">=5.4.0"
    },
    "authors": [
        {
            "name": "John Smith",
            "email": "john@example.com"
        }
    ],
    "minimum-stability": "dev"
}
# 9. 是否生成composer.json
Do you confirm generation [yes]?

# 现在安装依赖项吗
Would you like to install dependencies now [yes]?

- 按照提示逐步完成后,会生成 composer.json 文件,后期直接更新 composer.json 文件,使用 install 命令来安装依赖文件即可。

- 完成 composer.json 文件的引导编辑并确认安装依赖后,就会安装已编辑的依赖文件,后期安装其他依赖文件只需要编辑 composer.json 文件并执行 composer install  命令即可,就像下文中的操作一样。

2、安装依赖文件

composer.json 文件中指定 require key 的值。你只需要简单的告诉 Composer 你的项目需要依赖哪些包。

{
    "require": {
        "monolog/monolog": "1.0.*",
     "包名称":"版本号",
} }

- 执行命令 composer install 安装依赖。

3、自动加载。

对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。

require 'vendor/autoload.php';

然后你就可以操作依赖文件了。

锁文件

在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。当然,当你更新了某一个依赖后,也会更新锁文件。

后期团队中的其他人员通过 composer install  来安装依赖时,会优先检查锁文件是否存在,存在的话则安装文件中的指定版本,这也就保证了任何人建立项目都将下载与指定版本完全相同的依赖。如果锁文件不存在,则会按照 composer.json 来安装依赖,但是这样就很难保证版本一致性。通常都会要求 composer.json、composer.lock 文件是同时存在的。

常用命令

- composer search monolog  搜索包

- composer require monolog  安装包

- composer update [monolog/monolog]  更新包

- composer remove [monolog/monolog]  移除包

- composer show  展示所有安装包

 

常用的操作就这些啦,后面有其他需要直接查询文档即可。后面贴上文档链接。加油,打工人。

 

参考文件:

https://zhuanlan.zhihu.com/p/133857206

https://docs.phpcomposer.com/01-basic-usage.html

https://www.runoob.com/w3cnote/composer-install-and-usage.html

 

posted @ 2020-12-28 17:37  所见即我  阅读(195)  评论(0编辑  收藏  举报