拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. O&M(Operations and Maintenance)
  3. PHP+VUE+Laravel相关
  4. 正文

PHP+VUE——关于Composer的使用。

2024年5月2日 1290点热度 0人点赞 0条评论

目录

  • 一、Composer
    • 1、composer概念
      • (1)composer是什么
    • 2、使用Compser的前提条件
      • 3、安装包下载:
      • 4、环境检查
      • (1)查看openssl是否安装
      • (2)查看php版本
    • 5、安装方法
      • (1)Download the installer to the current directory
      • (2)Verify the installer SHA-384, which you can also cross-check here
      • (3)Run the installer
      • (4)Remove the installer
    • (5)配置Composer命令到环境变量中
      • (6)配置中国镜像:
      • (7)去掉提示:Do not run Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]?
      • (8)composer诊断
  • 二、Composer的使用
    • 1、使用composer下载安装扩展库
      • (1)composer require 命令
      • (2)composer.json中配置进行安装依赖包
      • 2、composer.json文件
      • 3、案例使用—程序使用第三方库
      • 4、删除一个应用扩展库
      • 5、composer install 命令
    • 6、composer在PHP中的使用
      • (1)创建一个demo.php
      • (2)在php文件中引入composer的自动加载文件
    • 7、composer create-project 命令
  • 三、关于Composer的自动加载机制
    • 1、Composer提供了三种形式的自动加载机制:
    • 2、Composer自动加载机制使用流程:
    • 3、PHP的简单用法
  • 四、手动安装Composer
    • 1、若自动安装Composer不成功,可以采用手动安装形式
    • 2、使用 php composer.phar 代表 composer 执行Composer命令
    • 3、也可以建立快捷方式 composer.bat 文件
  • 五、composer诊断过程
  • 六、composer.lock文件是干什么的?底层原理是什么?
    • 1、composer.lock是什么
    • 2、composer.lock文件的作用包括:
    • 3、composer.json的底层原理
      • (1)底层原理:
      • (2)解析依赖关系:
      • (3)解析版本解析器:
      • (4)下载依赖项并记录版本号:
      • (5)检查composer.lock文件:

一、Composer

1、composer概念

(1)composer是什么

Composer是PHP程序的依赖管理工具,它帮助程序员管理和安装程序中使用到的PHP依赖库,同时提供了自动加载机制,方便依赖库的使用。

自php5.3以后,引入Composer依赖管理工具

Composer可以说是PHP程序的未来,是现代PHP开发必不可少的。

(2)Composer主要作用:

依赖管理:程序中使用的PHP库,交由Composer管理

自动加载:依赖库中的类和用户自定义的类,由Composer支持自动加载。

2、使用Compser的前提条件

php5.3+、开启open_ssl扩展

3、安装包下载:

见:https://getcomposer.org/download/

下载Windows安装包:https://getcomposer.org/Composer-Setup.exe

下载Linux安装包:php命令下载(见下述4)

4、环境检查

(1)查看openssl是否安装

如果没有安装需要重新编译源码进行安装。

php -m|grep openssl

(2)查看php版本

php -vesrion

5、安装方法

(1)Download the installer to the current directory

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

(2)Verify the installer SHA-384, which you can also cross-check here

php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

(3)Run the installer

php composer-setup.php 

如果出现如下错误,重新编译安装PHP,enable-phar即可
Install it or recompile php without --disable-phar

(4)Remove the installer

php -r "unlink('composer-setup.php');"

(5)配置Composer命令到环境变量中

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

选择合适的php.exe路径,由于网络环境问题,可能一次安装不成功,多尝试几次即可完成安装

(6)配置中国镜像:

--增加国内镜像(只有最后的镜像是生效的)

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

--查看添加的镜像

composer config -g --list --verbose

--移除添加的镜像

composer config -g --unset repos.packagist

(7)去掉提示:Do not run Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]?

COMPOSER_ALLOW_SUPERUSER 环境变量用于控制 Composer 是否允许某些操作以超级用户(root)权限执行。

如果你需要修改这个变量,通常是为了解决权限问题。

在命令行中设置这个变量,你可以使用 export 命令(在 Bash 或类似的 shell 中):export COMPOSER_ALLOW_SUPERUSER=1

或者可以直接写入到~/.bash_profile中

(8)composer诊断

composer diagnose

二、Composer的使用

1、使用composer下载安装扩展库

(1)composer require 命令

在应用程序目录下,安装指定的扩展库命令。

e.g:安装appbolaget库

composer require appbolaget/dd;

(2)composer.json中配置进行安装依赖包

--先配置

"require": {
"php": "^7.3|^8.0",
"betterde/logger": "^2.2",
"doctrine/dbal": "^3.3",
"dompdf/dompdf": "^2.0"
}

--再进行update

此命令会根据composer.json中的配置,更新应用程序

composer update

2、composer.json文件

