文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Composer使用教程

2023-08-31 13:42

关注

Composer使用教程


Composer 不会全局安装包,也就是说你全局安装了composer,你以后在哪个文件夹下面安装包都不会影响到你在其他文件夹的包,通俗的来讲,就是你全局安装composer后,你的每个文件夹都是一个虚拟环境


1.Composer 简介

本质: 是一个加强版本的自动加载器(Plus+)

2. 下载与安装

2.1 局部安装

  1. Windows安装

    直接进入指定文件夹,打开cmd输入如下几条命令即可

     php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');"
  2. mac和Linux安装
 # mac/linux curl -sS https://getcomposer.org/installer | php

2.2 全局安装

推荐使用全局安装

  1. windows: https://getcomposer.org/Composer-Setup.exe
  2. macos/linux
    1. 局部安装,下载 composer.phar
    2. curl -sS https://getcomposer.org/installer | php
    3. . 移动到自定义命令目录,并重命名
    4. sudo mv composer.phar /usr/local/bin/composer

2.3 更新composer

更新composer是指全局安装的composer更新,因为,局部安装的composer一般都是最新的版本

composer selfupdate

2.4查看composer

  1. 检验你是否安装成功composer,打开你的cmd,然后在里面输入composer,如果出现如图所示的composer图,则表示安装成功了

  2. 查看composer的版本composer -V 或者:composer -Version

2.5 安装composer镜像加速

安装composer镜像加速会让你以后的包下载速度非常的快(如下操作都是指全局安装composer后)

  1. 查看配置

    composer config -gl repo.packagist

    在这里插入图片描述

  2. 配置全局变量为阿里云镜像:

    composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

3. composer的使用

首先如果你要使用composer的话,你肯定是要创建文件管理包的,就像node.js当中有npm但是也需要package.json像npm中的package.json或者是composer中的composer.json这些文件一般是都有你下载的这些包的信息。

3.1初始化

  1. 直接使用composer init直接进行初始化,使用composer init命令后直接全部回车即可
  2. 直接创建composer.json文件,在文件中写入{},再使用命令composer install去安装依赖

个人推荐使用第二种方法,第二种方法创建的composer.json文件更简介,初始化后有几个文件必须要了解

  1. composer.json:可以认定为composer.lock的简写
  2. composer.lock: composer.json 中的包版本锁定文件
  3. vender目录: 第三方包,以及 composer 的自动加载器
    1. autoload.php: composer 的自动加载器
    2. composer目录: 自动加载器的配置项(系统维护)

3.2安装第三方包

其实如果一开始你就要安装第三方包的话,直接使用安装第三方包的命令就可以了,这样安装会直接初始化composer然后再进行包安装,安装包一般会有如下几个步骤:

  1. 搜索包

    • 方法1:

    比如说要搜索个php库Monolog,再cmd下直接执composer search monolog就行了

    • 方法2:

    直接进入官网搜索包,这样就可以直接下载,还会有使用教程第三方包官网

  2. 查看包

  1. 下载包
  1. 跟新依赖

    如果有以下情况,都可以进行更新依赖:

    • 删除某个库

      直接再composer.json中删除该库,然后运行composer update

    • 更改某个依赖的版本
    • 新增依赖
    • 更新所有依赖

      composer update

    • 更新某个依赖

      composer update 包名

  2. 删除依赖
composer remove 包名

4. 自动加载器

  1. composer.json添加autoload字段,声明依赖"包"的路径
  2. composer dumpautoload: 将autoload字段声明注册到 composer 中

项目中需要用到自动加载的的文件有哪些?

  1. 普通文件: config/database.php
  2. 类文件: xxx.class.php
    1. 自己写的类
    2. 第三方类(别人写的):https://packagist.org//

4.1 加载非 class 文件

在composer.json文件中的autoload下面添加file

    // composer.json    {    "autoload": {        "files": ["config/database.php", "lib/common.php"]    }}

使用就直接包含自动加载文件就可以了

4.2 加载自己写 class 文件

在composer.json文件中的autoload下面添加classmap

    {    "autoload": {        "files": ["config/database.php", "lib/common.php"],        "classmap": ["inc/", "src/Base.php"]    }    }

使用就直接包含自动加载文件就可以了

4.3 PSR-4 自动加载规范

  1. PSR简介
  1. PSR使用

在composer.json文件中的autoload下面添加psr-4字段即可

"psr-4": {      "app\\admin\\controller\\": "src/app/controllers",      "app\\admin\\models\\": "src/app/models",      "app\\": [        "src/app",        "src/app/test"      ]    }

使用就直接包含自动加载文件就可以了


5. 常规"包"安装简单命令

  1. composer.json中添加require字段

    "require": {    "catfan/medoo": "^2.1"}
    # 无composer.lockcomposer install# 有composer.lockcomposer update
  2. 三合一: 声明,注册,下载

    # 下载包 composer require catfan/medoo  # 移除包 composer remove catfan/medoo

6. 安装脚手架

以安装thinkphp为例

```bash# 安装脚手架/目录架构,包含了源码vendor目录composer create-project topthink/think shop# 只有源码,没有目录架构composer require topthink/framework```

7. composer 进阶

7.1composer.json和composer.lock的区别

  1. 可以理解为composer.json包含的是依赖包的简要信息而composer.lock文件包含的是依赖的详细信息
  2. 如果是把composer.json这个文件分享给同事或者朋友,执行install命令后,那版本号可能是和你自己本地开发使用的版本是不同的,这时候composer.lock文件就起到了关键作用,因为composer.lock文件里面是有显示的版本号的,只要把这个文件分享出去,别人再执行composer install命令的话,安装的依赖包就会和你本地开发安装的是一个版本,这样就会防止一些不必要的bugs。
  3. 执行install操作后,composer会先去看看有没有composer.lock文件,如果有就安装lock文件内的依赖包,如果没有会再去找composer.json文件并安装,而composer update操作,就会直接读composer.json文件,根据版本规则去更新,但是他们两个操作最后都是会更新lock文件

总结:发送你写的东西,和依赖包的时候,发送composer.lock就可以了,无composer.lock使用composer install,有composer.lock使用composer update

7.2代码库

composer中的代码也就是gethub中的代码,只不过使用了Packagist把github中的代码集合了,就是把代码整理在Packages

Packagist,代码安装库
学习猿地

composer常用的库
在这里插入图片描述

7.3composer运行原理

在这里插入图片描述


资料
Composer中文使用教程
菜鸟教程

来源地址:https://blog.csdn.net/qq_53568983/article/details/128295964

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