Composer安装与配置教程

news2024/11/15 13:33:23

一、windows系统下安装安装Composer教程

  1. 下载安装php

  1. 方法一、下载Composer安装包

安装完成后CMD运行 composer --version 命令查看版本号,正常显示版本号则表示安装成功

3、方法二、CMD命令安装composer

安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号,建议7.3.4以上php版本。

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

安装完成后运行如下命令查看版本号,正常显示版本号则表示安装成功

composer --version

二、linux环境安装Composer教程

1、下载composer

curl -sS https://getcomposer.org/installer | php

2、下载后设置环境变量

mv composer.phar /usr/local/bin/composer

3、修改权限

mv composer.phar /usr/local/bin/composer

4、查看版本看是否安装成功

composer -v

三、Composer配置教程

  1. 修改Composer镜像源

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

2、单个项目配置

打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:

composer config repo.packagist composer https://packagist.phpcomposer.com

上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

以 laravel 项目的 composer.json 配置文件为例,执行上述命令后如下所示(注意最后几行):

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*"
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}

取消Composer镜像源修改

composer config -g --unset repos.packagist

Composer常用指令

升级Composer版本(可能需要先还原镜像源为国外镜像源)

composer self-update

查看全局配置

composer config -gl

install命令

composer install

composer install是从composer.lock读取第三方组件及其版本,并将其安装到vendor目录下。

如果composer.lock文件不存在,则读取composer.json第三方组件及其版本,然后安装到vendor目录下。

update是直接从composer.json获取第三方组件及其版本,然后更新composer.lock文件。

如果依赖的第三方组件有版本更新,update会将最新的版本安装到vendor目录下,并更新composer.lock。

在生产环境下,直接使用composer update命令是有较大风险的,因为可能存在测试阶段使用了版本的第三方组件库,在上线打包的时候执行了composer update命令,导致第三方组件更新未经测试直接发布的问题出现。

require命令

除了使用 install 命令外,我们也可以使用 require 命令快速的安装一个依赖而不需要手动在 composer.json 里添加依赖信息:

composer require monolog/monolog

Composer 会先找到合适的版本,然后更新composer.json文件,在 require 那添加 monolog/monolog 包的相关信息,再把相关的依赖下载下来进行安装,最后更新 composer.lock 文件并生成 php 的自动加载文件。

update命令

update 命令用于更新项目里所有的包,或者指定的某些包:

# 更新所有依赖
$ composer update
 
# 更新指定的包
$ composer update monolog/monolog
 
# 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
 
# 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*

需要注意的时,包能升级的版本会受到版本约束的约束,包不会升级到超出约束的版本的范围。例如如果 composer.json 里包的版本约束为 ^1.10,而最新版本为 2.0。那么 update 命令是不能把包升级到 2.0 版本的,只能最高升级到 1.x 版本。

remove命令

remove 命令用于移除一个包及其依赖(在依赖没有被其他包使用的情况下),如果依赖被其他包使用,则无法移除:

$ composer remove monolog/monolog
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 0 updates, 2 removals
  - Removing psr/log (1.0.2)
  - Removing monolog/monolog (1.23.0)
Generating autoload files

search命令

search 命令可以搜索包:

composer search monolog

该命令会输出包及其描述信息,如果只想输出包名可以使用 --only-name 参数:

composer search --only-name monolog

show命令

show 命令可以列出当前项目使用到包的信息:

# 列出所有已经安装的包
$ composer show
 
