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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机三级数据库:课本知识点总结以及备考方案建议

    计算机三级数据库:课本知识点总结以及备考方案建议计算机三级(数据库)复习重点欢迎阅读我的计算机三级总结第一章数据库应用系统开发方法第二章需求分析第三章数据库结构设计(自底向上)第四章数据库应用系统功能设计与实现第五章UML与数据库应用系统第六章高级数据查询第七章数据库及数据库对象第八章数据库后台编程技术第九章安全管理第十章数据库运行维护与优化第十一章故障管理第十二章备份与恢复数据库第十三章大规模数据库架构第十四章数据…

    2022年6月18日
    28
  • dota5显示正在连接协调服务器,win10系统打开dota2提示已连接至DOTA2游戏协调服务器正在登陆中如何解决…

    dota5显示正在连接协调服务器,win10系统打开dota2提示已连接至DOTA2游戏协调服务器正在登陆中如何解决…近日有win10系统用户要在电脑中玩dota2游戏的时候,发现一打开dota2提示已连接至DOTA2游戏协调服务器正在登陆中,该怎么办呢,本文就给大家讲解一下win10系统打开dota2提示已连接至DOTA2游戏协调服务器正在登陆中的详细解决步骤。解决方法一、1、开始按钮在搜索中输入CMD,打开第一个在弹出框输入:netshwinsockresetcatalog;2、直接复制然后再弹出框中右…

    2022年5月17日
    93
  • loadrunner11 中文激活成功教程版(附详细安装教程)[通俗易懂]

    loadrunner11 中文激活成功教程版(附详细安装教程)[通俗易懂]LoadRunner是一款专业级别的应用负载测试工具,它可以模拟上千万用户对企业应用进行真实的负载测试,通过大量实时监测器和精确的分析来得到最真实的数据,并且支持自动重复测试,以确保数值稳定和准确。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化产品性能和加速应用系统的发布周期。LoadRunner适用于各种体系架构,它从用户关注的“响应时间”、“点击次数”或是工业层面的“吞吐量”…

    2022年7月22日
    7
  • resnet源码pytorch_pytorch conv1d

    resnet源码pytorch_pytorch conv1d#Pytorch 0.4.0 ResNet34实现cifar10分类.#@Time:2018/6/17#@Author:xfLiimporttorchvisionastvimporttorchastimporttorchvision.transformsastransformsfromtorchimportnnfromtorch.utils.da…

    2022年10月6日
    0
  • DeepLink的实现原理「建议收藏」

    DeepLink的实现原理「建议收藏」前言之前我们又是看源码又是研究动画,今天分享一个比较简单的技术点:DeepLink。DeepLink,深度链接技术,主要应用场景是通过Web页面直接调用Android原生app,并且把需要的参数通过Uri的形式,直接传递给app,节省用户的注册成本。简单的介绍DeepLink概念之后,我们看一个实际的例子:朋友通过京东分享给我一个购物链接:于是我通过微信打开了这条链接:…

    2022年6月23日
    62
  • quick-cocos2d-x游戏开发【5】——创建菜单

    quick-cocos2d-x游戏开发【5】——创建菜单

    2022年1月8日
    46

发表回复

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

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