名词解释

Composer(作曲家),Packagist:PHP类库安装包市场,类似Maven库,类似应用商店 https://packagist.org/

Composer 是 PHP 的一个依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。

Composer 默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。vendor中文翻译为厂商(第三方), webpack 中通常用vendor来命名我们项目中使用的第三方库(俗称三方库)。

Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。

Composer 可运行在 Windows 、 Linux 以及 OSX 平台上。

引入第三方类库的流程对比

Composer下载&安装类库的流程

Composer 基本使用

安装

// Linux  Mac 可只执行如下命令安装
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer// Windows可下载exe安装程序进行安装
https://getcomposer.org/Composer-Setup.exe

检查版本

# composer --version
Composer version 1.8.0

配置Packagist国内镜像

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

给项目引入 phpmailer 依赖

# cd project_path
# composer search phpmailer
phpmailer/phpmailer PHPMailer is a full-featured email creation and transfer class for PHP
# composer require phpmailer/phpmailer

命令执行完毕,会自动生成:

  • 目录 vendor:里面有下载安装的类库以及autoload.php(自动加载的文件)
  • 文件 composer.json composer.lock

在项目中使用 phpmailer

只需引入 autoload.php

<?php
header('Content-type:text/html;charset=utf-8');
echo '项目入口文件<br>';
// 引入Composer自动加载文件
require_once __DIR__ .'/vendor/autoload.php';
// 实例化PHPMailer对象
$mailer = new \PHPMailer\PHPMailer\PHPMailer();
// 打印实例的mailer对象
var_dump($mailer);

其他功能

  • 新建项目:composer create-project
  • 安装依赖:composer install
  • 查看依赖:composer show
  • 更新依赖:composer update
  • 更新composer工具本身:composer self-update

应用举例

使用Composer创建ThinkPHP5项目

# composer create-project topthink/think demo_tp5_api --prefer-dist
# php think run -p 8001

此时访问 http://localhost:8001,可看到如下内容

手动安装

  1. 下载PHP(地址:http://windows.php.net/download),配置好 php.ini 并将PHP目录添加进系统环境变量PATH里

  2. 下载composer.phar(地址:https://getcomposer.org/composer.phar),将文件放进PHP目录下,并且新建文本文件 composer.cmd,内容:@php "%~dp0composer.phar" %*。(phar是php archive,php归档文件,类似于jar)

  3. 重启电脑,打开命令提示符输入 composer --version 查看 composer 版本,以确认是否能执行该命令。

  4. 在命令提示符执行 composer config -g repo.packagist composer https://packagist.phpcomposer.com,改写Packagist 镜像至国内镜像以加快下载速度。

Composer 原理使用相关推荐

  1. composer更新_深入学习Composer原理(四)

    本系列第四篇文章,也是最后一篇 首先,我们先看看Composer的源码从哪里看起.当然,请您先准备好源码. composer init或者直接install之后,自动生成了一个vendor目录,这时您 ...

  2. composer 路径_深入学习Composer原理(三)

    本系列第三篇文章,一起了解下PSR规范中的PSR4和PSR0规范 首先恭喜大家,包括我自己,坚持到了现在.这篇文章之后,Composer的基础原理就清晰明了咯.也就是说,Composer所利用的正是s ...

  3. PHP学习方向-进阶(二)

    如果你现在处于以下几种状态,本资料非常适合你: 准备换工作,不知道从哪开始准备 技术遇到瓶颈,不知道该学什么 准备学 PHP,但不知道领域有多深 进阶篇 Autoload.Composer 原理 PS ...

  4. composer的原理和正确使用(最新)

    曾经我对于composer的原理等没有深入了解,只是知道简单的使用,现在深入研究了一下,在此记录一下,深入了解才能了如指掌. composer的作用 composer命令介绍之install和upda ...

  5. composer的原理

    转 Composer的原理 2018年05月14日 14:00:43 do better myself 阅读数 1763 Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器 ...

  6. Composer 篇

    学习网站 Composer 中文网 资源包 Packagist Packagist / Composer 中国全量镜像 如何安装 Composer 下载 Composer 安装前请务必确保已经正确安装 ...

  7. window/linux composer安装/卸载

    packagist库:https://packagist.org/ window  安装 参考地址:https://www.kancloud.cn/thinkphp/composer/35668 1. ...

  8. composer报错:received xxx bytes out of the 以及composer手动引入扩展包

    一.前言 如题所示,博主在下载laravel5.4的Predis扩展的时候遇到的错误,本来只是个composer下载的报错,只是处理这个问题的时候,又遇到很多知识点,索性记录一下,也方便同样遇到这个问 ...

  9. php底层运行机制与原理

    php底层运行机制与原理 1 PHP的设计理念及特点 多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服务造成影响,当然,时代发展,PHP也早已支持多线程模型. ...

最新文章

  1. elasticsearch5.5.2环境搭建
  2. 深度学习解决多视图非线性数据特征融合问题
  3. Docker : 数据卷(创建、挂载、查看、删除)
  4. linux软件包管理系统的意义,Linux系统的软件包管理——RPM
  5. 初识Opserver,StackExchange的监控解决方案
  6. sql like不包括_SQL Like – SQL不喜欢
  7. 测试员:你知道未来移动测试的方向是什么样的吗?
  8. 为什么要用dubbo,dubbo和zookeeper关系,简单的dubbo搭建
  9. jmeter进行http压力测试
  10. 采用CPLD或者FPGA显示TFT液晶屏
  11. 注解@NotEmpty、@NotBlank、@NotNull三者的区别及使用范围
  12. 解决Git push提交时Permission denied(publickey).Could not read from remote...的问题
  13. Kubernetes Pod报错 filed to get sandbox image “k8s.gcr.io/pause:3.6“
  14. 常用工具 [ubuntu 图像编辑软件]
  15. 虚幻4游戏引擎的安装
  16. vue 中deep使用
  17. Quick BI功能篇之(一):20分钟入门 1
  18. stm32智能小车设计(1)——硬件选型思路
  19. Gmail代理收发邮件
  20. strtok是分割字符串,查找中间最长的单元

热门文章

  1. Mathematica中用有限元方法解不规则区域上的波动方程
  2. Node.js 4.x 入门实战视频课程【讲师辅导】-曾亮-专题视频课程
  3. 那些年,我们一起吃得泡面……
  4. 申请Google Play开发者账号
  5. python中类重要吗_如何看待有的python程序员从不使用类?
  6. CodeBlocks中文汉化Code::Blocks 10.05 中文版
  7. Ubuntu16.04笔记本 安装R RStudio
  8. 如何看待阿里云推出的免费虚拟主机?
  9. 微信小程序的消息推送的token的配置
  10. svn+ssh服务器与客户端配置方法