# 可以通过通配符进行筛选
$ composer show monolog/*
 
# 显示具体某个包的信息
$ composer show monolog/monolog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/382881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络安全基础知识1:渗透测试,网络连接的核心TCP/IP体系结构,公网,内网,ip地址和端口

计算机网络安全基础知识1:渗透测试,网络连接的核心TCP/IP体系结构,公网,内网,ip地址和端口 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去…

frp内网穿透实验

Frp (Fast Reverse Proxy) 是比较流行的一款。FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 http 和 https 协议提供了额外的支持。你可以粗略理解它是一个中转站, 帮你实现 公网 ←→ FRP(服务器) ←→ 内网…

数字化创新应用发布加速,JFrog DevOps 正当时

出品 | CSDN 云计算 数字化进程,每天都在发生。 对于技术开发来说,从业务和场景探索和快速开发创新应用,将带来整个开发流程的全新挑战。根据 IDC 分析,到 2024 年时,全球将会有 5.2 亿个软件应用。而超过 60%的企业每…

【教学类-07-06】20230302《破译电话号码-图形篇(图形固定列不重复)》(三款输入版)

效果展示1、适合中班默写学号——有姓名 有班级,无学号,适合中班幼儿2、适合大班幼儿默写名字——有学号,有班级,无姓名,适合初学者描字(小班、中班、大班)——名字、学号、班级都有&#xff08…

软件测试需要学习什么?好就业么

软件测试需要学习测试环境、网络环境、windows环境、数据库管理、编程技巧(java编程设计,脚本语言,设计工具,XML编程、软件测试技术,测试理论,方法,流程,文档写作,测试工…

微信小程序|基于小程序+云开发制作一个租房小程序

经济发展的同时伴随着大批人群的流动,租房需求一直是持久不衰的话题,如何租好房,好租房,跟随此文一起制作一个租房小程序,让租房不再困难。 一、小程序1. 创建小程序2. 首页3. 房源列表页4. 房源详情页5. 个人中心页</

mysql双机互为主从配置记录

1.准备2台机器 server1 192.168.0.37 server2 192.168.0.119 2.安装mysql&#xff0c;我这里用的docker-compose server1的docker-compose version: 3 services:db:build: ./buildcontainer_name: dbimage: mysql:5.6restart: alwayscommand:--character-set-serverutf8mb4…

python使用openpyxl处理excel表格数据

python使用openpyxl处理excel表格数据前言一、安装openpyxl包二、读取excel数据1. 获取excel表格的页码2. 获取excel表格某一行的数据3. 获取excel表格某一列的数据4. 获取excel表格n行n列的数据5. 获取excel表格某一格的数据三、把数据写入excel数据中前言 对于excel表格&…

探讨==和equals的区别和联系,为什么equals()和hashcode()要一起重写?

(一) 探讨和equals的区别和联系&#xff1f; 面试考题&#xff1a;《关于和equals的区别》&#xff0c;该怎么回答完美呢&#xff1f; 可以这样回答&#xff1a; &#xff08;1&#xff09;对于 简单来说比较的是指相等 ①&#xff1a;对于基本数据类型,则直接比较的是对应…

项目实战-瑞吉外卖day01(B站)

瑞吉外卖-Day01课程内容软件开发整体介绍瑞吉外卖项目介绍开发环境搭建后台登录功能开发后台退出功能开发1. 软件开发整体介绍作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程&#xff0c; 以及软件开发过程中涉及到的岗位角色&#xff0c;角色的分工、职责&am…

Vland:像乐高一样搭建元宇宙|开发者说

社交达人金秋远每年会组织和参加数以百计的活动——既有线下也有线上&#xff0c;既有德州扑克也有创业交流&#xff0c;既有客户回访也有校友叙旧。 活跃于各种社交活动&#xff0c;是金秋远在贝恩咨询为 500 强企业担任战略顾问时养成的习惯。由于喜欢研究「人与人的连接」&…

如何用Python把篮球和鸡联系起来

文章目录画个球让球转起来画个球 不管篮球和不和鸡联系起来&#xff0c;都首先得有个球&#xff0c;或者说要有一个球面&#xff0c;用参数方程可以表示为 xrcos⁡ϕcos⁡θyrcos⁡ϕsin⁡θzrsin⁡ϕ\begin{aligned} x & r\cos\phi\cos\theta\\ y & r\cos\phi\sin\th…

STM32 EXTI外部中断

本文代码使用 HAL 库。 文章目录前言一、什么是外部中断&#xff1f;二、外部中断中断线三、STM32F103的引脚复用四、相关函数&#xff1a;总结前言 一、什么是外部中断&#xff1f; 外部中断 是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时&#xff0c;单片…

13 nuxt3学习(新建页面 内置组件 assets 路由)

新建页面 Nuxt项目中的页面是在 pages目录 下创建的 在pages目录创建的页面&#xff0c;Nuxt会根据该页面的目录结构和其文件名来自动生成对应的路由。页面路由也称为文件系统路由器&#xff08;file system router&#xff09;&#xff0c;路由是Nuxt的核心功能之一 方式一…

DHTMLX Suite 8.0 重大发布,新增更多新主题、热图图表、辅助功能支持功能

DHTMLX Suite 是一个用于构建跨浏览器Web应用和移动应用的强大JavaScript UI库。DHTMLX UI 组件库允许您更快地构建跨平台、跨浏览器 Web 和移动应用程序。它包括一组丰富的即用式 HTML5 组件&#xff0c;这些组件可以轻松组合到单个应用程序界面中。 DHTMLX Spreadsheet正版试…

动态网站开发讲课笔记04:Servlet基础

文章目录零、本节学习目标一、Servlet基础&#xff08;一&#xff09;Servlet概述1、Servlet是什么2、Servlet容器3、Servlet应用程序的体系结构&#xff08;二&#xff09;Servlet的特点1、功能强大2、可移植3、性能高效4、安全性高5、可扩展&#xff08;三&#xff09;Servle…

数据结构刷新知识总结,为了与题目分开,特地在这里开一篇博客

文章目录二叉树、树、森林的转换二叉树的五个特性常用算法总结常用算法详解图的概念堆排序哈希查找二叉树、树、森林的转换 树转二叉树 二叉树转树 森林转二叉树 二叉树转森林 二叉树的五个特性 性质1&#xff1a;在二叉树的第i层上至多有2i-1个结点性质2&#xff1a;深度为…

Android动态获取权限(详细教程附代码)

Android动态获取权限概述动态获取权限具体实现layout布局代码回调函数onRequestPermissionsResult权限判断工具类清单文件方式一&#xff1a;懒汉式方式二&#xff1a;饿汉式概述 如果是android6.0以下的版本&#xff0c;只需要在manifest声明对应的权限即可。但是这样会大大降…

美颜sdk动态贴纸的实现流程

随着移动互联网时代的到来&#xff0c;各式各样的 APP层出不穷&#xff0c;从最初的微信、 QQ到如今的抖音、快手等等&#xff0c;再到如今的微博、小红书等等&#xff0c;各式各样的 APP不断涌现。从最开始简单的图片展示到视频聊天&#xff0c;再到现如今丰富多样的各种动态贴…

rip题解

1.查看文件保护机制 使用的是新版本的checksec 2.拖入IDA分析 查壳 是一个64文件&#xff0c;拖入64位IDA 这个文件就是我们要攻击的服务器中的一个进程的代码&#xff0c;进程就是一个正在运行的程序 分析敏感函数 打开字符串窗口 跟进&#xff0c;光标点在command&#x…