别再到处搜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:phpStudyphpphp-7.0.12-ntsphp.exe

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

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

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

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

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

composer -v

显示如下内容

看到这里我就都当成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常用命令

selfupdate

更新 composer 本身,请经常执行 composer selfupdate 以保持 Composer 一直是最新版本。
composer selfupdate
等价于
composer self-update

dumpautoload

当我们更改了 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

update

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

composer update

require

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

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

composer require

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

composer require barryvdh/laravel-ide-helper

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

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

create-project

你可以使用 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个文件拷贝到WINDOWSsystem32 文件夹下。

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

CA证书下载地址:http://curl.haxx.se/docs/caextract.html

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

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

4、然后修改php.ini文件

openssl.cafile = "D:phpStudytmpcacert.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. 以上的版本才支持的

以上内容希望帮助到大家,更多PHP大厂PDF面试文档,PHP进阶架构视频资料,PHP精彩好文可以关注公众号:PHP开源社区,或者访问:

四年精华PHP技术文章整理合集——PHP框架篇

四年精华PHP技术文合集——微服务架构篇

四年精华PHP技术文合集——分布式架构篇

四年精华PHP技术文合集——高并发场景篇

四年精华PHP技术文章整理合集——数据库篇

composer 设置版本号_Composer依赖管理 – PHP的利器相关推荐

  1. composer 设置版本号_composer 安装及使用

    1.安装: composer的安装就不用多说了,官网下载 或者直接yum安装. 2.常用命令: 1)配置为国内镜像仓库 composer config -g repo.packagist compos ...

  2. composer 设置版本号_Composer 版本约束表达式的使用

    相信 Composer 对你来说已经相当熟悉了,不过对于包的版本,我觉得应该还有不少同学不是那么清楚各种写法到底是啥意思. 语义化版本 首先,我们来了解一个东西:语义化版本版本格式:主版本号.次版本号 ...

  3. composer:php的依赖管理工具

    phpcomposer PHP 5.3.2+ Composer 不是一个包管理器,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装.默认情况下它不会在全局安装任何东西 ...

  4. composer设置代理_composer 设置代理

    Docker registry V2 部署私有Docker Registry 搭建 Insecure Registry 修改Registry server上的Docker daemon的配置,为DOC ...

  5. PHP依赖管理工具Composer配置安装及基本使用

    一.介绍 Composer是PHP中的一个依赖管理工具. 它可以让你声明自己项目所依赖的库,然后它将会在项目中为你安装这些库.就像是node的npm和ruby的bundler差不多. 二.window ...

  6. Composer - PHP 世界里用于管理项目依赖的工具

    Composer - PHP 世界里用于管理项目依赖的工具 Composer v1.8 版本正式发布.Composer是 PHP 世界里用于管理项目依赖的工具. 如果你已经安装了 Composer , ...

  7. Composer PHP依赖管理

    对于现代语言而言,包管理器基本上是标配.Java有Maven,Python有pip,Ruby有gem,Nodejs有npm.PHP的则是PEAR,不过PEAR坑不少: 依赖处理容易出问题 配置非常复杂 ...

  8. Composer -- PHP依赖管理的新时代

    对于现代语言而言,包管理器基本上是标配.Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm.PHP 的则是 PEAR,不过 PEAR 坑不少: 依赖处理 ...

  9. window下PHP依赖管理工具Composer的安装与使用

    一.什么是Composer? Composer 是 PHP 的一个依赖管理工具.我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个 ...

最新文章

  1. 代码保护软件 VMProtect 3.3已将Taggant System移除
  2. 1.21 实例:统计商品信息
  3. python 使用__slots__来限制类的实例属性的数量
  4. c语言中函数可以有几个参数,C中子函数最多有几个形参
  5. LeetCode 100. 相同的树(二叉树遍历)
  6. java readLine()
  7. 1月22日发布!疑似渠道商泄露荣耀V40价格:3999元起?
  8. Mysql查询汉字语法_Mysql数据库查询语法详解
  9. C++模板的概念 定义和使用
  10. Ubiquitous Religions
  11. 域名dns被劫持怎么办、dns被劫持怎么办、dns被劫持的解决方法
  12. linux命令获取root权限,Linux命令学习:获取root权限
  13. Leetcode.365 水壶问题
  14. 吕 思 伟 ---- 潘 爱 民 :: ATL 介 绍( 三) (转)
  15. 什么是lims系统,lims(实验室管理系统)
  16. 目前流行的装修风格_现在最流行的装修风格有哪些?
  17. NodeJS v0 10 8升级安装
  18. Scanner输入带空格的字符串
  19. android 手机 同步到iphone,如何把android手机所有信息同步到iphone11
  20. 二进制老鼠毒药c语言,老鼠试药  二进制问题

热门文章

  1. igs无法分配驱动器映射表_硬盘无法使用,用DiskPart进行分区和格式化,非常简单...
  2. c#中textbox属性_C#.Net中带有示例的TextBox.Multiline属性
  3. 给所有开发人员的 11 条忠告(第 4 条亮了)
  4. ReactNative常用组件汇总
  5. Xamarin开发笔记—百度在线语音合成
  6. 前端开发1之Node.js以及npm开发环境搭建
  7. mysql galera status_MySQL galera cluster集群的监控
  8. ssh 脚本 空格字符转换
  9. ASP.NET MVC从数据库读取、存入图片
  10. centos7 配置http服务器