搜索
首页开发工具composerComposer依赖管理(PHP利器)

Composer依赖管理(PHP利器)

Jan 26, 2020 pm 04:01 PM
composer

Composer依赖管理(PHP利器)

别再到处搜PHP类扩展包了,对于现代语言而言,包管理器基本上是标配。Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm。PHP 的则是 PEAR,不过 PEAR 坑不少:

● 依赖处理容易出问题

● 配置非常复杂

● 难用的命令行接口

好在我们有 Composer,PHP依赖管理的利器。它是开源的,使用起来也很简单,提交自己的包也很容易。

举个例子,平时我们开始的时候如果不是用框架,想要一个验证码,就要先去Gihutb或者其他地方找一个验证码类,然后在项目中include一下,再编辑编辑就跑起来了,以至于到后期项目维护都可能会出现问题。在Github上开源的,那还能点个watch,看到有Bug修复或新版本发布,能及时跟着升级。

如果下载的扩展包多了,就需要各种include了,还有可能出现命名空间冲突的问题,又要根据项目去更改命名空间,如果扩展包升级了,又要重新下载编辑,这是十分不方便的。所以Composer依赖管理库就这样诞生了。

上面就是Compser比较重要的需求场景。

1.能方便安装升级扩展包

2.只include就行,不用到处写include

3.避免命名空间的冲突

平时都去Github、码云等平台上找扩展包,而现在也有一个网站把所有包综合起来,也就说现在的开发方式:首先在packagist上搜索,然后用Composer安装升级。

安装Composer

傻瓜式安装的话就是直接点击https://getcomposer.org/Composer-Setup.exe,下载安装就行了,安装程序将为你下载Composer并设置你的PATH环境变量,以便你可以简单地Composer从任何目录调用。

安装的过程中需要注意的是要找到php.exe的根目录,选择正确的PHP路径。这里就不提供截图了,因为我也没下好,而且我也是手动安装的。

选择目录应该是这样的:

D:\phpStudy\php\php-7.0.12-nts\php.exe

 

下面还是着重介绍手动安装的,我觉得这种方法十分好用:

先下载一个composer.phar文件,将phar文件放在developer文件夹中,这个你随意,不限制放在哪个文件夹中。

然后打开DOS窗口,或者快捷键windows+R输入cmd,使用以下命令,先要进入到你放置phar文件的目录

D:\developer\composer>echo @php "%~dp0composer.phar" %*>composer.bat

安装成功的标志就是在命令行输入

composer -v

显示如下内容

CSKABH)%$S@QZJ[R{(36587.png

 

看到这里我就都当成Composer已经安装成功了,在中国局域网内,使用Composer是比较慢的,不过好在国内有镜像,执行如下命令切换到国内的镜像,国内镜像所做的就是缓存所有安装包和元数据到国内的机房并通过国内的 CDN 进行加速,这样就不必再去向国外的网站发起请求。

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

 

这样做就相当于全局更改了配置,我选择修改当前项目的 composer.json 的配置文件:

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

 

composer常用命令

<strong>selfupdate</strong>

更新 composer 本身,请经常执行 composer selfupdate 以保持 Composer 一直是最新版本。

composer selfupdate

等价于

composer self-update

<strong>dumpautoload</strong>

当我们更改了 composer.json 文件中的 autoload 时,需要执行 composer dumpautoload,来让 autoload 立即生效。而不必执行 install 或 update 命令。

composer dumpautoload

等价于

composer dump-autoload

dumpautoload 命令有两个常用的选项:

--optimize (-o): 转换 PSR-0/4 autoloading 到 classmap ,以获得更快的载入速度。这特别适用于生产环境,但可能需要一些时间来运行,因此它目前不是默认设置。

--no-dev: 禁用 autoload-dev 规则。

 

install

composer install

 

依据当前目录下的 composer.lock(锁文件) 或 composer.json 文件,所定义的依赖关系,安装依赖包。

install 命令会先检查 composer.lock 锁文件是否存在,如果存在,它将下载 composer.lock 文件中指定的版本,而忽略 composer.json 文件中的定义。

# 查看 composer install 的帮助信息
composer install -h
# 只安装 require 中定义的依赖,而不安装 require-dev 中定义的依赖
composer install --no-dev

<strong>update</strong>

如果你想更新你的依赖版本,或者你修改了 composer.json 中的依赖关系,想让 composer 按照 composer.json 文件中的定义执行更新操作,就用 update 命令。

composer update

 

<strong>require</strong>

require 命令一般用来安装新的依赖包,并将依赖写入当前目录的 composer.json 文件中。

如果 composer.json 文件中,添加或改变了依赖,修改后的依赖关系将被安装或者更新。

<strong>composer require</strong>

 

你也可以直接在命令中指明需要安装的依赖包。

composer require barryvdh/laravel-ide-helper

 

--dev 选项和 require-dev 相对应。如果你的依赖包仅仅用于开发环境,建议加上 --dev 选项。

composer require --dev barryvdh/laravel-ide-helper

 

 

<strong>create-project</strong>

你可以使用 create-project 从现有的包中创建一个新的项目。

它相当于执行了 git clone 命令后,将这个包的依赖安装到它自己的 vendor 目录。

此命令有几个常见的用途:

你可以快速的部署你的应用。

你可以检出任何资源包,并开发它的补丁。

多人开发项目,可以用它来加快应用的初始化。

# 安装 Laravel 项目
composer create-project --prefer-dist laravel/laravel blog 5.5.*

 

如果没有指定版本号,就默认安装最新的版本。

--prefer-dist: 当有可用的包时,从 dist 安装。

phpStudy集成环境下 安装composer失败

报错提示:

The "https://getcomposer.org/versions" file could not be downloaded: failed to open stream: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
The "https://getcomposer.org/download/1.2.0/composer.phar.sig" file could not be downloaded: SSL: crypto enabling timeout
Failed to enable crypto
failed to open stream: operation failed

 

1、安装composer需要开启openssl拓展 而phpstudy默认是关闭的

2、将php目录下的ssleay32.dll,libeay32.dll以及php/ext文件夹下的:php_openssl.dll 3个文件拷贝到WINDOWS\system32 文件夹下。

3、openssl需要CA证书 phpstudy也是没有的

CA证书下载地址:

http://curl.haxx.se/docs/caextract.html

选中之后单击右键选择另存为

下载成功之后放到tmp文件夹下面

4、然后修改php.ini文件

openssl.cafile = "D:\phpStudy\tmp\cacert.pem"

 

5、重启phpStudy就可以了报错提示:

failed to open stream: HTTP request failed!

 

1、检查一下php的curl拓展是否开启

2、检查这两个配置是否开启。

allow_url_fopen = On
user_agent="PHP"

 

也可以这样配置 user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")

模拟浏览器访问也是一个不错的选择

3、开启之后重启重启phpStudy就可以了

 

PS: openssl.cafile 配置选项, 是 PHP 5.6.0. 以上的版本才支持的

更多composer相关技术文章,请访问composer栏目:https://www.php.cn/tool/composer/

以上是Composer依赖管理(PHP利器)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:cnblogs。如有侵权,请联系admin@php.cn删除
AI集成到作​​曲家:探索潜力AI集成到作​​曲家:探索潜力May 01, 2025 am 12:02 AM

AI能在音乐创作领域大展身手。1)AI通过机器学习和深度学习生成音乐,提升多样性和创新性。2)AI作曲可辅助作曲家,提供灵感和创意。3)实际应用中需优化性能,解决生成音乐的连贯性和创新性问题。

