热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php依赖包有哪些,PHP的依赖管理——Composer

Composer简介Composer是PHP5以上的依赖管理工具,用来对需要用到的功能模块进行统一管理,包括引用模块的版本、模块的安装和删除等等。它类似

7b8fb1c9f580

Composer

简介

Composer 是 PHP5 以上的依赖管理工具,用来对需要用到的功能模块进行统一管理,包括引用模块的版本、模块的安装和删除等等。它类似于 Java 语言中的 Maven和 Gradle,Node 语言的 NPM,Ruby 的 Gem 等。

安装

在终端中执行下面的命令即可获取到最新版本的 Composer

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

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

php composer-setup.php

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

或者使用 Homebrew 进行安装

brew install composer

引用

方式一

在项目目录中创建一个 composer.json 的文件,在文件中添加下面的代码。

{

"require": {

"monolog/monolog": "1.0.*"

}

}

保存文件后,在终端中项目目录下执行命令

composer install

执行后就会安装 monolog 模块,并在项目目录中自动生成一个 vendor 目录,该目录下就包含着引用的 monolog 模块的信息。

方式二

可以直接在终端中执行命令

composer require monolog/monolog

这样就得到了和方式一一样的结果。

开发时引用

在 composer.json 文件中添加 require-dev 的配置,表示的是这当中引用的模块是开发模式下使用的。

"require-dev": {

"monolog/monolog": "1.0.*"

}

再次在终端执行 composer update 命令时就会在 vendor 目录下出现 monolog 模块了。

如果有些模块不需要在生产环境下加载的话,可以将这些模块配置到 require-dev 中,然后在执行 composer update/install 时添加 --no-dev选项,命令如下。

composer install --no-dev

composer update --no-dev

版本号的设置

名称

实例

描述

确切的版本号

1.0.2

指定确切的版本

范围

>=1.0

通过使用比较操作符可以指定有效的版本范围。 有效的运算符:>、>=、

通配符

1.0.*

使用通配符来指定一种模式。 1.0.与>&#61;1.0,<1.1是等效的

波浪号运算符

~1.2.1

~1.2相当于>&#61;1.2.1,<1.3.0

异或运算符

^1.2

^1.2相当于>&#61;1.2,<2.0

自动加载

在自己的 php 文件中加入下面的代码。

require &#39;vendor/autoload.php&#39;;

这样 Composer 就会通过 vendor 目录下的 autoload.php文件对 vendor 目录中的模块进行自动加载。

创建项目

composer create-project vendor/project:version [target-directory]

composer create-project vendor/project [target-directory] [version]

例如在当前目录中创建 Laravel 项目&#xff0c;可以使用下面的命令

composer create-project laravel/laravel

运行 shell 命令

可以使用 composer 执行一些脚本命令&#xff0c;只需要将这些命令配置在 composer.json 文件的 script 下就可以了。

"scripts": {

"事件名称": "事件脚本",

"事件名称": [

"事件脚本1",

"事件脚本2"

]

}

事件名称

详细说明

pre-install-cmd

在 install 命令执行前触发。

post-install-cmd

在 install 命令执行后触发。

pre-update-cmd

在 update 命令执行前触发。

post-update-cmd

在 update 命令执行后触发。

pre-status-cmd

在 status 命令执行前触发。

post-status-cmd

在 status 命令执行后触发。

pre-package-install

在资源包安装前触发。

post-package-install

在资源包安装后触发。

pre-package-update

在资源包更新前触发。

post-package-update

在资源包更新后触发。

pre-package-uninstall

在资源包被卸载前触发。

post-package-uninstall

在资源包被卸载后触发。

pre-autoload-dump

在自动加载器被转储前触发&#xff0c;无论是 install/update 还是 dump-autoload 命令都会触发。

post-autoload-dump

在自动加载器被转储后触发&#xff0c;无论是 install/update 还是 dump-autoload 命令都会触发。

post-root-package-install

在 create-project 命令期间&#xff0c;根包安装完成后触发。

post-create-project-cmd

在 create-project 命令执行后触发。



推荐阅读
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • Inno Setup区段之Components篇相关知识详解
    本文详细介绍了Inno Setup区段之Components篇相关的知识,包括Components和Types的使用方式以及各个参数的说明,希望对读者有一定的参考价值。内容涵盖了ComponentsName、Description、Types、ExtraDiskSpaceRequired、ExtraDiskSpaceRequiredFlags等多个关键词,帮助读者更好地理解和应用Inno Setup区段之Components篇的知识。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
author-avatar
手机用户2602938575
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有