phper 你真的会composer吗?

本文介绍了Composer在PHP项目中的核心作用,类似Node.js的npm,用于管理和引用MVC框架中的ORM库。讲解了其工作原理、常用命令、安装过程及如何管理依赖。还演示了如何使用composer update和composer require来管理包,并展示了如何卸载不再需要的包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

composer对PHP的作用
现在的世界是要求快速的,如果每个项目都从头开始写,显然不现实,而且质量也得不到保证。PHP有大量开源的项目,如何想自己的项目中使用这些PHP项目,就是composer做的事。

MVC中常用的ORM,如果你要造一个自己的MVC框架,不可能自己写,那去哪里找这些php的ORM库呢,怎么很好地在项目中引用呢?这就是composer做的是。
在这里插入图片描述

说白了,composer就是nodeJS的npm,一个php的包管理工具

composer与pear、pcel
你可能听说过pear和pcel,这且这两个名字还很像,容易混淆。pear和composer的功能是一样的,只是没有composer好,目前pear已经被淘汰。而pcel和两者不同,它是安装php扩展的,比如GD库、PDO扩展、CURL扩展,这些扩展是使用C编写的,是PHP底层扩展。

composer工作原理
composer update的整个过程

这里经过几个步骤:
1.composer读取composer.json,这个json是在当前执行composer目录的
2.composer通过读取到的json数据去Packagist.org获取各个包的包名、作者、下载URL等信息。下载URL经常是GitHub上面的,因为目录的代码大部分都托管在GitHub上面嘛。
3.将从Packagist.org获取到的元数据存放到当前目录的composer.lock中
4.composer读取composer.lock中的元数据,根据元数据一次下载包,并且放到当前目录的vender目录里面

composer有不少常用的命令,比如composer install 、composer update、composer require。这三个命令都是会下载php类库的,composer update 会将步骤1、2、3、4都执行一遍,所以下载的类库是composer.json配置中匹配搭配的最新类库,而composer install,只是执行步骤4。
composer require 会将配置写入composer.json,然后执行步骤1、2、3、4

或许你会问,如何知道不同的包他们的配置是怎么写的,这个你就要去Packagist.org了,每个开源项目都会有安装和使用方法的。而且很简单哦:)

composer安装
composer安装脚本也是使用php写的,执行鞋面的命令下载compsoer的安装脚本,并使用php 执行它就可以安装composer的命令行工具composer.phar到php的bin目录下面。

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

php -r “readfile(‘https://getcomposer.org/installer’);” | php
原理:
curl -sS https://getcomposer.org/installer 将会输出https://getcomposer.org/installer这个文件的内容到界面上,通过 管道 |传递给php,https://getcomposer.org/installer就会被执行,这是一个php文件,作用是下载composer.phar

-r “readfile(‘https://getcomposer.org/installer’);” |的原理也是一样的。

因为下载和执行php需要时间,所以请耐心等待几分钟

安装到命令行

你可以将此文件放在任何地方。如果你把它放在系统的 PATH 目录中,你就能在全局访问它。 在类Unix系统中,你甚至可以在使用时不加 php 前缀。

sudo mv composer.phar /usr/bin/composer

现在只需要运行 composer 命令就可以使用 composer 而不需要输入 php
composer.phar。

下载七牛云SDK:

composer require qiniu/php-sdk

中国化composer
将composer的pakagist库地址修改为中国全量镜像地址:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer卸载包
虽然前面讲解了原理,并且一步步做了安装示例,但是卸载包还是要讲一下。

正如前面说的,composer update会将步骤1、2、3、4都执行一遍,所以,只要我们将composer.json修改了,然后执行composer update 就重新安装整个库了,自然那些不再composer.json的包也就不见了,以七牛云为例:

在composer.json中删除"qiniu/php-sdk": “^7.1”:
删除前:

“require”: {
“php”: “>=5.4.0”,
“topthink/framework”: “^5.0”,
“qiniu/php-sdk”: “^7.1”
},
删除后:

“require”: {
“php”: “>=5.4.0”,
“topthink/framework”: “^5.0”
},
#重新安装整个库,OK
composer update
注意,“topthink/framework”: “^5.0”,中的都好,一定要删除,否则不符合json格式,会报错。

在Hyperf框架中,您可以使用`Phper666\Download\Download`类来执行文件下载操作。可以按照以下步骤进行操作: 1. 安装`Phper666\Download`类库:使用Composer命令`composer require phper666/download`在您的项目中安装`Phper666\Download`类库。 2. 创建ZipStream-PHP实例并向Zip文件添加文件:根据 maennchen/zipstream-php 的使用方法,创建ZipStream-PHP实例并向Zip文件添加文件。 ```php use ZipStream\ZipStream; // 创建ZipStream-PHP实例 $zip = new ZipStream('example.zip'); // 向Zip文件添加文件 $zip->addFile('path/to/file.txt', 'file.txt'); // 生成Zip文件 $zip->finish(); ``` 3. 执行文件下载操作:使用`Phper666\Download\Download`类的`download`方法执行文件下载操作。 ```php use Phper666\Download\Download; $file = 'example.zip'; $download = new Download(); $download->setFilePath($file); $download->start(); ``` 其中,`setFilePath`方法用于设置文件路径,`start`方法用于执行文件下载操作。 完整的示例代码如下: ```php use ZipStream\ZipStream; use Phper666\Download\Download; // 创建ZipStream-PHP实例 $zip = new ZipStream('example.zip'); // 向Zip文件添加文件 $zip->addFile('path/to/file.txt', 'file.txt'); // 生成Zip文件 $zip->finish(); // 执行文件下载操作 $file = 'example.zip'; $download = new Download(); $download->setFilePath($file); $download->start(); ``` 请注意,此示例代码仅用于演示目的。在实际使用中,您需要根据您的应用程序需求对代码进行修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值