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)
上一篇 2022年2月17日 下午2:00
下一篇 2022年2月17日 下午3:00


相关推荐

  • 随机森林回归算法_随机森林算法的优缺点

    随机森林回归算法_随机森林算法的优缺点随机森林回归算法原理随机森林回归模型由多棵回归树构成,且森林中的每一棵决策树之间没有关联,模型的最终输出由森林中的每一棵决策树共同决定。随机森林的随机性体现在两个方面:1、样本的随机性,从训练集中随机抽取一定数量的样本,作为每颗回归树的根节点样本;2、特征的随机性,在建立每颗回归树时,随机抽取一定数量的候选特征,从中选择最合适的特征作为分裂节点。算法原理如下:(a)从训练样本集S中随机…

    2022年8月21日
    25
  • 老庄结构设计官网_互联网颗粒度的名词解释

    老庄结构设计官网_互联网颗粒度的名词解释    本文是对上篇MGN论文阅读做一个详细的补充,主要补充其结构设计及技术实现细节。文章内容整合来自云从科技资深算法研究员袁余锋老师,通过以下四个方面来讲解本次课题:1、ReID的定义及技术难点;2、常用数据集与评价指标简介;3、多粒度网络(MGN)的结构设计与技术实现;4、ReID在行人跟踪中的应用分析与技术展望ReID是行人智能认知的其中一个研究方向,行人智能认知是人脸识别之后比较重要…

    2022年10月6日
    6
  • Pycharm学生用户免费激活

    Pycharm学生用户免费激活Pycharm 专业版 学生用户激活 Pychram 学生账户激活 FreeEducatio 填写申请人信息无法接受邮箱申请 Pychram 学生账户激活 FreeEducatio 网址点击 Applynow 填写申请人信息填写个人信息 邮箱必须使用校园邮箱号 每个大学都有对应的邮箱帐号 可以去校园网自行申请点击申请免费产品无法接受邮箱申请如果出现无法接受电子邮件地址 点击蓝色的 官方文件 进行申请确认

    2026年3月19日
    2
  • C语言fscanf和fprintf函数的用法详解

    C语言fscanf和fprintf函数的用法详解fscanf()和fprintf()函数与前面使用的scanf()和printf()功能相似,都是格式化读写函数,两者的区别在于fscanf()和fprintf()的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的原型为:intfscanf(FILE*fp,char*format,…);intfprintf(FILE*fp,char…

    2022年10月19日
    4
  • DDoS 攻击防御方法

    DDoS 攻击防御方法网络层 DDoS 防御限制单 IP 请求频率 网络架构上做好优化 采用负载均衡分流 防火墙等安全设备上设置禁止 ICMP 包等 通过 DDoS 硬件防火墙的数据包规则过滤 数据流指纹检测过滤 及数据包内容定制过滤等技术对异常流量进行清洗过滤 采用 ISP 近源清洗 使用电信运营商提供的近源清洗和流量压制 避免全站服务对所有用户彻底无法访问 这是对超过自身带宽储备和自身 DDoS 防御能力之外超大流量的补充性缓解措施 应用层 DDoS 防御优化操作系统的 TCP IP 栈 应用服务器严格限制单

    2026年3月18日
    2
  • Spring返回text/plain出现中文乱码

    Spring返回text/plain出现中文乱码今天在RestTemplate调试的时候发现返回的中文出现了乱码,使用POST

    2022年7月15日
    19

发表回复

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

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