存放composer的配置文件

3、案例使用—程序使用第三方库

<?php
//引入Composer自动加载机制
require_once 'vendor/autoload.php';
// 引入命名空间
use carbon\carbon;
// 使用依赖库
echo carbon::now()->toDateTimestring();

4、删除一个应用扩展库

--先再composer.json中删除一个require
--再执行更新 composer update

5、composer install 命令

与composer install差不多,不常用,经常使用composer update命令

6、composer在PHP中的使用

(1)创建一个demo.php

(2)在php文件中引入composer的自动加载文件

<?php
//composer的自动加载文件
require_once 'vendor/autoload.php';
//使用扩展库carbon
dump(Carbon\Carbon::now());

7、composer create-project 命令

后续讲解

注意composer默认使用 https 链接,使用中国镜像时可能在下载依赖库时会有问题,此时可以修改composer配置项secure-http,允许通过 http 链接访问 composer config -g secure-http false。

三、关于Composer的自动加载机制

1、Composer提供了三种形式的自动加载机制:

(1)基于 PSR-4 规范的自动加载机制 

(2)基于类目录的自动加载机制 

(3)基于函数库文件的自动加载机制

2、Composer自动加载机制使用流程:

在 composer.json 文件中定义自动加载规则

使用命令 composer dump-autoload 生成自动加载文件

程序中引入自动加载规则,使用自定义类

3、PHP的简单用法

(1)php -m

(2)php -v

(3)php -s  开启内置服务器

(4)php test.php 运行php程序

(5)php composer.phar  运行composer安装命令

四、手动安装Composer

1、若自动安装Composer不成功,可以采用手动安装形式

下载 composer.phar 文件到指定目录(一般位于当前应用目录)

下载地址:https://getcomposer.org/download/1.5.2/composer.phar

2、使用 php composer.phar 代表 composer 执行Composer命令

3、也可以建立快捷方式 composer.bat 文件

--把composer.phar所在目录写入到环境变量中(一般把composer.phar放在php.exe所在目录)
--在同级目录下新建 composer.bat 文件,输入文本 @php "%~dp0composer.phar" %*
--现在即可使用 composer 代替 php composer.phar

五、composer诊断过程

https://blog.csdn.net/qq_35138724/article/details/122898464

六、composer.lock文件是干什么的?底层原理是什么?

1、composer.lock是什么

composer.lock文件是Composer工具使用的锁文件,用于记录已安装包的确切版本号和依赖关系。它是在执行composer install或composer update命令时自动生成或更新的。composer.lock文件位于项目的根目录下,通常与composer.json文件一起存储在版本控制系统中。

2、composer.lock文件的作用包括:

锁定已安装包的版本:composer.lock文件记录了每个已安装包的确切版本号,包括其依赖关系。这样可以确保在不更改composer.json文件的情况下重现相同的依赖项版本。它提供了一种固定依赖项版本的机制,以确保项目在不同环境中的一致性。

提供快速安装:当执行composer install命令时,Composer首先检查是否存在composer.lock文件。如果存在,Composer会直接使用其中记录的确切版本号来安装依赖项,而不是解析composer.json文件并下载最新版本。这样可以加快安装过程,避免下载相同版本的包。

避免意外升级:composer.lock文件的存在可以防止意外升级依赖项。如果没有composer.lock文件,Composer在执行composer update命令时将根据composer.json文件中的约束条件尝试获取最新版本的依赖项。但如果存在composer.lock文件,Composer会优先使用其中记录的版本信息。

3、composer.json的底层原理

(1)底层原理:

当执行composer install或composer update命令时,Composer会生成或更新composer.lock文件。底层原理涉及以下几个步骤:

(2)解析依赖关系:

Composer解析composer.json文件中的依赖关系,包括主要依赖项和开发依赖项。它检查每个依赖项的名称和版本约束。

(3)解析版本解析器:

Composer使用一种称为版本解析器的算法来确定满足约束条件的最新版本。版本解析器会考虑依赖关系中的版本约束、包的可用版本以及其他限制条件,以确定最佳匹配的版本。

(4)下载依赖项并记录版本号:

根据版本解析器的结果,Composer从包存储库(如Packagist)下载满足约束条件的依赖项的包,并记录每个已安装包的确切版本号和依赖关系。这些信息被写入composer.lock文件中。

(5)检查composer.lock文件:

在执行composer install或composer update命令时,Composer首先检查是否存在composer.lock文件。如果存在,Composer将使用其中记录的确切版本号和依赖关系来安装或更新依赖项,而不是解析composer.json文件并下载最新版本。

通过composer.lock文件,Composer确保了项目依赖项版本的一致性,以及更快的安装过程和可控的依赖项升级。这对于团队协作、持续集成和部署过程中的一致性是非常重要的。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2024年5月11日

admin

这个人很懒,什么都没留下

打赏 点赞
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号