作曲家的目的:管理PHP中的项目依赖性作曲家的目的:管理PHP中的项目依赖性Apr 30, 2025 am 12:01 AM

我们需要Composer因为它能有效管理PHP项目的依赖,避免版本冲突和手动管理库的麻烦。Composer通过composer.json声明依赖,并使用composer.lock确保版本一致,简化了依赖管理过程,提高了项目稳定性和开发效率。

作曲家:通过AI的帮助开发PHP作曲家:通过AI的帮助开发PHPApr 29, 2025 am 12:27 AM

AI可以帮助优化Composer的使用,具体方法包括:1.依赖管理优化:AI分析依赖关系,建议最佳版本组合,减少冲突。2.自动化代码生成:AI生成符合最佳实践的composer.json文件。3.代码质量提升:AI检测潜在问题,提供优化建议,提高代码质量。这些方法通过机器学习和自然语言处理技术实现,帮助开发者提高效率和代码质量。

成为作曲家:培训,教育和经验成为作曲家:培训,教育和经验Apr 28, 2025 am 12:11 AM

要成为一名作曲家,需掌握音乐理论、和声学、对位法,并熟悉乐器音色和演奏技巧。作曲家通过音乐表达情感和故事,创作过程涉及从想法到作品的构建和完善。

确定作曲家:基本要素确定作曲家:基本要素Apr 27, 2025 am 12:27 AM

识别作曲家的关键步骤包括:1)分析作曲家的风格特征,如贝多芬的戏剧性和力量;2)了解作曲家的历史背景和文化影响,如巴赫的巴洛克时期风格;3)综合分析作品的旋律、和声、节奏和结构,避免仅依赖单一元素导致误判。

作曲家:PHP开发中AI的未来作曲家:PHP开发中AI的未来Apr 26, 2025 am 12:10 AM

Composer'sfutureinPHPdevelopmentwithAIincludes:1)AI-enhanceddependencymanagementforsuggestinglibraries,2)AI-drivencodegenerationfortailoredboilerplate,and3)predictivemaintenanceforupdatesandpatches,butfaceschallengeslikedataprivacyandAIbias.

作曲家的技能和素质:概述作曲家的技能和素质:概述Apr 25, 2025 am 12:03 AM

成为一名成功的作曲家需要具备音乐理论、乐器演奏和音响设计等技能,以及敏锐的灵感捕捉和不断的作品修改能力。作曲家通过这些技能和特质,将情感和思想转化为音乐作品,激发听众共鸣。

作曲家的资格:评估能力作曲家的资格:评估能力Apr 24, 2025 am 12:15 AM

Composer使用熟练程度可以通过以下四个方面评估:1)理解基础概念,如包、依赖和版本控制;2)掌握核心功能,包括解析composer.json、解决依赖、下载包和生成autoload文件;3)熟练使用基本和高级命令,如composerinstall、update、require和dump-autoload;4)应用最佳实践,如使用composer.lock文件、优化autoload配置和定期清理缓存。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。