PHP面试中经常出现的composer 问题总结[通俗易懂]

PHP面试中经常出现的composer 问题总结

大家好,又见面了,我是全栈君。

PHP面试中经常出现的composer 问题总结[通俗易懂]

前言

今天使用composer create-project 安装了一下thinkphp6,以前是知道怎么用create-project这个命令来安装项目的,很长一段时间没有使用了。还好自己还不算太老,脑子还可以动起来,索性就一遍看文档,一遍写下笔记。

(一)做什么的

到底什么时候会用到composer create-project 这个命令呢, 一般情况而言都是使用composer require来引入以来库,很少使用create-project 来安装项目,我记得上次使用这个命令还是用thinkphp5.1写项目的时候。 那这句话到底有什么作用呢,下面引用Composer官网的一句话

你可以使用 Composer 从现有的包中创建一个新的项目。这相当于执行了一个 git clone 或 svn checkout 命令后将这个包的依赖安装到它自己的 vendor 目录。

从上面我们可以读到这些信息,它会做这样的两个操作:

  • 从现有的包中创建一个新项目

  • 安装这个包中的依赖到vendor

也就是会创建一个新项目,并且会把这个项目中的依赖下载到vendor目录中。那这个包是哪里来的呢,Composer说了会在 packagist.org上查找你指定的包

(二)怎么用

知道做什么的,要怎么使用呢。常规的使用是这样的composer create-project topthink/think think 5.1.*,

 对这个命令详细说一下,分为四部分讲解

  • 第一部分就是composer create-project,告诉composer我们要创建项目;

  • 第二部分topthink/think是包名,这个包名是在packagist.org网站可以搜索的到的,如果找不到也创建不了项目,composer会报错;

  • 第三部分think, 这个是给创建的项目取一个名字,其实也就是一个目录名字,这个目录如果在的话,目录一定要为空,不然创建项目会失败,如果目录不存在会自动创建,目录起英文名字,中文会遇到一些不可描述的问题

  • 第四部分,创建的项目的版本,因为我们创建的项目来自于packagist库中的包,包有不同的版本,以我创建的topthink\think为例就有5.1.*、5.0.*,如果我们不指定版本号,默认会使用新的版本来创建,当然也可以使用指定的版本5.1.38。这里也可以使用通配符5.1.*,赋值运算符~5.1等等

(三)参数

composer create-project 这个命令有一些参数,比如--prefer-dist当有可用的包从dist安装项目,--prefer-source当有可用的项目从source安装

不仅我上面提到的参数,还有一些参数,但是在工作中一致没有用过,我也没有仔细研究过,即便是看了,当时了解了也忘记了,所以我的第一步操作是把composer create-project这个命令学会,再来了解它的参数使用方法

(四)其他

也不是说使用composer创建项目只能使用composer create-project, 也可以使用git clone把项目克隆到你的电脑上,方法多种多样,就看你使用哪一种,对于我而言我更喜欢使用composer create-project来安装一个thinkphp项目

(五)扩展:composer 包版本的范围指定

PHP面试中经常出现的composer 问题总结[通俗易懂]

版本约束使用示例

  • : 和 = 都可以

  • 版本约束可以加引号,也可以不加

  • composer文档使用的是 : 并且版本约束加引号(可以说更加规范吧)

composer create-project topthink/think:"5.1.*"
composer create-project topthink/think=5.1.*

关于扩展包的安装方法
那么,准备添加一个扩展包,install, update, require 三个命令都可以用来安装扩展包,选择哪一个才是正确的呢?

答案是:使用 composer require 命令

另外,在手动修改 composer.json 添加扩展包后,composer update new/package 进行指定扩展包更新的方式,也可以正确的安装,不过不建议使用这种方法,因为,一旦你忘记敲定后面的扩展包名,就会进入万劫不复的状态,别给自己留坑呀。

上面的概念不论对新手或者老手来说,都比较混淆,主要记住这个概念:

原有项目新添加扩展的,都使用 composer require new/package 这种方式来安装。

(六)名词解释
composer install – 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
composer update – 从 composer.json 安装最新扩展包和依赖;
composer update vendor/package – 从 composer.json 或者对应包的配置,并更新到最新;
composer require new/package – 添加安装 new/package, 可以指定版本,如:composer require new/package ~2.5.

链接:https://juejin.im/post/6844903937011613704

PHP面试中经常出现的composer 问题总结[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111660.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • goland 2021.11.4 激活码-激活码分享

    (goland 2021.11.4 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~23LNPMIJZT-eyJsaWNlb…

    2022年3月29日
  • HTML页面背景图片平铺

    HTML页面背景图片平铺body{ background-image:url(‘图片路径’);background-size:100%;background-repeat:no-repeat;}

    2022年6月3日
  • pycharm使用虚拟环境_pycharm配置虚拟环境

    pycharm使用虚拟环境_pycharm配置虚拟环境Pipenv,它的项目简介为PythonDevelopmentWorkflowforHumans,是Python著名的requests库作者kennethreitz写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理Python包,现在它也已经是Python官方推荐的包管理工具。溯源起初,Python没有便利的方式来安装软件包。后来,Easy…

    2022年8月27日
  • mysql逻辑删除案例_实现数据逻辑删除的一种方案

    mysql逻辑删除案例_实现数据逻辑删除的一种方案什么是逻辑删除所谓逻辑删除是指数据已经“不需要”了,但是并没有使用delete语句将这些数据真实的从数据库中删除,而只是用一个标志位将其设置为已经删除。为什么需要逻辑删除对数据进行逻辑删除,一般存在以下原因:防止数据误删除,不能找回数据;这些数据还具有一定的商业价值,比如用户的注册信息;虽然这些数据可以删除,但是这些数据还有关联数据,这些关联数据不能删除。对数据进行逻辑删除,可以保证数据的安全性和…

    2022年6月2日
  • 欧式距离计算公式

    欧式距离计算公式欧式距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。也可以理解为:m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离下面是具体的计算公式…

    2022年6月19日
  • 【spring】IoC原理[通俗易懂]

    【spring】IoC原理[通俗易懂]【spring】IoC原理

    2022年4月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号